123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450 |
- using Microsoft.AspNetCore.Http;
- using QM.KJGH.CGGL.Model.CGSBT;
- using QM.KJGH.CGGL.Model.QxCghj;
- using QM.KJGH.CGGL.NMCGHJ.QX.Models;
- using QM.KJGH.Model.KJGH;
- using QM.KJGH.Model.KJGH.CGHJ;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Text;
- using System.Threading.Tasks;
- using WS;
- using WS.AutoMapper;
- using WS.Http;
- using WS.IO;
- using WS.Log;
- namespace QM.KJGH.CGGL.NMCGHJ.QX
- {
- public class QXApi
- {
- /// <summary>
- /// 登录获取Token接口
- /// </summary>
- /// <param name=""></param>
- /// <returns></returns>
- public static string GetToken()
- {
- RunLog.Info("登录获取Token接口");
- //参数
- var pars = new { appid= QXConfig.APPID };
- //设置请求头
- var res = HttpHelper.HttpPost(QXConfig.URL_AUTHORIZE, pars.ToJson());
- RunLog.Info("登录获取Token接口返回:" + res);
- var resModel = res.ToModel<QXResponseApiModel>();
- if (resModel.Success)
- {
- QXResToken token = resModel.Data.ToString().ToModel<QXResToken>();
- return token.token;
- }
- else
- {
- RunLog.Debug("登录获取Token接口失败=>" + res);
- }
- return "";
- }
- #region 规划成果
- /// <summary>
- /// 接口1:检查文件分片信息
- /// </summary>
- /// <returns></returns>
- public static CghjQxcgsbrwView_QX Md5(CghjQxcgsbrwIo input)
- {
- RunLog.Info($"QXApi:检查文件分片信息:" + input.ToJson());
- if (string.IsNullOrWhiteSpace(input.MD5))
- throw new UseArgumentException("文件MD5参数不能为空");
- input.APPID = QXConfig.APPID;
- var token = GetToken();
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- headers.Add("Authorization", token);
- var urlParam = ApiHelper.FormatUrlParam(pars);
- var res = HttpHelper.HttpGet(QXConfig.URL_RESULTS_MD5, urlParam, headers);
- RunLog.Info($"QXApi:检查文件分片信息返回:" + res.ToJson());
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- var qx = resModel.Data.ToJson().ToModel<CghjQxcgsbrwView_QX>();
- qx.token = token;
- return qx;
- }
- else
- {
- RunLog.Debug("检查文件分片信息失败=>" + res);
- throw new UseArgumentException("检查文件分片信息失败:"+ resModel.Message);
- }
- }
- /// <summary>
- /// 接口2:分片上传成果包
- /// </summary>
- /// <returns></returns>
- public static string Upload(CghjQxcgsbrwfpIo_QY input, string file)
- {
- RunLog.Info($"QXApi:分片上传成果包:" + input.ToJson());
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- headers.Add("Authorization", input.token);
- Dictionary<string, string> param = new Dictionary<string, string>();
- param.Add("md5", input.MD5);
- param.Add("chunk", input.chunk.ToString());
- //文件
- var files = new Dictionary<string, string>();
- files.Add("file", file);
- string res;
- try
- {
- res = ApiHelper.HttpPostData(QXConfig.URL_RESULTS_UPLOAD, param, input.chunk.ToString(), file, input.token, timeOut: QXConfig.TIME_OUT);
- }
- catch (WebException ex)
- {
- RunLog.Error(ex, "分片上传成果包失败=>" + ex.Message);
- throw new UseArgumentException("操作失败:" + ex.Message);
- }
- //var res = ApiHelper.HttpPostFormdata(QXConfig.URL_RESULTS_UPLOAD, postData: param, files: files, headers:headers);
- RunLog.Info($"QXApi:分片上传成果包返回:" + res.ToJson());
- //var res = ApiHelper.HttpPost(QXConfig.URL_RESULTS_UPLOAD, param, new string[] { file}, headers);
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- return "上传成功";
- }
- else
- {
- RunLog.Debug("分片上传成果包失败=>" + res);
- throw new UseArgumentException("操作失败:" + resModel.Message);
- }
- }
- /// <summary>
- /// 接口3:合包并提交成果
- /// </summary>
- /// <returns></returns>
- public static string Complete(CghjQxcgsbrwhbIo_QY input)
- {
- RunLog.Info($"QXApi:合包并提交成果:" + input.ToJson());
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- headers.Add("Authorization", input.token);
- var res = HttpHelper.HttpPost(QXConfig.URL_RESULTS_COMPLETE, input.ToJson(), headers);
- RunLog.Info($"QXApi:合包并提交成果返回:" + res.ToJson());
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- return "上传成功";
- }
- else
- {
- RunLog.Debug("合包并提交成果失败=>" + res);
- throw new Exception(resModel.Message);
- }
- }
- /// <summary>
- /// 接口:更新审查进度
- /// </summary>
- /// <returns></returns>
- public static List<CghjQxcgScjd> UploadProgres(string ids)
- {
- RunLog.Info($"QXApi:更新审查进度:" + ids);
- var token = GetToken();
- //参数
- Dictionary<string, string> pars = new Dictionary<string, string>();
- pars.Add("ids", ids);
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- headers.Add("Authorization", token);
- var urlParam = ApiHelper.FormatUrlParam(pars);
- var res = HttpHelper.HttpGet(QXConfig.URL_RESULTS_PROGRES, urlParam, headers);
- RunLog.Info($"QXApi:更新审查进度返回:" + res.ToJson());
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- return resModel.Data.ToJson().ToModel<List<CghjQxcgScjd>>();
- }
- else
- {
- RunLog.Debug("检查文件分片信息失败=>" + res);
- throw new UseArgumentException("检查文件分片信息失败:" + resModel.Message);
- }
- }
- #endregion
- #region 监测指标
- /// <summary>
- /// 接口1:监测指标上报
- /// </summary>
- /// <returns></returns>
- public static bool JczbReport(JcyjzbReportIo input)
- {
- RunLog.Info($"QXApi:监测指标上报:" + input.ToJson());
- var token = GetToken();
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- headers.Add("Authorization", token);
- var res = HttpHelper.HttpPost(QXConfig.URL_MONITORING_REPORT, input.ToJson(), headers);
- RunLog.Info($"QXApi:监测指标上报返回:" + res.ToJson());
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- return true;
- }
- else
- {
- RunLog.Debug("监测指标上报失败=>" + res);
- throw new UseArgumentException("监测指标上报失败:" + resModel.Message);
- }
- }
- /// <summary>
- /// 接口2:监测指标上传
- /// </summary>
- /// <returns></returns>
- public static bool JczbUpload(string file)
- {
- RunLog.Info($"QXApi:监测指标上传:" + file);
- var token = GetToken();
- var res = ApiHelper.HttpPostData(QXConfig.URL_MONITORING_UPLOAD, null, Path.GetFileName(file), file, token, timeOut: QXConfig.TIME_OUT);
- RunLog.Info($"QXApi:监测指标上传返回:" + res.ToJson());
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- return true;
- }
- else
- {
- RunLog.Debug("监测指标上传失败=>" + res);
- throw new UseArgumentException("监测指标上传失败:" + resModel.Message);
- }
- }
- #endregion
- #region 体检评估
- /// <summary>
- /// 接口1:获取体检评估上报任务
- /// </summary>
- /// <returns></returns>
- public static List<CghjQxtjpgrwView> TjpgTemplate(CghjQxtjpgrwQuery input)
- {
- RunLog.Info($"QXApi:获取体检评估上报任务:" + input.ToJson());
- var token = GetToken();
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- headers.Add("Authorization", token);
- var urlParam = ApiHelper.FormatUrlParam(pars);
- var res = HttpHelper.HttpGet(QXConfig.URL_CHECKUP_TEMPLATE, urlParam, headers);
- RunLog.Info($"QXApi:获取体检评估上报任务返回:" + res.ToJson());
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- var qx = resModel.Data.ToJson().ToModel<List<CghjQxtjpgrwView>>();
- return qx;
- }
- else
- {
- RunLog.Debug("获取体检评估上报任务失败=>" + res);
- throw new UseArgumentException("获取体检评估上报任务失败:" + resModel.Message);
- }
- }
- /// <summary>
- /// 接口2:上报体检评估任务结果信息
- /// </summary>
- /// <returns></returns>
- public static bool TjpgUpload(string id , string file)
- {
- RunLog.Info($"QXApi:上报体检评估任务结果信息:{id} => {file}");
- var token = GetToken();
- Dictionary<string, string> param = new Dictionary<string, string>();
- param.Add("id", id);
- var res = ApiHelper.HttpPostData(QXConfig.URL_CHECKUP_UPLOAD, param, Path.GetFileName(file), file, token, timeOut:QXConfig.TIME_OUT);
- RunLog.Info($"QXApi:上报体检评估任务结果信息返回:" + res.ToJson());
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- return true;
- }
- else
- {
- RunLog.Debug("上报体检评估任务结果信息失败=>" + res);
- throw new UseArgumentException("上报体检评估任务结果信息失败:" + resModel.Message);
- }
- }
- #endregion
- #region 成果包查询接口
- /// <summary>
- /// 4.1 查询已办成果流程
- /// </summary>
- /// <returns></returns>
- public static List<CghjCgsbrwYbcg> GetYbcg(CghjCgcxIo input, ref string token)
- {
- token = GetToken();
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- headers.Add("Authorization", token);
- var url = ApiHelper.FormatUrlParam(pars, QXConfig.URL_LANDMYATTENDSDATA);
- RunLog.Info("查询已办成果流程接口请求:" + url);
- var res = HttpHelper.HttpGet(url, string.Empty, headers);
- RunLog.Info("查询已办成果流程接口返回:" + res);
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- var qx = resModel.Data.ToJson().ToModel<List<CghjCgsbrwYbcg>>();
- return qx;
- }
- else
- {
- RunLog.Debug("查询已办成果流程失败=>" + res);
- throw new UseArgumentException("查询已办成果流程失败:" + resModel.Message);
- }
- }
- /// <summary>
- /// 4.2 查询待办成果列表
- /// </summary>
- /// <returns></returns>
- public static List<CghjCgsbrwDbcg> GetDbcg(CghjCgcxIo input, ref string token)
- {
- token = GetToken();
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- headers.Add("Authorization", token);
- var url = ApiHelper.FormatUrlParam(pars, QXConfig.URL_LANDGETALLTASKS);
- RunLog.Info("查询待办成果列表接口请求:" + url);
- var res = HttpHelper.HttpGet(url, string.Empty, headers);
- RunLog.Info("查询待办成果列表接口返回:" + res);
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- var qx = resModel.Data.ToJson().ToModel<List<CghjCgsbrwDbcg>>();
- return qx;
- }
- else
- {
- RunLog.Debug("查询待办成果列表失败=>" + res);
- throw new UseArgumentException("查询待办成果列表失败:" + resModel.Message);
- }
- }
- /// <summary>
- /// 4.3 查询已办成果审批记录
- /// </summary>
- /// <returns></returns>
- public static List<CghjCgsbrwSpjl> GetSpjl(CghjCgcxSpjlIo input)
- {
- //var token = GetToken();
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- pars.Remove("token");
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- headers.Add("Authorization", input.token);
- var url = ApiHelper.FormatUrlParam(pars, QXConfig.URL_LANDTASKSTATUS);
- RunLog.Info("查询已办成果审批记录接口请求:" + url);
- var res = HttpHelper.HttpGet(url, string.Empty, headers);
- RunLog.Info("查询已办成果审批记录接口返回:" + res);
- var resModel = res.ToModel<ResponseApiModel>();
- if (resModel.Success)
- {
- List<CghjCgsbrwSpjl> list = new List<CghjCgsbrwSpjl>();
- var jls = resModel.Data.ToJson().ToModel<List<CghjCgsbrwSpjl>>();
- foreach (var spjl in jls)
- {
- //CghjCgsbrwSpjl spjl = item.MapTo<CghjCgsbrwSpjl>();
- //if (item.COMMENTS != null && item.COMMENTS.Count > 0)
- //{
- // spjl.COMMENTS = item.COMMENTS.ToJson();
- //}
- //else
- //{
- // spjl.COMMENTS = null;
- //}
- spjl.ID = Guid.NewGuid().ToStringN();
- spjl.JLID = input.id;
- spjl.INSTID = input.instId;
- list.Add(spjl);
- }
- return list;
- }
- else
- {
- RunLog.Debug("查询已办成果审批记录失败=>" + res);
- throw new UseArgumentException("查询已办成果审批记录失败:" + resModel.Message);
- }
- }
- /// <summary>
- /// 4.4 下载成果质检审查报告
- /// </summary>
- /// <returns></returns>
- public static CghjCgsbrwCgzjbg GetCgzjbg(CghjCgcxScbgIo input)
- {
- //var token = GetToken();
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- pars.Remove("token");
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- headers.Add("Authorization", input.token);
- var url = ApiHelper.FormatUrlParam(pars, QXConfig.URL_REPORTDOWNLOAD);
- RunLog.Info("下载成果质检审查报告接口请求:" + url);
- string path = FileManage.Instance.ToFullPath(@$"厅成果质检审查报告\{input.GHLX}报告\{input.solId}");
- RunLog.Info("下载成果质检审查报告保存路径:" + path);
- var file = ApiHelper.HttpDownFileOrDataPost(url, path, headers, timeOut: QXConfig.TIME_OUT);
- RunLog.Info("下载成果质检审查报告接口返回:" + file);
- if (file.Contains("质检审查报告暂没生成"))
- {
- return null;
- }
- else
- {
- if (string.IsNullOrWhiteSpace(file) || !File.Exists(file))
- {
- throw new UseArgumentException("下载成果质检审查报告失败");
- }
- CghjCgsbrwCgzjbg bo = new CghjCgsbrwCgzjbg()
- {
- ID = input.id,
- JLID = input.id,
- SOLID = input.solId,
- PATH = FileManage.Instance.ToRelativePath(file),
- NAME = Path.GetFileName(file),
- };
- return bo;
- }
- }
- #endregion
- }
- }
|