EsignContractTaskService.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package service;
  2. import com.tencentcloudapi.essbasic.v20210526.models.DescribeFlowDetailInfoResponse;
  3. import com.tencentcloudapi.essbasic.v20210526.models.FlowDetailInfo;
  4. import common.ServiceController;
  5. import common.data.Row;
  6. import common.data.Rows;
  7. import common.data.SQLFactory;
  8. import common.data.UpdateSQL;
  9. import org.apache.commons.lang.StringUtils;
  10. import restcontroller.webmanage.sale.contracttask.WeChatContractUtil;
  11. import static restcontroller.webmanage.sale.contracttask.WeChatConfig.SuperProxyOperatorOpenId;
  12. import static restcontroller.webmanage.sale.contracttask.WeChatContractUtil.describeFlowDetailInfo;
  13. import static restcontroller.webmanage.sale.contracttask.WeChatContractUtil.setAgent;
  14. public class EsignContractTaskService extends ServiceController {
  15. @Override
  16. public ServiceParam paramSet() {
  17. return new ServiceParam("腾讯电子签合同状态查询", 30, RunType.second);
  18. }
  19. @Override
  20. public void serviceRun() throws Exception {
  21. System.err.println(getDateTime_Str() + ":开始查询腾讯电子签合同状态...");
  22. Rows rows = dbConnect.runSqlQuery("SELECT * from sa_esign_contract_taskmx WHERE status in ('合同创建','合同签署中','合同即将过期')");
  23. for (Row row : rows) {
  24. String flowid = row.getString("flowid");
  25. Long sa_esign_contract_taskmxid = row.getLong("sa_esign_contract_taskmxid");
  26. if (StringUtils.isBlank(flowid)) {
  27. continue;
  28. }
  29. String flowStatus = row.getString("status");
  30. String approveStatus = row.getString("approvestatus");
  31. String tempflowStatus = "";
  32. String tempapproveStatus = "";
  33. String[] flowIds = {flowid};
  34. DescribeFlowDetailInfoResponse res = describeFlowDetailInfo(setAgent(SuperProxyOperatorOpenId), flowIds);
  35. if (res.getFlowInfo().length > 0) {
  36. FlowDetailInfo flowDetailInfo = res.getFlowInfo()[0];
  37. tempflowStatus = WeChatContractUtil.getFlowStatus(flowDetailInfo.getFlowStatus());
  38. if (flowDetailInfo.getFlowApproverInfos().length > 0) {
  39. tempapproveStatus = WeChatContractUtil.getApproveStatus(flowDetailInfo.getFlowApproverInfos()[0].getApproveStatus());
  40. }
  41. }
  42. boolean isUpdate = false;
  43. UpdateSQL updateSQL = SQLFactory.createUpdateSQL(dbConnect, "sa_esign_contract_taskmx");
  44. updateSQL.setUniqueid(sa_esign_contract_taskmxid);
  45. if (!flowStatus.equals(tempflowStatus) && !tempflowStatus.equals("")) {
  46. updateSQL.setValue("status", tempflowStatus);
  47. isUpdate = true;
  48. System.err.println(getDateTime_Str() + ":更新合同状态:" + tempflowStatus);
  49. }
  50. if (!approveStatus.equals(tempapproveStatus) && !tempapproveStatus.equals("")) {
  51. updateSQL.setValue("approvestatus", tempapproveStatus);
  52. isUpdate = true;
  53. System.err.println(getDateTime_Str() + ":更新合同状态:" + tempapproveStatus);
  54. }
  55. if (isUpdate) {
  56. updateSQL.update();
  57. }
  58. }
  59. System.err.println(getDateTime_Str() + ":查询腾讯电子签合同状态完成");
  60. }
  61. }