EsignContractTask.java 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. package restcontroller.webmanage.sale.contracttask;
  2. import beans.datacontrllog.DataContrlLog;
  3. import com.alibaba.fastjson2.JSONObject;
  4. import com.tencentcloudapi.essbasic.v20210526.models.ChannelCancelFlowResponse;
  5. import common.Controller;
  6. import common.YosException;
  7. import common.annotation.API;
  8. import common.data.*;
  9. import lombok.experimental.Delegate;
  10. import restcontroller.R;
  11. import java.math.BigDecimal;
  12. /**
  13. * 电子签合同任务
  14. */
  15. public class EsignContractTask extends Controller {
  16. public EsignContractTask(JSONObject content) throws YosException {
  17. super(content);
  18. }
  19. @API(title = "电子签合同任务-新增或编辑", apiversion = R.ID2026041309401702.v1.class)
  20. public String insertOrUpdate() throws YosException {
  21. Long sa_esign_contract_taskid = content.getLongValue("sa_esign_contract_taskid");
  22. if (sa_esign_contract_taskid <= 0) {
  23. sa_esign_contract_taskid = createTableID("sa_esign_contract_task");
  24. InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_esign_contract_task");
  25. insertSQL.setSiteid(siteid);
  26. insertSQL.setUniqueid(sa_esign_contract_taskid);
  27. insertSQL.setValue("year", content.getStringValue("year"));
  28. insertSQL.setValue("taskname", content.getStringValue("taskname"));
  29. insertSQL.setValue("remarks", content.getStringValue("remarks"));
  30. insertSQL.setValue("status", "新建");
  31. insertSQL.setValue("sa_esign_contract_templateid", content.getLongValue("sa_esign_contract_templateid"));
  32. insertSQL.insert();
  33. DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "新增", "新增合同任务成功").insert();
  34. } else {
  35. Rows rows = dbConnect.runSqlQuery("select 1 from sa_esign_contract_task where sa_esign_contract_taskid=" + sa_esign_contract_taskid);
  36. if (rows.isNotEmpty() && rows.get(0).getString("status").equals("发布")) {
  37. return getErrReturnObject().setErrMsg("当前状态无法编辑").toString();
  38. }
  39. UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_esign_contract_task");
  40. updateSQL.setSiteid(siteid);
  41. updateSQL.setUniqueid(sa_esign_contract_taskid);
  42. updateSQL.setValue("year", content.getStringValue("year"));
  43. updateSQL.setValue("taskname", content.getStringValue("taskname"));
  44. updateSQL.setValue("remarks", content.getStringValue("remarks"));
  45. updateSQL.setValue("sa_esign_contract_templateid", content.getLongValue("sa_esign_contract_templateid"));
  46. updateSQL.update();
  47. DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "编辑", "编辑合同任务成功").insert();
  48. }
  49. content.put("sa_esign_contract_taskid", sa_esign_contract_taskid);
  50. return detail();
  51. }
  52. @API(title = "电子签合同任务-删除", apiversion = R.ID2026041309414502.v1.class)
  53. public String delete() throws YosException {
  54. Long sa_esign_contract_taskid = content.getLongValue("sa_esign_contract_taskid");
  55. Rows rows = dbConnect.runSqlQuery("select * from sa_esign_contract_task where sa_esign_contract_taskid=" + sa_esign_contract_taskid);
  56. if (rows.isNotEmpty() && !rows.get(0).getString("status").equals("新建")) {
  57. return getErrReturnObject().setErrMsg("非新建状态无法删除").toString();
  58. }
  59. DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(this, "sa_esign_contract_task");
  60. deleteSQL.setSiteid(siteid);
  61. deleteSQL.setUniqueid(sa_esign_contract_taskid);
  62. deleteSQL.setWhere("status", "新建");
  63. deleteSQL.delete();
  64. DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "删除", "删除合同任务成功").insert();
  65. return detail();
  66. }
  67. @API(title = "电子签合同任务-详情", apiversion = R.ID2026041309443002.v1.class)
  68. public String detail() throws YosException {
  69. Long sa_esign_contract_taskid = content.getLongValue("sa_esign_contract_taskid");
  70. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_esign_contract_task", "*").setTableAlias("t1");
  71. querySQL.addJoinTable(JOINTYPE.left, "sa_esign_contract_template", "t2", "t1.sa_esign_contract_templateid=t2.sa_esign_contract_templateid",
  72. "type", "templateid", "name");
  73. querySQL.setSiteid(siteid);
  74. querySQL.setWhere("t1.sa_esign_contract_taskid", sa_esign_contract_taskid);
  75. Rows rows = querySQL.query();
  76. Row row = rows.isNotEmpty() ? rows.get(0) : new Row();
  77. return getSucReturnObject().setData(row).toString();
  78. }
  79. @API(title = "电子签合同任务-列表", apiversion = R.ID2026041309474202.v1.class)
  80. public String list() throws YosException {
  81. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_esign_contract_task", "*").setTableAlias("t1");
  82. querySQL.addJoinTable(JOINTYPE.left, "sa_esign_contract_template", "t2", "t1.sa_esign_contract_templateid=t2.sa_esign_contract_templateid",
  83. "type", "templateid", "name");
  84. querySQL.setSiteid(siteid);
  85. if (usertype==2) {
  86. querySQL.setWhere("t1.createuserid", userid);
  87. }
  88. querySQL.setOrderBy("t1.createdate desc");
  89. querySQL.setCondition("t1.taskname","t1.remarks","t2.name");
  90. querySQL.setPage(pageSize, pageNumber);
  91. Rows rows = querySQL.query();
  92. return getSucReturnObject().setData(rows).toString();
  93. }
  94. @API(title = "电子签合同任务-发布", apiversion = R.ID2026041309482202.v1.class)
  95. public String send() throws YosException {
  96. Long sa_esign_contract_taskid = content.getLongValue("sa_esign_contract_taskid");
  97. Rows rows = dbConnect.runSqlQuery("select * from sa_esign_contract_task where sa_esign_contract_taskid=" + sa_esign_contract_taskid);
  98. if (rows.isNotEmpty() && rows.get(0).getString("status").equals("发布")) {
  99. return getErrReturnObject().setErrMsg("当前任务已发布,无需重新发布").toString();
  100. }
  101. Rows rows1 = dbConnect.runSqlQuery("SELECT * from sa_esign_contract_taskmx WHERE sa_esign_contract_taskid=" + sa_esign_contract_taskid + " and (begindate is null or enddate is null)");
  102. if (rows1.isNotEmpty()) {
  103. return getErrReturnObject().setErrMsg("请完善合同期限").toString();
  104. }
  105. Rows rows2 = dbConnect.runSqlQuery("SELECT * from sa_esign_contract_taskmx WHERE sa_esign_contract_taskid=" + sa_esign_contract_taskid + " and y1=0");
  106. if (rows2.isNotEmpty()) {
  107. return getErrReturnObject().setErrMsg("请完善经销商季度任务金额").toString();
  108. }
  109. UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_esign_contract_task");
  110. updateSQL.setSiteid(siteid);
  111. updateSQL.setUniqueid(sa_esign_contract_taskid);
  112. updateSQL.setValue("status", "发布");
  113. updateSQL.setValue("sendby", username);
  114. updateSQL.setValue("senddate", getDateTime_Str());
  115. updateSQL.update();
  116. DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "发布", "发布合同任务成功").insert();
  117. return detail();
  118. }
  119. @API(title = "电子签合同任务-撤回", apiversion = R.ID2026041309485902.v1.class)
  120. public String unsend() throws YosException {
  121. Long sa_esign_contract_taskid = content.getLongValue("sa_esign_contract_taskid");
  122. Rows rows = dbConnect.runSqlQuery("select * from sa_esign_contract_task where sa_esign_contract_taskid=" + sa_esign_contract_taskid);
  123. if (rows.isNotEmpty() && !rows.get(0).getString("status").equals("发布")) {
  124. return getErrReturnObject().setErrMsg("非发布状态无法删除").toString();
  125. }
  126. UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_esign_contract_task");
  127. updateSQL.setSiteid(siteid);
  128. updateSQL.setUniqueid(sa_esign_contract_taskid);
  129. updateSQL.setValue("status", "撤回");
  130. updateSQL.setValue("sendby", "null");
  131. updateSQL.setValue("senddate", "null");
  132. updateSQL.setWhere("status", "发布");
  133. updateSQL.update();
  134. DataContrlLog.createLog(this, "sa_esign_contract_task", sa_esign_contract_taskid, "撤回", "撤回合同任务成功").insert();
  135. Rows taskmxRows = dbConnect.runSqlQuery("select * from sa_esign_contract_taskmx where sa_esign_contract_taskid=" + sa_esign_contract_taskid + " and approvestatus='待签署'");
  136. for (Row taskmxRow : taskmxRows) {
  137. String flowid = taskmxRow.getString("flowid");
  138. WeChatContractUtil.channelCancelFlow(WeChatContractUtil.setAgent(WeChatConfig.SuperProxyOperatorOpenId), flowid, "合同任务已撤回", 1L);
  139. // UpdateSQL updateSQL1 = SQLFactory.createUpdateSQL(this, "sa_esign_contract_taskmx");
  140. // updateSQL1.setSiteid(siteid);
  141. // updateSQL1.setUniqueid(taskmxRow.getLong("sa_esign_contract_taskmxid"));
  142. // updateSQL1.setValue("status", "合同撤回");
  143. // updateSQL1.setValue("approvestatus", "流程已终止");
  144. // updateSQL1.update();
  145. }
  146. return detail();
  147. }
  148. }