diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeStatusRequest.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeStatusRequest.java index 820e1e28..674ee59d 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeStatusRequest.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/request/ChangeStatusRequest.java @@ -3,7 +3,7 @@ package cn.axzo.nanopart.visa.api.request; import cn.axzo.framework.domain.ServiceException; import cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum; -import com.alibaba.fastjson.JSONObject; +import cn.axzo.nanopart.visa.api.response.VisaDetailByIdResponse; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -73,11 +73,11 @@ public class ChangeStatusRequest { /** * 新的附件 */ - private List newAttach; + private List newAttach; /** * 原的附件 */ - private List oldAttach; + private List oldAttach; /** * 是否编辑表单 diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/dto/VisaLogParam.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/dto/VisaLogParam.java index 89aa170a..8dd99778 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/dto/VisaLogParam.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/dto/VisaLogParam.java @@ -94,12 +94,29 @@ public class VisaLogParam { return fetchChangeAttach(oldAttach, newAttach); } + /** + * 获取删除附件信息 + */ + public static List deleteAttachWithObject(List oldAttach, List newAttach) { + return fetchChangeAttachWithObject(oldAttach, newAttach); + } + /** * 获取上传的附件信息 */ public static List uploadAttach(List newAttach, List oldAttach) { return fetchChangeAttach(newAttach, oldAttach); } + + /** + * 获取上传的附件信息 + */ + public static List uploadAttachWithObject(List newAttach, List oldAttach) { + return fetchChangeAttachWithObject(newAttach, oldAttach); + } + + + /** * 获取变动的附件信息 * 计算集合的单差集,即只返回【集合1】中有,但是【集合2】中没有的元素,例如: @@ -116,7 +133,26 @@ public class VisaLogParam { } List newFileDtoList = VisaDetailByIdResponse.VisaUploadFile.createListByJson(compareSec); - Collection substractList = CollUtil.subtractToList(oldFileDtoList, newFileDtoList); + return fetchChangeAttachWithObject(oldFileDtoList, newFileDtoList); + } + + + + /** + * 获取变动的附件信息 + * 计算集合的单差集,即只返回【集合1】中有,但是【集合2】中没有的元素,例如: + * subtractToList([1,2,3,4],[2,3,4,5]) -》 [1] + */ + private static List fetchChangeAttachWithObject(List compareFir, List compareSec) { + if (CollectionUtils.isEmpty(compareFir)) { + return Lists.newArrayList(); + } + + if (CollectionUtils.isEmpty(compareSec)) { + return compareFir.stream().map(VisaDetailByIdResponse.VisaUploadFile::getFileName).collect(Collectors.toList()); + } + + Collection substractList = CollUtil.subtractToList(compareFir, compareSec); if (CollectionUtils.isEmpty(substractList)) { return Lists.newArrayList(); } 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 1e0efb95..0ca0bbb6 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 @@ -263,8 +263,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl visaUploadFiles = this.buildAttachUploadFile(req.getId()); + /*保存签证信息*/ Long visaId = tempCreateVisaChangeRecord(req); @@ -717,16 +720,38 @@ public class ChangeRecordServiceImpl extends ServiceImpl visaUploadFiles) { + ChangeStatusRequest changeStatusRequest = ChangeStatusRequest.builder() .visaId(visaId) .updateStatus(VisaStatusEnum.APPROVING) .personId(req.getOperatorPersonId()) .ouId(req.getOperatorOuId()) .workspaceId(req.getRelationWorkspaceId()) .editFormFlag(true) - .build()); - return visaId; + .newAmountChange(req.getAmountChange()) + .oldAmountChange(changeRecord.getAmountChange()) + .build(); + + if (CollectionUtils.isNotEmpty(req.getAttach())) { + changeStatusRequest.setNewAttach(BeanUtil.copyToList(req.getAttach(), VisaDetailByIdResponse.VisaUploadFile.class)); + } + if (CollectionUtils.isNotEmpty(visaUploadFiles)) { + changeStatusRequest.setOldAttach(visaUploadFiles); + } + // 更新主表状态 + changeStatus(changeStatusRequest); } private String createProcessInstance(VisaChangeApproveCreateReq req, Long visaId) {