Commit 11e5250e25cdbe49b069106b8c27eca6a0542a7b
1 parent
8cfa8abd
fix:1.修改在保存扣款信息时,扣款部门没有保存的情况。
2.编写一个定时任务,用来补上之前填了扣款部门但是没有保存的问题。
Showing
2 changed files
with
67 additions
and
0 deletions
src/main/java/com/order/erp/job/DeductDeptJob.java
0 → 100644
1 | +package com.order.erp.job; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
4 | +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | |
5 | +import com.order.erp.common.constant.Constant; | |
6 | +import com.order.erp.domain.ApplyStatusEnum; | |
7 | +import com.order.erp.domain.FinanceEnum; | |
8 | +import com.order.erp.domain.dto.BaseDO; | |
9 | +import com.order.erp.domain.dto.order.OrderBaseInfoDO; | |
10 | +import com.order.erp.domain.dto.order.ProducePaymentCheckBillOrderDO; | |
11 | +import com.order.erp.service.order.OrderBaseInfoService; | |
12 | +import com.order.erp.service.order.ProducePaymentCheckBillOrderService; | |
13 | +import lombok.extern.slf4j.Slf4j; | |
14 | +import org.springframework.beans.factory.annotation.Autowired; | |
15 | +import org.springframework.scheduling.annotation.Scheduled; | |
16 | +import org.springframework.stereotype.Component; | |
17 | + | |
18 | +import java.math.BigDecimal; | |
19 | +import java.util.List; | |
20 | +import java.util.Map; | |
21 | +import java.util.Objects; | |
22 | +import java.util.Set; | |
23 | +import java.util.stream.Collectors; | |
24 | + | |
25 | +@Slf4j | |
26 | +@Component | |
27 | +public class DeductDeptJob { | |
28 | + //扫描所有扣款单状态为已通过的订单,查询所有扣款单未已审核通过的订单 | |
29 | + @Autowired | |
30 | + private ProducePaymentCheckBillOrderService producePaymentCheckBillOrderService; | |
31 | + @Autowired | |
32 | + private OrderBaseInfoService orderBaseInfoService; | |
33 | + @Scheduled(cron = "0 0 1 * * ?", zone = "Asia/Shanghai") | |
34 | + public void deductDeptJob() { | |
35 | + log.info("开始执行扣款单部门任务"); | |
36 | + List<ProducePaymentCheckBillOrderDO> producePaymentCheckBillOrderDOList = producePaymentCheckBillOrderService.list( | |
37 | + new LambdaQueryWrapper<ProducePaymentCheckBillOrderDO>() | |
38 | + .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) | |
39 | + .and(wrapper -> wrapper | |
40 | + .in(ProducePaymentCheckBillOrderDO::getCheckDeductUrlStatus, ApplyStatusEnum.AUDIT_PASS.getStatus(),ApplyStatusEnum.WAIT_AUDIT.getStatus()) | |
41 | + .or() | |
42 | + .in(ProducePaymentCheckBillOrderDO::getStatus, | |
43 | + FinanceEnum.RECEIVED_PAYMENT.getStatus(), | |
44 | + FinanceEnum.OK_PAYMENT.getStatus()) | |
45 | + ) | |
46 | + ); | |
47 | + //过滤掉,扣款部门有值的情况。 | |
48 | + List<ProducePaymentCheckBillOrderDO> producePaymentCheckBillOrderDOS = producePaymentCheckBillOrderDOList.stream() | |
49 | + .filter(producePaymentCheckBillOrderDO -> producePaymentCheckBillOrderDO.getDeductDept() == null) | |
50 | + .collect(Collectors.toList()); | |
51 | + Set<Long> orderIds = producePaymentCheckBillOrderDOS.stream().filter(Objects::nonNull).map(producePaymentCheckBillOrderDO -> producePaymentCheckBillOrderDO.getOrderId()).collect(Collectors.toSet()); | |
52 | + List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.listByIds(orderIds); | |
53 | + Map<Long, OrderBaseInfoDO> orderBaseInfoDOMap = orderBaseInfoDOList.stream().collect(Collectors.toMap(OrderBaseInfoDO::getId, order -> order, (existing, duplicate) -> existing)); | |
54 | + producePaymentCheckBillOrderDOS.forEach(producePaymentCheckBillOrderDO -> { | |
55 | + if(orderBaseInfoDOMap.containsKey(producePaymentCheckBillOrderDO.getOrderId())){ | |
56 | + if (producePaymentCheckBillOrderDO.getDeductAmount().compareTo(BigDecimal.ZERO) > 0){ | |
57 | + producePaymentCheckBillOrderDO.setDeductDept(orderBaseInfoDOMap.get(producePaymentCheckBillOrderDO.getOrderId()).getProductionDepartment()); | |
58 | + } | |
59 | + } | |
60 | + }); | |
61 | + if (CollectionUtils.isNotEmpty(producePaymentCheckBillOrderDOS)) { | |
62 | + producePaymentCheckBillOrderService.updateBatchById(producePaymentCheckBillOrderDOS); | |
63 | + } | |
64 | + | |
65 | + } | |
66 | +} | ... | ... |
src/main/java/com/order/erp/service/order/impl/ProducePaymentCheckBillOrderServiceImpl.java
... | ... | @@ -916,6 +916,7 @@ public class ProducePaymentCheckBillOrderServiceImpl extends ServiceImpl<Produce |
916 | 916 | checkCommitDeductionUrlApply(checkBillOrderDO.getId()); |
917 | 917 | OrderLockFieldVO orderLockFieldVO = new OrderLockFieldVO(); |
918 | 918 | DeductionUrlFieldVO deductionUrlFieldVO = new DeductionUrlFieldVO(); |
919 | + checkBillOrderDO.setDeductDept(deductInfoVO.getDeductDept()); | |
919 | 920 | checkBillOrderDO.setDeductAmount((deductInfoVO.getDeductAmount()==null? BigDecimal.ZERO:deductInfoVO.getDeductAmount()).setScale(2, BigDecimal.ROUND_HALF_UP)); |
920 | 921 | checkBillOrderDO.setActualPayedAmount((checkBillOrderDO.getTotalProductionAmount().subtract(deductInfoVO.getDeductAmount()==null? BigDecimal.ZERO:deductInfoVO.getDeductAmount())).setScale(2, BigDecimal.ROUND_HALF_UP)); |
921 | 922 | checkBillOrderDO.setUnPayedAmount((checkBillOrderDO.getTotalProductionAmount().subtract(checkBillOrderDO.getDeductAmount()).subtract(checkBillOrderDO.getTotalActualPayedAmount())).setScale(2, BigDecimal.ROUND_HALF_UP)); | ... | ... |