|
@@ -0,0 +1,126 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Data;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Threading.Tasks;
|
|
|
+
|
|
|
+namespace DataTransmission.Joint
|
|
|
+{
|
|
|
+ public class Workflow
|
|
|
+ {
|
|
|
+ private readonly CommonTool tool = new CommonTool();
|
|
|
+
|
|
|
+ public DataTable GetWorkflow(string OldOrderId) {
|
|
|
+ var conn = tool.GetConSqlServer();
|
|
|
+ var orderSql = $"SELECT * FROM Flow_Transfer01_RunBackups WHERE FTRB_FlowID ='{OldOrderId}' ORDER BY FTRB_MoveDate ";
|
|
|
+ return tool.GetDataTable(orderSql, conn);
|
|
|
+ }
|
|
|
+
|
|
|
+ public string GetWorkflowSql(DataTable data, DataTable org, DataTable user)
|
|
|
+ {
|
|
|
+ var pgSql = string.Empty;
|
|
|
+
|
|
|
+ var workflow = new Entity.Workflow();
|
|
|
+
|
|
|
+ workflow.InitId();
|
|
|
+
|
|
|
+ foreach (DataRow item in data.Rows) {
|
|
|
+ var stepSql = GetWorkflowStepSql(item, org, user, ref workflow);
|
|
|
+ var traceSql = GetWorkflowTraceSql(item, org, user, ref workflow);
|
|
|
+ pgSql += stepSql + traceSql;
|
|
|
+ }
|
|
|
+
|
|
|
+ var sql = $@"INSERT INTO ""public"".""workflow"" (""Id"", ""DefinitionId"", ""ModuleId"", ""ModuleName"", ""ModuleCode"", ""Title"", ""EndTime"", ""Status"", ""ActualHandleStepCode"",
|
|
|
+ ""ActualHandleStepName"", ""ActualHandleStepId"", ""ActualHandleStepCreateTime"", ""ActualHandleStepAcceptTime"", ""ActualHandleTime"", ""ActualHandlerId"", ""ActualHandlerName"", ""ActualHandleOrgName"",
|
|
|
+ ""ActualHandleOrgCode"", ""ActualHandleOrgAreaCode"", ""ActualHandleOrgAreaName"", ""ActualOpinion"", ""CounterSignType"", ""TopCountersignStepId"", ""IsInCountersign"", ""AllDuration"", ""ExternalId"",
|
|
|
+ ""HandlerUsers"", ""HandlerOrgs"", ""FlowedOrgIds"", ""FlowedUserIds"", ""OrgLevelOneCode"", ""OrgLevelOneName"", ""AcceptorId"", ""AcceptorName"", ""AcceptorStaffNo"", ""AcceptorOrgId"", ""AcceptorOrgName"",
|
|
|
+ ""AcceptorOrgAreaCode"", ""AcceptorOrgAreaName"", ""CreationTime"", ""CreatorId"", ""CreatorName"", ""CreatorOrgId"", ""CreatorOrgName"", ""CreatorOrgLevel"", ""AreaId"", ""FlowType"", ""ReviewResult"",
|
|
|
+ ""CsActualHandleOrgIds"", ""CsActualHandleUserIds"", ""CurrentStepId"", ""CurrentStepCode"", ""CurrentStepName"", ""CurrentStepCreateTime"", ""CurrentStepAcceptTime"", ""CurrentHandleTime"", ""CurrentHandlerId"",
|
|
|
+ ""CurrentHandlerName"", ""CurrentHandleOrgName"", ""CurrentHandleOrgId"", ""CurrentHandleOrgLevel"", ""CurrentHandleOrgAreaCode"", ""CurrentHandleOrgAreaName"", ""ActualHandleOrgLevel"")
|
|
|
+ VALUES ('08dc3f2e-dfa2-4595-8925-c44b46a12f53', '08dc3db4-6ae4-475a-82a7-07243b2810a9', '08db8db3-eea4-4737-88dd-6c7b990c7705', '工单办理', 'OrderHandle', '0308业务汇聚测试工单1', NULL, 0, 'e64f6d91-fd6b-4301-90d1-7c0919945a3b', '一级部门', '08dc3f2e-f972-4f1a-826b-1749dc4796d6', '2024-03-08 13:16:56.5873', '2024-03-08 13:19:16.447054', '2024-03-08 13:19:40.065188', '08dbe4d7-3b8b-439f-87bc-5be05210a26e', '一级部门测试1', '测试一级部门', '001092', '511500', '四川省宜宾市', '办理中...', NULL, NULL, 'f', '0', '08dc3f2e-df85-418a-8a40-41f496056f58', '[]', '[{{""GroupId"":""08aa711f-4377-4e22-86a6-25dd50a07703"",""Key"":""001092001"",""Value"":""测试二级部门1""}}]', '[""001"",""001092"",""001092001""]', '[""08dc0121-5960-4267-817c-b6dc6c068fa4"",""08dc05b4-1aa6-4b50-84f2-472609d44314""]', '001092', '测试一级部门', '08dc0121-5960-4267-817c-b6dc6c068fa4', '坐席5', '', '001', '市民热线服务系统', NULL, NULL, '2024-03-08 13:16:13.277208', '08dc0121-5960-4267-817c-b6dc6c068fa4', '坐席5', '001', '市民热线服务系统', 1, '001', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);";
|
|
|
+
|
|
|
+
|
|
|
+ return pgSql;
|
|
|
+ }
|
|
|
+
|
|
|
+ public string GetWorkflowStepSql(DataRow item, DataTable org, DataTable user, ref Entity.Workflow workflow) {
|
|
|
+
|
|
|
+ //Acceptor
|
|
|
+ var acceptor = user.AsEnumerable().FirstOrDefault(x => x.Field<int?>("oldUserId").ToString() == item["FTRB_APUserID"].ToString());
|
|
|
+ var acceptorOrg = org.AsEnumerable().FirstOrDefault(x => x.Field<int?>("oldBmid").ToString() == item["FTRB_APBMID"].ToString());
|
|
|
+
|
|
|
+ //Handler
|
|
|
+ var handler = user.AsEnumerable().FirstOrDefault(x => x.Field<int?>("oldUserId").ToString() == item["FTRB_UserID"].ToString());
|
|
|
+ var handlerOrg = org.AsEnumerable().FirstOrDefault(x => x.Field<int?>("oldBmid").ToString() == handler["OrgId"].ToString());
|
|
|
+
|
|
|
+ var step = new Entity.WorkflowStep();
|
|
|
+ step.InitId();
|
|
|
+ step.PrevStepId = item["FTRB_PRunID"].ToString();
|
|
|
+ step.PrevStepCode = string.Empty;
|
|
|
+ step.AcceptorId = item["FTRB_APUserID"].ToString();
|
|
|
+ if (acceptor != null) {
|
|
|
+ step.AcceptorId = acceptor["Id"].ToString();
|
|
|
+ step.AcceptorName = acceptor["Name"].ToString();
|
|
|
+ }
|
|
|
+ step.AcceptorOrgId = item["FTRB_APBMID"].ToString();
|
|
|
+ if (acceptorOrg != null) {
|
|
|
+ step.AcceptorOrgId = acceptorOrg["Id"].ToString();
|
|
|
+ step.AcceptorOrgName = acceptorOrg["Name"].ToString();
|
|
|
+ step.AcceptorOrgAreaCode = acceptorOrg["AreaCode"].ToString();
|
|
|
+ step.AcceptorOrgAreaName = acceptorOrg["AreaName"].ToString();
|
|
|
+ }
|
|
|
+ step.AcceptTime = DateTime.Parse(item["FTRB_APDate"].ToString());
|
|
|
+ step.HandlerId = item["FTRB_UserID"].ToString();
|
|
|
+ if (handler != null)
|
|
|
+ {
|
|
|
+ step.HandlerId = handler["Id"].ToString();
|
|
|
+ step.HandlerName = handler["Name"].ToString();
|
|
|
+ }
|
|
|
+ if (handlerOrg != null)
|
|
|
+ {
|
|
|
+ step.HandlerOrgId = handlerOrg["Id"].ToString();
|
|
|
+ step.HandlerOrgName = handlerOrg["Name"].ToString();
|
|
|
+ step.HandlerOrgAreaCode = handlerOrg["AreaCode"].ToString();
|
|
|
+ step.HandlerOrgAreaName = handlerOrg["AreaName"].ToString();
|
|
|
+ step.HandlerOrgIsCenter =bool.Parse(handlerOrg["IsCenter"].ToString());
|
|
|
+ }
|
|
|
+ step.HandleTime = DateTime.Parse(item["FTRB_DisposeDate"].ToString());
|
|
|
+ step.Name = item["FTRB_ItemName"].ToString();
|
|
|
+
|
|
|
+ var stepSql = $@"INSERT INTO ""public"".""workflow_step"" (
|
|
|
+ ""Id"", ""NextSteps"", ""PrevStepId"", ""PrevStepCode"", ""IsMain"", ""Status"", ""IsOrigin"", ""CountersignId"",""CountersignPosition"",
|
|
|
+ ""IsStartedCountersignEnd"", ""StartCountersignId"", ""IsCountersignEndStep"", ""CountersignStartStepId"", ""WorkflowId"", ""FlowAssignType"", ""Handlers"", ""PrevChosenStepCode"",
|
|
|
+ ""AcceptorId"", ""AcceptorName"", ""AcceptorOrgId"", ""AcceptorOrgName"", ""AcceptorOrgAreaCode"", ""AcceptorOrgAreaName"", ""AcceptTime"", ""HandlerId"", ""HandlerName"", ""HandlerOrgId"",
|
|
|
+ ""HandlerOrgIsCenter"", ""HandlerOrgName"", ""HandlerOrgAreaCode"", ""HandlerOrgAreaName"", ""HandleTime"", ""Name"", ""Code"", ""StepType"", ""BusinessType"", ""HandlerType"", ""CanReject"",
|
|
|
+ ""ExecuteMode"", ""CanStartCountersign"", ""CountersignPolicy"", ""InstanceMode"", ""InstancePolicy"", ""TerminalDynamicMark"", ""Tag"", ""NextHandlers"", ""NextMainHandler"", ""NextStepCode"",
|
|
|
+ ""BackToCountersignEnd"", ""IsSms"", ""Opinion"", ""StepExpiredTime"", ""IsStartCountersign"", ""CreationTime"", ""CreatorId"", ""CreatorName"", ""CreatorOrgId"", ""CreatorOrgName"", ""CreatorOrgLevel"",
|
|
|
+ ""AreaId"", ""FlowDirection"", ""FileJson"", ""IsActualHandled"", ""ModuleId"", ""ModuleName"", ""ModuleCode"", ""ExpiredStatus"", ""CountersignSteps"", ""ExternalId"", ""RoleId"", ""RoleName"", ""Remark"",
|
|
|
+ ""PrevStepName"", ""AssignerId"", ""AssignerName"", ""AssignerOrgId"", ""AssignerOrgName"", ""AssignerOrgIsCenter"", ""HandleMode"", ""ReviewResult"")
|
|
|
+ VALUES ('{step.Id}', '[]', '{step.PrevStepId}', '{step.PrevStepCode}', 'f', 2, 'f', NULL, 0,
|
|
|
+ 'f', NULL, 'f', NULL, '{workflow.Id}', 1, '[]', NULL,
|
|
|
+ '{step.AcceptorId}', '{step.AcceptorName}', '{step.AcceptorOrgId}', '{step.AcceptorOrgName}', '{step.AcceptorOrgAreaCode}', '{step.AcceptorOrgAreaName}', '{step.AcceptTime.ToString()}', '{step.HandlerId}', '{step.HandlerName}', '{step.HandlerOrgId}',
|
|
|
+ '{step.HandlerOrgIsCenter.ToString()}', '{step.HandlerOrgName}', {step.AcceptorOrgAreaCode}, '{step.AcceptorOrgAreaName}', '{step.HandleTime.ToString()}', '{step.Name}', '', 0, 2, 1, 'f', 0, 't', 2, 0, NULL, NULL, '', '[]', NULL, 'e64f6d91-fd6b-4301-90d1-7c0919945a3b', 'f', 'f', NULL, '2024-12-17 16:52:11.13088', 'f', '2024-12-16 16:52:12.17452', '08db29ad-9b54-44ca-8d4d-35c032748040', '派单员1', '001', '市民热线服务中心', 1, '001', 7, NULL, 'f', '08db8db3-eea4-4737-88dd-6c7b990c7705', '工单办理', 'OrderHandle', NULL, '[]', '08dd1da8-8eef-4344-867e-875fdd744239', NULL, NULL, NULL, '话务部', '08db29ad-9b54-44ca-8d4d-35c032748040', '派单员1', '001', '市民热线服务中心', 't', 0, 0);";
|
|
|
+
|
|
|
+
|
|
|
+ return stepSql;
|
|
|
+ }
|
|
|
+
|
|
|
+ public string GetWorkflowTraceSql(DataRow item, DataTable org, DataTable user, ref Entity.Workflow workflow)
|
|
|
+ {
|
|
|
+ var step = new Entity.WorkflowTrace();
|
|
|
+ var traceSql = $@"INSERT INTO ""public"".""workflow_trace"" (""Id"", ""StepId"", ""Status"", ""ParentId"", ""WorkflowId"", ""FlowAssignType"", ""Handlers"", ""PrevChosenStepCode"", ""AcceptorId"", ""AcceptorName"",
|
|
|
+ ""AcceptorOrgId"", ""AcceptorOrgName"", ""AcceptorOrgAreaCode"", ""AcceptorOrgAreaName"", ""AcceptTime"", ""HandlerId"", ""HandlerName"", ""HandlerOrgId"", ""HandlerOrgIsCenter"", ""HandlerOrgName"",
|
|
|
+ ""HandlerOrgAreaCode"", ""HandlerOrgAreaName"", ""HandleTime"", ""Name"", ""Code"", ""StepType"", ""BusinessType"", ""HandlerType"", ""CanReject"", ""ExecuteMode"", ""CanStartCountersign"", ""CountersignPolicy"",
|
|
|
+ ""InstanceMode"", ""InstancePolicy"", ""TerminalDynamicMark"", ""Tag"", ""NextHandlers"", ""NextMainHandler"", ""NextStepCode"", ""BackToCountersignEnd"", ""IsSms"", ""Opinion"", ""StepExpiredTime"",
|
|
|
+ ""IsStartCountersign"", ""CreationTime"", ""CreatorId"", ""CreatorName"", ""CreatorOrgId"", ""CreatorOrgName"", ""CreatorOrgLevel"", ""AreaId"", ""FlowDirection"", ""FileJson"", ""IsActualHandled"",
|
|
|
+ ""ModuleId"", ""ModuleName"", ""ModuleCode"", ""ExpiredStatus"", ""ExternalId"", ""TraceType"", ""NextSteps"", ""PrevStepId"", ""PrevStepCode"", ""IsMain"", ""IsOrigin"", ""CountersignId"",
|
|
|
+ ""CountersignPosition"", ""CountersignSteps"", ""StartCountersignId"", ""IsStartedCountersignEnd"", ""IsCountersignEndStep"", ""CountersignStartStepId"", ""SendHandleTimes"", ""RoleId"", ""RoleName"", ""TraceState"",
|
|
|
+ ""Remark"", ""TraceStyle"", ""OrderPublishId"", ""OrderVisitId"", ""PrevStepName"", ""AssignerId"", ""AssignerName"", ""AssignerOrgId"", ""AssignerOrgName"", ""AssignerOrgIsCenter"", ""HandleMode"", ""ReviewResult"")
|
|
|
+ VALUES ('08dd0232-e4d3-4e61-8ca5-610ca2a0ba6e', '08dd0232-e4d3-4e61-8ca5-610ca2a0ba6e', 2, NULL, '08dd0231-69c6-408d-8e9b-31445f6476f3', 0, '[{{""Key"":""001094"",""Value"":""测试部门""}}]', NULL, '08dc83a4-5a81-4078-88b3-59e448fc99cc', '一级测试部门', '001094', '测试部门', '511500', '宜宾市', '2024-11-11 17:31:54.501321', '08dc83a4-5a81-4078-88b3-59e448fc99cc', '一级测试部门', '001094', 'f', '测试部门', '511500', '宜宾市', '2024-11-11 17:39:47.14644', '一级部门会签汇总', 'e64f6d91-fd6b-4301-90d1-7c0919945a3b', 0, 2, 1, 'f', 0, 't', 2, 0, NULL, NULL, '', '[{{""UserId"":null,""Username"":null,""OrgId"":""001094002"",""OrgName"":""测试二级部门2"",""RoleId"":null,""RoleName"":null,""Key"":""001094002"",""Value"":""测试二级部门2""}}]', '001094002', 'b7eb07fc-226a-4d23-9469-f30d414a3ba8', 'f', 'f', '【会签时间】:2024-11-11 17:24:54', '2024-11-12 17:16:21.555008', 'f', '2024-11-11 17:26:16.722946', '08dbe027-da84-4b2a-8153-2faa77900d90', '2jhq', '001094002', '测试二级部门2', 2, '001094', 0, '[]', 'f', '08db8db3-eea4-4737-88dd-6c7b990c7705', '工单办理', 'OrderHandle', 0, '08dd0230-94c2-4d62-8ba3-9eefde060232', 1, '[{{""Selected"":false,""Code"":""b7eb07fc-226a-4d23-9469-f30d414a3ba8"",""IsPrevious"":false,""Predicate"":null}},{{""Selected"":false,""Code"":""dd939dbe-b95b-4220-a43a-9a29117ac5f0"",""IsPrevious"":false,""Predicate"":null}},{{""Selected"":false,""Code"":""end"",""IsPrevious"":false,""Predicate"":null}}]', NULL, NULL, 'f', 'f', 'f3fcf170-8e43-48f0-9f4c-5df3fc8bc1a7', 3, '[]', NULL, 'f', 't', '08dd0231-8233-45e5-87aa-b5e837296833', 0, NULL, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);";
|
|
|
+
|
|
|
+
|
|
|
+ return traceSql;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|