From 55e163792c278e4156b6ef814fb5bfd043edf7e4 Mon Sep 17 00:00:00 2001 From: RuicyWu <1063154311@qq.com> Date: Wed, 17 Sep 2025 16:44:41 +0800 Subject: [PATCH] fix bug --- .../esign/node/EsignMultipleSignerNode.java | 1 + .../apps/esign/node/EsignOneSignerNode.java | 80 ++++++++++++++----- .../service/EsignCallbackBizService.java | 4 +- 3 files changed, 62 insertions(+), 23 deletions(-) diff --git a/esign/src/main/java/com/seeyon/apps/esign/node/EsignMultipleSignerNode.java b/esign/src/main/java/com/seeyon/apps/esign/node/EsignMultipleSignerNode.java index 3eec7b0..e0c6cad 100644 --- a/esign/src/main/java/com/seeyon/apps/esign/node/EsignMultipleSignerNode.java +++ b/esign/src/main/java/com/seeyon/apps/esign/node/EsignMultipleSignerNode.java @@ -141,6 +141,7 @@ public class EsignMultipleSignerNode extends ACommonSuperNode { } Map docMap = new HashMap<>(); docMap.put("fileId", fileId); + Thread.sleep(1000); List docs = new ArrayList<>(); docs.add(docMap); Map signFlowConfig = buildSignFlowConfig(formDataVo, formDataMasterBean); diff --git a/esign/src/main/java/com/seeyon/apps/esign/node/EsignOneSignerNode.java b/esign/src/main/java/com/seeyon/apps/esign/node/EsignOneSignerNode.java index e1bbaac..5905a18 100644 --- a/esign/src/main/java/com/seeyon/apps/esign/node/EsignOneSignerNode.java +++ b/esign/src/main/java/com/seeyon/apps/esign/node/EsignOneSignerNode.java @@ -14,10 +14,12 @@ import com.seeyon.apps.ext.workflow.vo.FieldDataVo; import com.seeyon.apps.ext.workflow.vo.FormDataVo; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.cap4.form.bean.FormDataMasterBean; +import com.seeyon.cap4.form.bean.FormDataSubBean; import com.seeyon.cap4.form.bean.FormFieldBean; import com.seeyon.cap4.form.service.CAP4FormManager; import com.seeyon.ctp.common.AppContext; import com.seeyon.ctp.common.exceptions.BusinessException; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -99,15 +101,31 @@ public class EsignOneSignerNode extends ACommonSuperNode { String psnName = getStringField(formDataVo,"甲方签署经办人"); String psnMobile = getStringField(formDataVo,"甲方签署经办人联系方式"); String orgName = configProvider.getBizConfigByKey(EsignConfigConstants.UNITNAME); + List pos = new ArrayList<>(); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataVos = subFormMap.get("甲方签署位置"); + Boolean autoSign = true; + if(subDataVos!= null && subDataVos.size() > 0 && !subDataVos.get(0).isEmpty()){ + for (FormDataVo subDataVo : subDataVos) { + Map fieldDataVoMap = subDataVo.getFieldDataVoMap(); + String pageNo = fieldDataVoMap.get("页码").getStringValue(); + String positionX = fieldDataVoMap.get("X坐标").getStringValue(); + String positionY = fieldDataVoMap.get("Y坐标").getStringValue(); + SignFieldPosition position = new SignFieldPosition(); + position.setPositionPage(pageNo); + position.setPositionX(Float.parseFloat(positionX)); + position.setPositionY(Float.parseFloat(positionY)); + pos.add(position); + } + pos.add(aQiFengposition); + }else { + autoSign = false; + } Signer aSigner = createOrgSigner( - fileId,orgName, null, 1, null, null, null, psnMobile, psnName, null,false + fileId,orgName, pos, 1, null, null, null, psnMobile, psnName, null,autoSign ,sealId); - Signer a2Signer = createOrgQiFengSigner( - fileId,orgName, aQiFengposition, 2, null, null, null, psnMobile, psnName, null,false - ,sealId); List signers = new ArrayList<>(); signers.add(aSigner); - signers.add(a2Signer); return signers; } @@ -120,6 +138,7 @@ public class EsignOneSignerNode extends ACommonSuperNode { fileId = uploadFileService.uploadFileToEsign(attachmentId); } Map docMap = new HashMap<>(); + Thread.sleep(1000); docMap.put("fileId", fileId); List docs = new ArrayList<>(); docs.add(docMap); @@ -201,12 +220,14 @@ public class EsignOneSignerNode extends ACommonSuperNode { return signer; } - private Signer createOrgSigner(String fileId ,String orgName, SignFieldPosition po, int order, + private Signer createOrgSigner(String fileId ,String orgName, List pos, int order, String legalName, String legalId, String orgCode, String transPhone, String psnName, String psnId,Boolean autoSign,String sealId) { Signer signer = new Signer(); signer.setSignerType(1); signer.setSignConfig(mapOf("signOrder", order)); + List signFields = new ArrayList<>(); + signer.setSignFields(signFields); if(Boolean.FALSE.equals(autoSign)){ signer.setNoticeConfig(mapOf("noticeTypes", "1")); @@ -218,23 +239,40 @@ public class EsignOneSignerNode extends ACommonSuperNode { ) ) ); - signer.setOrgSignerInfo(orgInfo); + NormalSignFieldConfig normalSignFieldConfig = new NormalSignFieldConfig(); + normalSignFieldConfig.setAssignedSealId(sealId); + normalSignFieldConfig.setFreeMode(true); + normalSignFieldConfig.setAutoSign(false); + SignField field = new SignField(); + field.setSignFieldType(0); + field.setNormalSignFieldConfig(normalSignFieldConfig); + field.setFileId(fileId); + signFields.add(field); + }else { + for (SignFieldPosition po : pos) { + NormalSignFieldConfig fieldConfig = new NormalSignFieldConfig(); + fieldConfig.setAssignedSealId(sealId); + fieldConfig.setAutoSign(autoSign); + if("ALL".equals(po.getAcrossPageMode())){ + fieldConfig.setSignFieldPosition(po); + fieldConfig.setSignFieldStyle(2); + SignField qiFengfield = new SignField(); + qiFengfield.setSignFieldType(0); + qiFengfield.setNormalSignFieldConfig(fieldConfig); + qiFengfield.setFileId(fileId); + signFields.add(qiFengfield); + }else { + fieldConfig.setSignFieldPosition(po); + fieldConfig.setSignFieldStyle(1); + SignField field = new SignField(); + field.setSignFieldType(0); + field.setNormalSignFieldConfig(fieldConfig); + field.setFileId(fileId); + signFields.add(field); + } + } } - - List signFields = new ArrayList<>(); - - NormalSignFieldConfig normalSignFieldConfig = new NormalSignFieldConfig(); - normalSignFieldConfig.setAssignedSealId(sealId); - normalSignFieldConfig.setFreeMode(true); - normalSignFieldConfig.setAutoSign(false); - SignField field = new SignField(); - field.setSignFieldType(0); - field.setNormalSignFieldConfig(normalSignFieldConfig); - field.setFileId(fileId); - signFields.add(field); - - signer.setSignFields(signFields); return signer; } diff --git a/esign/src/main/java/com/seeyon/apps/esign/service/EsignCallbackBizService.java b/esign/src/main/java/com/seeyon/apps/esign/service/EsignCallbackBizService.java index 9d730d8..1f73083 100644 --- a/esign/src/main/java/com/seeyon/apps/esign/service/EsignCallbackBizService.java +++ b/esign/src/main/java/com/seeyon/apps/esign/service/EsignCallbackBizService.java @@ -48,11 +48,11 @@ public class EsignCallbackBizService { updateFields.add(FormUpdateField.build().fieldName(updatefield).value(refId)); updateFields.add(FormUpdateField.build().fieldName(status).value(enumItemId)); conditions.add(FormWhereCondition.build().value(tempFormId).fieldName("ID")); - formDataOperator.updateMasterForm(updateFields,tablename,conditions); JSONObject params = new JSONObject(); params.put("message", "签署完成!!!"); params.put("returnCode", 1); protUtil.sendPostNotification(params.toString(), configProvider.getBizConfigByKey(EsignConfigConstants.nodeTokenUrl), oaFlowId); + formDataOperator.updateMasterForm(updateFields,tablename,conditions); } public void handleFailSignCallbackBiz(String tableName,String statusField,String formId,String failMsg) throws Exception { @@ -68,11 +68,11 @@ public class EsignCallbackBizService { List updateFields = new ArrayList<>(); updateFields.add(FormUpdateField.build().fieldName(status).value(enumItemId)); conditions.add(FormWhereCondition.build().value(tempFormId).fieldName("ID")); - formDataOperator.updateMasterForm(updateFields,tableName,conditions); JSONObject params = new JSONObject(); params.put("message", "签署失败: " + failMsg); params.put("returnCode", 2); protUtil.sendPostNotification(params.toString(), configProvider.getBizConfigByKey(EsignConfigConstants.nodeTokenUrl), oaFlowId); + formDataOperator.updateMasterForm(updateFields,tableName,conditions); } private String getModuleId(String formId) {