Execute.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. using Abp;
  2. using DataTransmission.Joint;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace DataTransmission
  10. {
  11. public class Execute
  12. {
  13. private readonly CommonTool tool = new CommonTool();
  14. private readonly Order order = new Order();
  15. private readonly Workflow workflow = new Workflow();
  16. private readonly Public _public = new Public();
  17. private readonly Visit visit = new Visit();
  18. private readonly Delay delay = new Delay();
  19. private readonly Knowledge knowledge = new Knowledge();
  20. private readonly Organize organize = new Organize();
  21. private readonly User user = new User();
  22. private readonly Notice notice = new Notice();
  23. private readonly OrderPublic orderPublic = new OrderPublic();
  24. public void ExecuteSql(DataTable orderTable, Entity.Config config)
  25. {
  26. try
  27. {
  28. DataTable org = GetPgOrganize();
  29. DataTable user = GetPgUser();
  30. foreach (DataRow row in orderTable.Rows)
  31. {
  32. var pgConn = tool.GetConPgSql();
  33. var pgOrder = tool.GetDataTable($@" SELECT * from ""order"" where ""No"" ='{row["FSH_Code"]}'; ", pgConn);
  34. if (pgOrder != null && pgOrder.Rows.Count > 0)
  35. {
  36. continue;
  37. }
  38. var orderId = SequentialGuidGenerator.Instance.Create().ToString("D");
  39. var VisitId = SequentialGuidGenerator.Instance.Create().ToString("D");
  40. var module = tool.GetDataTable($@" SELECT * from ""workflow_module"" ; ", pgConn);
  41. var definition = tool.GetDataTable($@"SELECT * FROM workflow_definition WHERE ""Status"" =1 ; ", pgConn);
  42. //工单
  43. var pgOrderSql = order.GetOrderISql(row, orderId, org, user, config);
  44. //工单流程
  45. var orderModule = module.AsEnumerable().FirstOrDefault(x => x.Field<string>("Code").ToString() == "OrderHandle");
  46. //var orderDefinition = definition.AsEnumerable().FirstOrDefault(x => x.Field<string>("Id").ToString() == orderModule["DefinitionId"].ToString());
  47. var pgOrderWorkflow = workflow.GetWorkflow(row["FSH_FlowID"].ToString(), "CityHotline");
  48. var pgOrderWorkflowSql = workflow.GetWorkflowSql(pgOrderWorkflow, row, orderId, org, user, orderModule,null, config);
  49. //发布
  50. var publicTable = _public.GetOldPublic(row["FSH_FlowID"].ToString());
  51. var publicSql = _public.GetOldPublicSql(publicTable, row, orderId, org, user, config);
  52. //回访
  53. var appraiseTable = visit.GetVisit(row["FSH_FlowID"].ToString());
  54. var visitSql = visit.GetVisitSql(appraiseTable, row, VisitId, orderId, org, user, config);
  55. //延期
  56. var delayTable = delay.GetDelay(row["FSH_FlowID"].ToString());
  57. var delayModule = module.AsEnumerable().FirstOrDefault(x => x.Field<string>("Code").ToString() == "OrderDelay");
  58. var delaySql = delay.GetDelaySql(delayTable, row, orderId, org, user, delayModule, config);
  59. var pgSql = pgOrderSql;
  60. pgSql = pgOrderWorkflowSql.Length > 0 ? pgSql + pgOrderWorkflowSql : pgSql;
  61. pgSql = publicSql.Length > 0 ? pgSql + publicSql : pgSql;
  62. pgSql = visitSql.Length > 0 ? pgSql + visitSql : pgSql;
  63. pgSql = delaySql.Length > 0 ? pgSql + delaySql : pgSql;
  64. //tool.SaveLog("SQL :" + pgSql + " ;", 1);
  65. tool.Execute(pgSql, pgConn);
  66. }
  67. }
  68. catch (Exception e)
  69. {
  70. tool.SaveLog(e.ToString(), 1);
  71. throw;
  72. }
  73. }
  74. public void ExecuteTypeSql()
  75. {
  76. var pgConn = tool.GetConPgSql();
  77. var pgSql = knowledge.GetKnowledgeTypeSql();
  78. tool.SaveLog("KnowledgeTypeSQL :" + pgSql + " ;", 1);
  79. //tool.Execute(pgSql, pgConn);
  80. }
  81. public void ExecuteOrganizeSql()
  82. {
  83. var pgConn = tool.GetConPgSql();
  84. var pgSql = organize.GetOrganize();
  85. tool.SaveLog("OrganizeSQL :" + pgSql + " ;", 1);
  86. //tool.Execute(pgSql, pgConn);
  87. }
  88. public void ExecuteUserSql()
  89. {
  90. var pgConn = tool.GetConPgSql();
  91. var pgSql = user.GetUserSql();
  92. tool.SaveLog("UserSQL :" + pgSql + " ;", 1);
  93. //tool.Execute(pgSql, pgConn);
  94. }
  95. public void ExecuteStaffSql()
  96. {
  97. var pgConn = tool.GetConPgSql();
  98. var pgSql = user.GetStaffNoSql();
  99. tool.SaveLog("StaffSQL :" + pgSql + " ;", 1);
  100. //tool.Execute(pgSql, pgConn);
  101. }
  102. /// <summary>
  103. /// 同步工单已发布数据
  104. /// </summary>
  105. /// <param name="stTime"></param>
  106. /// <param name="endTime"></param>
  107. public void ExecuteInsertOrderPublic(string stTime, string endTime)
  108. {
  109. var know = orderPublic.GetOldNotice(stTime, endTime);
  110. foreach (DataRow item in know.Rows)
  111. {
  112. var insert = orderPublic.GetNoticeSql(item);
  113. if (!string.IsNullOrEmpty(insert))
  114. {
  115. var pgConn = tool.GetConPgSql();
  116. // tool.SaveLog("KnowledgeSQL :" + insert + " ;", 1);
  117. tool.Execute(insert, pgConn);
  118. }
  119. }
  120. }
  121. /// <summary>
  122. /// 消息通知
  123. /// </summary>
  124. /// <param name="stTime"></param>
  125. /// <param name="endTime"></param>
  126. public void ExecuteInsertNotice(string stTime, string endTime)
  127. {
  128. var know = notice.GetOldNotice(stTime, endTime);
  129. foreach (DataRow item in know.Rows)
  130. {
  131. var insert = notice.GetNoticeSql(item);
  132. if (!string.IsNullOrEmpty(insert))
  133. {
  134. var pgConn = tool.GetConPgSql();
  135. // tool.SaveLog("KnowledgeSQL :" + insert + " ;", 1);
  136. tool.Execute(insert, pgConn);
  137. }
  138. }
  139. }
  140. public void ExecuteInsertKnowledge(string stTime, string endTime)
  141. {
  142. var know = knowledge.GetKnowledge(stTime, endTime);
  143. foreach (DataRow item in know.Rows)
  144. {
  145. var insert = knowledge.GetKnowledgeSql(item);
  146. if (!string.IsNullOrEmpty(insert))
  147. {
  148. var pgConn = tool.GetConPgSql();
  149. //tool.SaveLog("KnowledgeSQL :" + insert + " ;", 1);
  150. tool.Execute(insert, pgConn);
  151. }
  152. }
  153. }
  154. public DataTable GetPgOrganize()
  155. {
  156. var conn = tool.GetConPgSql();
  157. var sql = $@" SELECT * FROM system_organize ";
  158. return tool.GetDataTable(sql, conn);
  159. }
  160. public DataTable GetPgUser()
  161. {
  162. var conn = tool.GetConPgSql();
  163. var sql = $@" SELECT * FROM ""user"" ";
  164. return tool.GetDataTable(sql, conn);
  165. }
  166. }
  167. }