From 5799fda3b473bd4f1925587b256a8ab465db6458 Mon Sep 17 00:00:00 2001
From: RuicyWu <1063154311@qq.com>
Date: Fri, 27 Feb 2026 16:01:49 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
WEB-INF/src_signtask/spring/spring.xml | 1 +
.../callback/EsignCallbackFormBizService.java | 5 +-
.../SignTaskCallBackController.java | 1 -
.../job/SignTaskHandleFailJob.java | 68 +++++++++++++++++++
.../apps/src_signtask/job/SignTaskJob.java | 16 +++--
5 files changed, 85 insertions(+), 6 deletions(-)
create mode 100644 src/main/java/com/seeyon/apps/src_signtask/job/SignTaskHandleFailJob.java
diff --git a/WEB-INF/src_signtask/spring/spring.xml b/WEB-INF/src_signtask/spring/spring.xml
index e1e5aa7..a5394d3 100644
--- a/WEB-INF/src_signtask/spring/spring.xml
+++ b/WEB-INF/src_signtask/spring/spring.xml
@@ -5,6 +5,7 @@
+
diff --git a/src/main/java/com/seeyon/apps/src_signtask/callback/EsignCallbackFormBizService.java b/src/main/java/com/seeyon/apps/src_signtask/callback/EsignCallbackFormBizService.java
index cce88c8..094bd94 100644
--- a/src/main/java/com/seeyon/apps/src_signtask/callback/EsignCallbackFormBizService.java
+++ b/src/main/java/com/seeyon/apps/src_signtask/callback/EsignCallbackFormBizService.java
@@ -39,6 +39,7 @@ public class EsignCallbackFormBizService implements EsignCallbackBizService {
conditions.add(FormWhereCondition.build().value(formId).fieldName("ID"));
FormTableExecutor.update(tablename,updateFields,conditions);
//调用第三方回调接口
+ handleThireePartyCallback(formId,refId);
}
private void handleThireePartyCallback(String formId,String refId) throws Exception {
@@ -62,7 +63,9 @@ public class EsignCallbackFormBizService implements EsignCallbackBizService {
List conditions = new ArrayList<>();
List updateFields = new ArrayList<>();
updateFields.add(FormUpdateField.build().fieldName(status).value(enumItemId));
- conditions.add(FormWhereCondition.build().value(formId).fieldName("签署任务编号"));
+ TableContext tableContext = FormTableExecutor.master(configProvider.getBizConfigByKey(SignTaskConstants.SIGNTASK_FORMNO));
+ updateFields.add(FormUpdateField.build().fieldName(tableContext.getTableBean().getFieldBeanByDisplay("签署失败原因").getColumnName()).value(failMsg));
+ conditions.add(FormWhereCondition.build().value(formId).fieldName("ID"));
FormTableExecutor.update(tableName,updateFields,conditions);
}
diff --git a/src/main/java/com/seeyon/apps/src_signtask/controller/SignTaskCallBackController.java b/src/main/java/com/seeyon/apps/src_signtask/controller/SignTaskCallBackController.java
index 9a9f793..38745b9 100644
--- a/src/main/java/com/seeyon/apps/src_signtask/controller/SignTaskCallBackController.java
+++ b/src/main/java/com/seeyon/apps/src_signtask/controller/SignTaskCallBackController.java
@@ -60,7 +60,6 @@ public class SignTaskCallBackController extends BaseController {
}
//signLinkService.del(flowId);
response.setStatus(HttpServletResponse.SC_OK);
- return;
}else if(action.equals("SIGN_MISSON_COMPLETE") && callbackParams.getSignResult() == 2 && callbackParams.getSignOrder() == 2){
//发送消息
// MessageVo messageVo = new MessageVo();
diff --git a/src/main/java/com/seeyon/apps/src_signtask/job/SignTaskHandleFailJob.java b/src/main/java/com/seeyon/apps/src_signtask/job/SignTaskHandleFailJob.java
new file mode 100644
index 0000000..78022d7
--- /dev/null
+++ b/src/main/java/com/seeyon/apps/src_signtask/job/SignTaskHandleFailJob.java
@@ -0,0 +1,68 @@
+package com.seeyon.apps.src_signtask.job;
+
+
+import com.seeyon.apps.esign.po.param.JsonParamSource;
+import com.seeyon.apps.esign.service.ContractCreateService;
+import com.seeyon.apps.ext.quartz.AbstractQuartzTask;
+import com.seeyon.apps.src_signtask.config.SignTaskConfigProvider;
+import com.seeyon.apps.src_signtask.constants.SignTaskConstants;
+import com.seeyon.ctp.common.AppContext;
+import com.seeyon.ctp.common.exceptions.BusinessException;
+import com.seeyon.utils.form.*;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class SignTaskHandleFailJob extends AbstractQuartzTask {
+
+ private static final Log log = LogFactory.getLog(SignTaskHandleFailJob.class);
+ private SignTaskConfigProvider signTaskConfigProvider = (SignTaskConfigProvider) AppContext.getBean("signTaskConfigProvider");
+ private ContractCreateService contractCreateService = (ContractCreateService) AppContext.getBean("contractCreateService");
+
+ @Override
+ public String taskRun(String s) throws Exception {
+ log.info("开始批量签署失败的任务");
+ startHandleTask();
+ log.info("批量签署失败的任务结束");
+ return "";
+ }
+
+ private void startHandleTask() throws BusinessException {
+ Integer pageNum = 1;
+ Integer pageSize = 20;
+ Map dataMap = null;
+ TableContext tableContext = FormTableExecutor.master(signTaskConfigProvider.getBizConfigByKey(SignTaskConstants.SIGNTASK_FORMNO));
+ List conditionList = new ArrayList<>();
+ conditionList.add(FormWhereCondition.build().display("签署状态").value(EnumMapUtils.getEnumItemValueByDisplayValue(tableContext.getTableBean(),"签署状态","签署失败")));
+ List formColumns = FormTableExecutor.pageQuery(tableContext, null, conditionList, pageNum, pageSize, true);
+ if(formColumns.size() <= 0) {
+ return;
+ }
+ do {
+ for (FormColumn formColumn : formColumns) {
+ try{
+ List updateConditions = new ArrayList();
+ updateConditions.add(FormWhereCondition.build().display("ID").value(formColumn.getId()));
+ List updateFields = new ArrayList<>();
+ updateFields.add(FormUpdateField.build().display("E签宝流程编号").value("0"));
+ updateFields.add(FormUpdateField.build().display("签署状态").value(EnumMapUtils.getEnumItemValueByDisplayValue(tableContext.getTableBean(),"签署状态","未签署")));
+ FormTableExecutor.update(tableContext,updateFields,updateConditions);
+ }catch (Exception e) {
+ log.error(e.getMessage(),e);
+ }
+ }
+ pageNum++;
+ formColumns = FormTableExecutor.pageQuery(tableContext, null, conditionList, pageNum, pageSize, true);
+ }while (formColumns.size() > 0 );
+
+ }
+
+ @Override
+ public String getName() {
+ return "签署任务失败处理任务";
+ }
+}
diff --git a/src/main/java/com/seeyon/apps/src_signtask/job/SignTaskJob.java b/src/main/java/com/seeyon/apps/src_signtask/job/SignTaskJob.java
index 4c489f5..4d4f4db 100644
--- a/src/main/java/com/seeyon/apps/src_signtask/job/SignTaskJob.java
+++ b/src/main/java/com/seeyon/apps/src_signtask/job/SignTaskJob.java
@@ -38,6 +38,8 @@ public class SignTaskJob extends AbstractQuartzTask {
TableContext tableContext = FormTableExecutor.master(signTaskConfigProvider.getBizConfigByKey(SignTaskConstants.SIGNTASK_FORMNO));
List conditionList = new ArrayList<>();
conditionList.add(FormWhereCondition.build().display("签署状态").value(EnumMapUtils.getEnumItemValueByDisplayValue(tableContext.getTableBean(),"签署状态","未签署")));
+ conditionList.add(FormWhereCondition.build().display("E签宝流程编号").clauseFactor(ClauseFactor.NULL).startWithBracket(true).concatFactor(ClauseFactor.OR));
+ conditionList.add(FormWhereCondition.build().display("E签宝流程编号").value("0").endWithBracket(true));
List formColumns = FormTableExecutor.pageQuery(tableContext, null, conditionList, pageNum, pageSize, true);
if(formColumns.size() <= 0) {
return;
@@ -57,18 +59,24 @@ public class SignTaskJob extends AbstractQuartzTask {
dataMap.put("signers",fieldsMap.get("签署方配置"));
JsonParamSource jsonParamSource = new JsonParamSource(dataMap);
jsonParamSource.setCallbackBaseUrl("/signtaskcallback.do?method=callback");
+ List updateConditions = new ArrayList();
+ List updateFields = new ArrayList<>();
+ updateConditions.add(FormWhereCondition.build().display("ID").value(formColumn.getId()));
try{
String flowId = contractCreateService.startSign(jsonParamSource);
log.info("签署任务编号为"+fieldsMap.get("签署任务编号")+"的签署任务发起成功,流程编号为"+flowId);
- List updateConditions = new ArrayList();
- updateConditions.add(FormWhereCondition.build().display("ID").value(formColumn.getId()));
- List updateFields = new ArrayList<>();
updateFields.add(FormUpdateField.build().display("E签宝流程编号").value(flowId));
- FormTableExecutor.update(tableContext,updateFields,updateConditions);
}catch (Exception e) {
+ updateFields.add(FormUpdateField.build().display("签署失败原因").value(e.getMessage()));
log.error(e.getMessage(),e);
log.error("签署任务编号为"+fieldsMap.get("签署任务编号")+"的签署任务发起失败");
}
+ try {
+ FormTableExecutor.update(tableContext,updateFields,updateConditions);
+ }catch (Exception e) {
+ log.error("更新签署任务档案底表失败:" + e.getMessage());
+ log.error(e.getMessage(),e);
+ }
}
pageNum++;
formColumns = FormTableExecutor.pageQuery(tableContext, null, conditionList, pageNum, pageSize, true);