From c3cb2ca3a147592d20ad9c6ac56e1c1132606f85 Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Fri, 7 Feb 2025 14:54:05 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-3300):=20=E7=BE=A4=E8=81=8A=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E5=AE=A1=E6=89=B9=E6=95=B0=E6=8D=AE=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/request/VisaChangeTempCreateReq.java | 9 ++- .../nanopart/visa/server/dto/VisaBillDto.java | 4 +- .../service/impl/ChangeRecordServiceImpl.java | 60 ++++++++++++++++++- 3 files changed, 64 insertions(+), 9 deletions(-) diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeTempCreateReq.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeTempCreateReq.java index 95881fd1..210ae2d3 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeTempCreateReq.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/VisaChangeTempCreateReq.java @@ -1,11 +1,10 @@ package cn.axzo.nanopart.visa.api.request; import cn.axzo.maokai.common.enums.SaasCooperateShipCooperateTypeEnum; -import cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum; +import cn.axzo.nanopart.visa.api.enums.VisaBillTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum; import cn.axzo.workflow.common.model.dto.UploadFieldDTO; import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -97,7 +96,7 @@ public class VisaChangeTempCreateReq { * ] * */ - private JSONObject relationArea; + private JSONArray relationArea; /** * 提出时间 @@ -159,11 +158,11 @@ public class VisaChangeTempCreateReq { /** * 关联的单据,key: 单据类型,value: 单据id集合 *

- * TASK_ORDER :任务单 RECTIFICATION_ORDER :整改单 VISA_ORDER:变更单 + * TASK :任务单 RECTIFY :整改单 DESIGN_VISA:变更单 * 只有变更签证类型即{@code type}为“技术核定”或“工程签证”时才可能会有关联变更单 *

* - * @see VisaRelationFieldEnum + * @see VisaBillTypeEnum */ private Map> relationOrderMap; diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/dto/VisaBillDto.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/dto/VisaBillDto.java index 83f43beb..89ec05c5 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/dto/VisaBillDto.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/dto/VisaBillDto.java @@ -1,6 +1,6 @@ package cn.axzo.nanopart.visa.server.dto; -import cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum; +import cn.axzo.nanopart.visa.api.enums.VisaBillTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum; import com.alibaba.fastjson.JSONObject; import lombok.AllArgsConstructor; @@ -44,7 +44,7 @@ public class VisaBillDto { /** * 单据类型 */ - private VisaRelationFieldEnum billType; + private VisaBillTypeEnum billType; /** * 额外信息 */ diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java index 1c40f774..8ebefe4f 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java @@ -72,6 +72,7 @@ import cn.axzo.orggateway.api.nodeuser.req.ListOrgNodeUserReq; import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq; import cn.axzo.thor.client.model.DrawingMajorResp; import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum; +import cn.axzo.workflow.common.model.dto.UploadFieldDTO; import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO; import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCreateDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; @@ -81,6 +82,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Pair; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -531,7 +533,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl confirms = changeRecordConfirmService.findByCondition(confirmDto); + if (CollectionUtils.isNotEmpty(confirms)) { + req.setRelationUnitAndPersonList(confirms.stream() + .map(item -> BeanUtil.copyProperties(item, VisaChangeTempCreateReq.RelationUnitAndPerson.class)) + .collect(Collectors.toList())); + } + // 发生内容说明 + List contentDescription = changeRecordRelationService.findByVisaAndVarName(changeRecord.getId(), VisaRelationFieldEnum.CONTENT_DESCRIPTION.name()); + if (CollectionUtils.isNotEmpty(contentDescription)) { + req.setChangeContextAndDescriptionList(contentDescription.stream() + .map(item -> { + try { + return JSONObject.parseObject(item.getContent(), VisaChangeTempCreateReq.ChangeContextAndDescription.class); + } catch (Exception e) { + throw new ServiceException("发生内容说明解析失败"); + } + }) + .collect(Collectors.toList())); + } + // 关联单据 + List bills = changeRecordBillService.listById(changeRecord.getId()); + if (CollectionUtils.isNotEmpty(bills)) { + req.setRelationOrderMap(bills.stream().collect(Collectors.groupingBy(b -> b.getBillType().name(), + Collectors.mapping(ChangeRecordBill::getBillId, Collectors.toList()))) + ); + } + // 附件 + List attach = changeRecordRelationService.findByVisaAndVarName(changeRecord.getId(), VisaRelationFieldEnum.ATTACHMENT.name()); + if (CollectionUtils.isNotEmpty(attach)) { + req.setAttach(attach.stream() + .map(item -> { + try { + return JSONObject.parseObject(item.getContent(), UploadFieldDTO.class); + } catch (Exception e) { + throw new ServiceException("附件解析失败"); + } + }) + .collect(Collectors.toList())); + } + return req; } }