【需求】完善工艺设计与订单交互

pull/4/head
zengchenxi 8 months ago
parent 1782d55ace
commit 40cb2543b4

@ -26,6 +26,7 @@ public interface ProjectOrderSubMapper extends BaseMapperX<ProjectOrderSubDO> {
.leftJoin(ProjectOrderDO.class, "p", ProjectOrderDO::getId, ProjectOrderSubDO::getProjectOrderId)
.leftJoin(CompositionDO.class, "b", CompositionDO::getId, ProjectOrderSubDO::getCompositionId)
.disableSubLogicDel()
.orderByAsc(ProjectOrderSubDO::getId)
.eq(ProjectOrderSubDO::getProjectOrderId, projectOrderId);
return selectList(query);
}

@ -245,6 +245,7 @@ public class CrossOrderManager {
List<Long> projectSubIdList = projectSubList.stream().map(ProjectOrderSubDO::getId).collect(Collectors.toList());
List<ProcessDesignDO> processDesignDOList = processDesignMapper.selectList(new LambdaQueryWrapper<ProcessDesignDO>() {{
in(ProcessDesignDO::getProjectSubId, projectSubIdList);
eq(ProcessDesignDO::getProcessDesignType, ProcessDesignTypeEnum.BLUEPRINT_3D.name());
}});
// 只考虑增加情况
if( projectSubIdList.size() > processDesignDOList.size()){

@ -110,6 +110,7 @@ public class ProjectOrderServiceImpl implements ProjectOrderService {
;
projectOrderMapper.insert(projectOrder);
// 子项目
createReqVO.getProjectOrderSubs().forEach(projectOrderSubDO -> projectOrderSubDO.setId(null));
createProjectOrderSubList(projectOrder.getId(), createReqVO.getProjectOrderSubs());
// 附件
PageResult<FileDO> filePage = fileService.getFilePage(new FilePageReqVO() {{
@ -284,13 +285,16 @@ public class ProjectOrderServiceImpl implements ProjectOrderService {
}
private void createProjectOrderSubList(Long projectOrderId, List<ProjectOrderSubDO> list) {
list.forEach(o -> o.setId(null).setProjectOrderId(projectOrderId));
projectOrderSubMapper.insertBatch(list);
list.forEach(o -> o.setProjectOrderId(projectOrderId));
// 分组更新与插入
List<ProjectOrderSubDO> updateList = list.stream().filter(o -> o.getId() != null).collect(Collectors.toList());
List<ProjectOrderSubDO> insertList = list.stream().filter(o -> o.getId() == null).collect(Collectors.toList());
if(!updateList.isEmpty()) projectOrderSubMapper.updateBatch(updateList);
if(!insertList.isEmpty()) projectOrderSubMapper.insertBatch(insertList);
}
private void updateProjectOrderSubList(Long projectOrderId, List<ProjectOrderSubDO> list) {
deleteProjectOrderSubByProjectOrderId(projectOrderId);
list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下1id 冲突2updateTime 不更新
createProjectOrderSubList(projectOrderId, list);
}

Loading…
Cancel
Save