From 5c42bf666a215efafd94725670108bdbbabcfd0d Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 29 Jul 2025 17:48:43 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=B8=BAwebSocket=E7=89=B9=E5=AE=9A?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E6=B7=BB=E5=8A=A0=E7=9B=B4=E6=8E=A5=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- klp-ui/vue.config.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/klp-ui/vue.config.js b/klp-ui/vue.config.js index d45c9c5c..786e2020 100644 --- a/klp-ui/vue.config.js +++ b/klp-ui/vue.config.js @@ -43,6 +43,21 @@ module.exports = { pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' } + }, + // 直接代理WebSocket相关路径 + '/websocket': { + target: `http://localhost:8080`, + changeOrigin: true + }, + // 直接代理测试路径 + '/test': { + target: `http://localhost:8080`, + changeOrigin: true + }, + // 直接代理actuator路径 + '/actuator': { + target: `http://localhost:8080`, + changeOrigin: true } }, disableHostCheck: true From bdb201e01546f9fe0c7f2b64705e1f1fe734b0e0 Mon Sep 17 00:00:00 2001 From: JR <3573153686@qq.com> Date: Wed, 30 Jul 2025 10:23:12 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E6=8E=A8=E8=8D=90=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E5=8A=A0=E8=BF=94=E5=9B=9E=E5=AD=97=E6=AE=B5=EF=BC=9A?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E5=BA=93=E5=AD=98=E5=9C=A8=E9=80=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../klp/domain/vo/WmsPurchasePlanDetailVo.java | 13 ++++++++++++- .../mapper/WmsPurchasePlanDetailMapper.java | 7 +++++++ .../impl/WmsPurchasePlanServiceImpl.java | 18 ++++++++++++++++-- .../mapper/klp/WmsPurchasePlanDetailMapper.xml | 8 ++++++++ 4 files changed, 43 insertions(+), 3 deletions(-) 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} + + From 733156372945f6e80a6b49ef2520be16500bca1e Mon Sep 17 00:00:00 2001 From: JR <3573153686@qq.com> Date: Wed, 30 Jul 2025 10:49:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E9=87=87=E8=B4=AD=E5=88=A0?= =?UTF-8?q?=E4=B8=BB=E8=A1=A8=E5=90=8C=E6=97=B6=E5=88=A0=E6=98=8E=E7=BB=86?= =?UTF-8?q?=EF=BC=8C=E6=8E=A8=E8=8D=90=E8=AE=A1=E7=AE=97=E5=9C=A8=E9=80=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WmsPurchasePlanServiceImpl.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) 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 f07c0fbe..7004e090 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 @@ -81,7 +81,8 @@ public class WmsPurchasePlanServiceImpl implements IWmsPurchasePlanService { List bomList = wmsProductBomService.listByProductId(detail.getProductId()); for (WmsProductBom bom : bomList) { BigDecimal needQty = bom.getQuantity().multiply(detail.getQuantity()); - WmsPurchasePlanDetailVo vo = materialMap.getOrDefault(bom.getRawMaterialId(), new WmsPurchasePlanDetailVo()); + 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()); @@ -98,19 +99,20 @@ public class WmsPurchasePlanServiceImpl implements IWmsPurchasePlanService { 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()); + BigDecimal byRawMaterialIdAndOnTheWay = + wmsPurchasePlanDetailMapper.getByRawMaterialIdAndOnTheWay(vo.getRawMaterialId()); if (byRawMaterialIdAndOnTheWay != null) { onTheWayQty = byRawMaterialIdAndOnTheWay; } vo.setOnTheWay(onTheWayQty); - // 要是物料不是产品 - BigDecimal recommendQty = BigDecimal.ZERO; - if (stockQty != null) { - recommendQty = vo.getQuantity().subtract(stockQty); - } + // 计算推荐采购量 + BigDecimal recommendQty = vo.getQuantity().subtract(onTheWayQty).subtract(stockQty); vo.setQuantity(recommendQty.compareTo(BigDecimal.ZERO) > 0 ? recommendQty : BigDecimal.ZERO); } // 4. 组装主VO @@ -196,9 +198,11 @@ public class WmsPurchasePlanServiceImpl implements IWmsPurchasePlanService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } + // 逻辑删除采购明细 + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.in(WmsPurchasePlanDetail::getPlanId, ids); + wmsPurchasePlanDetailMapper.delete(lqw); + // 逻辑删除采购计划主表 return baseMapper.deleteBatchIds(ids) > 0; } }