123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
- 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.CGHJ;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using WS;
- using WS.AutoMapper;
- using WS.Http;
- using WS.Log;
- namespace QM.KJGH.CGGL.NMCGHJ.QX
- {
- public class BYNEApi
- {
- /// <summary>
- /// 登录获取Token接口
- /// </summary>
- /// <param name=""></param>
- /// <returns></returns>
- public static string GetToken()
- {
- RunLog.Info("登录获取Token接口");
- //参数
- Dictionary<string, string> pars = new Dictionary<string, string>();
- pars.Add("grant_type", BYNEConfig.GRANT_TYPE);
- pars.Add("username", BYNEConfig.USERNAME);
- pars.Add("password", BYNEConfig.PASSWORD);
- pars.Add("scope", BYNEConfig.SCOPE);
- var urlParam = ApiHelper.FormatUrlParam(pars, BYNEConfig.URL_TOKEN);
- RunLog.Info("登录获取Token接口请求:" + urlParam);
- var res = HttpHelper.HttpPost(urlParam, string.Empty, GetHeaders());
- RunLog.Info("登录获取Token接口返回:" + res);
- var resModel = res.ToModel<BYNEResponseApiModel>();
- if (resModel.Data == null && string.IsNullOrWhiteSpace(resModel.Msg))
- {
- BYNEResToken token = res.ToModel<BYNEResToken>();
- return token.access_token;
- }
- return "";
- }
- /// <summary>
- /// 统一请求头
- /// </summary>
- public static Dictionary<string, string> GetHeaders(string token = "")
- {
- //设置请求头
- Dictionary<string, string> headers = new Dictionary<string, string>();
- if (string.IsNullOrWhiteSpace(token))
- headers.Add("Authorization", BYNEConfig.AUTHORIZATION);
- else
- headers.Add("Authorization", $"bearer {token}");
- return headers;
- }
- #region 规划成果
- /// <summary>
- /// 接口1:检查文件分片信息
- /// </summary>
- /// <returns></returns>
- public static BYNECghjView Md5(BYNECghjMd5Io input)
- {
- //请求头
- var token = GetToken();
- var headers = GetHeaders(token);
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- var urlParam = ApiHelper.FormatUrlParam(pars);
- RunLog.Info($"检查文件分片信息:{BYNEConfig.URL_RESULTS_MD5} => {urlParam}");
- var res = HttpHelper.HttpGet(BYNEConfig.URL_RESULTS_MD5, urlParam, headers);
- RunLog.Info($"检查文件分片信息返回:" + res.ToJson());
- var resModel = res.ToModel<BYNEResponseApiModel>();
- if (resModel.Code == 200)
- {
- var qx = resModel.Data.ToJson().ToModel<BYNECghjView>();
- qx.token = token;
- return qx;
- }
- else
- {
- RunLog.Debug("检查文件分片信息失败=>" + res);
- throw new UseArgumentException("检查文件分片信息失败:" + resModel.Msg);
- }
- }
- /// <summary>
- /// 接口2:上传成果包
- /// </summary>
- /// <param name="input"></param>
- /// <param name="upfile">成果包压缩包(ZIP格式)</param>
- /// <returns></returns>
- public static string Upload(BYNECghjFpIo_QX input, string upfile)
- {
- //请求头
- var headers = GetHeaders(input.token);
- //BodyFormat参数
- var bodys = input.MapTo<BYNECghjFpIo>().ToDictionary<string>();
- //文件
- var files = new Dictionary<string, string>();
- files.Add("upfile", upfile);
- RunLog.Info($"上传成果包接口:{BYNEConfig.URL_RESULTS_UPLOAD} => {input.ToJson()} =>{upfile}");
- var res = ApiHelper.HttpPostFormdata(BYNEConfig.URL_RESULTS_UPLOAD, headers: headers, postData:bodys, files:files, timeOut: BYNEConfig.TIME_OUT);
- RunLog.Info("上传成果包接口返回:" + res);
- var resModel = res.ToModel<BYNEResponseApiModel>();
- if (resModel.Code == 200)
- {
- return resModel.Data.ToString();
- }
- else
- {
- RunLog.Debug("分片上传成果包失败=>" + res);
- throw new UseArgumentException("操作失败:" + resModel.Msg);
- }
- }
- /// <summary>
- /// 接口3:大文件分片合并
- /// </summary>
- /// <returns></returns>
- public static string Merge(BYNECghjMergeIo input, string token)
- {
- //请求头
- var headers = GetHeaders(token);
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- #region 20230523 修改接口参数方式
- //var urlParam = ApiHelper.FormatUrlParam(pars, BYNEConfig.URL_RESULTS_MERGE);
- //RunLog.Info($"文件分片合并:{urlParam}");
- //var res = HttpHelper.HttpPost(urlParam, string.Empty, headers);
- RunLog.Info($"上报成果包信息:{BYNEConfig.URL_RESULTS_MERGE} => {input.ToJson()}");
- var res = HttpHelper.HttpPost(BYNEConfig.URL_RESULTS_MERGE, input.ToJson(), headers);
- #endregion
- RunLog.Info($"文件分片合并返回:" + res.ToJson());
- var resModel = res.ToModel<BYNEResponseApiModel>();
- if (resModel.Code == 200)
- {
- return resModel.Data.ToString();
- }
- else
- {
- RunLog.Debug("文件分片合并失败=>" + res);
- throw new UseArgumentException("文件分片合并失败:" + resModel.Msg);
- }
- }
- /// <summary>
- /// 接口4:上报成果包信息
- /// </summary>
- /// <returns></returns>
- public static bool Complete(BYNECghjIo input, string zjbgFile, string token)
- {
- //请求头
- var headers = GetHeaders(token);
- //参数
- Dictionary<string, string> bodys = input.ToDictionary<string>();
-
- //文件
- var files = new Dictionary<string, string>();
- files.Add("zjbgFile", zjbgFile);
- RunLog.Info($"上报成果包信息:{BYNEConfig.URL_RESULTS_COMPLETE} => {input.ToJson()} =>{zjbgFile}");
- var res = ApiHelper.HttpPostFormdata(BYNEConfig.URL_RESULTS_COMPLETE, headers: headers, postData:bodys, files:files, timeOut: BYNEConfig.TIME_OUT);
- RunLog.Info($"上报成果包信息返回:" + res.ToJson());
- var resModel = res.ToModel<BYNEResponseApiModel>();
- if (resModel.Code == 200)
- {
- return true;
- }
- else
- {
- RunLog.Debug("上报成果包信息失败=>" + res);
- throw new UseArgumentException("上报成果包信息失败:" + resModel.Msg);
- }
- }
- #endregion
- #region 监测指标
- /// <summary>
- /// 规划值导入模板下载
- /// </summary>
- /// <returns></returns>
- public static string GetGhzTemplate(string path)
- {
- var file = ApiHelper.HttpDownFile(BYNEConfig.URL_JCYJ_GHZ_TEMPLATE, path, GetHeaders(GetToken()), timeOut: BYNEConfig.TIME_OUT);
- if(string.IsNullOrWhiteSpace(file) || !File.Exists(file))
- {
- throw new UseArgumentException("规划值导入模板下载失败");
- }
- return file;
- }
- /// <summary>
- /// 规划值导入
- /// </summary>
- /// <returns></returns>
- public static bool JcyjGhzUpload(string file)
- {
- var files = new Dictionary<string, string>();
- files.Add("file", file);
- RunLog.Info($"规划值导入接口:{file}");
- string res = string.Empty;
- if(BYNEConfig.GRANT_TYPE == "GET")
- res = ApiHelper.HttpGetFormdata(BYNEConfig.URL_JCYJ_GHZ, headers: GetHeaders(GetToken()), files:files, timeOut: BYNEConfig.TIME_OUT);
- else
- res = ApiHelper.HttpPostFormdata(BYNEConfig.URL_JCYJ_GHZ, headers: GetHeaders(GetToken()), files:files, timeOut: BYNEConfig.TIME_OUT);
- RunLog.Info("规划值导入接口返回:" + res);
- var resModel = res.ToModel<BYNEResponseApiModel>();
- if (resModel.Code == 200)
- {
- return true;
- }
- else
- {
- RunLog.Debug("规划值导入失败=>" + res);
- throw new UseArgumentException("规划值导入失败:" + resModel.Msg);
- }
- }
- /// <summary>
- /// 监测值导入模板下载
- /// </summary>
- /// <returns></returns>
- public static string GetJczTemplate(string path)
- {
- var file = ApiHelper.HttpDownFile(BYNEConfig.URL_JCYJ_JCZ_TEMPLATE, path, GetHeaders(GetToken()), timeOut: BYNEConfig.TIME_OUT);
- if (string.IsNullOrWhiteSpace(file) || !File.Exists(file))
- {
- throw new UseArgumentException("监测值导入模板下载失败");
- }
- return file;
- }
- /// <summary>
- /// 监测值导入
- /// </summary>
- /// <returns></returns>
- public static bool JcyjJczUpload(string file)
- {
- var files = new Dictionary<string, string>();
- files.Add("file", file);
- RunLog.Info($"监测值导入接口:{file}");
- //var res = ApiHelper.HttpPostFormdata(BYNEConfig.URL_JCYJ_JCZ, headers: GetHeaders(GetToken()), files: files);
- string res = string.Empty;
- if(BYNEConfig.GRANT_TYPE == "GET")
- res = ApiHelper.HttpGetFormdata(BYNEConfig.URL_JCYJ_JCZ, headers: GetHeaders(GetToken()), files: files, timeOut: BYNEConfig.TIME_OUT);
- else
- res = ApiHelper.HttpPostFormdata(BYNEConfig.URL_JCYJ_JCZ, headers: GetHeaders(GetToken()), files: files, timeOut: BYNEConfig.TIME_OUT);
- RunLog.Info("监测值导入接口返回:" + res);
- var resModel = res.ToModel<BYNEResponseApiModel>();
- if (resModel.Code == 200)
- {
- return true;
- }
- else
- {
- RunLog.Debug("监测值导入失败=>" + res);
- throw new UseArgumentException("监测值导入失败:" + resModel.Msg);
- }
- }
- #endregion
- #region 成果包查询接口
- /// <summary>
- /// 4.1 查询已办成果流程
- /// </summary>
- /// <returns></returns>
- public static List<CghjCgsbrwYbcg> GetYbcg(BYNECgcxIo input, ref string token)
- {
- token = GetToken();
- var headers = GetHeaders(token);
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- var urlParam = ApiHelper.FormatUrlParam(pars);
- RunLog.Info($"查询已办成果流程接口请求:{BYNEConfig.URL_LANDMYATTENDSDATA} => {urlParam}");
- var res = HttpHelper.HttpGet(BYNEConfig.URL_LANDMYATTENDSDATA, urlParam, headers);
- RunLog.Info("查询已办成果流程接口返回:" + res);
- var resModel = res.ToModel<BYNEResponseCgApiModel>();
- if (resModel.Code == 200)
- {
- var qx = resModel.Data.records.ToJson().ToModel<List<CghjCgsbrwYbcg>>();
- return qx;
- }
- else
- {
- RunLog.Debug("查询已办成果流程失败=>" + res);
- throw new UseArgumentException("查询已办成果流程失败:" + resModel.Msg);
- }
- }
- /// <summary>
- /// 4.2 查询待办成果列表
- /// </summary>
- /// <returns></returns>
- public static List<CghjCgsbrwDbcg> GetDbcg(BYNECgcxIo input, ref string token)
- {
- token = GetToken();
- var headers = GetHeaders(token);
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- var urlParam = ApiHelper.FormatUrlParam(pars);
- RunLog.Info($"查询待办成果列表接口请求:{BYNEConfig.URL_LANDGETALLTASKS} => {urlParam}");
- var res = HttpHelper.HttpGet(BYNEConfig.URL_LANDGETALLTASKS, urlParam, headers);
- RunLog.Info("查询待办成果列表接口返回:" + res);
- var resModel = res.ToModel<BYNEResponseCgApiModel>();
- if (resModel.Code == 200)
- {
- var qx = resModel.Data.records.ToJson().ToModel<List<CghjCgsbrwDbcg>>();
- return qx;
- }
- else
- {
- RunLog.Debug("查询待办成果列表失败=>" + res);
- throw new UseArgumentException("查询待办成果列表失败:" + resModel.Msg);
- }
- }
- /// <summary>
- /// 4.3 查询已办成果审批记录
- /// </summary>
- /// <returns></returns>
- public static List<CghjCgsbrwSpjl> GetSpjl(BYNECgcxSpjlIo input)
- {
- var headers = GetHeaders(input.token);
- //参数
- Dictionary<string, string> pars = input.ToDictionary<string>();
- pars.Remove("token");
- var urlParam = ApiHelper.FormatUrlParam(pars);
- RunLog.Info($"查询已办成果审批记录接口请求:{BYNEConfig.URL_LANDTASKSTATUS} => {urlParam}");
- var res = HttpHelper.HttpGet(BYNEConfig.URL_LANDTASKSTATUS, urlParam, headers);
- RunLog.Info("查询已办成果审批记录接口返回:" + res);
- var resModel = res.ToModel<BYNEResponseApiModel>();
- if (resModel.Code == 200)
- {
- List<CghjCgsbrwSpjl> list = new List<CghjCgsbrwSpjl>();
- var jls = resModel.Data.ToJson().ToModel<List<CghjCgsbrwSpjlView>>();
- foreach (var item 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.Msg);
- }
- }
- #endregion
- }
- }
|