feat: (REQ-3300) 金额变更/附件的操作日志优化
This commit is contained in:
parent
d4ef303ca7
commit
39c3a295a2
@ -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<JSONObject> newAttach;
|
||||
private List<VisaDetailByIdResponse.VisaUploadFile> newAttach;
|
||||
/**
|
||||
* 原的附件
|
||||
*/
|
||||
private List<JSONObject> oldAttach;
|
||||
private List<VisaDetailByIdResponse.VisaUploadFile> oldAttach;
|
||||
|
||||
/**
|
||||
* 是否编辑表单
|
||||
|
||||
@ -94,12 +94,29 @@ public class VisaLogParam {
|
||||
return fetchChangeAttach(oldAttach, newAttach);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取删除附件信息
|
||||
*/
|
||||
public static List<String> deleteAttachWithObject(List<VisaDetailByIdResponse.VisaUploadFile> oldAttach, List<VisaDetailByIdResponse.VisaUploadFile> newAttach) {
|
||||
return fetchChangeAttachWithObject(oldAttach, newAttach);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上传的附件信息
|
||||
*/
|
||||
public static List<String> uploadAttach(List<JSONObject> newAttach, List<JSONObject> oldAttach) {
|
||||
return fetchChangeAttach(newAttach, oldAttach);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上传的附件信息
|
||||
*/
|
||||
public static List<String> uploadAttachWithObject(List<VisaDetailByIdResponse.VisaUploadFile> newAttach, List<VisaDetailByIdResponse.VisaUploadFile> oldAttach) {
|
||||
return fetchChangeAttachWithObject(newAttach, oldAttach);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取变动的附件信息
|
||||
* 计算集合的单差集,即只返回【集合1】中有,但是【集合2】中没有的元素,例如:
|
||||
@ -116,7 +133,26 @@ public class VisaLogParam {
|
||||
}
|
||||
List<VisaDetailByIdResponse.VisaUploadFile> newFileDtoList = VisaDetailByIdResponse.VisaUploadFile.createListByJson(compareSec);
|
||||
|
||||
Collection<VisaDetailByIdResponse.VisaUploadFile> substractList = CollUtil.subtractToList(oldFileDtoList, newFileDtoList);
|
||||
return fetchChangeAttachWithObject(oldFileDtoList, newFileDtoList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取变动的附件信息
|
||||
* 计算集合的单差集,即只返回【集合1】中有,但是【集合2】中没有的元素,例如:
|
||||
* subtractToList([1,2,3,4],[2,3,4,5]) -》 [1]
|
||||
*/
|
||||
private static List<String> fetchChangeAttachWithObject(List<VisaDetailByIdResponse.VisaUploadFile> compareFir, List<VisaDetailByIdResponse.VisaUploadFile> compareSec) {
|
||||
if (CollectionUtils.isEmpty(compareFir)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(compareSec)) {
|
||||
return compareFir.stream().map(VisaDetailByIdResponse.VisaUploadFile::getFileName).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
Collection<VisaDetailByIdResponse.VisaUploadFile> substractList = CollUtil.subtractToList(compareFir, compareSec);
|
||||
if (CollectionUtils.isEmpty(substractList)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
|
||||
@ -263,8 +263,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
.oldStatus(changeRecord.getStatus())
|
||||
.newAmountChange(request.getNewAmountChange())
|
||||
.oldAmountChange(request.getOldAmountChange())
|
||||
.uploadAttach(VisaLogParam.uploadAttach(request.getNewAttach(), request.getOldAttach()))
|
||||
.deleteAttach(VisaLogParam.deleteAttach(request.getOldAttach(), request.getNewAttach())).build());
|
||||
.uploadAttach(VisaLogParam.uploadAttachWithObject(request.getNewAttach(), request.getOldAttach()))
|
||||
.deleteAttach(VisaLogParam.deleteAttachWithObject(request.getOldAttach(), request.getNewAttach())).build());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -707,6 +707,9 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
public Long approveCreateVisaChangeRecord(VisaChangeApproveCreateReq req) {
|
||||
/*校验*/
|
||||
validVisaChangeForm(req);
|
||||
ChangeRecord changeRecord = this.getById(req.getId());
|
||||
List<VisaDetailByIdResponse.VisaUploadFile> visaUploadFiles = this.buildAttachUploadFile(req.getId());
|
||||
|
||||
/*保存签证信息*/
|
||||
Long visaId = tempCreateVisaChangeRecord(req);
|
||||
|
||||
@ -717,16 +720,38 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
// 更新主表中的审批字段,记录变量表的审批的信息
|
||||
updateApprovalInfo(visaId, processInstanceId);
|
||||
|
||||
// 更新主表状态
|
||||
changeStatus(ChangeStatusRequest.builder()
|
||||
this.changeStatusWhenApproveCreate(visaId, req, changeRecord, visaUploadFiles);
|
||||
|
||||
return visaId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更改状态-申请审批时
|
||||
* @param visaId 变更签证id
|
||||
* @param req 请求,主要是获取最新的属性,比如变更金额/附件
|
||||
* @param changeRecord 变更签证对象,主要获取老的属性,比如变更金额
|
||||
* @param visaUploadFiles 上传附件,主要是老的属性
|
||||
*/
|
||||
public void changeStatusWhenApproveCreate(Long visaId, VisaChangeApproveCreateReq req, ChangeRecord changeRecord, List<VisaDetailByIdResponse.VisaUploadFile> 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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user