From 797f2db7c12ac861b99c7b86fa93f3d5fdf3a36d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Mon, 26 Jan 2026 17:04:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=BA=93=E6=B5=81=E7=A8=8B;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StockOutOrderApplicationService.java | 1 + .../HandoverTaskOrderDomainService.java | 38 ++++++++++- .../persistence/OutMaterialDetailImpl.java | 68 ++++++++++++------- .../MaterialInventoryMapper.xml | 2 +- 4 files changed, 83 insertions(+), 26 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java index 676a50b71..dac1ac0f9 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java @@ -408,6 +408,7 @@ public class StockOutOrderApplicationService { throw new ServiceException("获取货主信息失败"); } UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class); + stockOutOrderDO.setShipperId(userPo.getUserId()); stockOutOrderDO.setShipperCode(userPo.getUserMemberCode()); stockOutOrderDO.setShipperName(userPo.getUserName()); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java index 9513e558c..eaded28b8 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java @@ -1,16 +1,23 @@ package com.mhd.wms.domain.handoverTaskOrder.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.mhd.common.core.utils.bean.BeanUtils; import com.mhd.common.security.utils.SecurityUtils; import com.mhd.system.api.model.LoginUser; import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService; import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO; import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO; +import com.mhd.wms.domain.materialInventory.entity.MaterialInventory; +import com.mhd.wms.domain.materialInventory.repository.mapper.MaterialInventoryMapper; +import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail; +import com.mhd.wms.domain.outMaterialDetail.repository.mapper.OutMaterialDetailMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -26,6 +33,10 @@ public class HandoverTaskOrderDomainService { @Autowired private IHandoverTaskOrderService handoverTaskOrderService; + @Autowired + private MaterialInventoryMapper materialInventoryMapper; + @Autowired + private OutMaterialDetailMapper outMaterialDetailMapper; /** @@ -118,6 +129,31 @@ public class HandoverTaskOrderDomainService { * @return Boolean */ public Boolean completeHandover(HandoverTaskOrderDO handoverTaskOrderDO){ + //交接完成节点修改库存 + String orderNumber = handoverTaskOrderDO.getOrderNumber(); + List outMaterialDetailList = outMaterialDetailMapper.selectList(new QueryWrapper().lambda() + .eq(OutMaterialDetail::getOutOrderNumber, orderNumber)); + for (OutMaterialDetail outMaterialDetail : outMaterialDetailList) { + Long materialInventoryId = outMaterialDetail.getMaterialInventoryId(); + BigDecimal checkQuantity = outMaterialDetail.getCheckQuantity(); + MaterialInventory materialInventoryPO = materialInventoryMapper.selectById(materialInventoryId); + if (materialInventoryPO != null) { + //更新库存数量 + //库存数量 + BigDecimal oldInventoryQuantity = materialInventoryPO.getInventoryQuantity(); + //冻结数量 + BigDecimal oldFreezeQuantity = materialInventoryPO.getFreezeQuantity(); + //分配后库存数量 + BigDecimal newInventoryQuantity = oldInventoryQuantity.subtract(checkQuantity); + //分配后冻结数量 + BigDecimal newFreezeQuantity = oldFreezeQuantity.subtract(checkQuantity); + materialInventoryPO.setInventoryQuantity(newInventoryQuantity); + materialInventoryPO.setFreezeQuantity(newFreezeQuantity); + MaterialInventory materialInventory = new MaterialInventory(); + BeanUtils.copyProperties(materialInventoryPO, materialInventory); + materialInventoryMapper.updateById(materialInventory); + } + } LoginUser loginUser = SecurityUtils.getLoginUser(); return handoverTaskOrderService.update(null, new UpdateWrapper().lambda() .set(HandoverTaskOrder::getStatus, 2) @@ -127,4 +163,4 @@ public class HandoverTaskOrderDomainService { .in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderDO.getHandoverTaskOrderIds()) ); } -} +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java index 77cd46608..d22d16029 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/persistence/OutMaterialDetailImpl.java @@ -278,32 +278,29 @@ public class OutMaterialDetailImpl extends ServiceImpl