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 99 */
100 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 38 @TableId(value = "id", type = IdType.AUTO)
39 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 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 40 @TableId(value = "id", type = IdType.AUTO)
41 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 47 @ApiModelProperty(value = "用户id")
47 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 77  
78 78 @Override
79 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 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 94 @Override
90 95 public ServerResult applyEditFileds(ProjectBaseInfoLockFieldVO vo) {
91 96 List<ProjectApplyDO> applyDOS = projectFieldLockApplyService.list(new LambdaQueryWrapper<ProjectApplyDO>()
92 97 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
93   - .eq(ProjectApplyDO::getProjectId, vo.getProjectId())
  98 + .eq(ProjectApplyDO::getProjectNoPrefix, vo.getProjectNoPrefix())
94 99 .eq(ProjectApplyDO::getApplyUserId, dataScope.getLoginUserId())
95 100 .eq(ProjectApplyDO::getStatus, ApplyStatusEnum.WAIT_AUDIT.getStatus()));
96 101 if (CollectionUtils.isNotEmpty(applyDOS)) {
97 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 106 ProjectApplyDO build = ProjectApplyDO.builder()
102   - .projectId(projectId)
  107 + .projectNoPrefix(projectNoPrefix)
103 108 .applyUserId(dataScope.getLoginUserId())
104 109 .fields(JSONObject.toJSONString(vo))
105 110 .type(ProjectApplyTypeEnum.FIELD_EDIT_APPLY)
... ... @@ -124,12 +129,8 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
124 129 if(CollectionUtils.isEmpty(records)){
125 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 132 List<ProjectApplyVO> collect = records.stream().map(e -> {
131 133 ProjectApplyVO projectApplyVO = BeanUtil.copyProperties(e, ProjectApplyVO.class);
132   - projectApplyVO.setProjectNoPrefix(projectId2ProjectNoPrefixMap.get(e.getProjectId()));
133 134 return projectApplyVO;
134 135 }).collect(Collectors.toList());
135 136 return ServerResult.success(buildPageResult(page, collect));
... ... @@ -144,13 +145,13 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
144 145 applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus());
145 146 ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>()
146 147 .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)
147   - .eq(ProjectFieldLockRecord::getProjectId, applyDO.getProjectId())
  148 + .eq(ProjectFieldLockRecord::getProjectNoPrefix, applyDO.getProjectNoPrefix())
148 149 .eq(ProjectFieldLockRecord::getUserId, applyDO.getApplyUserId())
149 150 .orderByDesc(ProjectFieldLockRecord::getId)
150 151 .last("limit 1"));
151 152 if (Objects.isNull(recordDO)) {
152 153 recordDO = ProjectFieldLockRecord.builder()
153   - .projectId(applyDO.getProjectId())
  154 + .projectNoPrefix(applyDO.getProjectNoPrefix())
154 155 .userId(applyDO.getApplyUserId())
155 156 .build();
156 157 }
... ... @@ -410,7 +411,6 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
410 411 })
411 412 .list();
412 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 414 Set<String> collect = orderInfoResultVOS.stream()
415 415 .map(OrderBaseInfoVO::getCustomerCode)
416 416 .collect(Collectors.toSet());
... ... @@ -426,9 +426,9 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
426 426 List<ProjectFieldLockRecord> lockRecords = projectionFieldLockRecordService
427 427 .lambdaQuery()
428 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 433 }else {
434 434 query.apply("1!=1");
... ... @@ -436,8 +436,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl&lt;ProjectBaseInfoMappe
436 436 })
437 437 .list();
438 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 440 try {
442 441 return objectMapper.readValue(record.getFields(), ProjectBaseInfoLockFieldVO.class);
443 442 } catch (JsonProcessingException e) {
... ...