package service; import com.tencentcloudapi.essbasic.v20210526.models.DescribeFlowDetailInfoResponse; import com.tencentcloudapi.essbasic.v20210526.models.FlowDetailInfo; import common.ServiceController; import common.data.Row; import common.data.Rows; import common.data.SQLFactory; import common.data.UpdateSQL; import org.apache.commons.lang.StringUtils; import restcontroller.webmanage.sale.contracttask.WeChatContractUtil; import static restcontroller.webmanage.sale.contracttask.WeChatConfig.SuperProxyOperatorOpenId; import static restcontroller.webmanage.sale.contracttask.WeChatContractUtil.describeFlowDetailInfo; import static restcontroller.webmanage.sale.contracttask.WeChatContractUtil.setAgent; public class EsignContractTaskService extends ServiceController { @Override public ServiceParam paramSet() { return new ServiceParam("腾讯电子签合同状态查询", 30, RunType.second); } @Override public void serviceRun() throws Exception { System.err.println(getDateTime_Str() + ":开始查询腾讯电子签合同状态..."); Rows rows = dbConnect.runSqlQuery("SELECT * from sa_esign_contract_taskmx WHERE status in ('合同创建','合同签署中','合同即将过期')"); for (Row row : rows) { String flowid = row.getString("flowid"); Long sa_esign_contract_taskmxid = row.getLong("sa_esign_contract_taskmxid"); if (StringUtils.isBlank(flowid)) { continue; } String flowStatus = row.getString("status"); String approveStatus = row.getString("approvestatus"); String tempflowStatus = ""; String tempapproveStatus = ""; String[] flowIds = {flowid}; DescribeFlowDetailInfoResponse res = describeFlowDetailInfo(setAgent(SuperProxyOperatorOpenId), flowIds); if (res.getFlowInfo().length > 0) { FlowDetailInfo flowDetailInfo = res.getFlowInfo()[0]; tempflowStatus = WeChatContractUtil.getFlowStatus(flowDetailInfo.getFlowStatus()); if (flowDetailInfo.getFlowApproverInfos().length > 0) { tempapproveStatus = WeChatContractUtil.getApproveStatus(flowDetailInfo.getFlowApproverInfos()[0].getApproveStatus()); } } boolean isUpdate = false; UpdateSQL updateSQL = SQLFactory.createUpdateSQL(dbConnect, "sa_esign_contract_taskmx"); updateSQL.setUniqueid(sa_esign_contract_taskmxid); if (!flowStatus.equals(tempflowStatus) && !tempflowStatus.equals("")) { updateSQL.setValue("status", tempflowStatus); isUpdate = true; System.err.println(getDateTime_Str() + ":更新合同状态:" + tempflowStatus); } if (!approveStatus.equals(tempapproveStatus) && !tempapproveStatus.equals("")) { updateSQL.setValue("approvestatus", tempapproveStatus); isUpdate = true; System.err.println(getDateTime_Str() + ":更新合同状态:" + tempapproveStatus); } if (isUpdate) { updateSQL.update(); } } System.err.println(getDateTime_Str() + ":查询腾讯电子签合同状态完成"); } }