diff --git a/jeecg-boot/jeecg-module-tms/pom.xml b/jeecg-boot/jeecg-module-tms/pom.xml index c01cf82..67b782f 100644 --- a/jeecg-boot/jeecg-module-tms/pom.xml +++ b/jeecg-boot/jeecg-module-tms/pom.xml @@ -27,6 +27,11 @@ hutool-crypto ${hutool.version} + + org.json + json + 20180813 + diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/iogisticsprice/mapper/TmsIogisticsPriceMapper.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/iogisticsprice/mapper/TmsIogisticsPriceMapper.java index 6681fbb..949bdec 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/iogisticsprice/mapper/TmsIogisticsPriceMapper.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/iogisticsprice/mapper/TmsIogisticsPriceMapper.java @@ -21,5 +21,6 @@ public interface TmsIogisticsPriceMapper extends BaseMapper { * @return */ List getIogisticsPrice(@Param("pickUpHub") String pickUpHub, - @Param("deliveryAddress") String deliveryAddress); + @Param("deliveryAddress") String deliveryAddress, + @Param("shipType") String shipType); } 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 f0af57a..a87a9d3 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,7 @@ and a.car_long = b.car_long where a.start_city = #{pickUpHub} and a.target_city = #{deliveryAddress} + and a.ship_type = #{shipType} and a.failure_time >= TRUNC(SYSDATE) diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/entity/VehiclePallet.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/entity/VehiclePallet.java index d2526e7..2579c02 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/entity/VehiclePallet.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/entity/VehiclePallet.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; @@ -71,4 +69,6 @@ public class VehiclePallet implements Serializable { /**更新人*/ @ApiModelProperty(value = "更新人") private java.lang.String updateBy; + @TableField(exist = false) + private String supplierCode; } diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/mapper/VehiclePalletMapper.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/mapper/VehiclePalletMapper.java index 6e54c7f..2d51237 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/mapper/VehiclePalletMapper.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/mapper/VehiclePalletMapper.java @@ -15,4 +15,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface VehiclePalletMapper extends BaseMapper { List getCarType(); + + List getCarInfo(@Param("shipType") String shipType, + @Param("pickUpHub") String pickUpHub, + @Param("deliveryAddress") String deliveryAddress); } diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/mapper/xml/VehiclePalletMapper.xml b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/mapper/xml/VehiclePalletMapper.xml index 0ac6c84..9f5cc7c 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/mapper/xml/VehiclePalletMapper.xml +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/basicdata/vehiclepallet/mapper/xml/VehiclePalletMapper.xml @@ -6,4 +6,13 @@ select car_type from tms_vehicle_pallet group by car_type + + \ 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 61e2b47..840179c 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 @@ -33,6 +33,7 @@ import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jeecg.common.system.base.controller.JeecgController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @@ -201,25 +202,25 @@ public class VehicleInOutController extends JeecgController take(@RequestBody VehicleInOut vehicleInOut) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(VehicleInOut::getVehicleDemandCountId, vehicleInOut.getId()); - List list = vehicleInOutService.list(lambdaQueryWrapper); - if (list != null && list.size() > 0) { - if ("1".equals(vehicleInOut.getEfType())) { - return Result.error("已经进行过提货了!"); - } else { - return Result.error("已经进行过送货了!"); - } + lambdaQueryWrapper.ne(VehicleInOut::getCurrentStatus, TmsConstants.currentStatus_1); + VehicleInOut vi = vehicleInOutService.getOne(lambdaQueryWrapper); + if (vi != null) { + return Result.error("已经操作过了!"); } - vehicleInOut.setId(null) - .setCreateTime(null) - .setCreateBy(null) + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(VehicleInOut::getVehicleDemandCountId, vehicleInOut.getId()); + vehicleInOutService.remove(lam); + vehicleInOut.setVehicleDemandCountId(vehicleInOut.getId()) .setCurrentStatus(TmsConstants.currentStatus_1) - .setPo(vehicleInOut.getPo()) - .setVehicleDemandCountId(vehicleInOut.getId()); + .setId(null) + .setCreateTime(null) + .setCreateBy(null); vehicleInOutService.save(vehicleInOut); - return Result.OK("提货成功!"); + return Result.OK("操作成功!"); } /** diff --git a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/constant/TmsConstants.java b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/constant/TmsConstants.java index 85a1d00..5a76503 100644 --- a/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/constant/TmsConstants.java +++ b/jeecg-boot/jeecg-module-tms/src/main/java/org/jeecg/modules/tms/constant/TmsConstants.java @@ -14,5 +14,5 @@ public class TmsConstants { public static String shipType_0 = "0"; public static String shipType_1 = "1"; - public static String shipType_2 = "2"; + public static String shipType_2 = "快递"; } 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 9b87288..c372e5f 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 @@ -78,6 +78,10 @@ public class DeliveryDemandServiceImpl extends ServiceImpl 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())*/ - Optional.ofNullable(merged1.getTotalShips()).orElse(BigDecimal.ZERO) - .add(Optional.ofNullable(merged2.getTotalShips()).orElse(BigDecimal.ZERO)) - ); - return merged1; - } - )); + .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.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())*/ + Optional.ofNullable(merged1.getTotalShips()).orElse(BigDecimal.ZERO) + .add(Optional.ofNullable(merged2.getTotalShips()).orElse(BigDecimal.ZERO)) + ); + return merged1; + } + )); List vehicleDemands = new ArrayList<>(); for (Map.Entry entry : mergedMap.entrySet()) { String key = entry.getKey(); // 拼接的键 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 16b5e26..f614fe7 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 @@ -46,9 +46,10 @@ public class VehicleDemandServiceImpl extends ServiceImpl carCount(VehicleDemand vehicleDemand) { // 1.判断是否进行过用车计算 @@ -62,7 +63,8 @@ public class VehicleDemandServiceImpl extends ServiceImpl iogisticsPriceList = iogisticsPriceMapper.getIogisticsPrice( vehicleDemand.getPickUpHub(), - vehicleDemand.getDeliveryAddress()); + vehicleDemand.getDeliveryAddress(), + vehicleDemand.getShipType()); if (iogisticsPriceList == null || iogisticsPriceList.size() <= 0) { return Result.error("没有符合的物流价格基础信息,请维护!"); } @@ -72,15 +74,18 @@ public class VehicleDemandServiceImpl extends ServiceImpl entry : solution.getVehicleCounts().entrySet()) { + for (Map.Entry entry : solution.getVehicleCounts().entrySet()) { System.out.println(entry.getKey() + " 车: " + entry.getValue() + " 辆"); - }*//* + } // 4.转化集合 List vehicleDemandCounts = convertToVehicleDemandCountList(solution.getVehicleCounts(), vehicleDemand); // 5.新增 vehicleDemandCountService.saveBatch(vehicleDemandCounts); // 6.更新发货需求当前状态 deliveryDemandMapper.updateByVdNo(vehicleDemand.getVdNo(), TmsConstants.currentStatus_2); + // 7.更新用车需求当前状态 + vehicleDemand.setCurrentStatus(TmsConstants.currentStatus_2); + vehicleDemandMapper.updateById(vehicleDemand); log.info("用车需求计算,用车需求编号:{},方案:{},费用:{}",vehicleDemand.getVdNo(), solution.getVehicleCounts(),solution.getTotalCost()); return Result.OK("用车计算成功!"); @@ -188,7 +193,8 @@ public class VehicleDemandServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + /*LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.orderByDesc(VehiclePallet::getMaxPallets); - List vehiclePallets = vehiclePalletMapper.selectList(lambdaQueryWrapper); + lambdaQueryWrapper.eq(VehiclePallet::getCarType, vehicleDemand.getShipType()); + List vehiclePallets = vehiclePalletMapper.selectList(lambdaQueryWrapper);*/ + List vehiclePallets = vehiclePalletMapper.getCarInfo(vehicleDemand.getShipType(), + vehicleDemand.getPickUpHub(), vehicleDemand.getDeliveryAddress()); + if (vehiclePallets == null || vehiclePallets.size() == 0) { + return Result.error("没有符合的物流价格基础信息,请维护!"); + } // 3.进行车辆选择 // 3.1.获取需要装车总托数 Integer totalPallets = vehicleDemand.getTotalPallets(); @@ -235,7 +247,9 @@ public class VehicleDemandServiceImpl extends ServiceImpl