Order.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. using DataTransmission.Enum;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace DataTransmission.Joint
  9. {
  10. public class Order
  11. {
  12. private readonly CommonTool tool = new CommonTool();
  13. public DataTable GetOrder( string st_time, string end_time) {
  14. var conn = tool.GetConSqlServer();
  15. //获取工单数据
  16. var orderSql = $@"SELECT ROW_NUMBER() OVER (ORDER BY FSH_FlowID) AS Serial, CHPRCI.RCI_FlowID,*,REPLACE(CAST(FCT.FCT_Content AS NVARCHAR(MAX)),CHAR(13)+CHAR(10), '') 受理内容,REPLACE(CAST(ISNULL(FTC2.FTC_RRemark,FTRB.FTRB_RRemark) AS NVARCHAR(MAX)),CHAR(13)+CHAR(10), '') 承办意见
  17. FROM dbo.Flow03_Search FSH
  18. LEFT JOIN Flow02_From FRM ON FSH.FSH_FromID = FRM.FFM_FromID
  19. LEFT JOIN dbo.Flow05_LinkMan FLM ON FSH.FSH_FlowID = FLM.FLM_FlowID
  20. LEFT JOIN dbo.Flow01_Type FT ON FT.FTE_TypeFlag =2 AND FSH.FSH_ConTypeID = FT.FTE_TypeID
  21. LEFT JOIN dbo.SYS19_Area SA ON FSH.FSH_AreaID = SA.SA_AreaID
  22. LEFT JOIN dbo.Flow04_Expand FED ON FSH.FSH_FlowID = FED.FED_FlowID
  23. LEFT JOIN Flow06_Content FCT WITH(NOLOCK) ON FCT.FCT_FlowID = FSH.FSH_FlowID
  24. LEFT JOIN dbo.Flow18_AppraiseList FAL ON FSH.FSH_FlowID = FAL.FALT_FlowID
  25. LEFT JOIN Flow_Transfer04_Specialty FTS WITH(NOLOCK) ON FTS.FTS_FlowID = FSH.FSH_FlowID
  26. LEFT JOIN Flow_Transfer02_Content FTC2 WITH(NOLOCK) ON FTC2.FTC_RunID = FTS.FTS_RunID
  27. LEFT JOIN Flow_Transfer01_RunBackups FTRB WITH(NOLOCK) ON FTS.FTS_RunID =FTRB.FTRB_RunID
  28. LEFT JOIN CityHotline_Province.dbo.receive_case_info CHPRCI ON CHPRCI.RCI_FlowID = FSH.FSH_FlowID
  29. WHERE FSH_AddDate >= '{st_time}' AND FSH_AddDate <= '{end_time}' AND ISNULL(FAL.FALT_ListID,0) > 0 AND FAL.FALT_AppFlag ='1' ";
  30. //AND FSH.FSH_Code = '202309190017'
  31. return tool.GetDataTable(orderSql, conn);
  32. }
  33. public string GetOrderISql(DataRow row,string orderId,DataTable org,DataTable user) {
  34. var sex = row["FLM_LKSex"].ToString() == "1" ? 1 : row["FLM_LKSex"].ToString() == "2" ? 0 : 2;
  35. var identityType = row["FSH_PersonnelType"].ToString() == "企业" ? 2 : 1;
  36. var ContactMask = tool.MaskPhoneNumber(row["FSH_LinkTel"].ToString());
  37. var EmergencyLevel = row["FSH_Urgent"].ToString() == "1" ? 2 : 0;
  38. var ExpiredStatus = row["FSH_OverTimeState"].ToString() == "正常" ? 0 : row["FSH_OverTimeState"].ToString() == "即将超期" ? 1 : 2;
  39. var IsSecret = row["FLM_SFlag"].ToString() == "1" ? "t" : "f";
  40. var IsProvince = row["RCI_FlowID"].ToString() == "NULL" ? "f" : "t";
  41. var ActualHandleOrgCode = row["FSH_AcceptBMID"].ToString();
  42. try
  43. {
  44. var orgRow = org.AsEnumerable().First(x => x.Field<int?>("oldBmid").ToString() == row["FSH_AcceptBMID"].ToString());
  45. ActualHandleOrgCode = string.IsNullOrEmpty(orgRow?["Id"].ToString()) ? "NULL" : orgRow?["Id"].ToString();
  46. }
  47. catch (Exception e)
  48. {
  49. tool.SaveLog(" OrderMessage :" + e.Message + ";" + row["FSH_AcceptBMID"].ToString() + " ;", 1);
  50. }
  51. #region CrEnt
  52. var order = new Entity.Order();
  53. order.InitId();
  54. order.CallId = row["FSH_SessionID"].ToString();
  55. order.FromPhone = row["FSH_FromTel"].ToString();
  56. order.TransferPhone = row["FSH_HotlineNum"].ToString();
  57. order.FromName = row["FSH_LinkName"].ToString();
  58. order.FromGender = (Enum.EGender)sex;
  59. order.IdentityType = (Enum.EIdentityType)identityType;
  60. order.Contact = row["FSH_LinkTel"].ToString();
  61. order.ContactMask = ContactMask;
  62. order.AcceptSms = false;
  63. order.No = row["FSH_Code"].ToString().Trim();
  64. order.AcceptType = row["FSH_PurTypeName"].ToString();
  65. order.Title = row["FSH_Title_ys"].ToString();
  66. order.HotspotId = row["FTE_ProvinceCode"].ToString();
  67. order.HotspotName = row["FTE_TypeName"].ToString();
  68. order.HotspotSpliceName = row["FTE_TypeNameFull"].ToString();
  69. order.PushTypeCode = row["FSH_PushType"].ToString();
  70. order.Content = row["受理内容"].ToString();
  71. order.Status = Enum.EOrderStatus.Visited;
  72. order.StartTime = DateTime.Parse(row["FSH_AddDate"].ToString());
  73. order.ExpiredTime = DateTime.Parse(row["FSH_TTime"].ToString());
  74. order.FiledTime = DateTime.Parse(row["FSH_DisposeDate"].ToString());
  75. order.ExpiredStatus = (Enum.EExpiredStatus)ExpiredStatus;
  76. order.AreaCode = row["SA_AreaCode"].ToString();
  77. order.Street = row["FLM_LKAddress"].ToString();
  78. order.IsDeleted = false;
  79. order.CreationTime = DateTime.Parse(row["FSH_AddDate"].ToString());
  80. order.SmsSended = false;
  81. order.ProcessType = row["FSH_AcceptBMID"].ToString() == CommonTool.CenterId ? Enum.EProcessType.Zhiban : Enum.EProcessType.Jiaoban;
  82. order.IsPublicity = row["FSH_IsPublic"].ToString() == "1"; //0:不公开 ;1:公开 12345在线传递过来的状态
  83. order.IsSecret = row["FLM_SFlag"].ToString() == "1";
  84. order.ActualHandleOrgName = row["FSH_AcceptName"].ToString();
  85. order.ActualHandleOrgCode = ActualHandleOrgCode;
  86. order.ActualOpinion = row["承办意见"].ToString();
  87. order.SourceChannel = row["FSH_FromName"].ToString();
  88. order.IsProvince = !(row["RCI_FlowID"].ToString() == "NULL");
  89. order.AcceptorId = row["FSH_CreateUserID"].ToString();
  90. order.AcceptorName = row["FSH_UserName"].ToString();
  91. order.SourceChannelCode = row["FFM_ProFromCode"].ToString();
  92. order.ActualHandleOrgAreaCode = row["SA_AreaCode"].ToString();
  93. order.ActualHandleOrgAreaName = row["SA_AreaName"].ToString();
  94. order.CallAddress = row["FLM_LKAddress"].ToString();
  95. order.TimeLimitCount = int.Parse(row["FTRB_TLimits"].ToString());
  96. order.TimeLimit = order.TimeLimitCount + "个工作日";
  97. order.AcceptTypeCode = GetAcceptTypeCode(row["FSH_PurTypeName"].ToString());
  98. order.NearlyExpiredTime = DateTime.Parse(row["FSH_EightyTTime"].ToString());
  99. order.Password = row["FED_ReultPWD"].ToString();
  100. order.ProvinceNo = row["FSH_ProCode"].ToString();
  101. order.IsUrgent = row["FSH_Urgent"].ToString() == "1";
  102. order.OldOrderId = row["FSH_FlowID"].ToString();
  103. #endregion
  104. //""WorkflowId"", ""ExpiredTimeConfigId"", ""Longitude"", ""Latitude"", ""ActualHandleStepCode"",""ActualHandleStepName"", ""ActualHandleStepCreateTime"", ""ActualHandleTime"", ""ActualHandlerId"", ""ActualHandlerName"",
  105. //""ExpiredTimeProvince"", ""AcceptorStaffNo"", ""FirstVisitResult"", ""FirstVisitResultCode"", ""CenterToOrgTime"",""ActualHandleStepAcceptTime"", ""HandleDuration"", ""HandleDurationWorkday"", ""AllDuration"",
  106. //""AllDurationWorkday"", ""FileDuration"", ""FileDurationWorkday""
  107. var pgOrderSql = $@"INSERT INTO ""public"".""order"" (""Id"", ""CallId"", ""FromPhone"", ""TransferPhone"", ""FromName"", ""FromGender"", ""IdentityType"",
  108. ""Contact"", ""ContactMask"", ""AcceptSms"",
  109. ""No"", ""AcceptType"", ""Title"", ""HotspotId"", ""HotspotName"", ""HotspotSpliceName"",
  110. ""PushTypeCode"", ""Content"", ""Status"", ""StartTime"", ""ExpiredTime"", ""FiledTime"",
  111. ""ExpiredStatus"", ""AreaCode"", ""Street"",
  112. ""IsDeleted"", ""CreationTime"", ""SmsSended"",
  113. ""ProcessType"", ""IsPublicity"", ""IsSecret"", ""ActualHandleOrgName"", ""ActualHandleOrgCode"", ""ActualOpinion"", ""SourceChannel"", ""IsProvince"",
  114. ""AcceptorId"",""AcceptorName"", ""SourceChannelCode"", ""ActualHandleOrgAreaCode"",
  115. ""ActualHandleOrgAreaName"",""CallAddress"", ""IsCancel"", ""TimeLimit"", ""TimeLimitCount"", ""TimeLimitUnit"",
  116. ""AcceptorOrgCode"", ""AcceptorOrgName"",
  117. ""AcceptTypeCode"", ""Additions"", ""CreatorOrgName"",
  118. ""CreatorName"",""FlowedOrgIds"", ""FlowedUserIds"", ""CreatorOrgLevel"", ""ProvinceNo"", ""ExternalId"", ""Password"",
  119. ""SignerId"", ""SignerName"",
  120. ""City"", ""Source"",""IsResolved"",""IsFormalistWorkOrder"",""IsSensitiveWorkOrders"",""IsUrgent"",""IsProvinceZmhd""
  121. ""EventCategoryExternal"",""NearlyExpiredTime"", ""CsActualHandleOrgIds"", ""CsActualHandleUserIds"", ""HandlerUsers"", ""HandlerOrgs"",
  122. ""Is24HoursComplete"",""IsThreePartyConference"",""IsEvasive"",""IsInactively"",""IsStepUrgent"",""OldOrderId""
  123. ) VALUES (
  124. '{order.Id}', '{order.CallId}', '{order.FromPhone}', '{order.TransferPhone}', '{order.FromName}', {(int)order.FromGender}, {(int)order.IdentityType},
  125. '{order.Contact}', '{order.ContactMask}', '{order.AcceptSms.ToString()}',
  126. '{order.No}', '{order.AcceptType}', '{order.Title}', '{order.HotspotId}', '{order.HotspotName}', '{order.HotspotSpliceName}',
  127. '{order.PushTypeCode}', '{order.Contact}', {(int)order.Status}, '{order.StartTime}', '{order.ExpiredTime}', '{order.FiledTime}',
  128. {(int)order.ExpiredStatus}, '{order.AreaCode}', '{order.Street}',
  129. '{order.IsDeleted.ToString()}', '{order.CreationTime}', '{order.SmsSended.ToString()}',
  130. {(int)order.ProcessType}, '{order.IsPublicity.ToString()}', '{order.IsSecret.ToString()}', '{order.ActualHandleOrgName}', {order.ActualHandleOrgCode}, '{order.ActualOpinion}', '{order.SourceChannel}', '{order.IsProvince.ToString()}',
  131. '{order.AcceptorId}', '{order.AcceptorName}', '{order.SourceChannelCode}', '{order.ActualHandleOrgAreaCode}',
  132. '{order.ActualHandleOrgAreaName}', '{order.CallAddress}','f', '{order.TimeLimit}', {order.TimeLimitCount}, 2,
  133. '001', '热线中心',
  134. '{order.AcceptTypeCode}', '[]', '热线中心',
  135. '坐席', '[""001""]', '[]', 1, '{order.ProvinceNo}', NULL, '{order.Password}',
  136. '08dc0121-5960-4267-817c-b6dc6c068fa4', '坐席',
  137. '{CommonTool.Name}','0','t','f','f','{order.IsUrgent.ToString()}','f'
  138. '19', '{order.NearlyExpiredTime.ToString()}', '[]', '[]', '[]', '[]',
  139. 'f','f','f','f','f','{order.OldOrderId}');";
  140. return pgOrderSql;
  141. }
  142. private string GetAcceptTypeCode(string name)
  143. {
  144. var acceptTypeCode = string.Empty;
  145. switch (name)
  146. {
  147. case "其他":
  148. acceptTypeCode = "40";
  149. break;
  150. case "表扬":
  151. acceptTypeCode = "25";
  152. break;
  153. case "举报":
  154. acceptTypeCode = "30";
  155. break;
  156. case "投诉":
  157. acceptTypeCode = "35";
  158. break;
  159. case "咨询":
  160. acceptTypeCode = "10";
  161. break;
  162. case "建议":
  163. acceptTypeCode = "15";
  164. break;
  165. case "求助":
  166. acceptTypeCode = "20";
  167. break;
  168. case "意见":
  169. acceptTypeCode = "1";
  170. break;
  171. case "惠民帮助":
  172. acceptTypeCode = "2";
  173. break;
  174. case "大气污染举报":
  175. acceptTypeCode = "3";
  176. break;
  177. default:
  178. acceptTypeCode = "0";
  179. break;
  180. }
  181. return acceptTypeCode;
  182. }
  183. }
  184. }