田爽 3 months ago
parent
commit
f3d6a04042
9 changed files with 85 additions and 60 deletions
  1. 23 0
      Entity/Config.cs
  2. 1 1
      Entity/Order.cs
  3. 8 8
      Execute.cs
  4. 19 25
      Form1.cs
  5. 2 2
      Joint/Delay.cs
  6. 12 5
      Joint/Order.cs
  7. 1 1
      Joint/Public.cs
  8. 7 7
      Joint/Visit.cs
  9. 12 11
      Joint/Workflow.cs

+ 23 - 0
Entity/Config.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DataTransmission.Entity
+{
+	public class Config
+	{
+		//public static string Name = string.Empty;
+
+		//public static string CenterId = string.Empty;
+
+		//public static string Paseword = string.Empty;
+
+		//public static string ModuleId = string.Empty;
+		public string Name { get; set; }
+		public string CenterId { get; set; }
+		public string Paseword { get; set; }
+		public string ModuleId { get; set; }
+	}
+}

+ 1 - 1
Entity/Order.cs

@@ -388,7 +388,7 @@ namespace DataTransmission.Entity
 		/// <summary>
 		/// <summary>
 		/// 时间限制计数
 		/// 时间限制计数
 		/// </summary>
 		/// </summary>
-		public int? TimeLimitCount { get; set; }
+		public string? TimeLimitCount { get; set; }
 
 
 		/// <summary>
 		/// <summary>
 		/// 时间限制单位
 		/// 时间限制单位

+ 8 - 8
Execute.cs

@@ -23,7 +23,7 @@ namespace DataTransmission
         private readonly Notice notice = new Notice();
         private readonly Notice notice = new Notice();
         private readonly OrderPublic orderPublic  = new OrderPublic();
         private readonly OrderPublic orderPublic  = new OrderPublic();
 
 
-        public void ExecuteSql(DataTable orderTable)
+        public void ExecuteSql(DataTable orderTable, Entity.Config config)
         {
         {
             try
             try
             {
             {
@@ -45,28 +45,28 @@ namespace DataTransmission
 
 
 
 
 					//工单
 					//工单
-					var pgOrderSql = order.GetOrderISql(row, orderId, org, user);
+					var pgOrderSql = order.GetOrderISql(row, orderId, org, user, config);
                     //工单流程
                     //工单流程
                     var orderModule = module.AsEnumerable().FirstOrDefault(x => x.Field<string>("Code").ToString() == "OrderHandle");
                     var orderModule = module.AsEnumerable().FirstOrDefault(x => x.Field<string>("Code").ToString() == "OrderHandle");
                     //var orderDefinition = definition.AsEnumerable().FirstOrDefault(x => x.Field<string>("Id").ToString() == orderModule["DefinitionId"].ToString());
                     //var orderDefinition = definition.AsEnumerable().FirstOrDefault(x => x.Field<string>("Id").ToString() == orderModule["DefinitionId"].ToString());
 					var pgOrderWorkflow = workflow.GetWorkflow(row["FSH_FlowID"].ToString(), "CityHotline");
 					var pgOrderWorkflow = workflow.GetWorkflow(row["FSH_FlowID"].ToString(), "CityHotline");
-                    var pgOrderWorkflowSql = workflow.GetWorkflowSql(pgOrderWorkflow, row, orderId, org, user, orderModule,null);
+                    var pgOrderWorkflowSql = workflow.GetWorkflowSql(pgOrderWorkflow, row, orderId, org, user, orderModule,null, config);
 					//发布
 					//发布
 					var publicTable = _public.GetOldPublic(row["FSH_FlowID"].ToString());
 					var publicTable = _public.GetOldPublic(row["FSH_FlowID"].ToString());
-                    var publicSql = _public.GetOldPublicSql(publicTable, row, orderId, org, user);
+                    var publicSql = _public.GetOldPublicSql(publicTable, row, orderId, org, user, config);
 					//回访
 					//回访
 					var appraiseTable = visit.GetVisit(row["FSH_FlowID"].ToString());
 					var appraiseTable = visit.GetVisit(row["FSH_FlowID"].ToString());
-                    var visitSql = visit.GetVisitSql(appraiseTable, row, VisitId, orderId, org, user);
+                    var visitSql = visit.GetVisitSql(appraiseTable, row, VisitId, orderId, org, user, config);
                     //延期
                     //延期
                     var delayTable = delay.GetDelay(row["FSH_FlowID"].ToString());
                     var delayTable = delay.GetDelay(row["FSH_FlowID"].ToString());
 					var delayModule = module.AsEnumerable().FirstOrDefault(x => x.Field<string>("Code").ToString() == "OrderDelay");
 					var delayModule = module.AsEnumerable().FirstOrDefault(x => x.Field<string>("Code").ToString() == "OrderDelay");
-					var delaySql = delay.GetDelaySql(delayTable, row, orderId, org, user, delayModule);
+					var delaySql = delay.GetDelaySql(delayTable, row, orderId, org, user, delayModule, config);
                     var pgSql = pgOrderSql;
                     var pgSql = pgOrderSql;
 					pgSql = pgOrderWorkflowSql.Length > 0 ? pgSql + pgOrderWorkflowSql : pgSql;
 					pgSql = pgOrderWorkflowSql.Length > 0 ? pgSql + pgOrderWorkflowSql : pgSql;
 					pgSql = publicSql.Length > 0 ? pgSql + publicSql : pgSql;
 					pgSql = publicSql.Length > 0 ? pgSql + publicSql : pgSql;
 					pgSql = visitSql.Length > 0 ? pgSql + visitSql : pgSql;
 					pgSql = visitSql.Length > 0 ? pgSql + visitSql : pgSql;
-                    pgSql = delaySql.Length > 0 ? pgSql + delaySql : pgOrderSql;
-                    tool.SaveLog("SQL :" + pgSql + "  ;", 1);
+                    pgSql = delaySql.Length > 0 ? pgSql + delaySql : pgSql;
+                    //tool.SaveLog("SQL :" + pgSql + "  ;", 1);
                     tool.Execute(pgSql, pgConn);
                     tool.Execute(pgSql, pgConn);
                 }
                 }
             }
             }

+ 19 - 25
Form1.cs

@@ -11,15 +11,9 @@ namespace DataTransmission
 		private readonly Execute execute = new Execute();
 		private readonly Execute execute = new Execute();
 		private readonly CommonTool tool = new CommonTool();
 		private readonly CommonTool tool = new CommonTool();
 		private readonly Knowledge knowledge = new Knowledge();
 		private readonly Knowledge knowledge = new Knowledge();
+		private  Entity.Config config = new Entity.Config();
 
 
-
-		public static string Name = string.Empty;
-
-		public static string CenterId = string.Empty;
-
-		public static string Paseword = string.Empty;
-
-		public static string ModuleId = string.Empty;
+	
 
 
 		public Form1()
 		public Form1()
 		{
 		{
@@ -37,25 +31,25 @@ namespace DataTransmission
 			//{
 			//{
 
 
 			//}
 			//}
-			switch (cbox_bb.SelectedText)
+			switch (cbox_bb.SelectedItem)
 			{
 			{
 				case "宜宾":
 				case "宜宾":
-					Name = "宜宾市";
-					CenterId = "23";
-					Paseword = "AQAAAAIAAYagAAAAELQ9clcozvhLoTC0pUjUwv40VXsIp3JyxFhEmqVQOmBLMZ7gGmne6cqL9FHXb0CUBQ==";
-					ModuleId = "08db8db3-eea4-4737-88dd-6c7b990c7705";
+					config.Name = "宜宾市";
+					config.CenterId = "23";
+					config.Paseword = "AQAAAAIAAYagAAAAELQ9clcozvhLoTC0pUjUwv40VXsIp3JyxFhEmqVQOmBLMZ7gGmne6cqL9FHXb0CUBQ==";
+					config.ModuleId = "08db8db3-eea4-4737-88dd-6c7b990c7705";
 					break;
 					break;
 				case "自贡":
 				case "自贡":
-					Name = "自贡市";
-					CenterId = "2";
-					Paseword = "AQAAAAIAAYagAAAAEJZNauXWsvzHDvSCLEwNjA3qVJcQqEHAexlWDg6ONJJtK5hDNnL8gwwXxwZW5YszfA==";
-					ModuleId = "2430d69a-59df-46a1-b155-85e69cfba010";
+					config.Name = "自贡市";
+					config.CenterId = "2";
+					config.Paseword = "AQAAAAIAAYagAAAAEJZNauXWsvzHDvSCLEwNjA3qVJcQqEHAexlWDg6ONJJtK5hDNnL8gwwXxwZW5YszfA==";
+					config.ModuleId = "2430d69a-59df-46a1-b155-85e69cfba010";
 					break;
 					break;
 				case "泸州":
 				case "泸州":
-					Name = "泸州市";
-					CenterId = "23";
-					Paseword = "AQAAAAIAAYagAAAAELQ9clcozvhLoTC0pUjUwv40VXsIp3JyxFhEmqVQOmBLMZ7gGmne6cqL9FHXb0CUBQ==";
-					ModuleId = "08db8db3-eea4-4737-88dd-6c7b990c7705";
+					config.Name = "泸州市";
+					config.CenterId = "23";
+					config.Paseword = "AQAAAAIAAYagAAAAELQ9clcozvhLoTC0pUjUwv40VXsIp3JyxFhEmqVQOmBLMZ7gGmne6cqL9FHXb0CUBQ==";
+					config.ModuleId = "08db8db3-eea4-4737-88dd-6c7b990c7705";
 					break;
 					break;
 				default:
 				default:
 					break;
 					break;
@@ -83,7 +77,7 @@ namespace DataTransmission
 			}
 			}
 			if (cb_order.Checked)
 			if (cb_order.Checked)
 			{
 			{
-				ExecuteInsert();
+				ExecuteInsert(config);
 			}
 			}
 			if (cb_jg.Checked)
 			if (cb_jg.Checked)
 			{
 			{
@@ -99,7 +93,7 @@ namespace DataTransmission
 			btn_tb.Enabled = true;
 			btn_tb.Enabled = true;
 		}
 		}
 
 
-		private void ExecuteInsert()
+		private void ExecuteInsert(Entity.Config config)
 		{
 		{
 			var orderTable = order.GetOrder(st_time.Value.ToString("yyyy-MM-dd") + " 00:00:00", end_time.Value.ToString("yyyy-MM-dd") + " 23:59:59");
 			var orderTable = order.GetOrder(st_time.Value.ToString("yyyy-MM-dd") + " 00:00:00", end_time.Value.ToString("yyyy-MM-dd") + " 23:59:59");
 
 
@@ -116,7 +110,7 @@ namespace DataTransmission
 				var enNum = exNum + threadNum;
 				var enNum = exNum + threadNum;
 
 
 				var data = orderTable.AsEnumerable().Where(x => ((int)x.Field<long>("Serial")) > stNum && ((int)x.Field<long>("Serial")) <= enNum).CopyToDataTable();
 				var data = orderTable.AsEnumerable().Where(x => ((int)x.Field<long>("Serial")) > stNum && ((int)x.Field<long>("Serial")) <= enNum).CopyToDataTable();
-				execute.ExecuteSql(data);
+				execute.ExecuteSql(data, config);
 				exNum += threadNum;
 				exNum += threadNum;
 			}
 			}
 
 
@@ -124,7 +118,7 @@ namespace DataTransmission
 			{
 			{
 				var stNum = divisor * threadNum;
 				var stNum = divisor * threadNum;
 				var data = orderTable.AsEnumerable().Where(x => ((int)x.Field<long>("Serial")) >= stNum).CopyToDataTable();
 				var data = orderTable.AsEnumerable().Where(x => ((int)x.Field<long>("Serial")) >= stNum).CopyToDataTable();
-				execute.ExecuteSql(data);
+				execute.ExecuteSql(data, config);
 			}
 			}
 		}
 		}
 	}
 	}

+ 2 - 2
Joint/Delay.cs

@@ -21,7 +21,7 @@ namespace DataTransmission.Joint
 			return tool.GetDataTable(sql, conn);
 			return tool.GetDataTable(sql, conn);
 		}
 		}
 
 
-		public string GetDelaySql(DataTable data, DataRow row, string orderId, DataTable org, DataTable user,DataRow delayModule) {
+		public string GetDelaySql(DataTable data, DataRow row, string orderId, DataTable org, DataTable user,DataRow delayModule, Entity.Config config) {
 			var delayNum = 0;
 			var delayNum = 0;
 			var pgDelaySql = string.Empty;
 			var pgDelaySql = string.Empty;
 			foreach (DataRow delay in data.Rows)
 			foreach (DataRow delay in data.Rows)
@@ -78,7 +78,7 @@ namespace DataTransmission.Joint
 				var pgDelayWorkflow = workflow.GetWorkflow(row["FSH_FlowID"].ToString(), "Flow_Postpone");
 				var pgDelayWorkflow = workflow.GetWorkflow(row["FSH_FlowID"].ToString(), "Flow_Postpone");
 				if (pgDelayWorkflow.Rows.Count > 0)
 				if (pgDelayWorkflow.Rows.Count > 0)
 				{
 				{
-					var pgDelayWorkflowSql = workflow.GetWorkflowSql(pgDelayWorkflow, row, orderId, org, user, delayModule, model);
+					var pgDelayWorkflowSql = workflow.GetWorkflowSql(pgDelayWorkflow, row, orderId, org, user, delayModule, model, config);
 					if (!string.IsNullOrEmpty(pgDelayWorkflowSql))
 					if (!string.IsNullOrEmpty(pgDelayWorkflowSql))
 					{
 					{
 						pgDelaySql += pgDelayWorkflowSql;
 						pgDelaySql += pgDelayWorkflowSql;

+ 12 - 5
Joint/Order.cs

@@ -39,7 +39,7 @@ namespace DataTransmission.Joint
 			return tool.GetDataTable(orderSql, conn);
 			return tool.GetDataTable(orderSql, conn);
 		}
 		}
 
 
-		public string GetOrderISql(DataRow row,string orderId,DataTable org,DataTable user) {
+		public string GetOrderISql(DataRow row,string orderId,DataTable org,DataTable user, Entity.Config config) {
 			var sex = row["FLM_LKSex"].ToString() == "1" ? 1 : row["FLM_LKSex"].ToString() == "2" ? 0 : 2;
 			var sex = row["FLM_LKSex"].ToString() == "1" ? 1 : row["FLM_LKSex"].ToString() == "2" ? 0 : 2;
 			var identityType = row["FSH_PersonnelType"].ToString() == "企业" ? 2 : 1;
 			var identityType = row["FSH_PersonnelType"].ToString() == "企业" ? 2 : 1;
 			var ContactMask = tool.MaskPhoneNumber(row["FSH_LinkTel"].ToString());
 			var ContactMask = tool.MaskPhoneNumber(row["FSH_LinkTel"].ToString());
@@ -88,8 +88,14 @@ namespace DataTransmission.Joint
 			order.IsDeleted = false;
 			order.IsDeleted = false;
 			order.CreationTime = Convert.ToDateTime(row["FSH_AddDate"])   ;
 			order.CreationTime = Convert.ToDateTime(row["FSH_AddDate"])   ;
 			order.SmsSended = false;
 			order.SmsSended = false;
-			order.ProcessType = row["FSH_AcceptBMID"].ToString() == Form1.CenterId ? 10 : 20;
-			order.IsPublicity = row["FSH_IsPublic"].ToString() == "1"; //0:不公开 ;1:公开 12345在线传递过来的状态
+			order.ProcessType = row["FSH_AcceptBMID"].ToString() == config.CenterId ? 10 : 20;
+			if (config.Name == "自贡市")
+			{
+				order.IsPublicity = false;
+			}
+			else {
+				order.IsPublicity = row["FSH_IsPublic"].ToString() == "1"; //0:不公开 ;1:公开 12345在线传递过来的状态
+			}
 			order.IsSecret = row["FLM_SFlag"].ToString() == "1";
 			order.IsSecret = row["FLM_SFlag"].ToString() == "1";
 			order.ActualHandleOrgName = row["FSH_AcceptName"].ToString();
 			order.ActualHandleOrgName = row["FSH_AcceptName"].ToString();
 			order.ActualHandleOrgCode = ActualHandleOrgCode;
 			order.ActualHandleOrgCode = ActualHandleOrgCode;
@@ -119,7 +125,8 @@ namespace DataTransmission.Joint
 			order.ActualHandleOrgAreaCode = row["SA_AreaCode"].ToString();
 			order.ActualHandleOrgAreaCode = row["SA_AreaCode"].ToString();
 			order.ActualHandleOrgAreaName = row["SA_AreaName"].ToString();
 			order.ActualHandleOrgAreaName = row["SA_AreaName"].ToString();
 			order.CallAddress = row["FLM_LKAddress"].ToString();
 			order.CallAddress = row["FLM_LKAddress"].ToString();
-			order.TimeLimitCount = int.Parse(row["FTRB_TLimits"].ToString());
+			//order.TimeLimitCount = int.Parse(row["FTRB_TLimits"].ToString());
+			order.TimeLimitCount = row["FTRB_TLimits"].ToString();
 			order.TimeLimit = order.TimeLimitCount + "个工作日";
 			order.TimeLimit = order.TimeLimitCount + "个工作日";
 			order.AcceptTypeCode = GetAcceptTypeCode(row["FSH_PurTypeName"].ToString());
 			order.AcceptTypeCode = GetAcceptTypeCode(row["FSH_PurTypeName"].ToString());
 			order.NearlyExpiredTime = string.IsNullOrEmpty(row["FSH_EightyTTime"].ToString()) ? "NULL" : row["FSH_EightyTTime"].ToString() ;
 			order.NearlyExpiredTime = string.IsNullOrEmpty(row["FSH_EightyTTime"].ToString()) ? "NULL" : row["FSH_EightyTTime"].ToString() ;
@@ -162,7 +169,7 @@ namespace DataTransmission.Joint
 						 '{order.AcceptTypeCode}', '[]', '{order.AcceptorOrgName}',
 						 '{order.AcceptTypeCode}', '[]', '{order.AcceptorOrgName}',
 						'{order.AcceptorName}', '[""001""]', '[]', 1, '{order.ProvinceNo}', NULL, '{order.Password}',
 						'{order.AcceptorName}', '[""001""]', '[]', 1, '{order.ProvinceNo}', NULL, '{order.Password}',
 						'{order.AcceptorId}', '{order.AcceptorName}',
 						'{order.AcceptorId}', '{order.AcceptorName}',
-						'{Form1.Name}','0','t','f','f','{order.IsUrgent.ToString()}','f',
+						'{config.Name}','0','t','f','f','{order.IsUrgent.ToString()}','f',
 						'19', '{order.NearlyExpiredTime.ToString()}', '[]', '[]', '[]', '[]',
 						'19', '{order.NearlyExpiredTime.ToString()}', '[]', '[]', '[]', '[]',
 						'f','f','f','f','f','{order.OldOrderId}');";
 						'f','f','f','f','f','{order.OldOrderId}');";
 			pgOrderSql = pgOrderSql.Replace("'NULL'", "NULL");
 			pgOrderSql = pgOrderSql.Replace("'NULL'", "NULL");

+ 1 - 1
Joint/Public.cs

@@ -21,7 +21,7 @@ namespace DataTransmission.Joint
 			return tool.GetDataTable(sql, conn);
 			return tool.GetDataTable(sql, conn);
 		}
 		}
 
 
-		public string GetOldPublicSql(DataTable data, DataRow row, string orderId, DataTable org, DataTable user) {
+		public string GetOldPublicSql(DataTable data, DataRow row, string orderId, DataTable org, DataTable user, Entity.Config config) {
 			var sql = string.Empty;
 			var sql = string.Empty;
 			if (data.Rows.Count > 0)
 			if (data.Rows.Count > 0)
 			{
 			{

+ 7 - 7
Joint/Visit.cs

@@ -22,7 +22,7 @@ namespace DataTransmission.Joint
 			return tool.GetDataTable(appraiseSql, conn);
 			return tool.GetDataTable(appraiseSql, conn);
 		}
 		}
 
 
-		public string GetVisitSql(DataTable data,DataRow row,string VisitId, string orderId,DataTable org,DataTable user) {
+		public string GetVisitSql(DataTable data,DataRow row,string VisitId, string orderId,DataTable org,DataTable user, Entity.Config config) {
 			var num = 0;
 			var num = 0;
 			var pgVisitSql = string.Empty;
 			var pgVisitSql = string.Empty;
 			var pgVisitDetail = string.Empty;
 			var pgVisitDetail = string.Empty;
@@ -104,7 +104,7 @@ namespace DataTransmission.Joint
 				var OrgNoSatisfiedReason = "NULL";
 				var OrgNoSatisfiedReason = "NULL";
 				if ((item["FALT_AppTypeName"].ToString() == "非常不满意" || item["FALT_AppTypeName"].ToString() == "不满意") && !string.IsNullOrEmpty(item["SDICT_Name"].ToString()))
 				if ((item["FALT_AppTypeName"].ToString() == "非常不满意" || item["FALT_AppTypeName"].ToString() == "不满意") && !string.IsNullOrEmpty(item["SDICT_Name"].ToString()))
 				{
 				{
-					OrgNoSatisfiedReason = $@" '[{{""Key"":""{GetDissatisfiedReason(item["SDICT_Name"].ToString())}"",""Value"":""{item["SDICT_Name"].ToString()}""}}]'";
+					OrgNoSatisfiedReason = $@" '[{{""Key"":""{GetDissatisfiedReason(item["SDICT_Name"].ToString(),config)}"",""Value"":""{item["SDICT_Name"].ToString()}""}}]'";
 				}
 				}
 				pgVisitDetail += $@",('{bmDetail.Id}', '{VisitId}', NULL, NULL, '{{""Key"":""{GetSatisfaction(item["FALT_AppTypeName"].ToString())}"",""Value"":""{item["FALT_AppTypeName"]}""}}',{OrgNoSatisfiedReason}, 
 				pgVisitDetail += $@",('{bmDetail.Id}', '{VisitId}', NULL, NULL, '{{""Key"":""{GetSatisfaction(item["FALT_AppTypeName"].ToString())}"",""Value"":""{item["FALT_AppTypeName"]}""}}',{OrgNoSatisfiedReason}, 
 				'{{""Key"":""{GetSatisfaction(item["FALT_AppTypeBName"].ToString())}"",""Value"":""{item["FALT_AppTypeBName"]}""}}', '{item["FALT_ZxRemark"]}', '{VisitOrgCode}', '{item["SBM_Name"]}',
 				'{{""Key"":""{GetSatisfaction(item["FALT_AppTypeBName"].ToString())}"",""Value"":""{item["FALT_AppTypeBName"]}""}}', '{item["FALT_ZxRemark"]}', '{VisitOrgCode}', '{item["SBM_Name"]}',
@@ -153,14 +153,14 @@ namespace DataTransmission.Joint
 			}
 			}
 			return satisfaction;
 			return satisfaction;
 		}
 		}
-		private string GetDissatisfiedReason(string name) {
-			switch (Form1.Name)
+		private string GetDissatisfiedReason(string name, Entity.Config config) {
+			switch (config.Name)
 			{
 			{
-				case "宜宾":
+				case "宜宾":
 					return GetDissatisfiedReason_YB(name);
 					return GetDissatisfiedReason_YB(name);
-				case "自贡":
+				case "自贡":
 					return GetDissatisfiedReason_ZG(name);
 					return GetDissatisfiedReason_ZG(name);
-				case "泸州":
+				case "泸州":
 					return GetDissatisfiedReason_LZ(name);
 					return GetDissatisfiedReason_LZ(name);
 				default:
 				default:
 					return "";
 					return "";

+ 12 - 11
Joint/Workflow.cs

@@ -1,4 +1,5 @@
-using DataTransmission.Enum;
+using DataTransmission.Entity;
+using DataTransmission.Enum;
 using Newtonsoft.Json;
 using Newtonsoft.Json;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
@@ -22,7 +23,7 @@ namespace DataTransmission.Joint
 			return tool.GetDataTable(orderSql, conn);
 			return tool.GetDataTable(orderSql, conn);
 		}
 		}
 
 
-		public string GetWorkflowSql(DataTable data, DataRow row, string orderId, DataTable org, DataTable user, DataRow module,Entity.OrderDelay delay)
+		public string GetWorkflowSql(DataTable data, DataRow row, string orderId, DataTable org, DataTable user, DataRow module,Entity.OrderDelay delay, Entity.Config config)
 		{
 		{
 			var pgSql = string.Empty;
 			var pgSql = string.Empty;
 
 
@@ -36,9 +37,9 @@ namespace DataTransmission.Joint
 			var stStep = data.AsEnumerable().OrderBy(x => x.Field<int?>("FTRB_RunID")).FirstOrDefault();
 			var stStep = data.AsEnumerable().OrderBy(x => x.Field<int?>("FTRB_RunID")).FirstOrDefault();
 			var endStep = data.AsEnumerable().OrderByDescending(x=>x.Field<int?>("FTRB_RunID")).FirstOrDefault(x=> x.Field<string>("FTRB_ItemName").ToString() == "结束");
 			var endStep = data.AsEnumerable().OrderByDescending(x=>x.Field<int?>("FTRB_RunID")).FirstOrDefault(x=> x.Field<string>("FTRB_ItemName").ToString() == "结束");
 			var actualStep = data.AsEnumerable().FirstOrDefault(x => x.Field<int?>("FSH_AcceptBMID").ToString() == x.Field<int?>("FTRB_APBMID").ToString());
 			var actualStep = data.AsEnumerable().FirstOrDefault(x => x.Field<int?>("FSH_AcceptBMID").ToString() == x.Field<int?>("FTRB_APBMID").ToString());
-			if (row["FSH_AcceptBMID"].ToString() == Form1.CenterId)
+			if (row["FSH_AcceptBMID"].ToString() == config.CenterId)
 			{
 			{
-				actualStep = data.AsEnumerable().FirstOrDefault(x => x.Field<DateTime>("FSH_AcceptDate").ToString() == x.Field<DateTime>("FTRB_APDate").ToString());
+				actualStep = data.AsEnumerable().FirstOrDefault(x => x.Field<DateTime?>("FSH_AcceptDate") != null && x.Field<DateTime?>("FTRB_APDate")!= null &&  x.Field<DateTime?>("FSH_AcceptDate").ToString() == x.Field<DateTime?>("FTRB_APDate").ToString());
 			}
 			}
 
 
 			//Creator
 			//Creator
@@ -82,7 +83,7 @@ namespace DataTransmission.Joint
 				
 				
 				var start = order == 1;
 				var start = order == 1;
 				var end = order == data.Rows.Count;
 				var end = order == data.Rows.Count;
- 				var stepSql = GetWorkflowStepSql(item, org, user, start, end, ref workflow);
+ 				var stepSql = GetWorkflowStepSql(item, org, user, start, end, ref workflow, config);
 				pgSql += stepSql ;
 				pgSql += stepSql ;
 				order++;
 				order++;
 			}
 			}
@@ -108,7 +109,7 @@ namespace DataTransmission.Joint
 		/// <param name="end"></param>
 		/// <param name="end"></param>
 		/// <param name="workflow"></param>
 		/// <param name="workflow"></param>
 		/// <returns></returns>
 		/// <returns></returns>
-		private string GetWorkflowStepSql(DataRow item, DataTable org, DataTable user,bool start,bool end, ref Entity.Workflow workflow) {
+		private string GetWorkflowStepSql(DataRow item, DataTable org, DataTable user,bool start,bool end, ref Entity.Workflow workflow, Entity.Config config) {
 
 
 			//Acceptor
 			//Acceptor
 			var acceptor = user.AsEnumerable().FirstOrDefault(x => x.Field<int?>("oldUserId").ToString() == item["FTRB_APUserID"].ToString());
 			var acceptor = user.AsEnumerable().FirstOrDefault(x => x.Field<int?>("oldUserId").ToString() == item["FTRB_APUserID"].ToString());
@@ -169,7 +170,7 @@ namespace DataTransmission.Joint
 			}
 			}
 			else {
 			else {
 				step.HandlerOrgName ="热线中心";
 				step.HandlerOrgName ="热线中心";
-				step.HandlerOrgId = Form1.CenterId.ToString();
+				step.HandlerOrgId = config.CenterId.ToString();
 				step.HandlerOrgAreaCode = string.Empty;
 				step.HandlerOrgAreaCode = string.Empty;
 				step.HandlerOrgAreaName = string.Empty;
 				step.HandlerOrgAreaName = string.Empty;
 				step.HandlerOrgIsCenter = false;
 				step.HandlerOrgIsCenter = false;
@@ -203,7 +204,7 @@ namespace DataTransmission.Joint
 			}
 			}
 			else {
 			else {
 				step.CreatorOrgName = "热线中心";
 				step.CreatorOrgName = "热线中心";
-				step.CreatorOrgId = Form1.CenterId.ToString();
+				step.CreatorOrgId = config.CenterId.ToString();
 				step.CreatorOrgLevel = 1;
 				step.CreatorOrgLevel = 1;
 				step.AreaId = string.Empty;
 				step.AreaId = string.Empty;
 				step.AssignerOrgIsCenter = true;
 				step.AssignerOrgIsCenter = true;
@@ -258,9 +259,9 @@ namespace DataTransmission.Joint
 			""CountersignPosition"", ""CountersignSteps"", ""StartCountersignId"", ""IsStartedCountersignEnd"", ""IsCountersignEndStep"", ""CountersignStartStepId"", ""SendHandleTimes"", ""RoleId"", ""RoleName"", ""TraceState"", 
 			""CountersignPosition"", ""CountersignSteps"", ""StartCountersignId"", ""IsStartedCountersignEnd"", ""IsCountersignEndStep"", ""CountersignStartStepId"", ""SendHandleTimes"", ""RoleId"", ""RoleName"", ""TraceState"", 
 			""Remark"", ""TraceStyle"", ""OrderPublishId"", ""OrderVisitId"", ""PrevStepName"", ""AssignerId"", ""AssignerName"", ""AssignerOrgId"", ""AssignerOrgName"", ""AssignerOrgIsCenter"", ""HandleMode"", ""ReviewResult"",""InstanceMode"") 
 			""Remark"", ""TraceStyle"", ""OrderPublishId"", ""OrderVisitId"", ""PrevStepName"", ""AssignerId"", ""AssignerName"", ""AssignerOrgId"", ""AssignerOrgName"", ""AssignerOrgIsCenter"", ""HandleMode"", ""ReviewResult"",""InstanceMode"") 
 			VALUES ('{trace.Id}', '{step.Id}', 2, NULL, '{workflow.Id}', 1, '[]', NULL, '{step.AcceptorId}', '{step.AcceptorName}',
 			VALUES ('{trace.Id}', '{step.Id}', 2, 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.HandlerOrgAreaCode}', '{step.HandlerOrgAreaName}', '{step.HandleTime.ToString()}', '{step.Name}', '', {(int)step.StepType}, {(int)step.BusinessType},
-			3, 'f', 0, 'f',  '[]',  'f', 'f', '{step.Opinion}', '{step.StepExpiredTime.ToString()}',
+			'{step.AcceptorOrgId}', '{step.AcceptorOrgName}', '{step.AcceptorOrgAreaCode}', '{step.AcceptorOrgAreaName}', {step.AcceptTime.ToString()}, '{step.HandlerId}', '{step.HandlerName}', '{step.HandlerOrgId}',
+			'{step.HandlerOrgIsCenter.ToString()}', '{step.HandlerOrgName}', '{step.HandlerOrgAreaCode}', '{step.HandlerOrgAreaName}', {step.HandleTime.ToString()}, '{step.Name}', '', {(int)step.StepType}, {(int)step.BusinessType},
+			3, 'f', 0, 'f',  '[]',  'f', 'f', '{step.Opinion}', {step.StepExpiredTime.ToString()},
 			'f', '{step.CreationTime.ToString()}', '{step.CreatorId}', '{step.CreatorName}', '{step.CreatorOrgId}', '{step.CreatorOrgName}', {step.CreatorOrgLevel}, '{step.AreaId}', NULL, '[]',
 			'f', '{step.CreationTime.ToString()}', '{step.CreatorId}', '{step.CreatorName}', '{step.CreatorOrgId}', '{step.CreatorOrgName}', {step.CreatorOrgLevel}, '{step.AreaId}', NULL, '[]',
 			'f', '{workflow.ModuleId}', '{workflow.ModuleName}', '{workflow.ModuleCode}', 0, '{step.ExternalId}', 1, '[]', '{step.PrevStepId}', NULL, 'f', 'f', '',
 			'f', '{workflow.ModuleId}', '{workflow.ModuleName}', '{workflow.ModuleCode}', 0, '{step.ExternalId}', 1, '[]', '{step.PrevStepId}', NULL, 'f', 'f', '',
 			0, '[]', NULL, 'f', 'f', '', 0, NULL, NULL, 0,
 			0, '[]', NULL, 'f', 'f', '', 0, NULL, NULL, 0,