diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java index 93f280d..dd59ce7 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderCompletionReportFieldVO.java @@ -19,6 +19,11 @@ import java.io.Serializable; public class OrderCompletionReportFieldVO implements Serializable { /** + * 订单id + */ + private Long orderId; + + /** * 想法来源 */ private String ideaSource; diff --git a/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisFieldVO.java b/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisFieldVO.java index bf86d91..29e29af 100644 --- a/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisFieldVO.java +++ b/src/main/java/com/order/erp/domain/vo/order/OrderProfitAnalysisFieldVO.java @@ -17,6 +17,11 @@ import java.io.Serializable; @EqualsAndHashCode(callSuper = false) @SuperBuilder public class OrderProfitAnalysisFieldVO implements Serializable { + + /** + * 订单id + */ + private Long orderId; /** * 客户单价$ */ diff --git a/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java b/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java index 9422f36..00a0f53 100644 --- a/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java +++ b/src/main/java/com/order/erp/service/order/impl/OrderBaseInfoServiceImpl.java @@ -27,8 +27,6 @@ import com.order.erp.domain.OrderStatusEnum; import com.order.erp.domain.dto.BaseDO; import com.order.erp.domain.dto.order.*; import com.order.erp.domain.excel.OrderExcelVO; -import com.order.erp.domain.vo.IndexDataVO; -import com.order.erp.domain.vo.OrderCountVO; import com.order.erp.domain.vo.order.*; import com.order.erp.mapper.order.OrderBaseInfoMapper; import com.order.erp.service.order.*; @@ -42,7 +40,10 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; @@ -241,6 +242,23 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O } /** + * @param orderId + * @param userId + */ + private void checkApply(Long orderId, Long userId) { + List<OrderFieldLockApplyDO> applyDOS = orderFieldLockApplyService.list(new LambdaQueryWrapper<OrderFieldLockApplyDO>() + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) + .eq(OrderFieldLockApplyDO::getOrderId, orderId) + .eq(OrderFieldLockApplyDO::getApplyUserId, userId) + .eq(OrderFieldLockApplyDO::getType, ApplyTypeEnum.FIELD_EDIT_APPLY.getType()) + .eq(OrderFieldLockApplyDO::getStatus, ApplyStatusEnum.WAIT_AUDIT.getStatus())); + if (CollectionUtils.isNotEmpty(applyDOS)) { + throw new BusinessException(ServerResultCode.APPLY_UNLOCK_FIELD_EXIST); + } + } + + + /** * @param fieldVO * @param userId * @return @@ -259,6 +277,84 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O .build(); } + + /** + * @param reportVO + * @param userId + * @return + */ + private OrderFieldLockApplyDO buildReportFieldLockApplyDO(OrderCompletionReportVO reportVO, Long userId) { + OrderCompletionReportFieldVO reportFieldVO = report2reportField(reportVO); + return OrderFieldLockApplyDO.builder() + .applyUserId(userId) + .auditUserId(null) + .fields(JSONObject.toJSONString(reportFieldVO)) + .orderId(reportFieldVO.getOrderId()) + .type(ApplyTypeEnum.ORDER_REPORT_APPLY.getType()) + .remark(ApplyTypeEnum.ORDER_REPORT_APPLY.getDesc()) + .status(ApplyStatusEnum.WAIT_AUDIT.getStatus()) + .build(); + } + + /** + * @param reportVO + * @return + */ + private OrderCompletionReportFieldVO report2reportField(OrderCompletionReportVO reportVO) { + return OrderCompletionReportFieldVO.builder() + .orderId(reportVO.getOrderId()) + .ideaManualRate(Objects.nonNull(reportVO.getIdeaManualRate()) ? reportVO.getIdeaManualRate().toString() : null) + .ideaSource(StringUtils.isNotBlank(reportVO.getIdeaSource()) ? reportVO.getIdeaSource() : null) + .manualPreform(StringUtils.isNotBlank(reportVO.getManualPreform()) ? reportVO.getManualPreform() : null).build(); + } + + + /** + * @param profitAnalysisVO + * @param userId + * @return + */ + private OrderFieldLockApplyDO buildProfitFieldLockApplyDO(OrderProfitAnalysisVO profitAnalysisVO, Long userId) { + OrderProfitAnalysisFieldVO profitAnalysisFieldVO = profitAnalysis2profitAnalysisField(profitAnalysisVO); + return OrderFieldLockApplyDO.builder() + .applyUserId(userId) + .auditUserId(null) + .fields(JSONObject.toJSONString(profitAnalysisFieldVO)) + .orderId(profitAnalysisFieldVO.getOrderId()) + .type(ApplyTypeEnum.ORDER_PROFIT_APPLY.getType()) + .remark(ApplyTypeEnum.ORDER_PROFIT_APPLY.getDesc()) + .status(ApplyStatusEnum.WAIT_AUDIT.getStatus()) + .build(); + } + + /** + * @param profitAnalysisVO + * @return + */ + private OrderProfitAnalysisFieldVO profitAnalysis2profitAnalysisField(OrderProfitAnalysisVO profitAnalysisVO) { + Double profitRate = null; + if (Objects.nonNull(profitAnalysisVO.getCustomerTotalPrice()) + && Objects.nonNull(profitAnalysisVO.getExchangeRate()) + && Objects.nonNull(profitAnalysisVO.getPacketTotalPrice()) + && Objects.nonNull(profitAnalysisVO.getProductionDepartmentTotalPrice())) { + profitRate = ProfitUtils.calculateProfitRate(ProfitCalculateVO.builder() + .customerTotalPrice(profitAnalysisVO.getCustomerTotalPrice()) + .exchangeRate(profitAnalysisVO.getExchangeRate()) + .packetTotalPrice(profitAnalysisVO.getPacketTotalPrice()) + .productionDepartmentTotalPrice(profitAnalysisVO.getProductionDepartmentTotalPrice()).build()); + } + return OrderProfitAnalysisFieldVO.builder() + .orderId(profitAnalysisVO.getOrderId()) + .customerPrice(Objects.nonNull(profitAnalysisVO.getCustomerPrice()) ? profitAnalysisVO.getCustomerPrice().toString() : null) + .customerTotalPrice(Objects.nonNull(profitAnalysisVO.getCustomerTotalPrice()) ? profitAnalysisVO.getCustomerTotalPrice().toString() : null) + .packetPrice(Objects.nonNull(profitAnalysisVO.getPacketPrice()) ? profitAnalysisVO.getPacketPrice().toString() : null) + .packetTotalPrice(Objects.nonNull(profitAnalysisVO.getPacketTotalPrice()) ? profitAnalysisVO.getPacketTotalPrice().toString() : null) + .productionDepartmentPrice(Objects.nonNull(profitAnalysisVO.getProductionDepartmentPrice()) ? profitAnalysisVO.getProductionDepartmentPrice().toString() : null) + .productionDepartmentTotalPrice(Objects.nonNull(profitAnalysisVO.getProductionDepartmentTotalPrice()) ? profitAnalysisVO.getProductionDepartmentTotalPrice().toString() : null) + .exchangeRate(Objects.nonNull(profitAnalysisVO.getExchangeRate()) ? profitAnalysisVO.getExchangeRate().toString() : null) + .profitRate(Objects.nonNull(profitRate) ? profitRate.toString() : null).build(); + } + /** * @param orderInfoResultVOList */ @@ -434,6 +530,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O * @return 实例对象 */ @Override + @Transactional public ServerResult add(OrderAddVO orderAddVO) { OrderBaseInfoVO baseInfoVO = orderAddVO.getBaseInfo(); if (Objects.isNull(baseInfoVO)) { @@ -495,43 +592,38 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O * @return 实例对象 */ @Override + @Transactional public ServerResult edit(OrderUpdateVO updateVO) { //todo 校验 if (Objects.isNull(updateVO.getOrderId())) { return ServerResult.fail("id 不能为空"); } + Long userId = dataScope.getLoginUserId(); + OrderBaseInfoDO orderBaseInfoDo = getById(updateVO.getOrderId()); + if (Objects.isNull(orderBaseInfoDo)) { + throw new BusinessException(ServerResultCode.ORDER_BASE_INFO_EMPTY); + } if (Objects.nonNull(updateVO.getBaseInfo())) { - OrderBaseInfoDO orderBaseInfoDo = BeanUtil.copyProperties(updateVO.getBaseInfo(), OrderBaseInfoDO.class); + orderBaseInfoDo = BeanUtil.copyProperties(updateVO.getBaseInfo(), OrderBaseInfoDO.class); orderBaseInfoDo.setId(updateVO.getOrderId()); - updateById(orderBaseInfoDo); + } if (Objects.nonNull(updateVO.getProfitAnalysisInfo())) { - OrderProfitAnalysisDO profitAnalysisDO = profitAnalysisService.getOne(new LambdaQueryWrapper<OrderProfitAnalysisDO>() - .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) - .eq(OrderProfitAnalysisDO::getOrderId, updateVO.getOrderId())); - if (Objects.nonNull(profitAnalysisDO)) { - BeanUtils.copyProperties(updateVO.getProfitAnalysisInfo(), profitAnalysisDO); - profitAnalysisDO.setOrderId(updateVO.getOrderId()); - profitAnalysisDO.setOrderStatus(OrderStatusEnum.PROFIT_WAIT_AUDIT.getStatus()); - profitAnalysisDO.setProfitRate(ProfitUtils.calculateProfitRate(ProfitCalculateVO.builder() - .customerTotalPrice(profitAnalysisDO.getCustomerTotalPrice()) - .exchangeRate(profitAnalysisDO.getExchangeRate()) - .packetTotalPrice(profitAnalysisDO.getPacketTotalPrice()) - .productionDepartmentTotalPrice(profitAnalysisDO.getProductionDepartmentTotalPrice()).build())); - profitAnalysisService.updateById(profitAnalysisDO); - } + checkApply(updateVO.getOrderId(), userId); + OrderFieldLockApplyDO orderFieldLockApplyDO = buildProfitFieldLockApplyDO(updateVO.getProfitAnalysisInfo(), userId); + orderFieldLockApplyService.save(orderFieldLockApplyDO); + + orderBaseInfoDo.setOrderStatus(OrderStatusEnum.PROFIT_WAIT_AUDIT.getStatus()); + updateById(orderBaseInfoDo); } if (Objects.nonNull(updateVO.getReportInfo())) { - OrderCompletionReportDO reportDO = reportService.getOne(new LambdaQueryWrapper<OrderCompletionReportDO>() - .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) - .eq(OrderCompletionReportDO::getOrderId, updateVO.getOrderId())); - if (Objects.nonNull(reportDO)) { - BeanUtils.copyProperties(updateVO.getReportInfo(), reportDO); - reportDO.setOrderId(updateVO.getOrderId()); - reportDO.setOrderStatus(OrderStatusEnum.REPORT_WAIT_AUDIT.getStatus()); - reportService.updateById(reportDO); - } + checkApply(updateVO.getOrderId(), userId); + OrderFieldLockApplyDO orderFieldLockApplyDO = buildReportFieldLockApplyDO(updateVO.getReportInfo(), userId); + orderFieldLockApplyService.save(orderFieldLockApplyDO); + + orderBaseInfoDo.setOrderStatus(OrderStatusEnum.REPORT_WAIT_AUDIT.getStatus()); + updateById(orderBaseInfoDo); } if (Objects.nonNull(updateVO.getTrackStageInfo())) { @@ -543,8 +635,14 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O trackStageDO.setOrderId(updateVO.getOrderId()); trackStageDO.setOrderStatus(OrderStatusEnum.TRACK_ING.getStatus()); trackStageService.updateById(trackStageDO); + } else { + BeanUtils.copyProperties(updateVO.getTrackStageInfo(), trackStageDO); + trackStageDO.setOrderId(updateVO.getOrderId()); + trackStageDO.setOrderStatus(OrderStatusEnum.TRACK_ING.getStatus()); + trackStageService.save(trackStageDO); } - + orderBaseInfoDo.setOrderStatus(OrderStatusEnum.TRACK_ING.getStatus()); + updateById(orderBaseInfoDo); } if (Objects.nonNull(updateVO.getInspectionStageInfo())) { @@ -556,8 +654,14 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O inspectionStageDO.setOrderId(updateVO.getOrderId()); inspectionStageDO.setOrderStatus(OrderStatusEnum.INSPECT_ING.getStatus()); inspectionStageService.updateById(inspectionStageDO); + } else { + BeanUtils.copyProperties(updateVO.getInspectionStageInfo(), inspectionStageDO); + inspectionStageDO.setOrderId(updateVO.getOrderId()); + inspectionStageDO.setOrderStatus(OrderStatusEnum.INSPECT_ING.getStatus()); + inspectionStageService.save(inspectionStageDO); } - + orderBaseInfoDo.setOrderStatus(OrderStatusEnum.INSPECT_ING.getStatus()); + updateById(orderBaseInfoDo); } return ServerResult.success(); @@ -619,13 +723,14 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O /** * 根据订单状态统计订单数量 + * * @param orderStatus * @return */ @Override public long countByOrderStatus(Integer orderStatus) { - return this.count(new LambdaQueryWrapper<OrderBaseInfoDO>().eq(OrderBaseInfoDO::getOrderStatus,orderStatus) - .eq(OrderBaseInfoDO::getEnableFlag,Constant.ENABLE_TEN)); + return this.count(new LambdaQueryWrapper<OrderBaseInfoDO>().eq(OrderBaseInfoDO::getOrderStatus, orderStatus) + .eq(OrderBaseInfoDO::getEnableFlag, Constant.ENABLE_TEN)); } @Override @@ -640,7 +745,7 @@ public class OrderBaseInfoServiceImpl extends ServiceImpl<OrderBaseInfoMapper, O @Override public long countAll() { - return this.count(new LambdaQueryWrapper<OrderBaseInfoDO>().eq(OrderBaseInfoDO::getEnableFlag,Constant.ENABLE_TEN)); + return this.count(new LambdaQueryWrapper<OrderBaseInfoDO>().eq(OrderBaseInfoDO::getEnableFlag, Constant.ENABLE_TEN)); } @Override diff --git a/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java b/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java index ab97d39..4be4ea4 100644 --- a/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java +++ b/src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java @@ -17,15 +17,12 @@ import com.order.erp.common.exception.BusinessException; import com.order.erp.config.DataScope; import com.order.erp.domain.ApplyStatusEnum; import com.order.erp.domain.ApplyTypeEnum; +import com.order.erp.domain.OrderStatusEnum; import com.order.erp.domain.dto.BaseDO; -import com.order.erp.domain.dto.order.OrderAuditLogDO; -import com.order.erp.domain.dto.order.OrderFieldLockApplyDO; -import com.order.erp.domain.dto.order.OrderFieldLockRecordDO; +import com.order.erp.domain.dto.order.*; import com.order.erp.domain.vo.order.*; import com.order.erp.mapper.order.OrderFieldLockApplyMapper; -import com.order.erp.service.order.OrderAuditLogService; -import com.order.erp.service.order.OrderFieldLockApplyService; -import com.order.erp.service.order.OrderFieldLockRecordService; +import com.order.erp.service.order.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -58,6 +55,15 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp @Resource private OrderAuditLogService auditLogService; + @Resource + private OrderBaseInfoService orderBaseInfoService; + + @Resource + private OrderCompletionReportService reportService; + + @Resource + private OrderProfitAnalysisService profitAnalysisService; + /** * 通过ID查询单条数据 * <p> @@ -166,7 +172,18 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp public void doRefuse(OrderFieldLockApplyDO applyDO, Long auditUserId) { applyDO.setAuditUserId(auditUserId); applyDO.setStatus(ApplyStatusEnum.AUDIT_REFUSE.getStatus()); + OrderBaseInfoDO orderBaseInfoDO = orderBaseInfoService.getById(applyDO.getOrderId()); + if (Objects.isNull(orderBaseInfoDO)) { + throw new BusinessException(ServerResultCode.ORDER_BASE_INFO_EMPTY); + } + if (ApplyTypeEnum.ORDER_REPORT_APPLY.getType().equals(applyDO.getType())) { + orderBaseInfoDO.setOrderStatus(OrderStatusEnum.REPORT_AUDIT_REFUSE.getStatus()); + orderBaseInfoService.updateById(orderBaseInfoDO); + } else if (ApplyTypeEnum.ORDER_PROFIT_APPLY.getType().equals(applyDO.getType())) { + orderBaseInfoDO.setOrderStatus(OrderStatusEnum.PROFIT_AUDIT_REFUSE.getStatus()); + orderBaseInfoService.updateById(orderBaseInfoDO); + } OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_REFUSE.getDesc()).build(); applyService.updateById(applyDO); @@ -179,12 +196,12 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp */ @Transactional(rollbackFor = Exception.class) public void doPass(OrderFieldLockApplyDO applyDO, Long auditUserId) { - OrderFieldLockRecordDO recordDO = null; + if (ApplyTypeEnum.FIELD_EDIT_APPLY.getType().equals(applyDO.getType())) { applyDO.setAuditUserId(auditUserId); applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus()); - recordDO = fieldLockRecordService.getOne(new LambdaQueryWrapper<OrderFieldLockRecordDO>() + OrderFieldLockRecordDO recordDO = fieldLockRecordService.getOne(new LambdaQueryWrapper<OrderFieldLockRecordDO>() .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) .eq(OrderFieldLockRecordDO::getOrderId, applyDO.getOrderId()) .eq(OrderFieldLockRecordDO::getUserId, applyDO.getApplyUserId())); @@ -195,22 +212,112 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp .fields(applyDO.getFields()).build(); } recordDO.setFields(applyDO.getFields()); + + if (Objects.isNull(recordDO.getId())) { + fieldLockRecordService.save(recordDO); + } else { + fieldLockRecordService.updateById(recordDO); + } + } else if (ApplyTypeEnum.ORDER_REPORT_APPLY.getType().equals(applyDO.getType())) { + applyDO.setAuditUserId(auditUserId); + applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus()); + + OrderCompletionReportFieldVO reportFieldVO = JSONObject.parseObject(applyDO.getFields(), OrderCompletionReportFieldVO.class); + + OrderBaseInfoDO orderBaseInfoDO = orderBaseInfoService.getById(applyDO.getOrderId()); + if (Objects.isNull(orderBaseInfoDO)) { + throw new BusinessException(ServerResultCode.ORDER_BASE_INFO_EMPTY); + } + + OrderCompletionReportDO reportDO = reportService.getOne(new LambdaQueryWrapper<OrderCompletionReportDO>() + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) + .eq(OrderCompletionReportDO::getOrderId, applyDO.getOrderId())); + if (Objects.isNull(reportDO)) { + reportDO = reportField2reportDo(reportFieldVO); + reportDO.setOrderStatus(OrderStatusEnum.REPORT_AUDIT_PASS.getStatus()); + reportService.save(reportDO); + } else { + reportDO.setOrderStatus(OrderStatusEnum.REPORT_AUDIT_PASS.getStatus()); + reportDO.setIdeaManualRate(Objects.nonNull(reportFieldVO.getIdeaManualRate()) ? Double.valueOf(reportFieldVO.getIdeaManualRate()) : null); + reportDO.setIdeaSource(reportFieldVO.getIdeaSource()); + reportDO.setManualPreform(reportFieldVO.getManualPreform()); + reportService.updateById(reportDO); + } + orderBaseInfoDO.setOrderStatus(OrderStatusEnum.REPORT_AUDIT_PASS.getStatus()); + orderBaseInfoService.updateById(orderBaseInfoDO); + } else if (ApplyTypeEnum.ORDER_PROFIT_APPLY.getType().equals(applyDO.getType())) { + applyDO.setAuditUserId(auditUserId); + applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus()); + + OrderProfitAnalysisFieldVO profitAnalysisFieldVO = JSONObject.parseObject(applyDO.getFields(), OrderProfitAnalysisFieldVO.class); + + OrderBaseInfoDO orderBaseInfoDO = orderBaseInfoService.getById(applyDO.getOrderId()); + if (Objects.isNull(orderBaseInfoDO)) { + throw new BusinessException(ServerResultCode.ORDER_BASE_INFO_EMPTY); + } + + OrderProfitAnalysisDO profitAnalysisDO = profitAnalysisService.getOne(new LambdaQueryWrapper<OrderProfitAnalysisDO>() + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) + .eq(OrderProfitAnalysisDO::getOrderId, applyDO.getOrderId())); + if (Objects.isNull(profitAnalysisDO)) { + profitAnalysisDO = profitField2profitDo(profitAnalysisFieldVO); + profitAnalysisDO.setOrderStatus(OrderStatusEnum.PROFIT_AUDIT_PASS.getStatus()); + profitAnalysisService.save(profitAnalysisDO); + } else { + profitAnalysisDO.setOrderStatus(OrderStatusEnum.PROFIT_AUDIT_PASS.getStatus()); + profitAnalysisDO.setCustomerPrice(Objects.nonNull(profitAnalysisFieldVO.getCustomerPrice()) ? Double.valueOf(profitAnalysisFieldVO.getCustomerPrice()) : null); + profitAnalysisDO.setCustomerTotalPrice(Objects.nonNull(profitAnalysisFieldVO.getCustomerTotalPrice()) ? Double.valueOf(profitAnalysisFieldVO.getCustomerTotalPrice()) : null); + profitAnalysisDO.setExchangeRate(Objects.nonNull(profitAnalysisFieldVO.getExchangeRate()) ? Double.valueOf(profitAnalysisFieldVO.getExchangeRate()) : null); + profitAnalysisDO.setPacketPrice(Objects.nonNull(profitAnalysisFieldVO.getPacketPrice()) ? Double.valueOf(profitAnalysisFieldVO.getPacketPrice()) : null); + profitAnalysisDO.setPacketTotalPrice(Objects.nonNull(profitAnalysisFieldVO.getPacketTotalPrice()) ? Double.valueOf(profitAnalysisFieldVO.getPacketTotalPrice()) : null); + profitAnalysisDO.setProductionDepartmentPrice(Objects.nonNull(profitAnalysisFieldVO.getProductionDepartmentPrice()) ? Double.valueOf(profitAnalysisFieldVO.getProductionDepartmentPrice()) : null); + profitAnalysisDO.setProductionDepartmentTotalPrice(Objects.nonNull(profitAnalysisFieldVO.getProductionDepartmentTotalPrice()) ? Double.valueOf(profitAnalysisFieldVO.getProductionDepartmentTotalPrice()) : null); + profitAnalysisDO.setProfitRate(Objects.nonNull(profitAnalysisFieldVO.getProfitRate()) ? Double.valueOf(profitAnalysisFieldVO.getProfitRate()) : null); + profitAnalysisService.updateById(profitAnalysisDO); + } + orderBaseInfoDO.setOrderStatus(OrderStatusEnum.PROFIT_AUDIT_PASS.getStatus()); + orderBaseInfoService.updateById(orderBaseInfoDO); } OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_PASS.getDesc()).build(); applyService.updateById(applyDO); - if (Objects.isNull(recordDO.getId())) { - fieldLockRecordService.save(recordDO); - } else { - fieldLockRecordService.updateById(recordDO); - } - auditLogService.save(auditLogDO); } /** + * @param reportFieldVO + * @return + */ + private OrderCompletionReportDO reportField2reportDo(OrderCompletionReportFieldVO reportFieldVO) { + return OrderCompletionReportDO.builder() + .ideaManualRate(StringUtils.isNotBlank(reportFieldVO.getIdeaManualRate()) ? Double.valueOf(reportFieldVO.getIdeaManualRate()) : null) + .ideaSource(reportFieldVO.getIdeaSource()) + .manualPreform(reportFieldVO.getManualPreform()) + .orderId(reportFieldVO.getOrderId()) + .build(); + } + + /** + * @param profitAnalysisFieldVO + * @return + */ + private OrderProfitAnalysisDO profitField2profitDo(OrderProfitAnalysisFieldVO profitAnalysisFieldVO) { + return OrderProfitAnalysisDO.builder() + .orderId(profitAnalysisFieldVO.getOrderId()) + .customerPrice(Objects.nonNull(profitAnalysisFieldVO.getCustomerPrice()) ? Double.valueOf(profitAnalysisFieldVO.getCustomerPrice()) : null) + .customerTotalPrice(Objects.nonNull(profitAnalysisFieldVO.getCustomerTotalPrice()) ? Double.valueOf(profitAnalysisFieldVO.getCustomerTotalPrice()) : null) + .exchangeRate(Objects.nonNull(profitAnalysisFieldVO.getExchangeRate()) ? Double.valueOf(profitAnalysisFieldVO.getExchangeRate()) : null) + .packetPrice(Objects.nonNull(profitAnalysisFieldVO.getPacketPrice()) ? Double.valueOf(profitAnalysisFieldVO.getPacketPrice()) : null) + .packetTotalPrice(Objects.nonNull(profitAnalysisFieldVO.getPacketTotalPrice()) ? Double.valueOf(profitAnalysisFieldVO.getPacketTotalPrice()) : null) + .productionDepartmentPrice(Objects.nonNull(profitAnalysisFieldVO.getProductionDepartmentPrice()) ? Double.valueOf(profitAnalysisFieldVO.getProductionDepartmentPrice()) : null) + .productionDepartmentTotalPrice(Objects.nonNull(profitAnalysisFieldVO.getProductionDepartmentTotalPrice()) ? Double.valueOf(profitAnalysisFieldVO.getProductionDepartmentTotalPrice()) : null) + .profitRate(Objects.nonNull(profitAnalysisFieldVO.getProfitRate()) ? Double.valueOf(profitAnalysisFieldVO.getProfitRate()) : null) + .build(); + } + + /** * 修改数据 * * @param orderFieldLockApplyVO 实例对象 @@ -255,6 +362,7 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp /** * 通过订单id逻辑删除 + * * @param orderId * @return */