From 55dffef68aa4c67ab0ca4c2832ac34b9a7671755 Mon Sep 17 00:00:00 2001 From: wujianwei <wjw@11.com> Date: 星期三, 13 八月 2025 14:11:57 +0800 Subject: [PATCH] 新增定时任务 --- quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 98 insertions(+), 0 deletions(-) diff --git a/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java b/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java new file mode 100644 index 0000000..398a4c4 --- /dev/null +++ b/quartz/src/main/java/com/ruoyi/quartz/task/SettlementTask.java @@ -0,0 +1,98 @@ +package com.ruoyi.quartz.task; + +import cn.hutool.core.collection.CollectionUtil; +import com.ruoyi.common.utils.RandomUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.cwgl.domain.EstimatedReceivable; +import com.ruoyi.cwgl.domain.PendingSettlementBusiness; +import com.ruoyi.cwgl.domain.ReceivableLineTruckPriceRule; +import com.ruoyi.cwgl.service.IEstimatedReceivableService; +import com.ruoyi.cwgl.service.IPendingSettlementBusinessService; +import com.ruoyi.cwgl.service.impl.ExactPricingRuleMatcher; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 瀹氭椂浠诲姟璋冨害娴嬭瘯 + * + * @author ruoyi + */ +@Component("settlementTask") +public class SettlementTask +{ + + @Autowired + private IPendingSettlementBusinessService pendingSettlementBusinessService; + @Autowired + private IEstimatedReceivableService estimatedReceivableService; + + public void insertPendingSettlement() + { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); + Date date = new Date(); + String datePart = dateFormat.format(date); + + List<PendingSettlementBusiness> pendingSettlementBusinesses = pendingSettlementBusinessService.selectPendingSettlement2Cw(); + + //搴旀敹瑙勫垯 + List<ReceivableLineTruckPriceRule> receivableLineTruckPriceRules = pendingSettlementBusinessService.selectReceivableLineTruckPriceRule(); + + //搴斾粯瑙勫垯 + List<ReceivableLineTruckPriceRule> payableLineTruckPriceRules= pendingSettlementBusinessService.selectPayableLineTruckPriceRule(); + + List<EstimatedReceivable> estimatedReceivables = new ArrayList<>(); + for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) { + ReceivableLineTruckPriceRule exactMatchingRule = ExactPricingRuleMatcher.findExactMatchingRule(receivableLineTruckPriceRules, pendingSettlementBusiness.getCustomerName(), pendingSettlementBusiness.getDepartureLocation(), pendingSettlementBusiness.getArrivalLocation(), pendingSettlementBusiness.getVehicleType()); + if (exactMatchingRule!=null) { + //搴旀敹鏁版嵁 + pendingSettlementBusiness.setEstimatedTotalIncome(exactMatchingRule.getFreight()); + pendingSettlementBusiness.setCreateTime(date); + EstimatedReceivable estimatedReceivable = new EstimatedReceivable(); + estimatedReceivable.setFeeSystemNo("YS"+datePart+RandomUtils.random(5)); + estimatedReceivable.setDispatchNo(pendingSettlementBusiness.getDispatchNo()); + estimatedReceivable.setCustomerName(pendingSettlementBusiness.getCustomerName()); + estimatedReceivable.setProjectName(pendingSettlementBusiness.getProjectName()); + estimatedReceivable.setOrderDate(pendingSettlementBusiness.getCreatedTime()); + estimatedReceivable.setFeeName("杩愯垂"); + estimatedReceivable.setEstimatedAmount(exactMatchingRule.getFreight()); + estimatedReceivable.setCurrency("浜烘皯甯�"); + estimatedReceivable.setIsConfirmed(1); + estimatedReceivable.setFeeType(0); + estimatedReceivables.add(estimatedReceivable); + } + ReceivableLineTruckPriceRule exactMatchingRule2 = ExactPricingRuleMatcher.findExactMatchingRule(payableLineTruckPriceRules, pendingSettlementBusiness.getCarrierName(), pendingSettlementBusiness.getDepartureLocation(), pendingSettlementBusiness.getArrivalLocation(), pendingSettlementBusiness.getVehicleType()); + if (exactMatchingRule2!=null) { + pendingSettlementBusiness.setEstimatedTotalCost(exactMatchingRule2.getFreight()); + pendingSettlementBusiness.setCreateTime(date); + + EstimatedReceivable estimatedReceivable = new EstimatedReceivable(); + estimatedReceivable.setFeeSystemNo("YF"+datePart+RandomUtils.random(5)); + estimatedReceivable.setDispatchNo(pendingSettlementBusiness.getDispatchNo()); + estimatedReceivable.setCustomerName(pendingSettlementBusiness.getCustomerName()); + estimatedReceivable.setProjectName(pendingSettlementBusiness.getProjectName()); + estimatedReceivable.setOrderDate(pendingSettlementBusiness.getCreatedTime()); + estimatedReceivable.setFeeName("杩愯垂"); + estimatedReceivable.setEstimatedAmount(exactMatchingRule2.getFreight()); + estimatedReceivable.setCurrency("浜烘皯甯�"); + estimatedReceivable.setIsConfirmed(1); + estimatedReceivable.setFeeType(0); + estimatedReceivables.add(estimatedReceivable); + } + } + if (CollectionUtil.isNotEmpty(estimatedReceivables)){ + estimatedReceivableService.insertEstimatedReceivableBatch(estimatedReceivables); + } + pendingSettlementBusinessService.insertPendingSettlement(pendingSettlementBusinesses); + } + + + +} + + -- Gitblit v1.8.0