修复bug

This commit is contained in:
2026-02-27 16:01:49 +08:00
parent d614dc7b94
commit 5799fda3b4
5 changed files with 85 additions and 6 deletions

View File

@@ -5,6 +5,7 @@
<bean id="signTaskConfigProvider" class="com.seeyon.apps.src_signtask.config.SignTaskConfigProvider"/> <bean id="signTaskConfigProvider" class="com.seeyon.apps.src_signtask.config.SignTaskConfigProvider"/>
<bean id="formCreateService" class="com.seeyon.apps.src_signtask.service.FormCreateService"/> <bean id="formCreateService" class="com.seeyon.apps.src_signtask.service.FormCreateService"/>
<bean id="signTaskJob" class="com.seeyon.apps.src_signtask.job.SignTaskJob"/> <bean id="signTaskJob" class="com.seeyon.apps.src_signtask.job.SignTaskJob"/>
<bean id="signTaskHandleFailJob" class="com.seeyon.apps.src_signtask.job.SignTaskHandleFailJob"/>
<bean id="fileHandlerService" class="com.seeyon.apps.src_signtask.service.FileHandlerService"/> <bean id="fileHandlerService" class="com.seeyon.apps.src_signtask.service.FileHandlerService"/>
<bean id="esignCallbackFormBizService" class="com.seeyon.apps.src_signtask.callback.EsignCallbackFormBizService"/> <bean id="esignCallbackFormBizService" class="com.seeyon.apps.src_signtask.callback.EsignCallbackFormBizService"/>
<bean name="/signtaskcallback.do" class="com.seeyon.apps.src_signtask.controller.SignTaskCallBackController"> <bean name="/signtaskcallback.do" class="com.seeyon.apps.src_signtask.controller.SignTaskCallBackController">

View File

@@ -39,6 +39,7 @@ public class EsignCallbackFormBizService implements EsignCallbackBizService {
conditions.add(FormWhereCondition.build().value(formId).fieldName("ID")); conditions.add(FormWhereCondition.build().value(formId).fieldName("ID"));
FormTableExecutor.update(tablename,updateFields,conditions); FormTableExecutor.update(tablename,updateFields,conditions);
//调用第三方回调接口 //调用第三方回调接口
handleThireePartyCallback(formId,refId);
} }
private void handleThireePartyCallback(String formId,String refId) throws Exception { private void handleThireePartyCallback(String formId,String refId) throws Exception {
@@ -62,7 +63,9 @@ public class EsignCallbackFormBizService implements EsignCallbackBizService {
List<FormWhereCondition> conditions = new ArrayList<>(); List<FormWhereCondition> conditions = new ArrayList<>();
List<FormUpdateField> updateFields = new ArrayList<>(); List<FormUpdateField> updateFields = new ArrayList<>();
updateFields.add(FormUpdateField.build().fieldName(status).value(enumItemId)); 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); FormTableExecutor.update(tableName,updateFields,conditions);
} }

View File

@@ -60,7 +60,6 @@ public class SignTaskCallBackController extends BaseController {
} }
//signLinkService.del(flowId); //signLinkService.del(flowId);
response.setStatus(HttpServletResponse.SC_OK); response.setStatus(HttpServletResponse.SC_OK);
return;
}else if(action.equals("SIGN_MISSON_COMPLETE") && callbackParams.getSignResult() == 2 && callbackParams.getSignOrder() == 2){ }else if(action.equals("SIGN_MISSON_COMPLETE") && callbackParams.getSignResult() == 2 && callbackParams.getSignOrder() == 2){
//发送消息 //发送消息
// MessageVo messageVo = new MessageVo(); // MessageVo messageVo = new MessageVo();

View File

@@ -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<String,Object> dataMap = null;
TableContext tableContext = FormTableExecutor.master(signTaskConfigProvider.getBizConfigByKey(SignTaskConstants.SIGNTASK_FORMNO));
List<FormWhereCondition> conditionList = new ArrayList<>();
conditionList.add(FormWhereCondition.build().display("签署状态").value(EnumMapUtils.getEnumItemValueByDisplayValue(tableContext.getTableBean(),"签署状态","签署失败")));
List<FormColumn> formColumns = FormTableExecutor.pageQuery(tableContext, null, conditionList, pageNum, pageSize, true);
if(formColumns.size() <= 0) {
return;
}
do {
for (FormColumn formColumn : formColumns) {
try{
List<FormWhereCondition> updateConditions = new ArrayList<FormWhereCondition>();
updateConditions.add(FormWhereCondition.build().display("ID").value(formColumn.getId()));
List<FormUpdateField> 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 "签署任务失败处理任务";
}
}

View File

@@ -38,6 +38,8 @@ public class SignTaskJob extends AbstractQuartzTask {
TableContext tableContext = FormTableExecutor.master(signTaskConfigProvider.getBizConfigByKey(SignTaskConstants.SIGNTASK_FORMNO)); TableContext tableContext = FormTableExecutor.master(signTaskConfigProvider.getBizConfigByKey(SignTaskConstants.SIGNTASK_FORMNO));
List<FormWhereCondition> conditionList = new ArrayList<>(); List<FormWhereCondition> conditionList = new ArrayList<>();
conditionList.add(FormWhereCondition.build().display("签署状态").value(EnumMapUtils.getEnumItemValueByDisplayValue(tableContext.getTableBean(),"签署状态","未签署"))); 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<FormColumn> formColumns = FormTableExecutor.pageQuery(tableContext, null, conditionList, pageNum, pageSize, true); List<FormColumn> formColumns = FormTableExecutor.pageQuery(tableContext, null, conditionList, pageNum, pageSize, true);
if(formColumns.size() <= 0) { if(formColumns.size() <= 0) {
return; return;
@@ -57,18 +59,24 @@ public class SignTaskJob extends AbstractQuartzTask {
dataMap.put("signers",fieldsMap.get("签署方配置")); dataMap.put("signers",fieldsMap.get("签署方配置"));
JsonParamSource jsonParamSource = new JsonParamSource(dataMap); JsonParamSource jsonParamSource = new JsonParamSource(dataMap);
jsonParamSource.setCallbackBaseUrl("/signtaskcallback.do?method=callback"); jsonParamSource.setCallbackBaseUrl("/signtaskcallback.do?method=callback");
List<FormWhereCondition> updateConditions = new ArrayList<FormWhereCondition>();
List<FormUpdateField> updateFields = new ArrayList<>();
updateConditions.add(FormWhereCondition.build().display("ID").value(formColumn.getId()));
try{ try{
String flowId = contractCreateService.startSign(jsonParamSource); String flowId = contractCreateService.startSign(jsonParamSource);
log.info("签署任务编号为"+fieldsMap.get("签署任务编号")+"的签署任务发起成功,流程编号为"+flowId); log.info("签署任务编号为"+fieldsMap.get("签署任务编号")+"的签署任务发起成功,流程编号为"+flowId);
List<FormWhereCondition> updateConditions = new ArrayList<FormWhereCondition>();
updateConditions.add(FormWhereCondition.build().display("ID").value(formColumn.getId()));
List<FormUpdateField> updateFields = new ArrayList<>();
updateFields.add(FormUpdateField.build().display("E签宝流程编号").value(flowId)); updateFields.add(FormUpdateField.build().display("E签宝流程编号").value(flowId));
FormTableExecutor.update(tableContext,updateFields,updateConditions);
}catch (Exception e) { }catch (Exception e) {
updateFields.add(FormUpdateField.build().display("签署失败原因").value(e.getMessage()));
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
log.error("签署任务编号为"+fieldsMap.get("签署任务编号")+"的签署任务发起失败"); log.error("签署任务编号为"+fieldsMap.get("签署任务编号")+"的签署任务发起失败");
} }
try {
FormTableExecutor.update(tableContext,updateFields,updateConditions);
}catch (Exception e) {
log.error("更新签署任务档案底表失败:" + e.getMessage());
log.error(e.getMessage(),e);
}
} }
pageNum++; pageNum++;
formColumns = FormTableExecutor.pageQuery(tableContext, null, conditionList, pageNum, pageSize, true); formColumns = FormTableExecutor.pageQuery(tableContext, null, conditionList, pageNum, pageSize, true);