From d81634f69d47aaa70922bdea6a2398b601555874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=B8=85?= <3115919733@qq.com> Date: Tue, 10 Jun 2025 10:20:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E8=BD=A6=E9=9C=80=E6=B1=82=E5=90=88?= =?UTF-8?q?=E5=B9=B6=EF=BC=8C=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/xml/TmsIogisticsPriceMapper.xml | 2 +- .../mapper/LogisticsRouteMapper.java | 1 + .../mapper/xml/LogisticsRouteMapper.xml | 5 + .../controller/VehicleInOutController.java | 7 +- .../modules/tms/constant/TmsConstants.java | 18 ++ .../controller/DeliveryDemandController.java | 5 +- .../mapper/DeliveryDemandMapper.java | 1 - .../mapper/xml/DeliveryDemandMapper.xml | 1 - .../service/IDeliveryDemandService.java | 6 + .../impl/DeliveryDemandServiceImpl.java | 88 +++++++-- .../controller/VehicleDemandController.java | 132 ++++++++++++- .../vehicledemand/entity/VehicleDemand.java | 32 +++- .../service/IVehicleDemandService.java | 2 + .../impl/VehicleDemandServiceImpl.java | 12 +- .../VehicleDemandHisController.java | 173 ++++++++++++++++++ .../entity/VehicleDemandHis.java | 112 ++++++++++++ .../mapper/VehicleDemandHisMapper.java | 14 ++ .../mapper/xml/VehicleDemandHisMapper.xml | 5 + .../service/IVehicleDemandHisService.java | 14 ++ .../impl/VehicleDemandHisServiceImpl.java | 19 ++ .../tms/quartz/jobs/DeliveryDemandJob.java | 25 +++ 21 files changed, 640 insertions(+), 34 deletions(-) create mode 100644 jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/constant/TmsConstants.java create mode 100644 jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/controller/VehicleDemandHisController.java create mode 100644 jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/entity/VehicleDemandHis.java create mode 100644 jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/mapper/VehicleDemandHisMapper.java create mode 100644 jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/mapper/xml/VehicleDemandHisMapper.xml create mode 100644 jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/service/IVehicleDemandHisService.java create mode 100644 jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/service/impl/VehicleDemandHisServiceImpl.java create mode 100644 jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/quartz/jobs/DeliveryDemandJob.java diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/iogisticsprice/mapper/xml/TmsIogisticsPriceMapper.xml b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/iogisticsprice/mapper/xml/TmsIogisticsPriceMapper.xml index ed7f3cf..f0af57a 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/iogisticsprice/mapper/xml/TmsIogisticsPriceMapper.xml +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/iogisticsprice/mapper/xml/TmsIogisticsPriceMapper.xml @@ -8,6 +8,6 @@ and a.car_long = b.car_long where a.start_city = #{pickUpHub} and a.target_city = #{deliveryAddress} - and a.failureTime >= TRUNC(SYSDATE) + and a.failure_time >= TRUNC(SYSDATE) diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/logisticsroute/mapper/LogisticsRouteMapper.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/logisticsroute/mapper/LogisticsRouteMapper.java index 56177d1..087abf9 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/logisticsroute/mapper/LogisticsRouteMapper.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/logisticsroute/mapper/LogisticsRouteMapper.java @@ -15,4 +15,5 @@ import org.jeecg.modules.tms.basicdata.logisticsroute.entity.LogisticsRoute; */ public interface LogisticsRouteMapper extends BaseMapper { + Integer getDistance(String pickUpHub, String deliveryAddress); } diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/logisticsroute/mapper/xml/LogisticsRouteMapper.xml b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/logisticsroute/mapper/xml/LogisticsRouteMapper.xml index 056c3df..20a9465 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/logisticsroute/mapper/xml/LogisticsRouteMapper.xml +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/logisticsroute/mapper/xml/LogisticsRouteMapper.xml @@ -2,4 +2,9 @@ + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/carinout/vehicleinout/controller/VehicleInOutController.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/carinout/vehicleinout/controller/VehicleInOutController.java index b0375de..8bcdcb4 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/carinout/vehicleinout/controller/VehicleInOutController.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/carinout/vehicleinout/controller/VehicleInOutController.java @@ -25,6 +25,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.tms.constant.TmsConstants; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -185,9 +186,9 @@ public class VehicleInOutController extends JeecgController edit(@RequestBody DeliveryDemand deliveryDemand) { deliveryDemandService.updateById(deliveryDemand); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(DeliveryDemandDetail::getDeliveryDemandId, deliveryDemand.getId()); + deliveryDemandDetailService.remove(lambdaQueryWrapper); List deliveryDemandDetailList = deliveryDemand.getDeliveryDemandDetailList(); deliveryDemandDetailList.forEach(item ->{ item.setDeliveryDemandId(deliveryDemand.getId()); }); - deliveryDemandDetailService.saveOrUpdateBatch(deliveryDemandDetailList); + deliveryDemandDetailService.saveBatch(deliveryDemandDetailList); return Result.OK("编辑成功!"); } diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/mapper/DeliveryDemandMapper.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/mapper/DeliveryDemandMapper.java index c36d29b..47ee452 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/mapper/DeliveryDemandMapper.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/mapper/DeliveryDemandMapper.java @@ -16,7 +16,6 @@ import org.jeecg.modules.tms.outbound.deliverydemanddetail.entity.DeliveryDemand */ public interface DeliveryDemandMapper extends BaseMapper { void updateCurrentStatus(@Param("shipType") String shipType, - @Param("pn") String pn, @Param("deliveryAddress") String deliveryAddress, @Param("pickUpHub") String pickUpHub, @Param("shipDate") Date shipDate, diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/mapper/xml/DeliveryDemandMapper.xml b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/mapper/xml/DeliveryDemandMapper.xml index 444c57a..42a8b58 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/mapper/xml/DeliveryDemandMapper.xml +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/mapper/xml/DeliveryDemandMapper.xml @@ -6,7 +6,6 @@ update tms_delivery_demand set current_status = '1', vd_no = #{sequence} where ship_type = #{shipType} - and pn = #{pn} and delivery_address = #{deliveryAddress} and pick_up_hub = #{pickUpHub} and ship_date = #{shipDate} diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/service/IDeliveryDemandService.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/service/IDeliveryDemandService.java index 1f99d63..d90090b 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/service/IDeliveryDemandService.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/service/IDeliveryDemandService.java @@ -22,6 +22,12 @@ public interface IDeliveryDemandService extends IService { */ Result handleMerge(List ids); + /** + * 定时合并 + * @return + */ + void timedMerge(); + /** * 根据料号、规格、发货数量计算托盘数 * @param deliveryDemands diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/service/impl/DeliveryDemandServiceImpl.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/service/impl/DeliveryDemandServiceImpl.java index b787ce3..7456837 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/service/impl/DeliveryDemandServiceImpl.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/deliverydemand/service/impl/DeliveryDemandServiceImpl.java @@ -10,6 +10,7 @@ import org.jeecg.modules.tms.basicdata.constant.GeneralSequenceConstant; import org.jeecg.modules.tms.basicdata.generalsequence.service.IGeneralSequenceService; import org.jeecg.modules.tms.basicdata.vehicleproduct.entity.TmsVehicleProduct; import org.jeecg.modules.tms.basicdata.vehicleproduct.mapper.TmsVehicleProductMapper; +import org.jeecg.modules.tms.constant.TmsConstants; import org.jeecg.modules.tms.outbound.deliverydemand.entity.DeliveryDemand; import org.jeecg.modules.tms.outbound.deliverydemand.mapper.DeliveryDemandMapper; import org.jeecg.modules.tms.outbound.deliverydemand.service.IDeliveryDemandService; @@ -45,32 +46,32 @@ public class DeliveryDemandServiceImpl extends ServiceImpl handleMerge(List ids) { List deliveryDemands = deliveryDemandMapper.selectBatchIds(ids); - boolean hasEven = deliveryDemands.stream().anyMatch(item -> "0".equals(item.getShipType())); + boolean hasEven = deliveryDemands.stream().anyMatch(item -> TmsConstants.shipType_2.equals(item.getShipType())); if (hasEven) { - return Result.error("数据中含有整车数据!"); + return Result.error("数据中含有快递数据!"); } - boolean hasEven1 = deliveryDemands.stream().anyMatch(item -> !"0".equals(item.getCurrentStatus())); + boolean hasEven1 = deliveryDemands.stream().anyMatch(item -> !TmsConstants.currentStatus_0.equals(item.getCurrentStatus())); if (hasEven1) { return Result.error("数据中含有当前状态不是创建的数据!"); } - // 将需要合并的数据进行分组,以 shipType, pn, deliveryAddress, pickUpHub 为key + // 将需要合并的数据进行分组,以 shipType, deliveryAddress, pickUpHub, shipDate 为key Map mergedMap = deliveryDemands.stream() .collect(Collectors.toMap( - demand -> String.format("%s|%s|%s|%s|%s", + demand -> String.format("%s|%s|%s|%s", demand.getShipType(), - demand.getPn(), demand.getDeliveryAddress(), demand.getPickUpHub(), demand.getShipDate()), demand -> { VehicleDemand merged = new VehicleDemand(); merged.setShipType(demand.getShipType()); - merged.setPn(demand.getPn()); merged.setDeliveryAddress(demand.getDeliveryAddress()); merged.setPickUpHub(demand.getPickUpHub()); merged.setShipDate(demand.getShipDate()); merged.setTotalPallets(demand.getPalletsNum()); + merged.setPreTotalPallets(demand.getPalletsNum()); merged.setTotalShips(demand.getShipNumber()); + merged.setDeliveryDate(demand.getDeliveryDate()); return merged; }, (merged1, merged2) -> { merged1.setTotalPallets( @@ -90,24 +91,83 @@ public class DeliveryDemandServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(DeliveryDemand::getCurrentStatus, TmsConstants.currentStatus_0); + lambdaQueryWrapper.ne(DeliveryDemand::getShipType, TmsConstants.shipType_2); + List deliveryDemands = deliveryDemandMapper.selectList(lambdaQueryWrapper); + // 将需要合并的数据进行分组,以 shipType, deliveryAddress, pickUpHub, shipDate 为key + Map mergedMap = deliveryDemands.stream() + .collect(Collectors.toMap( + demand -> String.format("%s|%s|%s|%s", + demand.getShipType(), + demand.getDeliveryAddress(), + demand.getPickUpHub(), + demand.getShipDate()), + demand -> { + VehicleDemand merged = new VehicleDemand(); + merged.setShipType(demand.getShipType()); + merged.setDeliveryAddress(demand.getDeliveryAddress()); + merged.setPickUpHub(demand.getPickUpHub()); + merged.setShipDate(demand.getShipDate()); + merged.setTotalPallets(demand.getPalletsNum()); + merged.setPreTotalPallets(demand.getPalletsNum()); + merged.setTotalShips(demand.getShipNumber()); + merged.setDeliveryDate(demand.getDeliveryDate()); + return merged; + }, (merged1, merged2) -> { + merged1.setTotalPallets( + (merged1.getTotalPallets() == null ? 0 : merged1.getTotalPallets()) + + (merged2.getTotalPallets() == null ? 0 : merged2.getTotalPallets()) + ); + merged1.setTotalShips( + (merged1.getTotalShips() == null ? 0 : merged1.getTotalShips()) + + (merged2.getTotalShips() == null ? 0 : merged2.getTotalShips()) + ); + return merged1; + } + )); + List vehicleDemands = new ArrayList<>(); + for (Map.Entry entry : mergedMap.entrySet()) { + String key = entry.getKey(); // 拼接的键 + VehicleDemand value = entry.getValue(); // 合并后的值 + String[] parts = key.split("\\|"); + String shipType = parts[0]; + String deliveryAddress = parts[1]; + String pickUpHub = parts[2]; + Date shipDate = DateUtil.parse(parts[3], "EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); + String sequence = generalSequenceService.getSequence(GeneralSequenceConstant.VEHICLE_DEMAND_NO); + deliveryDemandMapper.updateCurrentStatus(shipType, deliveryAddress, pickUpHub, shipDate, sequence); + value.setShipType(shipType) + .setDeliveryAddress(deliveryAddress) + .setPickUpHub(pickUpHub) + .setShipDate(shipDate) + .setVdNo(sequence) + .setCurrentStatus(TmsConstants.currentStatus_0); + vehicleDemands.add(value); + } + vehicleDemandService.saveBatch(vehicleDemands); + } + @Override public Result getPalletsNum(List deliveryDemands) { BigDecimal results = BigDecimal.ZERO; diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/controller/VehicleDemandController.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/controller/VehicleDemandController.java index 436f440..7aeea85 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/controller/VehicleDemandController.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/controller/VehicleDemandController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.tms.outbound.vehicledemand.controller; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -10,9 +11,15 @@ import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.tms.basicdata.constant.GeneralSequenceConstant; +import org.jeecg.modules.tms.basicdata.generalsequence.service.IGeneralSequenceService; +import org.jeecg.modules.tms.basicdata.logisticsroute.mapper.LogisticsRouteMapper; +import org.jeecg.modules.tms.constant.TmsConstants; import org.jeecg.modules.tms.outbound.deliverydemand.service.IDeliveryDemandService; import org.jeecg.modules.tms.outbound.vehicledemand.entity.VehicleDemand; import org.jeecg.modules.tms.outbound.vehicledemand.service.IVehicleDemandService; @@ -23,6 +30,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.tms.outbound.vehicledemandcount.service.IVehicleDemandCountService; +import org.jeecg.modules.tms.outbound.vehicledemandhis.entity.VehicleDemandHis; +import org.jeecg.modules.tms.outbound.vehicledemandhis.service.IVehicleDemandHisService; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -55,8 +64,14 @@ public class VehicleDemandController extends JeecgController carCount(@RequestBody VehicleDemand vehicleDemand) { return vehicleDemandService.carCount(vehicleDemand); } + + /** + * 手动合并 + * @param ids + * @return + */ + @Transactional(rollbackFor = Exception.class) + @PostMapping("/handleMerge") + public Result handleMerge(@RequestBody List ids) { + List vehicleDemands = vehicleDemandService.listByIds(ids); + boolean hasEven = vehicleDemands.stream().anyMatch(item -> !TmsConstants.currentStatus_0.equals(item.getCurrentStatus())); + if (hasEven) { + return Result.error("数据中含有不是创建状态的数据!"); + } + List vehicleDemandHisList = BeanUtil.copyToList(vehicleDemands, VehicleDemandHis.class); + Map collect = vehicleDemands.stream() + .collect(Collectors.toMap( + vehicleDemand -> String.format("%s|%s", + vehicleDemand.getShipDate(), + vehicleDemand.getShipType()), + vehicleDemand -> { + VehicleDemand merged = new VehicleDemand(); + merged.setShipType(vehicleDemand.getShipType()); + merged.setDeliveryAddress(vehicleDemand.getDeliveryAddress()); + merged.setPickUpHub(vehicleDemand.getPickUpHub()); + Integer distance = logisticsRouteMapper.getDistance(vehicleDemand.getPickUpHub(), + vehicleDemand.getDeliveryAddress()); + merged.setDistance(distance); + merged.setShipDate(vehicleDemand.getShipDate()); + merged.setTotalPallets(vehicleDemand.getTotalPallets()); + merged.setPreTotalPallets(vehicleDemand.getPreTotalPallets()); + merged.setTotalShips(vehicleDemand.getTotalShips()); + merged.setDeliveryDate(vehicleDemand.getDeliveryDate()); + return merged; + }, (merged1, merged2) -> { + // 默认策略:保留距离更长的那个对象的 pickupHub / deliveryAddress + VehicleDemand longer; + if (merged1.getDistance() == null && merged2.getDistance() == null) { + longer = merged1; // 都为 null,默认选 merged1 + } else if (merged1.getDistance() == null) { + longer = merged2; + } else if (merged2.getDistance() == null) { + longer = merged1; + } else { + longer = merged1.getDistance() >= merged2.getDistance() ? merged1 : merged2; + } + + // 保留距离大的那组 pickupHub/deliveryAddress + merged1.setPickUpHub(longer.getPickUpHub()); + merged1.setDeliveryAddress(longer.getDeliveryAddress()); + merged1.setTotalPallets( + (merged1.getTotalPallets() == null ? 0 : merged1.getTotalPallets()) + + (merged2.getTotalPallets() == null ? 0 : merged2.getTotalPallets()) + ); + merged1.setPreTotalPallets( + (merged1.getPreTotalPallets() == null ? 0 : merged1.getPreTotalPallets()) + + (merged2.getPreTotalPallets() == null ? 0 : merged2.getPreTotalPallets()) + ); + merged1.setTotalShips( + (merged1.getTotalShips() == null ? 0 : merged1.getTotalShips()) + + (merged2.getTotalShips() == null ? 0 : merged2.getTotalShips()) + ); + return merged1; + } + )); + List vehicleDemandList = new ArrayList<>(); + for (Map.Entry entry : collect.entrySet()) { + String key = entry.getKey(); + VehicleDemand value = entry.getValue(); // 合并后的值 + String sequence = generalSequenceService.getSequence(GeneralSequenceConstant.VEHICLE_DEMAND_NO); + value.setVdNo(sequence) + .setCurrentStatus(TmsConstants.currentStatus_1); + vehicleDemandList.add(value); + vehicleDemandHisList.forEach(item -> { + if (key.equals(String.format("%s|%s", + item.getShipDate(), + item.getShipType()))) { + item.setVdNoNew(sequence); + } + }); + } + // 生成新的用车需求 + vehicleDemandService.saveBatch(vehicleDemandList); + // 删除旧的用车需求 + vehicleDemandService.removeBatchByIds(vehicleDemands); + // 保存旧的用车需求到历史记录 + vehicleDemandHisService.saveBatch(vehicleDemandHisList); + return Result.OK("合并成功!"); + } + + /** + * 解绑 + * @param ids + * @return + */ + @PostMapping("/handleUnbind") + public Result handleUnbind(@RequestBody List ids) { + List vehicleDemands = vehicleDemandService.listByIds(ids); + List vdNoNews = vehicleDemands.stream() + .map(VehicleDemand::getVdNo) + .collect(Collectors.toList()); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(VehicleDemandHis::getVdNoNew, vdNoNews); + List list = vehicleDemandHisService.list(lambdaQueryWrapper); + List vehicleDemandList = BeanUtil.copyToList(list, VehicleDemand.class); + // 恢复原来合并删除的数据 + vehicleDemandService.saveBatch(vehicleDemandList); + // 删除合并的数据 + vehicleDemandService.removeBatchByIds(ids); + // 删除历史记录 + vehicleDemandHisService.removeByIds(list); + return Result.OK("解绑成功!"); + } } diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/entity/VehicleDemand.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/entity/VehicleDemand.java index 4ec2aa3..c3c66f4 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/entity/VehicleDemand.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/entity/VehicleDemand.java @@ -4,10 +4,8 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.TableLogic; + +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; @@ -61,6 +59,12 @@ public class VehicleDemand implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "发货日期") private Date shipDate; + /**到货日期*/ + @Excel(name = "到货日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "到货日期") + private Date deliveryDate; /**发货类型*/ @Excel(name = "发货类型", width = 15, dicCode = "ship_type") @Dict(dicCode = "ship_type") @@ -72,6 +76,10 @@ public class VehicleDemand implements Serializable { /**预计装车总托数*/ @Excel(name = "预计装车总托数", width = 15) @ApiModelProperty(value = "预计装车总托数") + private Integer preTotalPallets; + /**实际装车总托数*/ + @Excel(name = "实际装车总托数", width = 15) + @ApiModelProperty(value = "实际装车总托数") private Integer totalPallets; /**总发货数量*/ @Excel(name = "总发货数量", width = 15) @@ -81,16 +89,24 @@ public class VehicleDemand implements Serializable { // @Excel(name = "送货区域", width = 15) @ApiModelProperty(value = "送货区域") private String deliveryArea; + /**取货地点*/ + @Excel(name = "取货地点", width = 15, dicCode = "pick_up_hub") + @Dict(dicCode = "pick_up_hub") + private String pickUpHub; /**送货地点*/ @Excel(name = "送货地点", width = 15, dicCode = "delivery_address") @Dict(dicCode = "delivery_address") private String deliveryAddress; - /**取货仓库*/ - @Excel(name = "取货仓库", width = 15, dicCode = "pick_up_hub") - @Dict(dicCode = "pick_up_hub") - private String pickUpHub; /**用车需求编号*/ @Excel(name = "用车需求编号", width = 15) @ApiModelProperty(value = "用车需求编号") private String vdNo; + /**当前状态 0-创建, 1-已合并需求, 2-计算车辆需求中, 3-发送车辆需求, 4-等待装车, + * 5-车辆离厂(完成), 6-取消, 7-超期无效*/ + @Excel(name = "当前状态", width = 15, dicCode = "current_status") + @Dict(dicCode = "current_status") + @ApiModelProperty(value = "当前状态") + private java.lang.String currentStatus; + @TableField(exist = false) + private Integer distance; } diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/service/IVehicleDemandService.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/service/IVehicleDemandService.java index 9287d42..c3b072a 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/service/IVehicleDemandService.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/service/IVehicleDemandService.java @@ -4,6 +4,8 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.tms.outbound.vehicledemand.entity.VehicleDemand; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * @Description: 用车需求 * @Author: jeecg-boot diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/service/impl/VehicleDemandServiceImpl.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/service/impl/VehicleDemandServiceImpl.java index 6695376..2f70513 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/service/impl/VehicleDemandServiceImpl.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemand/service/impl/VehicleDemandServiceImpl.java @@ -5,8 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.tms.basicdata.constant.GeneralSequenceConstant; +import org.jeecg.modules.tms.basicdata.generalsequence.service.IGeneralSequenceService; import org.jeecg.modules.tms.basicdata.iogisticsprice.entity.TmsIogisticsPrice; import org.jeecg.modules.tms.basicdata.iogisticsprice.mapper.TmsIogisticsPriceMapper; +import org.jeecg.modules.tms.basicdata.logisticsroute.mapper.LogisticsRouteMapper; import org.jeecg.modules.tms.basicdata.vehiclepallet.entity.VehiclePallet; import org.jeecg.modules.tms.basicdata.vehiclepallet.mapper.VehiclePalletMapper; import org.jeecg.modules.tms.outbound.deliverydemand.mapper.DeliveryDemandMapper; @@ -16,6 +19,8 @@ import org.jeecg.modules.tms.outbound.vehicledemand.mapper.VehicleDemandMapper; import org.jeecg.modules.tms.outbound.vehicledemand.service.IVehicleDemandService; import org.jeecg.modules.tms.outbound.vehicledemandcount.entity.VehicleDemandCount; import org.jeecg.modules.tms.outbound.vehicledemandcount.service.IVehicleDemandCountService; +import org.jeecg.modules.tms.outbound.vehicledemandhis.entity.VehicleDemandHis; +import org.jeecg.modules.tms.outbound.vehicledemandhis.service.IVehicleDemandHisService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -23,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; /** * @Description: 用车需求 @@ -164,9 +170,9 @@ public class VehicleDemandServiceImpl extends ServiceImpl vehicleDemandCounts) { VehicleDemandCount vehicleDemandCount = new VehicleDemandCount(); diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/controller/VehicleDemandHisController.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/controller/VehicleDemandHisController.java new file mode 100644 index 0000000..0020ce3 --- /dev/null +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/controller/VehicleDemandHisController.java @@ -0,0 +1,173 @@ +package org.jeecg.modules.tms.outbound.vehicledemandhis.controller; + +import java.util.Arrays; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.tms.outbound.deliverydemand.entity.DeliveryDemand; +import org.jeecg.modules.tms.outbound.vehicledemandcount.entity.VehicleDemandCount; +import org.jeecg.modules.tms.outbound.vehicledemandhis.entity.VehicleDemandHis; +import org.jeecg.modules.tms.outbound.vehicledemandhis.service.IVehicleDemandHisService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 用车需求历史 + * @Author: jeecg-boot + * @Date: 2025-06-09 + * @Version: V1.0 + */ +@Api(tags="tms_vehicle_demand_his") +@RestController +@RequestMapping("/vehicledemanddetail/vehicleDemandDetail") +@Slf4j +public class VehicleDemandHisController extends JeecgController { + @Autowired + private IVehicleDemandHisService vehicleDemandDetailService; + + /** + * 分页列表查询 + * + * @param vehicleDemandDetail + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "tms_vehicle_demand_his-分页列表查询") + @ApiOperation(value="tms_vehicle_demand_his -分页列表查询", notes="tms_vehicle_demand_his -分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(VehicleDemandHis vehicleDemandDetail, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(vehicleDemandDetail, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = vehicleDemandDetailService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param vehicleDemandDetail + * @return + */ + @AutoLog(value = "tms_vehicle_demand_his -添加") + @ApiOperation(value="tms_vehicle_demand_his -添加", notes="tms_vehicle_demand_his -添加") + //@RequiresPermissions("org.jeecg.modules.tms:tms_vehicle_demand_his:add") + @PostMapping(value = "/add") + public Result add(@RequestBody VehicleDemandHis vehicleDemandDetail) { + vehicleDemandDetailService.save(vehicleDemandDetail); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param vehicleDemandDetail + * @return + */ + @AutoLog(value = "tms_vehicle_demand_his -编辑") + @ApiOperation(value="tms_vehicle_demand_his -编辑", notes="tms_vehicle_demand_his -编辑") + //@RequiresPermissions("org.jeecg.modules.tms:tms_vehicle_demand_his:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody VehicleDemandHis vehicleDemandDetail) { + vehicleDemandDetailService.updateById(vehicleDemandDetail); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "tms_vehicle_demand_his -通过id删除") + @ApiOperation(value="tms_vehicle_demand_his -通过id删除", notes="tms_vehicle_demand_his -通过id删除") + //@RequiresPermissions("org.jeecg.modules.tms:tms_vehicle_demand_his:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + vehicleDemandDetailService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "tms_vehicle_demand_his -批量删除") + @ApiOperation(value="tms_vehicle_demand_his -批量删除", notes="tms_vehicle_demand_his -批量删除") + //@RequiresPermissions("org.jeecg.modules.tms:tms_vehicle_demand_his:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.vehicleDemandDetailService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "tms_vehicle_demand_his-通过id查询") + @ApiOperation(value="tms_vehicle_demand_his -通过id查询", notes="tms_vehicle_demand_his -通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + VehicleDemandHis vehicleDemandDetail = vehicleDemandDetailService.getById(id); + if(vehicleDemandDetail==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(vehicleDemandDetail); + } + + /** + * 导出excel + * + * @param request + * @param vehicleDemandDetail + */ + //@RequiresPermissions("org.jeecg.modules.tms:tms_vehicle_demand_his:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, VehicleDemandHis vehicleDemandDetail) { + return super.exportXls(request, vehicleDemandDetail, VehicleDemandHis.class, "tms_vehicle_demand_his"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + //@RequiresPermissions("tms_vehicle_demand_his:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, VehicleDemandHis.class); + } + + @GetMapping(value = "/getByVdNo") + public Result getByVdNo(@RequestParam(name="vdNo",required=true) String vdNo) { + List vdNos = vehicleDemandDetailService.query().eq("vd_no_new", vdNo).list(); + IPage page = new Page<>(1, vdNos.size()); + page.setRecords(vdNos); + page.setTotal(vdNos.size()); + return Result.OK(page); + } +} diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/entity/VehicleDemandHis.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/entity/VehicleDemandHis.java new file mode 100644 index 0000000..e4dc295 --- /dev/null +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/entity/VehicleDemandHis.java @@ -0,0 +1,112 @@ +package org.jeecg.modules.tms.outbound.vehicledemandhis.entity; + +import java.io.Serializable; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.jeecg.common.aspect.annotation.Dict; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 用车需求历史 + * @Author: jeecg-boot + * @Date: 2025-06-09 + * @Version: V1.0 + */ +@Data +@TableName("tms_vehicle_demand_his") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="tms_vehicle_demand_his对象", description="tms_vehicle_demand_his") +public class VehicleDemandHis implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private String sysOrgCode; + /**发货日期*/ + @Excel(name = "发货日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "发货日期") + private Date shipDate; + /**到货日期*/ + @Excel(name = "到货日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "到货日期") + private Date deliveryDate; + /**发货类型*/ + @Excel(name = "发货类型", width = 15, dicCode = "ship_type") + @Dict(dicCode = "ship_type") + private String shipType; + /**料号*/ + @Excel(name = "料号", width = 15) + @ApiModelProperty(value = "料号") + private String pn; + /**预计装车总托数*/ + @Excel(name = "预计装车总托数", width = 15) + @ApiModelProperty(value = "预计装车总托数") + private Integer preTotalPallets; + /**实际装车总托数*/ + @Excel(name = "实际装车总托数", width = 15) + @ApiModelProperty(value = "实际装车总托数") + private Integer totalPallets; + /**总发货数量*/ + @Excel(name = "总发货数量", width = 15) + @ApiModelProperty(value = "总发货数量") + private Integer totalShips; + /**送货区域*/ +// @Excel(name = "送货区域", width = 15) + @ApiModelProperty(value = "送货区域") + private String deliveryArea; + /**取货地点*/ + @Excel(name = "取货地点", width = 15, dicCode = "pick_up_hub") + @Dict(dicCode = "pick_up_hub") + private String pickUpHub; + /**送货地点*/ + @Excel(name = "送货地点", width = 15, dicCode = "delivery_address") + @Dict(dicCode = "delivery_address") + private String deliveryAddress; + /**用车需求编号*/ + @Excel(name = "用车需求编号", width = 15) + @ApiModelProperty(value = "用车需求编号") + private String vdNo; + /**当前状态 0-创建, 1-已合并需求, 2-计算车辆需求中, 3-发送车辆需求, 4-等待装车, + * 5-车辆离厂(完成), 6-取消, 7-超期无效*/ + @Excel(name = "当前状态", width = 15, dicCode = "current_status") + @Dict(dicCode = "current_status") + @ApiModelProperty(value = "当前状态") + private java.lang.String currentStatus; + /**新的用车需求编号*/ + private String vdNoNew; +} diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/mapper/VehicleDemandHisMapper.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/mapper/VehicleDemandHisMapper.java new file mode 100644 index 0000000..c6182b2 --- /dev/null +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/mapper/VehicleDemandHisMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.tms.outbound.vehicledemandhis.mapper; + +import org.jeecg.modules.tms.outbound.vehicledemandhis.entity.VehicleDemandHis; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 用车需求历史 + * @Author: jeecg-boot + * @Date: 2025-06-09 + * @Version: V1.0 + */ +public interface VehicleDemandHisMapper extends BaseMapper { + +} diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/mapper/xml/VehicleDemandHisMapper.xml b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/mapper/xml/VehicleDemandHisMapper.xml new file mode 100644 index 0000000..3c3c9c4 --- /dev/null +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/mapper/xml/VehicleDemandHisMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/service/IVehicleDemandHisService.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/service/IVehicleDemandHisService.java new file mode 100644 index 0000000..875088d --- /dev/null +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/service/IVehicleDemandHisService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.tms.outbound.vehicledemandhis.service; + +import org.jeecg.modules.tms.outbound.vehicledemandhis.entity.VehicleDemandHis; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 用车需求历史 + * @Author: jeecg-boot + * @Date: 2025-06-09 + * @Version: V1.0 + */ +public interface IVehicleDemandHisService extends IService { + +} diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/service/impl/VehicleDemandHisServiceImpl.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/service/impl/VehicleDemandHisServiceImpl.java new file mode 100644 index 0000000..c8bf109 --- /dev/null +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/outbound/vehicledemandhis/service/impl/VehicleDemandHisServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.tms.outbound.vehicledemandhis.service.impl; + +import org.jeecg.modules.tms.outbound.vehicledemandhis.entity.VehicleDemandHis; +import org.jeecg.modules.tms.outbound.vehicledemandhis.mapper.VehicleDemandHisMapper; +import org.jeecg.modules.tms.outbound.vehicledemandhis.service.IVehicleDemandHisService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 用车需求历史 + * @Author: jeecg-boot + * @Date: 2025-06-09 + * @Version: V1.0 + */ +@Service +public class VehicleDemandHisServiceImpl extends ServiceImpl implements IVehicleDemandHisService { + +} diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/quartz/jobs/DeliveryDemandJob.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/quartz/jobs/DeliveryDemandJob.java new file mode 100644 index 0000000..ad0308e --- /dev/null +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/quartz/jobs/DeliveryDemandJob.java @@ -0,0 +1,25 @@ +package org.jeecg.modules.tms.quartz.jobs; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.tms.outbound.deliverydemand.service.IDeliveryDemandService; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description + * @Author admin + * @Date 2025/6/9 15:59 + */ +@Slf4j +public class DeliveryDemandJob implements Job { + @Autowired + private IDeliveryDemandService deliveryDemandService; + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + log.info("========发货需求自动合并开始======="); + deliveryDemandService.timedMerge(); + log.info("========发货需求自动合并结束======="); + } +}