用车需求合并,拆分
This commit is contained in:
parent
f4717672de
commit
d81634f69d
@ -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)
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -15,4 +15,5 @@ import org.jeecg.modules.tms.basicdata.logisticsroute.entity.LogisticsRoute;
|
||||
*/
|
||||
public interface LogisticsRouteMapper extends BaseMapper<LogisticsRoute> {
|
||||
|
||||
Integer getDistance(String pickUpHub, String deliveryAddress);
|
||||
}
|
||||
|
@ -2,4 +2,9 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.jeecg.modules.tms.basicdata.logisticsroute.mapper.LogisticsRouteMapper">
|
||||
|
||||
<select id="getDistance" resultType="java.lang.Integer">
|
||||
SELECT kilometers FROM tms_logistics_route WHERE
|
||||
start_city = #{pickUpHub}
|
||||
AND target_city = #{deliveryAddress}
|
||||
</select>
|
||||
</mapper>
|
@ -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<VehicleInOut, IVehic
|
||||
if (vehicleInOut.getCurrentStatus() != null && Integer.parseInt(vehicleInOut.getCurrentStatus()) <= Integer.parseInt(byId.getCurrentStatus())) {
|
||||
return Result.error("操作失败,请按照流程操作!");
|
||||
}
|
||||
if ("3".equals(vehicleInOut.getCurrentStatus())) {
|
||||
if (TmsConstants.currentStatus_3.equals(vehicleInOut.getCurrentStatus())) {
|
||||
vehicleInOut.setAtaTime(new Date());
|
||||
} else if ("4".equals(vehicleInOut.getCurrentStatus())) {
|
||||
} else if (TmsConstants.currentStatus_4.equals(vehicleInOut.getCurrentStatus())) {
|
||||
vehicleInOut.setAtdTime(new Date());
|
||||
}
|
||||
vehicleInOutService.updateById(vehicleInOut);
|
||||
@ -214,7 +215,7 @@ public class VehicleInOutController extends JeecgController<VehicleInOut, IVehic
|
||||
vehicleInOut.setId(null)
|
||||
.setCreateTime(null)
|
||||
.setCreateBy(null)
|
||||
.setCurrentStatus("1")
|
||||
.setCurrentStatus(TmsConstants.currentStatus_1)
|
||||
.setPo(vehicleInOut.getPo())
|
||||
.setVehicleDemandCountId(vehicleInOut.getId());
|
||||
vehicleInOutService.save(vehicleInOut);
|
||||
|
@ -0,0 +1,18 @@
|
||||
package org.jeecg.modules.tms.constant;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author admin
|
||||
* @Date 2025/6/10 8:41
|
||||
*/
|
||||
public class TmsConstants {
|
||||
public static String currentStatus_0 = "0";
|
||||
public static String currentStatus_1 = "1";
|
||||
public static String currentStatus_2 = "2";
|
||||
public static String currentStatus_3 = "3";
|
||||
public static String currentStatus_4 = "4";
|
||||
|
||||
public static String shipType_0 = "0";
|
||||
public static String shipType_1 = "1";
|
||||
public static String shipType_2 = "2";
|
||||
}
|
@ -129,11 +129,14 @@ public class DeliveryDemandController extends JeecgController<DeliveryDemand, ID
|
||||
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
|
||||
public Result<String> edit(@RequestBody DeliveryDemand deliveryDemand) {
|
||||
deliveryDemandService.updateById(deliveryDemand);
|
||||
LambdaQueryWrapper<DeliveryDemandDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(DeliveryDemandDetail::getDeliveryDemandId, deliveryDemand.getId());
|
||||
deliveryDemandDetailService.remove(lambdaQueryWrapper);
|
||||
List<DeliveryDemandDetail> deliveryDemandDetailList = deliveryDemand.getDeliveryDemandDetailList();
|
||||
deliveryDemandDetailList.forEach(item ->{
|
||||
item.setDeliveryDemandId(deliveryDemand.getId());
|
||||
});
|
||||
deliveryDemandDetailService.saveOrUpdateBatch(deliveryDemandDetailList);
|
||||
deliveryDemandDetailService.saveBatch(deliveryDemandDetailList);
|
||||
return Result.OK("编辑成功!");
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,6 @@ import org.jeecg.modules.tms.outbound.deliverydemanddetail.entity.DeliveryDemand
|
||||
*/
|
||||
public interface DeliveryDemandMapper extends BaseMapper<DeliveryDemand> {
|
||||
void updateCurrentStatus(@Param("shipType") String shipType,
|
||||
@Param("pn") String pn,
|
||||
@Param("deliveryAddress") String deliveryAddress,
|
||||
@Param("pickUpHub") String pickUpHub,
|
||||
@Param("shipDate") Date shipDate,
|
||||
|
@ -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}
|
||||
|
@ -22,6 +22,12 @@ public interface IDeliveryDemandService extends IService<DeliveryDemand> {
|
||||
*/
|
||||
Result<?> handleMerge(List<String> ids);
|
||||
|
||||
/**
|
||||
* 定时合并
|
||||
* @return
|
||||
*/
|
||||
void timedMerge();
|
||||
|
||||
/**
|
||||
* 根据料号、规格、发货数量计算托盘数
|
||||
* @param deliveryDemands
|
||||
|
@ -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<DeliveryDemandMapper,
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Result<?> handleMerge(List<String> ids) {
|
||||
List<DeliveryDemand> 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<String, VehicleDemand> 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<DeliveryDemandMapper,
|
||||
VehicleDemand value = entry.getValue(); // 合并后的值
|
||||
String[] parts = key.split("\\|");
|
||||
String shipType = parts[0];
|
||||
String pn = parts[1];
|
||||
String deliveryAddress = parts[2];
|
||||
String pickUpHub = parts[3];
|
||||
Date shipDate = DateUtil.parse(parts[4], "EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
|
||||
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, pn, deliveryAddress, pickUpHub, shipDate, sequence);
|
||||
deliveryDemandMapper.updateCurrentStatus(shipType, deliveryAddress, pickUpHub, shipDate, sequence);
|
||||
value.setShipType(shipType)
|
||||
.setPn(pn)
|
||||
.setDeliveryAddress(deliveryAddress)
|
||||
.setPickUpHub(pickUpHub)
|
||||
.setShipDate(shipDate)
|
||||
.setVdNo(sequence);
|
||||
.setVdNo(sequence)
|
||||
.setCurrentStatus(TmsConstants.currentStatus_0);
|
||||
vehicleDemands.add(value);
|
||||
}
|
||||
vehicleDemandService.saveBatch(vehicleDemands);
|
||||
return Result.OK("合并成功!");
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void timedMerge() {
|
||||
LambdaQueryWrapper<DeliveryDemand> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(DeliveryDemand::getCurrentStatus, TmsConstants.currentStatus_0);
|
||||
lambdaQueryWrapper.ne(DeliveryDemand::getShipType, TmsConstants.shipType_2);
|
||||
List<DeliveryDemand> deliveryDemands = deliveryDemandMapper.selectList(lambdaQueryWrapper);
|
||||
// 将需要合并的数据进行分组,以 shipType, deliveryAddress, pickUpHub, shipDate 为key
|
||||
Map<String, VehicleDemand> 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<VehicleDemand> vehicleDemands = new ArrayList<>();
|
||||
for (Map.Entry<String, VehicleDemand> 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<DeliveryDemand> deliveryDemands) {
|
||||
BigDecimal results = BigDecimal.ZERO;
|
||||
|
@ -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<VehicleDemand, IVeh
|
||||
private IVehicleDemandService vehicleDemandService;
|
||||
@Autowired
|
||||
private IVehicleDemandCountService vehicleDemandCountService;
|
||||
@Autowired
|
||||
private IDeliveryDemandService deliveryDemandService;
|
||||
@Autowired
|
||||
private IDeliveryDemandService deliveryDemandService;
|
||||
@Autowired
|
||||
private IVehicleDemandHisService vehicleDemandHisService;
|
||||
@Autowired
|
||||
private IGeneralSequenceService generalSequenceService;
|
||||
@Autowired
|
||||
private LogisticsRouteMapper logisticsRouteMapper;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
@ -204,4 +219,117 @@ public class VehicleDemandController extends JeecgController<VehicleDemand, IVeh
|
||||
public Result<?> carCount(@RequestBody VehicleDemand vehicleDemand) {
|
||||
return vehicleDemandService.carCount(vehicleDemand);
|
||||
}
|
||||
|
||||
/**
|
||||
* 手动合并
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@PostMapping("/handleMerge")
|
||||
public Result<?> handleMerge(@RequestBody List<String> ids) {
|
||||
List<VehicleDemand> vehicleDemands = vehicleDemandService.listByIds(ids);
|
||||
boolean hasEven = vehicleDemands.stream().anyMatch(item -> !TmsConstants.currentStatus_0.equals(item.getCurrentStatus()));
|
||||
if (hasEven) {
|
||||
return Result.error("数据中含有不是创建状态的数据!");
|
||||
}
|
||||
List<VehicleDemandHis> vehicleDemandHisList = BeanUtil.copyToList(vehicleDemands, VehicleDemandHis.class);
|
||||
Map<String, VehicleDemand> 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<VehicleDemand> vehicleDemandList = new ArrayList<>();
|
||||
for (Map.Entry<String, VehicleDemand> 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<String> ids) {
|
||||
List<VehicleDemand> vehicleDemands = vehicleDemandService.listByIds(ids);
|
||||
List<String> vdNoNews = vehicleDemands.stream()
|
||||
.map(VehicleDemand::getVdNo)
|
||||
.collect(Collectors.toList());
|
||||
LambdaQueryWrapper<VehicleDemandHis> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(VehicleDemandHis::getVdNoNew, vdNoNews);
|
||||
List<VehicleDemandHis> list = vehicleDemandHisService.list(lambdaQueryWrapper);
|
||||
List<VehicleDemand> vehicleDemandList = BeanUtil.copyToList(list, VehicleDemand.class);
|
||||
// 恢复原来合并删除的数据
|
||||
vehicleDemandService.saveBatch(vehicleDemandList);
|
||||
// 删除合并的数据
|
||||
vehicleDemandService.removeBatchByIds(ids);
|
||||
// 删除历史记录
|
||||
vehicleDemandHisService.removeByIds(list);
|
||||
return Result.OK("解绑成功!");
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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<VehicleDemandMapper, V
|
||||
|
||||
/**
|
||||
* 拼凑一个用车需求计算的集合
|
||||
* @param vehicleDemand
|
||||
* @param vehiclePallet
|
||||
* @param vehicleDemandCounts
|
||||
* @param
|
||||
* @param
|
||||
* @param
|
||||
*/
|
||||
/*private void insertVehicleDemandCount(VehicleDemand vehicleDemand, VehiclePallet vehiclePallet, List<VehicleDemandCount> vehicleDemandCounts) {
|
||||
VehicleDemandCount vehicleDemandCount = new VehicleDemandCount();
|
||||
|
@ -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<VehicleDemandHis, IVehicleDemandHisService> {
|
||||
@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<IPage<VehicleDemandHis>> queryPageList(VehicleDemandHis vehicleDemandDetail,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<VehicleDemandHis> queryWrapper = QueryGenerator.initQueryWrapper(vehicleDemandDetail, req.getParameterMap());
|
||||
Page<VehicleDemandHis> page = new Page<VehicleDemandHis>(pageNo, pageSize);
|
||||
IPage<VehicleDemandHis> 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<String> 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<String> 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<String> 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<String> 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<VehicleDemandHis> 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<VehicleDemandHis> vdNos = vehicleDemandDetailService.query().eq("vd_no_new", vdNo).list();
|
||||
IPage<VehicleDemandHis> page = new Page<>(1, vdNos.size());
|
||||
page.setRecords(vdNos);
|
||||
page.setTotal(vdNos.size());
|
||||
return Result.OK(page);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
@ -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<VehicleDemandHis> {
|
||||
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.jeecg.modules.tms.outbound.vehicledemandhis.mapper.VehicleDemandHisMapper">
|
||||
|
||||
</mapper>
|
@ -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<VehicleDemandHis> {
|
||||
|
||||
}
|
@ -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<VehicleDemandHisMapper, VehicleDemandHis> implements IVehicleDemandHisService {
|
||||
|
||||
}
|
@ -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("========发货需求自动合并结束=======");
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user