瀏覽代碼

流程节点数据同步

田爽 4 月之前
父節點
當前提交
aebb2b2402
共有 4 個文件被更改,包括 141 次插入2 次删除
  1. 6 0
      Entity/Order.cs
  2. 6 0
      Entity/StepBasicEntity.cs
  3. 3 2
      Joint/Order.cs
  4. 126 0
      Joint/Workflow.cs

+ 6 - 0
Entity/Order.cs

@@ -934,5 +934,11 @@ namespace DataTransmission.Entity
 		//[SugarColumn(ColumnDataType = "json", ColumnDescription = "部门办件结果", IsJson = true, IsNullable = true)]
 		public Kv? OrgProcessingResults { get; set; }
 		#endregion
+
+		/// <summary>
+		/// 老系统工单Id
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "老系统工单Id")]
+		public string? OldOrderId { get; set; }
 	}
 }

+ 6 - 0
Entity/StepBasicEntity.cs

@@ -396,5 +396,11 @@ namespace DataTransmission.Entity
 		//[Navigate(NavigateType.ManyToOne, nameof(WorkflowId))]
 		//public Workflow Workflow { get; set; }
 
+		/// <summary>
+		/// 老系统Id
+		/// </summary>
+		//[SugarColumn(ColumnDescription = "老系统Id")]
+		public string? OldStepId { get; set; }
+
 	}
 }

+ 3 - 2
Joint/Order.cs

@@ -102,6 +102,7 @@ namespace DataTransmission.Joint
 			order.Password = row["FED_ReultPWD"].ToString();
 			order.ProvinceNo = row["FSH_ProCode"].ToString();
 			order.IsUrgent = row["FSH_Urgent"].ToString() == "1";
+			order.OldOrderId = row["FSH_FlowID"].ToString();
 			#endregion
 			//""WorkflowId"", ""ExpiredTimeConfigId"", ""Longitude"", ""Latitude"", ""ActualHandleStepCode"",""ActualHandleStepName"", ""ActualHandleStepCreateTime"", ""ActualHandleTime"", ""ActualHandlerId"", ""ActualHandlerName"",
 			//""ExpiredTimeProvince"", ""AcceptorStaffNo"", ""FirstVisitResult"", ""FirstVisitResultCode"", ""CenterToOrgTime"",""ActualHandleStepAcceptTime"",  ""HandleDuration"", ""HandleDurationWorkday"", ""AllDuration"",
@@ -122,7 +123,7 @@ namespace DataTransmission.Joint
 						""SignerId"", ""SignerName"", 
 						""City"", ""Source"",""IsResolved"",""IsFormalistWorkOrder"",""IsSensitiveWorkOrders"",""IsUrgent"",""IsProvinceZmhd""
 						""EventCategoryExternal"",""NearlyExpiredTime"", ""CsActualHandleOrgIds"", ""CsActualHandleUserIds"", ""HandlerUsers"", ""HandlerOrgs"",
-						""Is24HoursComplete"",""IsThreePartyConference"",""IsEvasive"",""IsInactively"",""IsStepUrgent""
+						""Is24HoursComplete"",""IsThreePartyConference"",""IsEvasive"",""IsInactively"",""IsStepUrgent"",""OldOrderId""
 						) VALUES (
 						'{order.Id}', '{order.CallId}', '{order.FromPhone}', '{order.TransferPhone}',  '{order.FromName}', {(int)order.FromGender}, {(int)order.IdentityType}, 
 						 '{order.Contact}', '{order.ContactMask}', '{order.AcceptSms.ToString()}',
@@ -139,7 +140,7 @@ namespace DataTransmission.Joint
 						'08dc0121-5960-4267-817c-b6dc6c068fa4', '坐席',
 						'{CommonTool.Name}','0','t','f','f','{order.IsUrgent.ToString()}','f'
 						'19', '{order.NearlyExpiredTime.ToString()}', '[]', '[]', '[]', '[]',
-						'f','f','f','f','f');";
+						'f','f','f','f','f','{order.OldOrderId}');";
 			return pgOrderSql;
 		}
 

+ 126 - 0
Joint/Workflow.cs

@@ -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;
+		}
+	}
+}