Commit e662e1bee5195dacf38ecd4643208830c591e262

Authored by 曾国涛
1 parent d6385255

refactor(order): 优化项目基础信息和申请流程

- 移除 OrderProfitAnalysisDO 中未使用的字段
- 将 ProjectApplyDO 中的 projectId 改为 projectNoPrefix
- 更新 ProjectBaseInfoServiceImpl 中的项目查询逻辑
-调整 ProjectFieldLockRecord 中的 projectId 为 projectNoPrefix
src/main/java/com/order/erp/domain/dto/order/OrderProfitAnalysisDO.java
@@ -99,19 +99,5 @@ public class OrderProfitAnalysisDO extends BaseDO implements Serializable { @@ -99,19 +99,5 @@ public class OrderProfitAnalysisDO extends BaseDO implements Serializable {
99 */ 99 */
100 private int profitType; 100 private int profitType;
101 101
102 - /**  
103 - * 生产科预算金额  
104 - */  
105 - private BigDecimal productionDepartmentPredictPrice;  
106 -  
107 - /**  
108 - * 实际发生费用  
109 - */  
110 - private BigDecimal productionActualPrice;  
111 -  
112 - /**  
113 - * 包装费用实际金额  
114 - */  
115 - private BigDecimal packetActualRmbTotalPrice;  
116 102
117 } 103 }
src/main/java/com/order/erp/domain/model/ProjectApplyDO.java
@@ -38,8 +38,8 @@ public class ProjectApplyDO extends BaseDO implements Serializable { @@ -38,8 +38,8 @@ public class ProjectApplyDO extends BaseDO implements Serializable {
38 @TableId(value = "id", type = IdType.AUTO) 38 @TableId(value = "id", type = IdType.AUTO)
39 private Long id; 39 private Long id;
40 40
41 - @ApiModelProperty(value = "项目id")  
42 - private Long projectId; 41 + @ApiModelProperty(value = "项目号")
  42 + private String projectNoPrefix;
43 43
44 44
45 @ApiModelProperty(value = "申请用户id") 45 @ApiModelProperty(value = "申请用户id")
src/main/java/com/order/erp/domain/model/ProjectFieldLockRecord.java
@@ -40,8 +40,9 @@ public class ProjectFieldLockRecord extends BaseDO implements Serializable { @@ -40,8 +40,9 @@ public class ProjectFieldLockRecord extends BaseDO implements Serializable {
40 @TableId(value = "id", type = IdType.AUTO) 40 @TableId(value = "id", type = IdType.AUTO)
41 private Long id; 41 private Long id;
42 42
43 - @ApiModelProperty(value = "项目id")  
44 - private Long projectId; 43 +
  44 + @ApiModelProperty(value = "项目号")
  45 + private String projectNoPrefix;
45 46
46 @ApiModelProperty(value = "用户id") 47 @ApiModelProperty(value = "用户id")
47 private Long userId; 48 private Long userId;
src/main/java/com/order/erp/service/order/impl/ProjectBaseInfoServiceImpl.java
@@ -77,29 +77,34 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe @@ -77,29 +77,34 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe
77 77
78 @Override 78 @Override
79 public ServerResult edit(ProjectBaseInfoVO vo) { 79 public ServerResult edit(ProjectBaseInfoVO vo) {
80 - Long id = vo.getId();  
81 - ProjectBaseInfoDO byId = this.getById(id);  
82 - if (Objects.isNull(byId)) {  
83 - byId = BeanUtil.copyProperties(vo, ProjectBaseInfoDO.class); 80 + String projectNoPrefix = vo.getProjectNoPrefix();
  81 + Optional<ProjectBaseInfoDO> projectBaseInfoDOOpt = this.lambdaQuery()
  82 + .eq(ProjectBaseInfoDO::getProjectNoPrefix, projectNoPrefix)
  83 + .last(" limit 1 ")
  84 + .oneOpt();
  85 + ProjectBaseInfoDO projectBaseInfoDO = null;
  86 + if (projectBaseInfoDOOpt.isPresent()) {
  87 + projectBaseInfoDO = projectBaseInfoDOOpt.get();
  88 + BeanUtil.copyProperties(vo, projectBaseInfoDO,"id");
84 }else { 89 }else {
85 - BeanUtil.copyProperties(vo, byId); 90 + projectBaseInfoDO = BeanUtil.copyProperties(vo, ProjectBaseInfoDO.class);
86 } 91 }
87 - return ServerResult.success(this.saveOrUpdate(byId)); 92 + return ServerResult.success(this.saveOrUpdate(projectBaseInfoDO));
88 } 93 }
89 @Override 94 @Override
90 public ServerResult applyEditFileds(ProjectBaseInfoLockFieldVO vo) { 95 public ServerResult applyEditFileds(ProjectBaseInfoLockFieldVO vo) {
91 List<ProjectApplyDO> applyDOS = projectFieldLockApplyService.list(new LambdaQueryWrapper<ProjectApplyDO>() 96 List<ProjectApplyDO> applyDOS = projectFieldLockApplyService.list(new LambdaQueryWrapper<ProjectApplyDO>()
92 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) 97 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
93 - .eq(ProjectApplyDO::getProjectId, vo.getProjectId()) 98 + .eq(ProjectApplyDO::getProjectNoPrefix, vo.getProjectNoPrefix())
94 .eq(ProjectApplyDO::getApplyUserId, dataScope.getLoginUserId()) 99 .eq(ProjectApplyDO::getApplyUserId, dataScope.getLoginUserId())
95 .eq(ProjectApplyDO::getStatus, ApplyStatusEnum.WAIT_AUDIT.getStatus())); 100 .eq(ProjectApplyDO::getStatus, ApplyStatusEnum.WAIT_AUDIT.getStatus()));
96 if (CollectionUtils.isNotEmpty(applyDOS)) { 101 if (CollectionUtils.isNotEmpty(applyDOS)) {
97 throw new BusinessException(ServerResultCode.APPLY_UNLOCK_FIELD_EXIST); 102 throw new BusinessException(ServerResultCode.APPLY_UNLOCK_FIELD_EXIST);
98 } 103 }
99 - Long projectId = vo.getProjectId();  
100 - vo.setProjectId(null); 104 + String projectNoPrefix = vo.getProjectNoPrefix();
  105 + vo.setProjectNoPrefix(null);
101 ProjectApplyDO build = ProjectApplyDO.builder() 106 ProjectApplyDO build = ProjectApplyDO.builder()
102 - .projectId(projectId) 107 + .projectNoPrefix(projectNoPrefix)
103 .applyUserId(dataScope.getLoginUserId()) 108 .applyUserId(dataScope.getLoginUserId())
104 .fields(JSONObject.toJSONString(vo)) 109 .fields(JSONObject.toJSONString(vo))
105 .type(ProjectApplyTypeEnum.FIELD_EDIT_APPLY) 110 .type(ProjectApplyTypeEnum.FIELD_EDIT_APPLY)
@@ -124,12 +129,8 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe @@ -124,12 +129,8 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
124 if(CollectionUtils.isEmpty(records)){ 129 if(CollectionUtils.isEmpty(records)){
125 return buildPageResult(page, Collections.emptyList()); 130 return buildPageResult(page, Collections.emptyList());
126 } 131 }
127 - List<Long> projectIds = records.stream().map(ProjectApplyDO::getProjectId).collect(Collectors.toList());  
128 - List<ProjectBaseInfoDO> projectBaseInfoDOS = this.listByIds(projectIds);  
129 - Map<Long,String> projectId2ProjectNoPrefixMap = projectBaseInfoDOS.stream().collect(Collectors.toMap(ProjectBaseInfoDO::getId, ProjectBaseInfoDO::getProjectNoPrefix));  
130 List<ProjectApplyVO> collect = records.stream().map(e -> { 132 List<ProjectApplyVO> collect = records.stream().map(e -> {
131 ProjectApplyVO projectApplyVO = BeanUtil.copyProperties(e, ProjectApplyVO.class); 133 ProjectApplyVO projectApplyVO = BeanUtil.copyProperties(e, ProjectApplyVO.class);
132 - projectApplyVO.setProjectNoPrefix(projectId2ProjectNoPrefixMap.get(e.getProjectId()));  
133 return projectApplyVO; 134 return projectApplyVO;
134 }).collect(Collectors.toList()); 135 }).collect(Collectors.toList());
135 return ServerResult.success(buildPageResult(page, collect)); 136 return ServerResult.success(buildPageResult(page, collect));
@@ -144,13 +145,13 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe @@ -144,13 +145,13 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
144 applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus()); 145 applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus());
145 ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>() 146 ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>()
146 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) 147 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
147 - .eq(ProjectFieldLockRecord::getProjectId, applyDO.getProjectId()) 148 + .eq(ProjectFieldLockRecord::getProjectNoPrefix, applyDO.getProjectNoPrefix())
148 .eq(ProjectFieldLockRecord::getUserId, applyDO.getApplyUserId()) 149 .eq(ProjectFieldLockRecord::getUserId, applyDO.getApplyUserId())
149 .orderByDesc(ProjectFieldLockRecord::getId) 150 .orderByDesc(ProjectFieldLockRecord::getId)
150 .last("limit 1")); 151 .last("limit 1"));
151 if (Objects.isNull(recordDO)) { 152 if (Objects.isNull(recordDO)) {
152 recordDO = ProjectFieldLockRecord.builder() 153 recordDO = ProjectFieldLockRecord.builder()
153 - .projectId(applyDO.getProjectId()) 154 + .projectNoPrefix(applyDO.getProjectNoPrefix())
154 .userId(applyDO.getApplyUserId()) 155 .userId(applyDO.getApplyUserId())
155 .build(); 156 .build();
156 } 157 }
@@ -410,7 +411,6 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe @@ -410,7 +411,6 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
410 }) 411 })
411 .list(); 412 .list();
412 Map<String, ProjectBaseInfoDO> noPrefix2ProjectProfitAnalysisDOMap = list.stream().collect(Collectors.toMap(ProjectBaseInfoDO::getProjectNoPrefix, Function.identity())); 413 Map<String, ProjectBaseInfoDO> noPrefix2ProjectProfitAnalysisDOMap = list.stream().collect(Collectors.toMap(ProjectBaseInfoDO::getProjectNoPrefix, Function.identity()));
413 - Map<Long,String> projectId2ProjectNoPrefixMap = list.stream().collect(Collectors.toMap(ProjectBaseInfoDO::getId, ProjectBaseInfoDO::getProjectNoPrefix));  
414 Set<String> collect = orderInfoResultVOS.stream() 414 Set<String> collect = orderInfoResultVOS.stream()
415 .map(OrderBaseInfoVO::getCustomerCode) 415 .map(OrderBaseInfoVO::getCustomerCode)
416 .collect(Collectors.toSet()); 416 .collect(Collectors.toSet());
@@ -426,9 +426,9 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe @@ -426,9 +426,9 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
426 List<ProjectFieldLockRecord> lockRecords = projectionFieldLockRecordService 426 List<ProjectFieldLockRecord> lockRecords = projectionFieldLockRecordService
427 .lambdaQuery() 427 .lambdaQuery()
428 .func(query -> { 428 .func(query -> {
429 - Set<Long> projectIds = list.stream().map(ProjectBaseInfoDO::getId).collect(Collectors.toSet());  
430 - if(CollUtil.isNotEmpty(projectIds)){  
431 - query.in(ProjectFieldLockRecord::getProjectId,projectIds); 429 + Set<String> projectNoPrefixs = list.stream().map(ProjectBaseInfoDO::getProjectNoPrefix).collect(Collectors.toSet());
  430 + if(CollUtil.isNotEmpty(projectNoPrefixs)){
  431 + query.in(ProjectFieldLockRecord::getProjectNoPrefix,projectNoPrefixs);
432 432
433 }else { 433 }else {
434 query.apply("1!=1"); 434 query.apply("1!=1");
@@ -436,8 +436,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe @@ -436,8 +436,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
436 }) 436 })
437 .list(); 437 .list();
438 Map<String,ProjectBaseInfoLockFieldVO> prjectNo2LockRecordMap = lockRecords.stream() 438 Map<String,ProjectBaseInfoLockFieldVO> prjectNo2LockRecordMap = lockRecords.stream()
439 - .filter(record -> projectId2ProjectNoPrefixMap.containsKey(record.getProjectId()))  
440 - .collect(Collectors.toMap(record -> projectId2ProjectNoPrefixMap.get(record.getProjectId()), record -> { 439 + .collect(Collectors.toMap(ProjectFieldLockRecord::getProjectNoPrefix, record -> {
441 try { 440 try {
442 return objectMapper.readValue(record.getFields(), ProjectBaseInfoLockFieldVO.class); 441 return objectMapper.readValue(record.getFields(), ProjectBaseInfoLockFieldVO.class);
443 } catch (JsonProcessingException e) { 442 } catch (JsonProcessingException e) {