wujianwei
2025-09-10 c0f6fb84a98db212b0780f44430d4e0cdf1b0302
quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java
@@ -3,12 +3,17 @@
import cn.hutool.core.collection.CollectionUtil;
import com.ruoyi.common.utils.RandomUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.reflect.ReflectUtils;
import com.ruoyi.cwgl.domain.EstimatedReceivable;
import com.ruoyi.cwgl.domain.PendingSettlementBusiness;
import com.ruoyi.cwgl.domain.ReceivableLineTruckPriceRule;
import com.ruoyi.cwgl.mapper.SmartLockerApplicationMapper;
import com.ruoyi.cwgl.service.IEstimatedReceivableService;
import com.ruoyi.cwgl.service.IPendingSettlementBusinessService;
import com.ruoyi.cwgl.service.ISmartLockerApplicationService;
import com.ruoyi.cwgl.service.impl.ExactPricingRuleMatcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -26,11 +31,13 @@
@Component("settlementTask")
public class SettlementTask
{
    private static Logger logger = LoggerFactory.getLogger(SettlementTask.class);
    @Autowired
    private IPendingSettlementBusinessService pendingSettlementBusinessService;
    @Autowired
    private IEstimatedReceivableService estimatedReceivableService;
    @Autowired
    private ISmartLockerApplicationService smartLockerApplicationService;
    public void insertPendingSettlement()
    {
@@ -48,6 +55,10 @@
        List<EstimatedReceivable> estimatedReceivables = new ArrayList<>();
        for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) {
            pendingSettlementBusiness.setIsCreate(0);
            pendingSettlementBusiness.setEstimatedTotalCost(BigDecimal.ZERO);
            pendingSettlementBusiness.setEstimatedTotalIncome(BigDecimal.ZERO);
            ReceivableLineTruckPriceRule exactMatchingRule = ExactPricingRuleMatcher.findExactMatchingRule(receivableLineTruckPriceRules, pendingSettlementBusiness.getCustomerName(), pendingSettlementBusiness.getDepartureLocation(), pendingSettlementBusiness.getArrivalLocation(), pendingSettlementBusiness.getVehicleType());
            if (exactMatchingRule!=null) {
                //应收数据
@@ -65,6 +76,7 @@
                estimatedReceivable.setCurrency("人民币");
                estimatedReceivable.setIsConfirmed(1);
                estimatedReceivable.setFeeType(0);
                estimatedReceivable.setRelatedBillStatus(0);
                estimatedReceivables.add(estimatedReceivable);
            }
            ReceivableLineTruckPriceRule exactMatchingRule2 = ExactPricingRuleMatcher.findExactMatchingRule(payableLineTruckPriceRules, pendingSettlementBusiness.getCarrierName(), pendingSettlementBusiness.getDepartureLocation(), pendingSettlementBusiness.getArrivalLocation(), pendingSettlementBusiness.getVehicleType());
@@ -83,7 +95,7 @@
                estimatedReceivable.setEstimatedAmount(exactMatchingRule2.getFreight());
                estimatedReceivable.setCurrency("人民币");
                estimatedReceivable.setIsConfirmed(1);
                estimatedReceivable.setFeeType(0);
                estimatedReceivable.setFeeType(1);
                estimatedReceivables.add(estimatedReceivable);
            }
        }
@@ -91,8 +103,18 @@
            estimatedReceivableService.insertEstimatedReceivableBatch(estimatedReceivables);
        }
        pendingSettlementBusinessService.insertPendingSettlement(pendingSettlementBusinesses);
    }
        //更新同步状态用
        Integer[] ids = pendingSettlementBusinesses.stream().map(PendingSettlementBusiness::getServiceId).toArray(Integer[]::new);
        int i = pendingSettlementBusinessService.updeteCwData(ids);
        if (i>0){
            logger.info("同步状态更新成功");
        }
    }
    public void checkExpiredApplications() {
        smartLockerApplicationService.updateExpiredStatus();
    }
}