diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsPurchasePlanDetailVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsPurchasePlanDetailVo.java index 964cc324..2db753c0 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsPurchasePlanDetailVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsPurchasePlanDetailVo.java @@ -73,5 +73,16 @@ public class WmsPurchasePlanDetailVo { @ExcelProperty(value = "原材料编码") private String rawMaterialCode; - + /** + * 需求量 + */ + private BigDecimal demand; + /** + * 库存量 + */ + private BigDecimal inventory; + /** + * 在途量 + */ + private BigDecimal onTheWay; } diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsPurchasePlanDetailMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsPurchasePlanDetailMapper.java index 8ee0c34e..4951cd50 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsPurchasePlanDetailMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsPurchasePlanDetailMapper.java @@ -9,6 +9,8 @@ import com.klp.domain.vo.WmsPurchasePlanDetailVo; import com.klp.common.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; + /** * 采购计划明细Mapper接口 * @@ -18,4 +20,9 @@ import org.apache.ibatis.annotations.Param; public interface WmsPurchasePlanDetailMapper extends BaseMapperPlus { Page selectVoPagePlus(Page page, @Param("ew") Wrapper wrapper); + + /** + * 查在途的原材料 + */ + BigDecimal getByRawMaterialIdAndOnTheWay(Long rawMaterialId); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanServiceImpl.java index 30c1c2b5..f07c0fbe 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; import com.klp.domain.WmsProductBom; import com.klp.domain.WmsPurchasePlanDetail; +import com.klp.domain.WmsRawMaterial; import com.klp.domain.vo.WmsOrderDetailVo; import com.klp.domain.vo.WmsPurchasePlanDetailVo; import com.klp.mapper.WmsPurchasePlanDetailMapper; @@ -84,14 +85,27 @@ public class WmsPurchasePlanServiceImpl implements IWmsPurchasePlanService { vo.setRawMaterialId(bom.getRawMaterialId()); vo.setQuantity(vo.getQuantity() == null ? needQty : vo.getQuantity().add(needQty)); vo.setUnit(bom.getUnit()); - vo.setRawMaterialName(wmsRawMaterialMapper.selectById(bom.getRawMaterialId()).getRawMaterialName()); - vo.setRawMaterialCode(wmsRawMaterialMapper.selectById(bom.getRawMaterialId()).getRawMaterialCode()); + // 挂载原材料名称编号 + 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()); + // 库存量 + vo.setInventory(stockQty); + // 在途量 + BigDecimal onTheWayQty = BigDecimal.ZERO; + BigDecimal byRawMaterialIdAndOnTheWay = wmsPurchasePlanDetailMapper.getByRawMaterialIdAndOnTheWay(vo.getRawMaterialId()); + if (byRawMaterialIdAndOnTheWay != null) { + onTheWayQty = byRawMaterialIdAndOnTheWay; + } + vo.setOnTheWay(onTheWayQty); // 要是物料不是产品 BigDecimal recommendQty = BigDecimal.ZERO; if (stockQty != null) { diff --git a/klp-wms/src/main/resources/mapper/klp/WmsPurchasePlanDetailMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsPurchasePlanDetailMapper.xml index 9fbc2725..619cf68f 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsPurchasePlanDetailMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsPurchasePlanDetailMapper.xml @@ -31,5 +31,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${ew.customSqlSegment} + +