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
{
///
/// 成果上报
///
public class CgsbManager : SqlSugarRepository, 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 任务
///
/// 获取新任务
///
///
public CghjCgsbrw NewTask()
{
return Get(t => t.STATUS == Model.Enums.EnumCgsbrwToTing.未上报);
}
///
/// 任务完成
///
///
public void TaskComplete(string bsm)
{
try
{
Db.BeginTran();
Db.CommitTran();
}
catch (Exception ex)
{
WS.Log.RunLog.Error(ex);
Db.RollbackTran();
}
}
///
/// 任务错误
///
/// 错误信息
///
public void TaskError(string bsm, string msg)
{
try
{
Db.BeginTran();
Db.CommitTran();
}
catch (Exception ex)
{
WS.Log.RunLog.Error(ex);
Db.RollbackTran();
}
}
#endregion
///
/// 任务解析
///
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().SetColumns(it => it.SBJD == $"{index}/{cityCghjCgsbrw.TOTALSLICENUM}").Where(it => it.ID == cgglCg.BSM).ExecuteCommand();
// index++;
// Thread.Sleep(1000);
// }
// Db.BeginTran();
// Db.Updateable().SetColumns(it => new CgglCg() { ZT_CGSB = EnumCgsbZT.已上报 }).Where(it => it.BSM == cgglCg.BSM).ExecuteCommand();
// Db.Updateable().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().SetColumns(it => new CgglCg() { ZT_CGSB = EnumCgsbZT.上报失败 }).Where(it => it.BSM == cgglCg.BSM).ExecuteCommand();
// Db.Updateable().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(); //启动线程
}
}
}
}