123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- using QM.KJGH.CGGL.IRepository;
- using QM.KJGH.Gis.PyServer;
- using QM.KJGH.Model.KJGH;
- using QM.KJGH.Model.KJGH.CGHJ;
- using QM.OrmSqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Threading;
- using System.Threading.Tasks;
- using WS;
- using WS.Helper;
- using WS.Log;
- namespace QM.KJGH.CgglService.Managers
- {
- /// <summary>
- /// 成果上报
- /// </summary>
- public class CgsbManager : SqlSugarRepository<CghjCgsbrw>, ICgsbManager
- {
- public string PyExe;
- public string RootPath;
- public string PythonFile;
- public CgsbManager()
- {
- PyExe = ConfigHelper.Configuration["Path:PyExe"];
- PythonFile = ConfigHelper.Configuration["Path:PythonFile"];
- RootPath = ConfigHelper.Configuration["Path:Root"];
- }
- #region 任务
- /// <summary>
- /// 获取新任务
- /// </summary>
- /// <returns></returns>
- public CghjCgsbrw NewTask()
- {
- return Get(t => t.STATUS == Model.Enums.EnumCgsbrwToTing.未上报);
- }
- /// <summary>
- /// 任务完成
- /// </summary>
- /// <returns></returns>
- public void TaskComplete(string bsm)
- {
- try
- {
- Db.BeginTran();
-
- Db.CommitTran();
- }
- catch (Exception ex)
- {
- WS.Log.RunLog.Error(ex);
- Db.RollbackTran();
- }
- }
- /// <summary>
- /// 任务错误
- /// </summary>
- /// <param name="msg">错误信息</param>
- /// <returns></returns>
- public void TaskError(string bsm, string msg)
- {
- try
- {
- Db.BeginTran();
-
- Db.CommitTran();
- }
- catch (Exception ex)
- {
- WS.Log.RunLog.Error(ex);
- Db.RollbackTran();
- }
- }
- #endregion
- /// <summary>
- /// 任务解析
- /// </summary>
- public void Monitor() {
- var task = NewTask();
- if (task != null)
- {
- //本地上传
- //旗县上报
- Thread thread = new Thread(() =>
- {
- //WS.Log.RunLog.Debug($"开始上传成果(市-->省/自治区):{cgglCg.XMMC}");
- //try
- //{
- // var md5Data = ZZQApi.Md5(new NmCgMd5Io()
- // {
- // fileMd5 = cgglCg.BSM,
- // fileSize = 10 * 1024 * 1024,
- // fileName = Path.GetFileName(cgglCg.CGB),
- // totalSliceNum = cgglCg.CGFPS,
- // curSliceOrder = 0,
- // resetSliceOrder2Zero = true
- // });
- // //分片上传
- // var index = 1;
- // var chazhi = fileList.Keys.First() == 0 ? 0 : 1;
- // foreach (var chunk in fileList.Keys)
- // {
- // WS.Log.RunLog.Debug($"分片上传:【{chunk}】{fileList[chunk]}");
- // FileInfo fileInfo = new FileInfo(fileList[chunk]);
- // NmCgUploadSplitIo inputU = new NmCgUploadSplitIo()
- // {
- // xmmc = cgglCg.XMMC,
- // XZQDM = cityCghjCgsbrw.XZQDM,
- // XZQMC = cityCghjCgsbrw.XZQMC,
- // token = md5Data.token,
- // ghlx = cityCghjCgsbrw.GHLX,
- // year = cityCghjCgsbrw.SBNF,
- // name = cityCghjCgsbrw.FILENAME,
- // zipMd5 = cgglCg.BSM,
- // totalSliceNum = cityCghjCgsbrw.TOTALSLICENUM,
- // curSliceOrder = chunk - chazhi,
- // curSliceSize = 10 * 1024 * 1024,
- // resetSliceOrder2Zero = true,
- // };
- // WS.Log.RunLog.Debug($"分片上传参数:{inputU.ToJson()}");
- // bool res = false;
- // switch (inputU.ghlx)
- // {
- // case EnumGHLX.总体规划:
- // case EnumGHLX.专项规划:
- // res = ZZQApi.Upload(inputU, fileList[chunk]);
- // break;
- // case EnumGHLX.村庄规划:
- // case EnumGHLX.乡镇规划:
- // res = ZZQApi.TownUpload(inputU, fileList[chunk]);
- // break;
- // default:
- // throw new UseMassageException($"暂未实现{inputU.ghlx}成果数据的上传");
- // }
- // WS.Log.RunLog.Debug($"分片上传:【{chunk}】{res}");
- // //更新进度
- // Db.Updateable<CityCghjCgsbrw>().SetColumns(it => it.SBJD == $"{index}/{cityCghjCgsbrw.TOTALSLICENUM}").Where(it => it.ID == cgglCg.BSM).ExecuteCommand();
- // index++;
- // Thread.Sleep(1000);
- // }
- // Db.BeginTran();
- // Db.Updateable<CgglCg>().SetColumns(it => new CgglCg() { ZT_CGSB = EnumCgsbZT.已上报 }).Where(it => it.BSM == cgglCg.BSM).ExecuteCommand();
- // Db.Updateable<CityCghjCgsbrw>().SetColumns(it => new CityCghjCgsbrw() { SBJD = $"{cityCghjCgsbrw.TOTALSLICENUM}/{cityCghjCgsbrw.TOTALSLICENUM}", RWZT = EnumCgsbrw.待审批 }).Where(it => it.ID == cgglCg.BSM).ExecuteCommand();
- // Db.CommitTran();
- // WS.Log.RunLog.Debug($"上传完成:{cgglCg.XMMC}");
- //}
- //catch (Exception ex)
- //{
- // Db.Updateable<CgglCg>().SetColumns(it => new CgglCg() { ZT_CGSB = EnumCgsbZT.上报失败 }).Where(it => it.BSM == cgglCg.BSM).ExecuteCommand();
- // Db.Updateable<CityCghjCgsbrw>().SetColumns(it => new CityCghjCgsbrw() { SBSBYY = ex.Message, RWZT = EnumCgsbrw.上报失败 }).Where(it => it.ID == cgglCg.BSM).ExecuteCommand();
- // Db.RollbackTran();
- // WS.Log.RunLog.Error(ex);
- //}
- //WS.Log.RunLog.Debug($"结束上传成果:{cgglCg.XMMC}");
- });
- thread.Start(); //启动线程
- }
- }
- }
- }
|