refactor(wms): 移除废弃的出入库相关接口和实现

- 注释掉推荐采购计划相关接口及其实现逻辑
- 删除出入库单主表和明细表的控制器、服务接口及实现类
- 移除出入库单相关的Mapper接口及XML配置文件
- 清理原材料服务中不再使用的库存信息填充方法
This commit is contained in:
2025-10-28 13:06:25 +08:00
parent 00bb21b39a
commit 3be57b3f67
19 changed files with 88 additions and 1806 deletions

View File

@@ -71,59 +71,59 @@ public class WmsPurchasePlanServiceImpl implements IWmsPurchasePlanService {
return flag > 0;
}
@Override
public WmsPurchasePlanVo recommendPurchasePlanByOrder(Long orderId) {
// 1. 查询订单明细
List<WmsOrderDetailVo> orderDetails = wmsOrderDetailService.queryListByOrderId(orderId);
// 2. 汇总原材料需求
Map<Long, WmsPurchasePlanDetailVo> materialMap = new HashMap<>();
for (WmsOrderDetailVo detail : orderDetails) {
List<WmsProductBom> bomList = wmsProductBomService.listByProductId(detail.getProductId());
for (WmsProductBom bom : bomList) {
BigDecimal needQty = bom.getQuantity().multiply(detail.getQuantity());
WmsPurchasePlanDetailVo vo =
materialMap.getOrDefault(bom.getRawMaterialId(), new WmsPurchasePlanDetailVo());
vo.setRawMaterialId(bom.getRawMaterialId());
vo.setQuantity(vo.getQuantity() == null ? needQty : vo.getQuantity().add(needQty));
vo.setUnit(bom.getUnit());
// 挂载原材料名称编号
WmsRawMaterial wmsRawMaterial = wmsRawMaterialMapper.selectById(bom.getRawMaterialId());
vo.setRawMaterialName(wmsRawMaterial.getRawMaterialName());
vo.setRawMaterialCode(wmsRawMaterial.getRawMaterialCode());
materialMap.put(bom.getRawMaterialId(), vo);
}
}
// 3. 查询库存并计算推荐采购量
for (WmsPurchasePlanDetailVo vo : materialMap.values()) {
// 需求量
vo.setDemand(vo.getQuantity());
BigDecimal stockQty = wmsStockService.getStockByItemId(vo.getRawMaterialId());
// 库存量
if(stockQty == null){
stockQty = BigDecimal.ZERO;
}
vo.setInventory(stockQty);
// 在途量
BigDecimal onTheWayQty = BigDecimal.ZERO;
BigDecimal byRawMaterialIdAndOnTheWay =
wmsPurchasePlanDetailMapper.getByRawMaterialIdAndOnTheWay(vo.getRawMaterialId());
if (byRawMaterialIdAndOnTheWay != null) {
onTheWayQty = byRawMaterialIdAndOnTheWay;
}
vo.setOnTheWay(onTheWayQty);
// 计算推荐采购量
BigDecimal recommendQty = vo.getQuantity().subtract(onTheWayQty).subtract(stockQty);
vo.setQuantity(recommendQty.compareTo(BigDecimal.ZERO) > 0 ? recommendQty : BigDecimal.ZERO);
}
// 4. 组装主VO
WmsPurchasePlanVo planVo = new WmsPurchasePlanVo();
planVo.setPlanCode("推荐计划-" + orderId);
planVo.setOrderId(orderId);
planVo.setOwner("系统推荐");
planVo.setRemark("仅供参考,实际采购请确认");
planVo.setDetailList(new ArrayList<>(materialMap.values()));
return planVo;
}
// @Override
// public WmsPurchasePlanVo recommendPurchasePlanByOrder(Long orderId) {
// // 1. 查询订单明细
// List<WmsOrderDetailVo> orderDetails = wmsOrderDetailService.queryListByOrderId(orderId);
// // 2. 汇总原材料需求
// Map<Long, WmsPurchasePlanDetailVo> materialMap = new HashMap<>();
// for (WmsOrderDetailVo detail : orderDetails) {
// List<WmsProductBom> bomList = wmsProductBomService.listByProductId(detail.getProductId());
// for (WmsProductBom bom : bomList) {
// BigDecimal needQty = bom.getQuantity().multiply(detail.getQuantity());
// WmsPurchasePlanDetailVo vo =
// materialMap.getOrDefault(bom.getRawMaterialId(), new WmsPurchasePlanDetailVo());
// vo.setRawMaterialId(bom.getRawMaterialId());
// vo.setQuantity(vo.getQuantity() == null ? needQty : vo.getQuantity().add(needQty));
// vo.setUnit(bom.getUnit());
// // 挂载原材料名称编号
// WmsRawMaterial wmsRawMaterial = wmsRawMaterialMapper.selectById(bom.getRawMaterialId());
// vo.setRawMaterialName(wmsRawMaterial.getRawMaterialName());
// vo.setRawMaterialCode(wmsRawMaterial.getRawMaterialCode());
// materialMap.put(bom.getRawMaterialId(), vo);
// }
// }
// // 3. 查询库存并计算推荐采购量
// for (WmsPurchasePlanDetailVo vo : materialMap.values()) {
// // 需求量
// vo.setDemand(vo.getQuantity());
// BigDecimal stockQty = wmsStockService.getStockByItemId(vo.getRawMaterialId());
// // 库存量
// if(stockQty == null){
// stockQty = BigDecimal.ZERO;
// }
// vo.setInventory(stockQty);
// // 在途量
// BigDecimal onTheWayQty = BigDecimal.ZERO;
// BigDecimal byRawMaterialIdAndOnTheWay =
// wmsPurchasePlanDetailMapper.getByRawMaterialIdAndOnTheWay(vo.getRawMaterialId());
// if (byRawMaterialIdAndOnTheWay != null) {
// onTheWayQty = byRawMaterialIdAndOnTheWay;
// }
// vo.setOnTheWay(onTheWayQty);
// // 计算推荐采购量
// BigDecimal recommendQty = vo.getQuantity().subtract(onTheWayQty).subtract(stockQty);
// vo.setQuantity(recommendQty.compareTo(BigDecimal.ZERO) > 0 ? recommendQty : BigDecimal.ZERO);
// }
// // 4. 组装主VO
// WmsPurchasePlanVo planVo = new WmsPurchasePlanVo();
// planVo.setPlanCode("推荐计划-" + orderId);
// planVo.setOrderId(orderId);
// planVo.setOwner("系统推荐");
// planVo.setRemark("仅供参考,实际采购请确认");
// planVo.setDetailList(new ArrayList<>(materialMap.values()));
// return planVo;
// }
/**
* 查询采购计划主