feixian_weifajianguan/OpenAuth.App/ServiceApp/DroneCaseInfo/ToNonGrainWorkMethod1.cs

317 lines
13 KiB
C#

using ce.autofac.extension;
using Infrastructure;
using Infrastructure.Extensions;
using Microsoft.Extensions.Configuration;
using OpenAuth.App.BaseApp.WFTask;
using OpenAuth.App.BasicQueryService;
using OpenAuth.App.Interface;
using OpenAuth.App.WorkFlow;
using OpenAuth.Repository.Domain;
using SqlSugar;
using WFTask = OpenAuth.Repository.Domain.WFTask;
namespace OpenAuth.App.ServiceApp.DroneCaseInfo;
[BLLName("toNonGrain1")]
public class ToNonGrainWorkMethod1 : IWorkFlowMethod
{
private readonly WFProcessApp _processApp;
private readonly DroneCaseInfoSingleApp _droneCaseInfoSingleApp;
private readonly DroneCaseInfoFLHApp _droneCaseInfoFLHApp;
private readonly IConfiguration _configuration;
private readonly WFSchemeInfoApp _wfSchemeInfoApp;
private readonly WFTaskApp _wfTaskApp;
private readonly IAuth _auth;
private readonly ISqlSugarClient _client;
CommonDataManager _commonDataManager;
public ToNonGrainWorkMethod1(WFProcessApp processApp, DroneCaseInfoSingleApp droneCaseInfoSingleApp,
DroneCaseInfoFLHApp droneCaseInfoFLHApp, IConfiguration configuration, WFSchemeInfoApp wfSchemeInfoApp,
IAuth auth, WFTaskApp wfTaskApp, ISqlSugarClient sqlSugarClient, CommonDataManager commonDataManager)
{
_processApp = processApp;
_droneCaseInfoSingleApp = droneCaseInfoSingleApp;
_droneCaseInfoFLHApp = droneCaseInfoFLHApp;
_configuration = configuration;
_wfSchemeInfoApp = wfSchemeInfoApp;
_auth = auth;
_wfTaskApp = wfTaskApp;
_client = sqlSugarClient;
_commonDataManager = commonDataManager;
}
public async Task Execute(WfMethodParameter parameter)
{
var user = _auth.GetCurrentUser();
Console.WriteLine("==============================================");
var caseId = parameter.ProcessId;
// 取得案件信息
var caseList = _droneCaseInfoSingleApp.ListAllNonGrainCase();
foreach (var originCaseInfo in caseList)
{
var caseno = originCaseInfo.case_no;
// 验证非粮化是否存在该专题
if (_droneCaseInfoFLHApp.ExistCase(caseno))
{
continue;
}
// 违法用地专题判断违法+非粮化+已归档+耕地不为0的图斑
// 非粮化案件信息
var nonGrainCaseInfo = originCaseInfo.MapTo<DroneCaseInfoFLHSpecial>();
if (!string.IsNullOrEmpty(originCaseInfo.jieshou_time))
{
nonGrainCaseInfo.jieshou_time = DateTime.Parse(originCaseInfo.jieshou_time);
}
//nonGrainCaseInfo.jieshou_time = null;
nonGrainCaseInfo.hexiaotime = null;
var newProcessId = Guid.NewGuid().ToString();
nonGrainCaseInfo.Id = newProcessId;
nonGrainCaseInfo.handle_status_id = 2;
nonGrainCaseInfo.handle_status_name = "待整改";
// 去掉字段
nonGrainCaseInfo.verifytime = null;
nonGrainCaseInfo.verifyuser = null;
nonGrainCaseInfo.verifyuserid = null;
nonGrainCaseInfo.verifytime = null;
nonGrainCaseInfo.verifystatus = null;
nonGrainCaseInfo.hexiaotime = null;
nonGrainCaseInfo.is_drawback = null;
//nonGrainCaseInfo.is_shijibohui = null;
//nonGrainCaseInfo.xianjiyijian = null;
nonGrainCaseInfo.hexiaotime = null;
nonGrainCaseInfo.hexiaoren = null;
// 复制一份图斑
var shp = _droneCaseInfoSingleApp.GetShpData(nonGrainCaseInfo.geomid);
var geoms = "";
foreach (var droneShpData in shp)
{
var gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
geoms += gidStr + ",";
droneShpData.relid = nonGrainCaseInfo.Id;
// 多图斑处置
droneShpData.gid = gidStr.ToInt();
droneShpData.relid = nonGrainCaseInfo.Id;
_droneCaseInfoSingleApp.SaveShpData(droneShpData);
}
geoms = geoms.TrimEnd(',');
nonGrainCaseInfo.geomid = geoms;
var finish = _droneCaseInfoFLHApp.AddCaseInfo(nonGrainCaseInfo);
if (finish)
{
// 非粮化code
try
{
var schemeCode = _configuration.GetSection("AppSetting:DroneCaseInfoNonFoodSchemeCode").Value;
var schemeInfo = _wfSchemeInfoApp.SelectBySchemeCode(schemeCode);
// 发起新流程
var instanceInfo = new WFInstanceInfo
{
pkeyValue = newProcessId,
pkey = "Id",
schemeId = schemeInfo.SchemeId
};
instanceInfo.pkeyValue = newProcessId;
_processApp.SaveDraft(nonGrainCaseInfo.Id, schemeCode, user.User.Id + "",
Json.ToJson(instanceInfo), "", "", "", 0,
nonGrainCaseInfo.case_description).Wait();
_processApp.Create(nonGrainCaseInfo.Id, "", user.User.Id + "", null, Json.ToJson(instanceInfo),
nonGrainCaseInfo.case_description).Wait();
// todo 补充任务信息
///
var node1 = _wfTaskApp.GetNodeByProcessId(nonGrainCaseInfo.Id);
var node2 = new WFTask(); // 脚本节点
var node3 = new WFTask();
var node4 = new WFTask();
var node5 = new WFTask(); // 脚本节点
//node1.Id = Guid.NewGuid().ToString();
node2.Id = Guid.NewGuid().ToString();
node3.Id = Guid.NewGuid().ToString();
node4.Id = Guid.NewGuid().ToString();
node5.Id = Guid.NewGuid().ToString();
//node1.Token = Guid.NewGuid().ToString();
node2.Token = Guid.NewGuid().ToString();
node3.Token = Guid.NewGuid().ToString();
node4.Token = Guid.NewGuid().ToString();
node5.Token = Guid.NewGuid().ToString();
//node1.Type = 7;
node2.Type = 10;
node3.Type = 7;
node4.Type = 7;
node5.Type = 10;
//node1.ProcessTitle = nonGrainCaseInfo.case_description;
node2.ProcessTitle = null;
node3.ProcessTitle = nonGrainCaseInfo.case_description;
node4.ProcessTitle = nonGrainCaseInfo.case_description;
node5.ProcessTitle = null;
//node1.ProcessCode = schemeCode;
node2.ProcessCode = null;
node3.ProcessCode = schemeCode;
node4.ProcessCode = schemeCode;
node5.ProcessCode = null;
//node1.ProcessId = nonGrainCaseInfo.Id;;
node2.ProcessId = nonGrainCaseInfo.Id; ;
node3.ProcessId = nonGrainCaseInfo.Id; ;
node4.ProcessId = nonGrainCaseInfo.Id; ;
node5.ProcessId = nonGrainCaseInfo.Id; ;
//node1.ProcessUserId = user.User.Id + "";
node2.ProcessUserId = null;
node3.ProcessUserId = user.User.Id + "";
node4.ProcessUserId = user.User.Id + "";
node5.ProcessUserId = null;
//node1.ProcessUserName = user.User.Name;
node2.ProcessUserName = null;
node3.ProcessUserName = user.User.Name;
node4.ProcessUserName = user.User.Name;
node5.ProcessUserName = null;
//node1.UnitId = "Activity_02tspis";
node2.UnitId = "Activity_13vfcwg";
node3.UnitId = "Activity_1aiy5ea";
node4.UnitId = "Activity_1t58a1v";
node5.UnitId = "Activity_09zxeay";
//node1.UnitName = "待接收";
node2.UnitName = "111";
node3.UnitName = "待填报";
node4.UnitName = "待整改";
node5.UnitName = "任务节点";
//node1.PrevUnitId = "Event_0li55cb";
node2.PrevUnitId = "Activity_02tspis";
node3.PrevUnitId = "Activity_02tspis";
node4.PrevUnitId = "Activity_1aiy5ea";
node5.PrevUnitId = "Activity_1aiy5ea";
//node1.PrevUnitName = "开始节点";
node2.PrevUnitName = "待接收";
node3.PrevUnitName = "111";
node4.PrevUnitName = "任务节点";
node5.PrevUnitName = null;
//node1.PrevToken = "create";
node2.PrevToken = node1.Token; // 脚本节点
node3.PrevToken = node1.Token;
node4.PrevToken = node3.Token;
node5.PrevToken = node3.Token; // 脚本节点
//node1.PrevTaskId = "create";
node2.PrevTaskId = null; // 脚本节点
node3.PrevTaskId = node1.Id;
node4.PrevTaskId = node3.Id;
node5.PrevTaskId = null; // 脚本节点
//node1.UserId = user.User.Id + "";
node2.UserId = null; // 脚本节点
node3.UserId = user.User.Id + "";
node4.UserId = user.User.Id + "";
node5.UserId = null; // 脚本节点
//node1.UserName = user.User.Name + "";
node2.UserName = null; // 脚本节点
node3.UserName = user.User.Name + "";
node4.UserName = user.User.Name + "";
node5.UserName = null; // 脚本节点
node1.State = 3;
node2.State = null;
node3.State = 3;
node4.State = 1;
node5.State = null;
node1.IsAgree = 1;
node2.IsAgree = null;
node3.IsAgree = 1;
node4.IsAgree = null; // 还未审核
node5.IsAgree = null;
node1.IsLast = 1;
node2.IsLast = 1;
node3.IsLast = 1;
node4.IsLast = 1;
node5.IsLast = 1;
node1.Sort = 0;
node2.Sort = 0;
node3.Sort = 0;
node4.Sort = 0;
node5.Sort = 0;
//node1.CreateUserId = user.User.Id + "";
node2.CreateUserId = user.User.Id + "";
node3.CreateUserId = user.User.Id + "";
node4.CreateUserId = user.User.Id + "";
node5.CreateUserId = user.User.Id + "";
//node1.CreateUserName = user.User.Name;
node2.CreateUserName = user.User.Name;
node3.CreateUserName = user.User.Name;
node4.CreateUserName = user.User.Name;
node5.CreateUserName = user.User.Name;
node1.IsBatchAudit = 0;
node2.IsBatchAudit = null;
node3.IsBatchAudit = 0;
node4.IsBatchAudit = 0;
node5.IsBatchAudit = null;
node1.IsReject = 0;
node2.IsReject = null;
node3.IsReject = 0;
node4.IsReject = 0;
node5.IsReject = null;
node1.SuperviseId = 0;
node2.SuperviseId = 0;
node3.SuperviseId = 0;
node4.SuperviseId = 0;
node5.SuperviseId = 0;
node1.IsRetract = 0;
node2.IsRetract = null;
node3.IsRetract = 0;
node4.IsRetract = 0;
node5.IsRetract = null;
//ode1.CreateDate = DateTime.Now;
node2.CreateDate = DateTime.Now;
node3.CreateDate = DateTime.Now;
node4.CreateDate = DateTime.Now;
node5.CreateDate = DateTime.Now;
_wfTaskApp.Update(node1);
_wfTaskApp.OriginalAdd(node2);
_wfTaskApp.OriginalAdd(node3);
_wfTaskApp.OriginalAdd(node4);
_wfTaskApp.OriginalAdd(node5);
}
catch (Exception ex)
{
// 删除案件记录
_droneCaseInfoFLHApp.DeleteCase(nonGrainCaseInfo.Id);
// 打印错误
Console.WriteLine("当前时间:" + DateTime.Now.ToString());
Console.WriteLine("异常信息:" + ex.Message);
Console.WriteLine("异常对象:" + ex.Source);
Console.WriteLine("调用堆栈:\n" + ex.StackTrace);
throw;
}
}
}
Console.WriteLine("==============================================");
}
}