Commit 60b81195047f6aef99f4318ef46795f585dd6e5a
1 parent
10fec827
feat(order): 增加申请编辑字段的备注功能
- 在 OrderCostInfolockFieldVO 和 ProjectBaseInfoLockFieldVO 中添加 applyRemark 字段 - 在 OrderCostInfoServiceImpl 和 ProjectBaseInfoServiceImpl 中处理申请备注 - 优化逻辑 ProjectBaseInfoServiceImpl 中的字段锁定
Showing
5 changed files
with
80 additions
and
71 deletions
src/main/java/com/order/erp/controller/OrderCostController.java
@@ -53,7 +53,7 @@ public class OrderCostController { | @@ -53,7 +53,7 @@ public class OrderCostController { | ||
53 | 53 | ||
54 | @PostMapping("/applyEditFileds") | 54 | @PostMapping("/applyEditFileds") |
55 | @ApiOperation("申请编辑字段") | 55 | @ApiOperation("申请编辑字段") |
56 | - public ServerResult applyEditFileds(OrderCostInfolockFieldVO vo) throws Exception { | 56 | + public ServerResult applyEditFileds(@RequestBody OrderCostInfolockFieldVO vo) throws Exception { |
57 | return orderCostInfoService.applyEditFileds(vo); | 57 | return orderCostInfoService.applyEditFileds(vo); |
58 | } | 58 | } |
59 | 59 |
src/main/java/com/order/erp/domain/vo/order/OrderCostInfolockFieldVO.java
@@ -41,5 +41,5 @@ public class OrderCostInfolockFieldVO implements Serializable { | @@ -41,5 +41,5 @@ public class OrderCostInfolockFieldVO implements Serializable { | ||
41 | 41 | ||
42 | private String packetActualRmbTotalPrice; | 42 | private String packetActualRmbTotalPrice; |
43 | 43 | ||
44 | - | 44 | + private String applyRemark; |
45 | } | 45 | } |
src/main/java/com/order/erp/domain/vo/order/ProjectBaseInfoLockFieldVO.java
@@ -38,6 +38,8 @@ public class ProjectBaseInfoLockFieldVO implements Serializable { | @@ -38,6 +38,8 @@ public class ProjectBaseInfoLockFieldVO implements Serializable { | ||
38 | 38 | ||
39 | private String projectNoPrefix; | 39 | private String projectNoPrefix; |
40 | 40 | ||
41 | + private String applyRemark; | ||
42 | + | ||
41 | private String developmentCopyRmbTotalPrice; | 43 | private String developmentCopyRmbTotalPrice; |
42 | 44 | ||
43 | private String projectStartTime; | 45 | private String projectStartTime; |
src/main/java/com/order/erp/service/order/impl/OrderCostInfoServiceImpl.java
@@ -100,6 +100,7 @@ public class OrderCostInfoServiceImpl extends ServiceImpl<OrderCostInfoMapper, O | @@ -100,6 +100,7 @@ public class OrderCostInfoServiceImpl extends ServiceImpl<OrderCostInfoMapper, O | ||
100 | OrderFieldLockApplyDO build = OrderFieldLockApplyDO.builder() | 100 | OrderFieldLockApplyDO build = OrderFieldLockApplyDO.builder() |
101 | .orderId(vo.getOrderId()) | 101 | .orderId(vo.getOrderId()) |
102 | .applyUserId(dataScope.getLoginUserId()) | 102 | .applyUserId(dataScope.getLoginUserId()) |
103 | + .applyRemark(vo.getApplyRemark()) | ||
103 | .fields(JSONObject.toJSONString(lockField)) | 104 | .fields(JSONObject.toJSONString(lockField)) |
104 | .status(ApplyStatusEnum.WAIT_AUDIT.getStatus()) | 105 | .status(ApplyStatusEnum.WAIT_AUDIT.getStatus()) |
105 | .type(vo.getType()) | 106 | .type(vo.getType()) |
src/main/java/com/order/erp/service/order/impl/ProjectBaseInfoServiceImpl.java
@@ -56,7 +56,7 @@ import java.util.stream.Collectors; | @@ -56,7 +56,7 @@ import java.util.stream.Collectors; | ||
56 | 56 | ||
57 | /** | 57 | /** |
58 | * <p> | 58 | * <p> |
59 | - * 服务实现类 | 59 | + * 服务实现类 |
60 | * </p> | 60 | * </p> |
61 | * | 61 | * |
62 | * @author author | 62 | * @author author |
@@ -87,12 +87,13 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -87,12 +87,13 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
87 | ProjectBaseInfoDO projectBaseInfoDO = null; | 87 | ProjectBaseInfoDO projectBaseInfoDO = null; |
88 | if (projectBaseInfoDOOpt.isPresent()) { | 88 | if (projectBaseInfoDOOpt.isPresent()) { |
89 | projectBaseInfoDO = projectBaseInfoDOOpt.get(); | 89 | projectBaseInfoDO = projectBaseInfoDOOpt.get(); |
90 | - BeanUtil.copyProperties(vo, projectBaseInfoDO,"id"); | ||
91 | - }else { | 90 | + BeanUtil.copyProperties(vo, projectBaseInfoDO, "id"); |
91 | + } else { | ||
92 | projectBaseInfoDO = BeanUtil.copyProperties(vo, ProjectBaseInfoDO.class); | 92 | projectBaseInfoDO = BeanUtil.copyProperties(vo, ProjectBaseInfoDO.class); |
93 | } | 93 | } |
94 | return ServerResult.success(this.saveOrUpdate(projectBaseInfoDO)); | 94 | return ServerResult.success(this.saveOrUpdate(projectBaseInfoDO)); |
95 | } | 95 | } |
96 | + | ||
96 | @Override | 97 | @Override |
97 | public ServerResult applyEditFileds(ProjectBaseInfoLockFieldVO vo) { | 98 | public ServerResult applyEditFileds(ProjectBaseInfoLockFieldVO vo) { |
98 | List<ProjectApplyDO> applyDOS = projectFieldLockApplyService.list(new LambdaQueryWrapper<ProjectApplyDO>() | 99 | List<ProjectApplyDO> applyDOS = projectFieldLockApplyService.list(new LambdaQueryWrapper<ProjectApplyDO>() |
@@ -103,12 +104,19 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -103,12 +104,19 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
103 | if (CollectionUtils.isNotEmpty(applyDOS)) { | 104 | if (CollectionUtils.isNotEmpty(applyDOS)) { |
104 | throw new BusinessException(ServerResultCode.APPLY_UNLOCK_FIELD_EXIST); | 105 | throw new BusinessException(ServerResultCode.APPLY_UNLOCK_FIELD_EXIST); |
105 | } | 106 | } |
106 | - String projectNoPrefix = vo.getProjectNoPrefix(); | ||
107 | - vo.setProjectNoPrefix(null); | 107 | + ProjectBaseInfoLockFieldVO projectBaseInfoLockFieldVO = ProjectBaseInfoLockFieldVO.builder() |
108 | + .developmentCopyRmbTotalPrice(vo.getDevelopmentCopyRmbTotalPrice()) | ||
109 | + .projectStartTime(vo.getProjectStartTime()) | ||
110 | + .projectEndTime(vo.getProjectEndTime()) | ||
111 | + .spainPaidRmbCommission(vo.getSpainPaidRmbCommission()) | ||
112 | + .paidRmbCommission(vo.getPaidRmbCommission()) | ||
113 | + .actualExchangeRate(vo.getActualExchangeRate()) | ||
114 | + .build(); | ||
108 | ProjectApplyDO build = ProjectApplyDO.builder() | 115 | ProjectApplyDO build = ProjectApplyDO.builder() |
109 | - .projectNoPrefix(projectNoPrefix) | 116 | + .projectNoPrefix(vo.getProjectNoPrefix()) |
110 | .applyUserId(dataScope.getLoginUserId()) | 117 | .applyUserId(dataScope.getLoginUserId()) |
111 | - .fields(JSONObject.toJSONString(vo)) | 118 | + .applyRemark(vo.getApplyRemark()) |
119 | + .fields(JSONObject.toJSONString(projectBaseInfoLockFieldVO)) | ||
112 | .type(ProjectApplyTypeEnum.FIELD_EDIT_APPLY) | 120 | .type(ProjectApplyTypeEnum.FIELD_EDIT_APPLY) |
113 | .status(ApplyStatusEnum.WAIT_AUDIT.getStatus()) | 121 | .status(ApplyStatusEnum.WAIT_AUDIT.getStatus()) |
114 | .build(); | 122 | .build(); |
@@ -117,18 +125,16 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -117,18 +125,16 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
117 | } | 125 | } |
118 | 126 | ||
119 | 127 | ||
120 | - | ||
121 | - | ||
122 | @Override | 128 | @Override |
123 | public ServerResult pageProjectLockFieldApply(QueryProjectLockFieldVO vo) { | 129 | public ServerResult pageProjectLockFieldApply(QueryProjectLockFieldVO vo) { |
124 | Page<ProjectApplyDO> page = projectFieldLockApplyService.lambdaQuery() | 130 | Page<ProjectApplyDO> page = projectFieldLockApplyService.lambdaQuery() |
125 | .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) | 131 | .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) |
126 | .eq(ProjectApplyDO::getType, ProjectApplyTypeEnum.FIELD_EDIT_APPLY.getType()) | 132 | .eq(ProjectApplyDO::getType, ProjectApplyTypeEnum.FIELD_EDIT_APPLY.getType()) |
127 | - .eq(ProjectApplyDO::getStatus, StringUtils.isNotBlank(vo.getStatus())? ApplyStatusEnum.WAIT_AUDIT.getStatus():vo.getStatus()) | 133 | + .eq(ProjectApplyDO::getStatus, StringUtils.isBlank(vo.getStatus()) ? ApplyStatusEnum.WAIT_AUDIT.getStatus() : vo.getStatus()) |
128 | .orderByDesc(ProjectApplyDO::getCreateTime) | 134 | .orderByDesc(ProjectApplyDO::getCreateTime) |
129 | .page(new Page<>(vo.getPage(), vo.getPageSize())); | 135 | .page(new Page<>(vo.getPage(), vo.getPageSize())); |
130 | List<ProjectApplyDO> records = page.getRecords(); | 136 | List<ProjectApplyDO> records = page.getRecords(); |
131 | - if(CollectionUtils.isEmpty(records)){ | 137 | + if (CollectionUtils.isEmpty(records)) { |
132 | return buildPageResult(page, Collections.emptyList()); | 138 | return buildPageResult(page, Collections.emptyList()); |
133 | } | 139 | } |
134 | List<ProjectApplyVO> collect = records.stream().map(e -> { | 140 | List<ProjectApplyVO> collect = records.stream().map(e -> { |
@@ -142,28 +148,28 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -142,28 +148,28 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
142 | public ServerResult audit(AuditVO vo) { | 148 | public ServerResult audit(AuditVO vo) { |
143 | ProjectApplyDO applyDO = projectFieldLockApplyService.getById(vo.getId()); | 149 | ProjectApplyDO applyDO = projectFieldLockApplyService.getById(vo.getId()); |
144 | applyDO.setAuditUserId(dataScope.getLoginUserId()); | 150 | applyDO.setAuditUserId(dataScope.getLoginUserId()); |
145 | - | ||
146 | - if(ApplyStatusEnum.AUDIT_PASS.getStatus().equals(vo.getStatus())){ | ||
147 | - applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus()); | ||
148 | - ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>() | ||
149 | - .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) | ||
150 | - .eq(ProjectFieldLockRecord::getProjectNoPrefix, applyDO.getProjectNoPrefix()) | ||
151 | - .eq(ProjectFieldLockRecord::getUserId, applyDO.getApplyUserId()) | ||
152 | - .orderByDesc(ProjectFieldLockRecord::getId) | ||
153 | - .last("limit 1")); | ||
154 | - if (Objects.isNull(recordDO)) { | ||
155 | - recordDO = ProjectFieldLockRecord.builder() | ||
156 | - .projectNoPrefix(applyDO.getProjectNoPrefix()) | ||
157 | - .userId(applyDO.getApplyUserId()) | ||
158 | - .build(); | ||
159 | - } | ||
160 | - recordDO.setFields(applyDO.getFields()); | ||
161 | - if (Objects.isNull(recordDO.getId())) { | ||
162 | - projectionFieldLockRecordService.save(recordDO); | ||
163 | - } else { | ||
164 | - projectionFieldLockRecordService.updateById(recordDO); | ||
165 | - } | ||
166 | - } | 151 | + applyDO.setAuditRemark(vo.getRefuseRemark()); |
152 | + if (ApplyStatusEnum.AUDIT_PASS.getStatus().equals(vo.getStatus())) { | ||
153 | + applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus()); | ||
154 | + ProjectFieldLockRecord recordDO = projectionFieldLockRecordService.getOne(new LambdaQueryWrapper<ProjectFieldLockRecord>() | ||
155 | + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) | ||
156 | + .eq(ProjectFieldLockRecord::getProjectNoPrefix, applyDO.getProjectNoPrefix()) | ||
157 | + .eq(ProjectFieldLockRecord::getUserId, applyDO.getApplyUserId()) | ||
158 | + .orderByDesc(ProjectFieldLockRecord::getId) | ||
159 | + .last("limit 1")); | ||
160 | + if (Objects.isNull(recordDO)) { | ||
161 | + recordDO = ProjectFieldLockRecord.builder() | ||
162 | + .projectNoPrefix(applyDO.getProjectNoPrefix()) | ||
163 | + .userId(applyDO.getApplyUserId()) | ||
164 | + .build(); | ||
165 | + } | ||
166 | + recordDO.setFields(applyDO.getFields()); | ||
167 | + if (Objects.isNull(recordDO.getId())) { | ||
168 | + projectionFieldLockRecordService.save(recordDO); | ||
169 | + } else { | ||
170 | + projectionFieldLockRecordService.updateById(recordDO); | ||
171 | + } | ||
172 | + } | ||
167 | projectFieldLockApplyService.updateById(applyDO); | 173 | projectFieldLockApplyService.updateById(applyDO); |
168 | return ServerResult.success(); | 174 | return ServerResult.success(); |
169 | } | 175 | } |
@@ -215,15 +221,14 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -215,15 +221,14 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
215 | .collect(Collectors.toList()); | 221 | .collect(Collectors.toList()); |
216 | 222 | ||
217 | List<OrderBaseInfoDO> orderBaseInfoDOS = orderBaseInfoService.list(orderBaseInfoService.buildQueryByParam(queryVO) | 223 | List<OrderBaseInfoDO> orderBaseInfoDOS = orderBaseInfoService.list(orderBaseInfoService.buildQueryByParam(queryVO) |
218 | - .and(CollUtil.isNotEmpty(projectNoPrefix),query -> { | 224 | + .and(CollUtil.isNotEmpty(projectNoPrefix), query -> { |
219 | for (int i = 0; i < projectNoPrefix.size(); i++) { | 225 | for (int i = 0; i < projectNoPrefix.size(); i++) { |
220 | query.likeRight(OrderBaseInfoDO::getProjectNo, projectNoPrefix.get(i)); | 226 | query.likeRight(OrderBaseInfoDO::getProjectNo, projectNoPrefix.get(i)); |
221 | if (i != projectNoPrefix.size() - 1) { | 227 | if (i != projectNoPrefix.size() - 1) { |
222 | query.or(); | 228 | query.or(); |
223 | } | 229 | } |
224 | } | 230 | } |
225 | - })) | ||
226 | - ; | 231 | + })); |
227 | 232 | ||
228 | return orderBaseInfoService.wrapperOrderResultList(true, orderBaseInfoDOS); | 233 | return orderBaseInfoService.wrapperOrderResultList(true, orderBaseInfoDOS); |
229 | } | 234 | } |
@@ -239,7 +244,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -239,7 +244,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
239 | } | 244 | } |
240 | 245 | ||
241 | private List<InnerProfitInfoVO> buildInnerProfitInfos(List<OrderInfoResultVO> orderInfoResultVOS) { | 246 | private List<InnerProfitInfoVO> buildInnerProfitInfos(List<OrderInfoResultVO> orderInfoResultVOS) { |
242 | - if(CollUtil.isEmpty(orderInfoResultVOS)){ | 247 | + if (CollUtil.isEmpty(orderInfoResultVOS)) { |
243 | return Collections.emptyList(); | 248 | return Collections.emptyList(); |
244 | } | 249 | } |
245 | Map<String, List<OrderInfoResultVO>> orderBaseInfoDOSGroupByProjectNoPre = orderInfoResultVOS.stream() | 250 | Map<String, List<OrderInfoResultVO>> orderBaseInfoDOSGroupByProjectNoPre = orderInfoResultVOS.stream() |
@@ -437,16 +442,16 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -437,16 +442,16 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
437 | List<ProjectFieldLockRecord> lockRecords = projectionFieldLockRecordService | 442 | List<ProjectFieldLockRecord> lockRecords = projectionFieldLockRecordService |
438 | .lambdaQuery() | 443 | .lambdaQuery() |
439 | .func(query -> { | 444 | .func(query -> { |
440 | - Set<String> projectNoPrefixs = list.stream().map(ProjectBaseInfoDO::getProjectNoPrefix).collect(Collectors.toSet()); | ||
441 | - if(CollUtil.isNotEmpty(projectNoPrefixs)){ | ||
442 | - query.in(ProjectFieldLockRecord::getProjectNoPrefix,projectNoPrefixs); | 445 | + Set<String> projectNoPrefixs = list.stream().map(ProjectBaseInfoDO::getProjectNoPrefix).collect(Collectors.toSet()); |
446 | + if (CollUtil.isNotEmpty(projectNoPrefixs)) { | ||
447 | + query.in(ProjectFieldLockRecord::getProjectNoPrefix, projectNoPrefixs); | ||
443 | 448 | ||
444 | - }else { | 449 | + } else { |
445 | query.apply("1!=1"); | 450 | query.apply("1!=1"); |
446 | } | 451 | } |
447 | }) | 452 | }) |
448 | .list(); | 453 | .list(); |
449 | - Map<String,ProjectBaseInfoLockFieldVO> prjectNo2LockRecordMap = lockRecords.stream() | 454 | + Map<String, ProjectBaseInfoLockFieldVO> prjectNo2LockRecordMap = lockRecords.stream() |
450 | .collect(Collectors.toMap(ProjectFieldLockRecord::getProjectNoPrefix, record -> { | 455 | .collect(Collectors.toMap(ProjectFieldLockRecord::getProjectNoPrefix, record -> { |
451 | try { | 456 | try { |
452 | return objectMapper.readValue(record.getFields(), ProjectBaseInfoLockFieldVO.class); | 457 | return objectMapper.readValue(record.getFields(), ProjectBaseInfoLockFieldVO.class); |
@@ -462,12 +467,12 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -462,12 +467,12 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
462 | .customerCode(details.get(0).getCustomerCode()) | 467 | .customerCode(details.get(0).getCustomerCode()) |
463 | .projectNoPrefix(entry.getKey()) | 468 | .projectNoPrefix(entry.getKey()) |
464 | .lockFields(Optional.ofNullable(prjectNo2LockRecordMap.get(entry.getKey())).orElse(ProjectBaseInfoLockFieldVO.builder() | 469 | .lockFields(Optional.ofNullable(prjectNo2LockRecordMap.get(entry.getKey())).orElse(ProjectBaseInfoLockFieldVO.builder() |
465 | - .actualExchangeRate( Objects.isNull(projectBaseInfoDO)|| Objects.isNull(projectBaseInfoDO.getActualExchangeRate()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | ||
466 | - .developmentCopyRmbTotalPrice(Objects.isNull(projectBaseInfoDO)|| Objects.isNull(projectBaseInfoDO.getDevelopmentCopyRmbTotalPrice()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | ||
467 | - .paidRmbCommission(Objects.isNull(projectBaseInfoDO)|| Objects.isNull(projectBaseInfoDO.getPaidRmbCommission()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | ||
468 | - .projectEndTime(Objects.isNull(projectBaseInfoDO)|| Objects.isNull(projectBaseInfoDO.getProjectEndTime()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | ||
469 | - .projectStartTime(Objects.isNull(projectBaseInfoDO)|| Objects.isNull(projectBaseInfoDO.getProjectStartTime()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | ||
470 | - .spainPaidRmbCommission(Objects.isNull(projectBaseInfoDO)|| Objects.isNull(projectBaseInfoDO.getSpainPaidRmbCommission()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | 470 | + .actualExchangeRate(Objects.isNull(projectBaseInfoDO) || Objects.isNull(projectBaseInfoDO.getActualExchangeRate()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) |
471 | + .developmentCopyRmbTotalPrice(Objects.isNull(projectBaseInfoDO) || Objects.isNull(projectBaseInfoDO.getDevelopmentCopyRmbTotalPrice()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | ||
472 | + .paidRmbCommission(Objects.isNull(projectBaseInfoDO) || Objects.isNull(projectBaseInfoDO.getPaidRmbCommission()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | ||
473 | + .projectEndTime(Objects.isNull(projectBaseInfoDO) || Objects.isNull(projectBaseInfoDO.getProjectEndTime()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | ||
474 | + .projectStartTime(Objects.isNull(projectBaseInfoDO) || Objects.isNull(projectBaseInfoDO.getProjectStartTime()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | ||
475 | + .spainPaidRmbCommission(Objects.isNull(projectBaseInfoDO) || Objects.isNull(projectBaseInfoDO.getSpainPaidRmbCommission()) ? OrderLockFieldEnum.UN_LOCKED.name() : OrderLockFieldEnum.LOCKED.name()) | ||
471 | .build())) | 476 | .build())) |
472 | .build(); | 477 | .build(); |
473 | 478 | ||
@@ -513,7 +518,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -513,7 +518,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
513 | 518 | ||
514 | //包装费用合计¥ | 519 | //包装费用合计¥ |
515 | businessProfitInfoVO.setPacketRmbTotalPrice(Optional.ofNullable(businessProfitInfoVO.getPacketTotalPrice()) | 520 | businessProfitInfoVO.setPacketRmbTotalPrice(Optional.ofNullable(businessProfitInfoVO.getPacketTotalPrice()) |
516 | - .orElse(0.0) *exchangeRate.doubleValue()); | 521 | + .orElse(0.0) * exchangeRate.doubleValue()); |
517 | //包装费用实际金额 | 522 | //包装费用实际金额 |
518 | details.stream() | 523 | details.stream() |
519 | .map(OrderInfoResultVO::getOrderCostInfo) | 524 | .map(OrderInfoResultVO::getOrderCostInfo) |
@@ -676,6 +681,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -676,6 +681,7 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
676 | BusinessProfitInfoVO businessProfitInfoVO = orderInfoResultVOS.get(0); | 681 | BusinessProfitInfoVO businessProfitInfoVO = orderInfoResultVOS.get(0); |
677 | exportBusinessProfitExcel(response, businessProfitInfoVO); | 682 | exportBusinessProfitExcel(response, businessProfitInfoVO); |
678 | } | 683 | } |
684 | + | ||
679 | public void exportBusinessProfitExcel(HttpServletResponse response, BusinessProfitInfoVO businessProfitInfoVO) throws Exception { | 685 | public void exportBusinessProfitExcel(HttpServletResponse response, BusinessProfitInfoVO businessProfitInfoVO) throws Exception { |
680 | DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); | 686 | DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
681 | XSSFWorkbook workbook = new XSSFWorkbook(); | 687 | XSSFWorkbook workbook = new XSSFWorkbook(); |
@@ -718,67 +724,67 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | @@ -718,67 +724,67 @@ public class ProjectBaseInfoServiceImpl extends ServiceImpl<ProjectBaseInfoMappe | ||
718 | createMergedRow(sheet, cellStyle, 12, 13, 7, 9, Optional.ofNullable(businessProfitInfoVO.getCustomerTotalPrice()).map(price -> "$" + price).orElse("-")); | 724 | createMergedRow(sheet, cellStyle, 12, 13, 7, 9, Optional.ofNullable(businessProfitInfoVO.getCustomerTotalPrice()).map(price -> "$" + price).orElse("-")); |
719 | createMergedRow(sheet, cellStyle, 14, 15, 0, 4, "生产科总价合计"); | 725 | createMergedRow(sheet, cellStyle, 14, 15, 0, 4, "生产科总价合计"); |
720 | createMergedRow(sheet, cellStyle, 14, 15, 5, 6, Optional.ofNullable(businessProfitInfoVO.getProductionDepartmentTotalPrice()).map(price -> "¥" + price).orElse("-")); | 726 | createMergedRow(sheet, cellStyle, 14, 15, 5, 6, Optional.ofNullable(businessProfitInfoVO.getProductionDepartmentTotalPrice()).map(price -> "¥" + price).orElse("-")); |
721 | - createMergedRow(sheet, cellStyle, 14, 15, 7, 9,""); | 727 | + createMergedRow(sheet, cellStyle, 14, 15, 7, 9, ""); |
722 | createMergedRow(sheet, cellStyle, 16, 17, 0, 4, "包装费用合计"); | 728 | createMergedRow(sheet, cellStyle, 16, 17, 0, 4, "包装费用合计"); |
723 | createMergedRow(sheet, cellStyle, 16, 17, 5, 6, Optional.ofNullable(businessProfitInfoVO.getPacketRmbTotalPrice()).map(price -> "¥" + price).orElse("-")); | 729 | createMergedRow(sheet, cellStyle, 16, 17, 5, 6, Optional.ofNullable(businessProfitInfoVO.getPacketRmbTotalPrice()).map(price -> "¥" + price).orElse("-")); |
724 | createMergedRow(sheet, cellStyle, 16, 17, 7, 9, Optional.ofNullable(businessProfitInfoVO.getPacketTotalPrice()).map(price -> "$" + price).orElse("-")); | 730 | createMergedRow(sheet, cellStyle, 16, 17, 7, 9, Optional.ofNullable(businessProfitInfoVO.getPacketTotalPrice()).map(price -> "$" + price).orElse("-")); |
725 | createMergedRow(sheet, cellStyle, 18, 19, 0, 4, "研发复制费合计"); | 731 | createMergedRow(sheet, cellStyle, 18, 19, 0, 4, "研发复制费合计"); |
726 | createMergedRow(sheet, cellStyle, 18, 19, 5, 6, Optional.ofNullable(businessProfitInfoVO.getDevelopmentCopyRmbTotalPrice()).map(price -> "¥" + price).orElse("-")); | 732 | createMergedRow(sheet, cellStyle, 18, 19, 5, 6, Optional.ofNullable(businessProfitInfoVO.getDevelopmentCopyRmbTotalPrice()).map(price -> "¥" + price).orElse("-")); |
727 | - createMergedRow(sheet, cellStyle, 18, 19, 7, 9,""); | 733 | + createMergedRow(sheet, cellStyle, 18, 19, 7, 9, ""); |
728 | createMergedRow(sheet, cellStyle, 20, 21, 0, 4, "固定成本"); | 734 | createMergedRow(sheet, cellStyle, 20, 21, 0, 4, "固定成本"); |
729 | createMergedRow(sheet, cellStyle, 20, 21, 5, 6, Optional.ofNullable(businessProfitInfoVO.getFixedCost()).map(price -> "¥" + price).orElse("-")); | 735 | createMergedRow(sheet, cellStyle, 20, 21, 5, 6, Optional.ofNullable(businessProfitInfoVO.getFixedCost()).map(price -> "¥" + price).orElse("-")); |
730 | - createMergedRow(sheet, cellStyle, 20, 21, 7, 9,""); | 736 | + createMergedRow(sheet, cellStyle, 20, 21, 7, 9, ""); |
731 | createMergedRow(sheet, cellStyle, 22, 23, 0, 4, "西班牙提成"); | 737 | createMergedRow(sheet, cellStyle, 22, 23, 0, 4, "西班牙提成"); |
732 | createMergedRow(sheet, cellStyle, 22, 23, 5, 6, Optional.ofNullable(businessProfitInfoVO.getSpainRmbCommission()).map(price -> "¥" + price).orElse("-")); | 738 | createMergedRow(sheet, cellStyle, 22, 23, 5, 6, Optional.ofNullable(businessProfitInfoVO.getSpainRmbCommission()).map(price -> "¥" + price).orElse("-")); |
733 | - createMergedRow(sheet, cellStyle, 22, 23, 7, 9,""); | 739 | + createMergedRow(sheet, cellStyle, 22, 23, 7, 9, ""); |
734 | createMergedRow(sheet, cellStyle, 24, 25, 0, 4, "中国团队提成"); | 740 | createMergedRow(sheet, cellStyle, 24, 25, 0, 4, "中国团队提成"); |
735 | createMergedRow(sheet, cellStyle, 24, 25, 5, 6, Optional.ofNullable(businessProfitInfoVO.getRmbCommission()).map(price -> "¥" + price).orElse("-")); | 741 | createMergedRow(sheet, cellStyle, 24, 25, 5, 6, Optional.ofNullable(businessProfitInfoVO.getRmbCommission()).map(price -> "¥" + price).orElse("-")); |
736 | - createMergedRow(sheet, cellStyle, 24, 25, 7, 9,""); | 742 | + createMergedRow(sheet, cellStyle, 24, 25, 7, 9, ""); |
737 | createMergedRow(sheet, cellStyle, 26, 27, 0, 4, "支出合计"); | 743 | createMergedRow(sheet, cellStyle, 26, 27, 0, 4, "支出合计"); |
738 | createMergedRow(sheet, cellStyle, 26, 27, 5, 6, Optional.ofNullable(businessProfitInfoVO.getRmbTotalExpense()).map(price -> "¥" + price).orElse("-")); | 744 | createMergedRow(sheet, cellStyle, 26, 27, 5, 6, Optional.ofNullable(businessProfitInfoVO.getRmbTotalExpense()).map(price -> "¥" + price).orElse("-")); |
739 | - createMergedRow(sheet, cellStyle, 26, 27, 7, 9,""); | 745 | + createMergedRow(sheet, cellStyle, 26, 27, 7, 9, ""); |
740 | createMergedRow(sheet, cellStyle, 28, 29, 0, 4, "毛利润"); | 746 | createMergedRow(sheet, cellStyle, 28, 29, 0, 4, "毛利润"); |
741 | createMergedRow(sheet, cellStyle, 28, 29, 5, 6, Optional.ofNullable(businessProfitInfoVO.getProfit()).map(price -> "¥" + price).orElse("-")); | 747 | createMergedRow(sheet, cellStyle, 28, 29, 5, 6, Optional.ofNullable(businessProfitInfoVO.getProfit()).map(price -> "¥" + price).orElse("-")); |
742 | - createMergedRow(sheet, cellStyle, 28, 29, 7, 9,""); | 748 | + createMergedRow(sheet, cellStyle, 28, 29, 7, 9, ""); |
743 | createMergedRow(sheet, cellStyle, 30, 31, 0, 4, "毛利率"); | 749 | createMergedRow(sheet, cellStyle, 30, 31, 0, 4, "毛利率"); |
744 | createMergedRow(sheet, cellStyle, 30, 31, 5, 6, Optional.ofNullable(businessProfitInfoVO.getProfitRate()).map(rate -> rate.multiply(new BigDecimal(100)) + "%").orElse("-")); | 750 | createMergedRow(sheet, cellStyle, 30, 31, 5, 6, Optional.ofNullable(businessProfitInfoVO.getProfitRate()).map(rate -> rate.multiply(new BigDecimal(100)) + "%").orElse("-")); |
745 | - createMergedRow(sheet, cellStyle, 30, 31, 7, 9,""); | 751 | + createMergedRow(sheet, cellStyle, 30, 31, 7, 9, ""); |
746 | createMergedRow(sheet, cellStyle, 32, 33, 0, 4, "研发贸易净利润"); | 752 | createMergedRow(sheet, cellStyle, 32, 33, 0, 4, "研发贸易净利润"); |
747 | createMergedRow(sheet, cellStyle, 32, 33, 5, 6, Optional.ofNullable(businessProfitInfoVO.getDevelopmentProfit()).map(price -> "¥" + price).orElse("-")); | 753 | createMergedRow(sheet, cellStyle, 32, 33, 5, 6, Optional.ofNullable(businessProfitInfoVO.getDevelopmentProfit()).map(price -> "¥" + price).orElse("-")); |
748 | - createMergedRow(sheet, cellStyle, 32, 33, 7, 9,""); | 754 | + createMergedRow(sheet, cellStyle, 32, 33, 7, 9, ""); |
749 | createMergedRow(sheet, cellStyle, 34, 35, 0, 4, "研发贸易净利润率"); | 755 | createMergedRow(sheet, cellStyle, 34, 35, 0, 4, "研发贸易净利润率"); |
750 | createMergedRow(sheet, cellStyle, 34, 35, 5, 6, Optional.ofNullable(businessProfitInfoVO.getDevelopmentProfitRate()).map(rate -> rate.multiply(new BigDecimal(100)) + "%").orElse("-")); | 756 | createMergedRow(sheet, cellStyle, 34, 35, 5, 6, Optional.ofNullable(businessProfitInfoVO.getDevelopmentProfitRate()).map(rate -> rate.multiply(new BigDecimal(100)) + "%").orElse("-")); |
751 | - createMergedRow(sheet, cellStyle, 34, 35, 7, 9,""); | 757 | + createMergedRow(sheet, cellStyle, 34, 35, 7, 9, ""); |
752 | createMergedRow(sheet, cellStyle, 36, 37, 0, 4, "包装费用合计金额"); | 758 | createMergedRow(sheet, cellStyle, 36, 37, 0, 4, "包装费用合计金额"); |
753 | createMergedRow(sheet, cellStyle, 36, 37, 5, 6, Optional.ofNullable(businessProfitInfoVO.getPacketRmbTotalPrice()).map(price -> "¥" + price).orElse("-")); | 759 | createMergedRow(sheet, cellStyle, 36, 37, 5, 6, Optional.ofNullable(businessProfitInfoVO.getPacketRmbTotalPrice()).map(price -> "¥" + price).orElse("-")); |
754 | - createMergedRow(sheet, cellStyle, 36, 37, 7, 9,""); | 760 | + createMergedRow(sheet, cellStyle, 36, 37, 7, 9, ""); |
755 | createMergedRow(sheet, cellStyle, 38, 39, 0, 4, "包装费用实际金额"); | 761 | createMergedRow(sheet, cellStyle, 38, 39, 0, 4, "包装费用实际金额"); |
756 | createMergedRow(sheet, cellStyle, 38, 39, 5, 6, Optional.ofNullable(businessProfitInfoVO.getPacketActualRmbTotalPrice()).map(price -> "¥" + price).orElse("-")); | 762 | createMergedRow(sheet, cellStyle, 38, 39, 5, 6, Optional.ofNullable(businessProfitInfoVO.getPacketActualRmbTotalPrice()).map(price -> "¥" + price).orElse("-")); |
757 | - createMergedRow(sheet, cellStyle, 38, 39, 7, 9,""); | 763 | + createMergedRow(sheet, cellStyle, 38, 39, 7, 9, ""); |
758 | createMergedRow(sheet, cellStyle, 40, 41, 0, 4, "订单总数量"); | 764 | createMergedRow(sheet, cellStyle, 40, 41, 0, 4, "订单总数量"); |
759 | createMergedRow(sheet, cellStyle, 40, 41, 5, 6, Optional.ofNullable(businessProfitInfoVO.getOrderCount()).map(String::valueOf).orElse("-")); | 765 | createMergedRow(sheet, cellStyle, 40, 41, 5, 6, Optional.ofNullable(businessProfitInfoVO.getOrderCount()).map(String::valueOf).orElse("-")); |
760 | - createMergedRow(sheet, cellStyle, 40, 41, 7, 9,""); | 766 | + createMergedRow(sheet, cellStyle, 40, 41, 7, 9, ""); |
761 | createMergedRow(sheet, cellStyle, 42, 43, 0, 4, "实际跟单单价=实际跟单费用/件数"); | 767 | createMergedRow(sheet, cellStyle, 42, 43, 0, 4, "实际跟单单价=实际跟单费用/件数"); |
762 | createMergedRow(sheet, cellStyle, 42, 43, 5, 6, Optional.ofNullable(businessProfitInfoVO.getActualOrderRmbPrice()).map(price -> "¥" + price).orElse("-")); | 768 | createMergedRow(sheet, cellStyle, 42, 43, 5, 6, Optional.ofNullable(businessProfitInfoVO.getActualOrderRmbPrice()).map(price -> "¥" + price).orElse("-")); |
763 | - createMergedRow(sheet, cellStyle, 42, 43, 7, 9,""); | 769 | + createMergedRow(sheet, cellStyle, 42, 43, 7, 9, ""); |
764 | createMergedRow(sheet, cellStyle, 44, 45, 0, 4, "实际跟单单价折算美金"); | 770 | createMergedRow(sheet, cellStyle, 44, 45, 0, 4, "实际跟单单价折算美金"); |
765 | createMergedRow(sheet, cellStyle, 44, 45, 5, 6, Optional.ofNullable(businessProfitInfoVO.getActualOrderPrice()).map(price -> "$" + price).orElse("-")); | 771 | createMergedRow(sheet, cellStyle, 44, 45, 5, 6, Optional.ofNullable(businessProfitInfoVO.getActualOrderPrice()).map(price -> "$" + price).orElse("-")); |
766 | - createMergedRow(sheet, cellStyle, 44, 45, 7, 9,""); | 772 | + createMergedRow(sheet, cellStyle, 44, 45, 7, 9, ""); |
767 | createMergedRow(sheet, cellStyle, 46, 47, 0, 4, "包装费用收益"); | 773 | createMergedRow(sheet, cellStyle, 46, 47, 0, 4, "包装费用收益"); |
768 | createMergedRow(sheet, cellStyle, 46, 47, 5, 6, Optional.ofNullable(businessProfitInfoVO.getPacketProfitRmbPrice()).map(price -> "¥" + price).orElse("-")); | 774 | createMergedRow(sheet, cellStyle, 46, 47, 5, 6, Optional.ofNullable(businessProfitInfoVO.getPacketProfitRmbPrice()).map(price -> "¥" + price).orElse("-")); |
769 | - createMergedRow(sheet, cellStyle, 46, 47, 7, 9,""); | 775 | + createMergedRow(sheet, cellStyle, 46, 47, 7, 9, ""); |
770 | createMergedRow(sheet, cellStyle, 48, 49, 0, 4, "包装费用净利润率"); | 776 | createMergedRow(sheet, cellStyle, 48, 49, 0, 4, "包装费用净利润率"); |
771 | createMergedRow(sheet, cellStyle, 48, 49, 5, 6, Optional.ofNullable(businessProfitInfoVO.getPacketProfitRate()).map(rate -> rate.multiply(new BigDecimal(100)) + "%").orElse("-")); | 777 | createMergedRow(sheet, cellStyle, 48, 49, 5, 6, Optional.ofNullable(businessProfitInfoVO.getPacketProfitRate()).map(rate -> rate.multiply(new BigDecimal(100)) + "%").orElse("-")); |
772 | - createMergedRow(sheet, cellStyle, 48, 49, 7, 9,""); | 778 | + createMergedRow(sheet, cellStyle, 48, 49, 7, 9, ""); |
773 | createMergedRow(sheet, cellStyle, 50, 51, 0, 4, "实际汇率"); | 779 | createMergedRow(sheet, cellStyle, 50, 51, 0, 4, "实际汇率"); |
774 | createMergedRow(sheet, cellStyle, 50, 51, 5, 6, Optional.ofNullable(businessProfitInfoVO.getActualExchangeRate()).map(String::valueOf).orElse("-")); | 780 | createMergedRow(sheet, cellStyle, 50, 51, 5, 6, Optional.ofNullable(businessProfitInfoVO.getActualExchangeRate()).map(String::valueOf).orElse("-")); |
775 | - createMergedRow(sheet, cellStyle, 50, 51, 7, 9,""); | 781 | + createMergedRow(sheet, cellStyle, 50, 51, 7, 9, ""); |
776 | createMergedRow(sheet, cellStyle, 52, 53, 0, 4, "汇率收益"); | 782 | createMergedRow(sheet, cellStyle, 52, 53, 0, 4, "汇率收益"); |
777 | createMergedRow(sheet, cellStyle, 52, 53, 5, 6, Optional.ofNullable(businessProfitInfoVO.getExchangeRateProfit()).map(price -> "¥" + price).orElse("-")); | 783 | createMergedRow(sheet, cellStyle, 52, 53, 5, 6, Optional.ofNullable(businessProfitInfoVO.getExchangeRateProfit()).map(price -> "¥" + price).orElse("-")); |
778 | - createMergedRow(sheet, cellStyle, 52, 53, 7, 9,""); | 784 | + createMergedRow(sheet, cellStyle, 52, 53, 7, 9, ""); |
779 | createMergedRow(sheet, cellStyle, 54, 55, 0, 4, "综合收益"); | 785 | createMergedRow(sheet, cellStyle, 54, 55, 0, 4, "综合收益"); |
780 | createMergedRow(sheet, cellStyle, 54, 55, 5, 6, Optional.ofNullable(businessProfitInfoVO.getComprehensiveProfit()).map(price -> "¥" + price).orElse("-")); | 786 | createMergedRow(sheet, cellStyle, 54, 55, 5, 6, Optional.ofNullable(businessProfitInfoVO.getComprehensiveProfit()).map(price -> "¥" + price).orElse("-")); |
781 | - createMergedRow(sheet, cellStyle, 54, 55, 7, 9,""); | 787 | + createMergedRow(sheet, cellStyle, 54, 55, 7, 9, ""); |
782 | 788 | ||
783 | // 设置响应头 | 789 | // 设置响应头 |
784 | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); | 790 | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |