Delay.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using Abp;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace DataTransmission.Joint
  10. {
  11. public class Delay
  12. {
  13. private readonly CommonTool tool = new CommonTool();
  14. private readonly Workflow workflow = new Workflow();
  15. public DataTable GetDelay(string flowId)
  16. {
  17. var conn = tool.GetConSqlServer();
  18. var sql = $@" SELECT * FROM dbo.Flow11_Postpone WHERE FPE_FlowID = {flowId} AND FPE_AuditFlag IN (1) ";
  19. return tool.GetDataTable(sql, conn);
  20. }
  21. public string GetDelaySql(DataTable data, DataRow row, string orderId, DataTable org, DataTable user,DataRow delayModule) {
  22. var delayNum = 0;
  23. var pgDelaySql = string.Empty;
  24. foreach (DataRow delay in data.Rows)
  25. {
  26. var applyOrg = org.AsEnumerable().FirstOrDefault(x => x.Field<int?>("oldBmid").ToString() == delay["FPE_BMID"].ToString());
  27. var applyUser = user.AsEnumerable().FirstOrDefault(x => x.Field<int?>("oldUserId").ToString() == delay["FPE_UserID"].ToString());
  28. Entity.OrderDelay model = new Entity.OrderDelay();
  29. model.InitId();
  30. model.No = row["FSH_Code"].ToString().Trim();
  31. model.OrderId = orderId;
  32. model.ApplyDelayTime = DateTime.Parse(delay["FPE_FPDate"].ToString());
  33. model.ApplyOrgCode = delay["FPE_BMID"].ToString().ToString();
  34. model.CreatorOrgId = model.ApplyOrgCode;
  35. if (applyOrg != null) {
  36. model.ApplyOrgCode = applyOrg["Id"].ToString();
  37. model.ApplyOrgName = applyOrg["Name"].ToString();
  38. model.CreatorOrgId = applyOrg["Id"].ToString();
  39. model.AreaId = applyOrg["AreaId"].ToString();
  40. model.CreatorOrgName = applyOrg["Name"].ToString();
  41. model.CreatorOrgLevel = int.Parse(applyOrg["Level"].ToString());
  42. }
  43. model.EmployeeId = delay["FPE_UserID"].ToString();
  44. model.CreatorId = model.EmployeeId;
  45. if (applyUser != null)
  46. {
  47. model.EmployeeId = applyUser["Id"].ToString();
  48. model.EmployeeName = applyUser["Name"].ToString();
  49. model.CreatorId = applyUser["Id"].ToString();
  50. model.CreatorName = applyUser["Name"].ToString();
  51. }
  52. model.DelayNum = int.Parse(delay["FPE_SLimits"].ToString());
  53. model.DelayReason = delay["FPE_Reson"].ToString();
  54. model.AfterDelay = DateTime.Parse(delay["FPE_STTime"].ToString());
  55. model.DelayState = (Enum.EDelayState)int.Parse(delay["FPE_AuditFlag"].ToString());
  56. model.CreationTime = DateTime.Parse(delay["FPE_FPDate"].ToString());
  57. if (delayNum == 0)
  58. {
  59. pgDelaySql = $@"INSERT INTO ""public"".""order_delay"" (""Id"", ""No"", ""OrderId"", ""ApplyDelayTime"", ""ApplyOrgCode"", ""ApplyOrgName"", ""EmployeeId"", ""DelayNum"", ""DelayUnit"", ""DelayReason"",
  60. ""BeforeDelay"", ""AfterDelay"", ""DelayState"", ""IsProDelay"", ""CreationTime"", ""CreatorOrgId"", ""CreatorId"", ""AreaId"", ""CreatorOrgName"", ""CreatorName"",
  61. ""CreatorOrgLevel"", ""WorkflowId"", ""FileJson"", ""EmployeeName"", ""ExpiredTimeConfigId"", ""FlowedOrgIds"", ""FlowedUserIds"", ""LastModificationTime"", ""IsDeleted"", ""DeletionTime"") VALUES
  62. ('{model.Id}', '{model.No}', '{model.OrderId}', '{model.ApplyDelayTime}', '{model.ApplyOrgCode}', '{model.ApplyOrgName}', '{model.EmployeeId}', '{model.DelayNum}', 2, '{model.DelayReason}',
  63. NULL, '{model.AfterDelay}',{(int)model.DelayState}, 'f', '{model.CreationTime}', '{model.CreatorOrgId}', '{model.CreatorId}', '{model.AreaId}', '{model.CreatorOrgName}', '{model.CreatorName}',
  64. {model.CreatorOrgLevel}, '', NULL, '{model.EmployeeName}', NULL, NULL,NULL, NULL, 'f', NULL)";
  65. }
  66. else
  67. {
  68. pgDelaySql += $@",('{model.Id}', '{model.No}', '{model.OrderId}', '{model.ApplyDelayTime}', '{model.ApplyOrgCode}', '{model.ApplyOrgName}', '{model.EmployeeId}', '{model.DelayNum}', 2, '{model.DelayReason}',
  69. NULL, '{model.AfterDelay}',{(int)model.DelayState}, 'f', '{model.CreationTime}', '{model.CreatorOrgId}', '{model.CreatorId}', '{model.AreaId}', '{model.CreatorOrgName}', '{model.CreatorName}',
  70. {model.CreatorOrgLevel}, '', NULL, '{model.EmployeeName}', NULL, NULL, NULL, NULL, 'f', NULL)";
  71. }
  72. delayNum++;
  73. var pgDelayWorkflow = workflow.GetWorkflow(row["FSH_FlowID"].ToString(), "CityHotline");
  74. var pgDelayWorkflowSql = workflow.GetWorkflowSql(pgDelayWorkflow, row, orderId, org, user, delayModule, model);
  75. if (!string.IsNullOrEmpty(pgDelayWorkflowSql)) {
  76. pgDelaySql += pgDelayWorkflowSql;
  77. }
  78. }
  79. return pgDelaySql += ";";
  80. }
  81. }
  82. }