From 32387301ac4524de7df8c3ac77706d2bc199ff42 Mon Sep 17 00:00:00 2001 From: FCL Date: Wed, 25 Mar 2026 13:58:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:iwork=E7=94=A8=E5=8D=B0=E5=8F=91=E8=B5=B7?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ReportDocumentAssistService.java | 119 +++++++++++++++--- 1 file changed, 104 insertions(+), 15 deletions(-) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java index b6febb02..2ac15bf7 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java @@ -25,6 +25,7 @@ import com.zt.plat.module.qms.common.data.service.DataTemplateService; import com.zt.plat.module.qms.common.dic.controller.vo.DictionaryBusinessRespVO; import com.zt.plat.module.qms.common.dic.service.DictionaryBusinessService; import com.zt.plat.module.system.api.iwork.IWorkIntegrationApi; +import com.zt.plat.module.system.api.iwork.dto.IWorkGenericWorkflowCreateReqDTO; import com.zt.plat.module.system.api.iwork.dto.IWorkOperationRespDTO; import com.zt.plat.module.system.api.iwork.dto.IWorkWorkflowCreateReqDTO; import jakarta.annotation.Resource; @@ -34,6 +35,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; import java.io.IOException; import java.io.InputStream; @@ -42,8 +44,7 @@ import java.net.URLDecoder; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.time.LocalDateTime; -import java.util.Date; -import java.util.Optional; +import java.util.*; import static com.zt.plat.module.qms.enums.ErrorCodeConstants.REPORT_DOCUMENT_FILE_NOT_EXISTS; @@ -104,7 +105,8 @@ public class ReportDocumentAssistService { public CommonResult createIWorkflow(ReportDocumentMainDO entity, ReportDocumentFileDO docFile) { LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - IWorkWorkflowCreateReqDTO dto = new IWorkWorkflowCreateReqDTO(); +// IWorkWorkflowCreateReqDTO dto = new IWorkWorkflowCreateReqDTO(); + IWorkGenericWorkflowCreateReqDTO dto = new IWorkGenericWorkflowCreateReqDTO(); DictionaryBusinessRespVO dicVo = dictionaryBusinessService.getDataByDataKey("report_doc_iwork_conf").getData(); String report_doc_iwork_conf = ""; if(dicVo != null) @@ -119,15 +121,6 @@ public class ReportDocumentAssistService { String jbr = jsonObject.getString("iwork_jbr"); //用印申请人 String yybm = jsonObject.getString("iwork_yybm"); //用印部门 String fb = jsonObject.getString("iwork_fb"); //用印单位 - - dto.setOperatorUserId(operatorUserId); - dto.setJbr(jbr); - dto.setYybm(yybm); - dto.setFb(fb); - dto.setSqsj(sdf.format(new Date())); - dto.setYyqx("检测报告用印"); - dto.setYysy("检测报告用印"); - dto.setYysx("检测报告用印"); //读取文件url CommonResult ret1 = fileApi.getFile(docFile.getFileId()); String url = docFile.getUrl(); @@ -138,10 +131,33 @@ public class ReportDocumentAssistService { } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } - dto.setXyywjUrl(url); - dto.setYwxtdjbh(entity.getDocumentCode()); + String billNo = entity.getDocumentCode(); + dto.setOperatorUserId(operatorUserId); + + Map payload = new HashMap<>(); + payload.put("sqr", jbr); + payload.put("sqrq", sdf.format(new Date())); + payload.put("sqgs", fb); + payload.put("sqbm", yybm); +// payload.put("yysyhnrzy", "检测报告用印"); + payload.put("xyywj", url); + Map param = this.buildCreatePayload( billNo, jsonObject.getString("iwork_workflowId"), new JSONObject(payload)); + dto.setPayload( param); + dto.setWorkflowId(jsonObject.getLong("iwork_workflowId")); + +// dto.setJbr(jbr); +// dto.setYybm(yybm); +// dto.setFb(fb); +// dto.setSqsj(sdf.format(new Date())); +// dto.setYyqx("检测报告用印"); +// dto.setYysy("检测报告用印"); +// dto.setYysx("检测报告用印"); +// dto.setXyywjUrl(url); + dto.setYwxtdjbh(billNo); dto.setBizCallbackKey(ReportDocListenerConstant.IWORK_BIZ_CALL_BACK_KEY); //业务回调标识,回调分发使用 - return iWorkIntegrationApi.createWorkflow(dto); +// CommonResult iworkResult = iWorkIntegrationApi.createWorkflow(dto); + CommonResult iworkResult = iWorkIntegrationApi.createGenericWorkflow(dto); + return iworkResult; } /* @@ -247,4 +263,77 @@ public class ReportDocumentAssistService { reportDocumentFileService.createReportDocumentFile(fileSaveReqVO); return BeanUtils.toBean(fileRespDTO, ReportDocumentFileDO.class); } + + + private Map buildCreatePayload(String billNo, String workflowId, JSONObject payload) { + LinkedHashMap var2 = new LinkedHashMap(); + var2.put("requestName", "用印-" + billNo); + var2.put("workflowId", workflowId); + var2.put("mainData", this.buildSealMainData(payload)); + return var2; + } + + private List> buildSealMainData(JSONObject payload) { + ArrayList target = new ArrayList(); + String allFields = "sqr,sqrq,sqgs,sqbm,bizId,yysyhnrzy"; + for(String field : allFields.split(",")){ + this.addField(target, field, payload.getString( field)); + } + this.addJsonField(target, "xyywj", this.buildSealAttachmentValue(payload.getString("xyywj"))); + return target; + } + + private List> buildSealAttachmentValue(String xyywjUrl) { + String var2 = this.trimToNull(xyywjUrl); + if (var2 == null) { + return null; + } else { + LinkedHashMap var3 = new LinkedHashMap(2); + String var4 = this.extractFileNameFromUrl(var2); + var3.put("fileName", var4); + var3.put("filePath", var2); + ArrayList var5 = new ArrayList(1); + var5.add(var3); + return var5; + } + } + + private String extractFileNameFromUrl(String url) { + String var2 = this.trimToNull(url); + if (var2 == null) { + return null; + } else { + int var3 = var2.indexOf(63); + String var4 = var3 >= 0 ? var2.substring(0, var3) : var2; + int var5 = var4.lastIndexOf(47); + return var5 >= 0 && var5 < var4.length() - 1 ? var4.substring(var5 + 1) : var4; + } + } + private String trimToNull(String value) { + if (!StringUtils.hasText(value)) { + return null; + } else { + String var2 = value.trim(); + return var2.isEmpty() ? null : var2; + } + } + + private void addField(List> target, String name, String value) { + if (StringUtils.hasText(value)) { + HashMap var4 = new HashMap(2); + var4.put("fieldName", name); + var4.put("fieldValue", value); + target.add(var4); + } + } + + private void addJsonField(List> target, String name, Object value) { + if (value != null) { + HashMap var4 = new HashMap(2); + var4.put("fieldName", name); + var4.put("fieldValue", value); + target.add(var4); + } + } + }