Commit 6ae3cc04 by 王志超

feat: 简化主工单VO转化赋值操作

parent 93c5848b
......@@ -21,6 +21,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.vo.*;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
......@@ -991,18 +992,11 @@ public class ChangeFlowBiz {
public ChangeFlowVO detail(Long flowId) {
ChangeRecord changeRecord = changeFlowService.getByFlowId(flowId);
if (changeRecord == null) {
throw ExceptionFactory.createBiz(ResponseCode.ERROR_FLOW_ID, "工单id不存在");
throw ExceptionFactory.createBiz(ResponseCode.ERROR_FLOW_ID, "变更工单id不存在");
}
log.debug("[detail] detail:{}", JSON.toJSONString(changeRecord));
ChangeFlowVO changeFlowVO = new ChangeFlowVO();
changeFlowVO.setId(changeRecord.getId());
changeFlowVO.setFlowNode(changeRecord.getFlowNode());
changeFlowVO.setCancelReason(changeRecord.getCancelReason());
changeFlowVO.setFlowId(changeRecord.getFlowId());
changeFlowVO.setParentChangeClassId(changeRecord.getParentChangeClassId());
changeFlowVO.setSonChangeClassId(changeRecord.getSonChangeClassId());
changeFlowVO.setChangeSubject(changeRecord.getChangeSubject());
changeFlowVO.setRemark(changeRecord.getRemark());
BeanUtils.copyProperties(changeRecord, changeFlowVO);
ChangeType parentChangeType = changeTypeService.getChangeTypeById(changeRecord.getParentChangeClassId());
if (parentChangeType == null) {
throw ExceptionFactory.createBiz(ResponseCode.CHANGE_TYPE_NOT_EXIST, "变更类型不存在");
......@@ -1012,11 +1006,9 @@ public class ChangeFlowBiz {
throw ExceptionFactory.createBiz(ResponseCode.CHANGE_TYPE_NOT_EXIST, "变更类型配置不存在");
}
changeFlowVO.setChangeType(parentChangeType.getTypeName() + ">" + sonChangeType.getTypeName());
changeFlowVO.setChangeLevel(changeRecord.getChangeLevel());
changeFlowVO.setChangeDepartment(changeRecord.getChangeDepartment());
changeFlowVO.setChangeCommander(changeRecord.getChangeCommander());
// 供应商名称需要查询
String changeSupplier = changeRecord.getChangeSupplier();
changeFlowVO.setChangeSupplier(changeSupplier);
String changeSupplierName = "";
if (StringUtils.isNotBlank(changeSupplier)) {
List<SupplierSimpleRsp> supplierSimple = supplierService.getSupplierName(changeSupplier);
......@@ -1026,16 +1018,10 @@ public class ChangeFlowBiz {
}
}
changeFlowVO.setChangeSupplierName(changeSupplierName);
changeFlowVO.setChangeReason(changeRecord.getChangeReason());
changeFlowVO.setChangeContent(changeRecord.getChangeContent());
changeFlowVO.setChangeRiskDesc(changeRecord.getChangeRiskDesc());
// 获取附件
List<ChangeFlowFile> changeFileList = changeFileService.getChangeFileList(changeRecord.getId());
changeFlowVO.setFiles(changeFileList);
changeFlowVO.setChangeProfit(changeRecord.getChangeProfit());
changeFlowVO.setChangeProfitAmount(changeRecord.getChangeProfitAmount());
changeFlowVO.setChangeProfitDesc(changeRecord.getChangeProfitDesc());
changeFlowVO.setBatchDescription(changeRecord.getBatchDescription());
String itemJsonStr = changeRecord.getChangeItem();
String changeSkuJson = changeRecord.getChangeSku();
if (StringUtils.isNotBlank(itemJsonStr)) {
......@@ -1149,10 +1135,6 @@ public class ChangeFlowBiz {
log.error("query user info has ex", ex);
}
changeFlowVO.setChangeExecProjectList(changeFlowExecRecord);
changeFlowVO.setCreateTime(changeRecord.getCreateTime());
changeFlowVO.setChangeConfirmResultTime(changeRecord.getChangeConfirmResultTime());
changeFlowVO.setChangeResult(changeRecord.getChangeResult());
changeFlowVO.setChangeResultDesc(changeRecord.getChangeResultDesc());
changeFlowVO.setTopoId(ChangeFlowEnum.NEW_CHANGE_FLOW.getTopoId());
try {
Set<String> commanderList = new HashSet<>();
......
......@@ -43,6 +43,7 @@ import com.netease.yanxuan.flowx.sdk.meta.dto.flow.FlowCreateReqDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
......@@ -333,51 +334,35 @@ public class ChangeSubFlowBiz {
Long changeRecordId = subFlowRecord.getChangeRecordId();
Long subFlowRecordId = subFlowRecord.getId();
// 获取主单信息
ChangeRecord changeRecord = changeFlowService.getById(changeRecordId);
if (changeRecord == null) {
throw ExceptionFactory.createBiz(ResponseCode.ERROR_FLOW_ID, "主单记录不存在");
}
// 调用主单的 detail 方法获取完整信息
ChangeFlowVO changeFlowVO = changeFlowBiz.detail(changeRecord.getFlowId());
ChangeFlowVO changeFlowVO = changeFlowBiz.detail(changeRecordId);
// topoId:这是子单详情页面,需要设置为子单的 topoId
changeFlowVO.setTopoId(ChangeFlowEnum.CHANGE_SUB_FLOW.getTopoId());
// flowId 和 flowNode:应该使用子单的数据,而不是主单的数据
changeFlowVO.setFlowId(Long.parseLong(subFlowId));
changeFlowVO.setFlowNode(subFlowRecord.getSubFlowNode());
// 只保留该变更行动工单下绑定的行动项
List<ChangeExecRecord> execRecords = changeFlowExecService.getBySubFlowRecordId(subFlowRecordId);
if (CollectionUtils.isNotEmpty(execRecords)) {
// 转换为 ChangeFlowExecVO
List<ChangeFlowExecVO> filteredExecList = execRecords.stream()
.map(c -> ChangeFlowExecVO.builder()
.changeExecId(c.getId())
.changeRecordId(c.getChangeRecordId())
.changeExecDepartment(c.getChangeExecDepartment())
.changeExecUserType(c.getChangeExecUserType())
.changeExecUser(c.getChangeExecUser())
.changeExecUserEmail(c.getChangeExecUserEmail())
.changeRiskDesc(c.getChangeRiskDesc())
.changeExecProject(c.getChangeExecProject())
.changeChecking(c.getChangeChecking())
.changeExecFinishTime(c.getChangeExecFinishTime())
.changeExecFinishDesc(c.getChangeExecFinishDesc())
.subFlowId(c.getSubFlowId())
.build())
.collect(Collectors.toList());
List<ChangeFlowExecVO> filteredExecList = execRecords.stream().map(c -> {
ChangeFlowExecVO vo = new ChangeFlowExecVO();
BeanUtils.copyProperties(c, vo);
vo.setChangeExecId(c.getId());
return vo;
}).collect(Collectors.toList());
// 填充用户名信息
try {
Set<String> userEmail = filteredExecList.stream()
.map(ChangeFlowExecVO::getChangeExecUserEmail)
Set<String> userEmail = filteredExecList.stream().map(ChangeFlowExecVO::getChangeExecUserEmail)
.collect(Collectors.toSet());
AjaxResponse<List<IusUserInfoRsp>> userListInfo = iusRpcService.queryUserListInfo(
UserQueryDTO.builder().uids(new ArrayList<>(userEmail)).build());
AjaxResponse<List<IusUserInfoRsp>> userListInfo = iusRpcService
.queryUserListInfo(UserQueryDTO.builder().uids(new ArrayList<>(userEmail)).build());
List<IusUserInfoRsp> data = userListInfo.getData();
filteredExecList.forEach(i -> {
Optional<IusUserInfoRsp> anyExeUser = data.stream()
.filter(u -> u.getUid().equals(i.getChangeExecUserEmail()))
.findAny();
.filter(u -> u.getUid().equals(i.getChangeExecUserEmail())).findAny();
if (anyExeUser.isPresent()) {
i.setChangeExecUserName(anyExeUser.get().getName());
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment