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 f6b7a43e..ad4b405b 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;
@@ -530,7 +532,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;
}
}