From c3b4923ce9697e844ab84a2d35eb566145763ee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Tue, 14 Jul 2026 13:52:36 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E8=BD=AC=E6=8D=A2=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StockOutOrderApplicationService.java | 11 ++ .../entity/OutMaterialDetail.java | 13 +++ .../repository/po/OutMaterialDetailPO.java | 12 +++ .../repository/todo/OutMaterialDetailDO.java | 8 ++ .../service/StockOutOrderDomainService.java | 100 ++++++++++++++++++ .../OutMaterialDetailDTO.java | 12 +++ .../stockOutOrder/StockOutOrderApi.java | 23 ++++ 7 files changed, 179 insertions(+) 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 4501c2ff2..61b914cf4 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 @@ -1141,6 +1141,17 @@ public class StockOutOrderApplicationService { return b; } + + public Boolean adjustPicking(StockOutOrderDO stockOutOrderDO){ + Boolean b = stockOutOrderDomainService.adjustPicking(stockOutOrderDO); + return b; + } + + public Boolean checkUpload(StockOutOrderDO stockOutOrderDO){ + Boolean b = stockOutOrderDomainService.checkUpload(stockOutOrderDO); + return b; + } + public Boolean genPickingOrderByOms(StockOutOrderDO stockOutOrderDO){ Boolean b = stockOutOrderDomainService.genPickingOrderByOms(stockOutOrderDO); // List outOrderIds = stockOutOrderDO.getOutOrderIds(); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java index 1a5115a0f..830f67c50 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java @@ -528,4 +528,17 @@ public class OutMaterialDetail extends BaseVOEntity { private String bondInvtNoGw; private String whNoGw; private String seatNoGw; + + //仓码简易模式 + @ApiModelProperty("出库重量") + @Excel(name = "出库重量") + private BigDecimal outWeight; + + @ApiModelProperty("出库体积") + @Excel(name = "出库体积") + private BigDecimal outVolume; + + @ApiModelProperty("出库数量") + @Excel(name = "出库数量") + private BigDecimal outQuantity; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java index 982a283eb..f37fdea55 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/po/OutMaterialDetailPO.java @@ -568,4 +568,16 @@ public class OutMaterialDetailPO extends StockOutOrderBaseDO { private String whNoGw; private String seatNoGw; private String khdm; + //仓码简易模式 + @ApiModelProperty("出库重量") + @Excel(name = "出库重量") + private BigDecimal outWeight; + + @ApiModelProperty("出库体积") + @Excel(name = "出库体积") + private BigDecimal outVolume; + + @ApiModelProperty("出库数量") + @Excel(name = "出库数量") + private BigDecimal outQuantity; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java index 1dd1cc9aa..32838018a 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java @@ -520,4 +520,12 @@ public class OutMaterialDetailDO extends BaseVOEntity { private String bondInvtNoGw; private String whNoGw; private String seatNoGw; + //仓码简易模式 + @ApiModelProperty("出库重量") + @Excel(name = "出库重量") + private BigDecimal outWeight; + + @ApiModelProperty("出库体积") + @Excel(name = "出库体积") + private BigDecimal outVolume; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java index 6bf396e6d..0a900d0b1 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/service/StockOutOrderDomainService.java @@ -23,8 +23,10 @@ import com.mhd.wms.domain.copyCodeReference.repository.po.CopyCodeReferencePO; import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService; import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO; import com.mhd.wms.domain.deliveryDetailsLink.repository.facade.IDeliveryDetailsLinkService; +import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder; import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService; import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO; +import com.mhd.wms.domain.handoverTaskOrder.service.HandoverTaskOrderDomainService; import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail; import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO; import com.mhd.wms.domain.inventoryAdjustmentRecord.entity.InventoryAdjustmentRecord; @@ -113,6 +115,8 @@ public class StockOutOrderDomainService { @Autowired private IHandoverTaskOrderService handoverTaskOrderService; @Autowired + private HandoverTaskOrderDomainService handoverTaskOrderDomainService; + @Autowired private IOutOrderAbnormalService outOrderAbnormalService; @Autowired private PickingOrderDomainService pickingOrderDomainService; @@ -867,6 +871,102 @@ public class StockOutOrderDomainService { return inserted; } + @Transactional(rollbackFor = Exception.class) + public Boolean adjustPicking(StockOutOrderDO stockOutOrderDO){ + String outOrderNumber = stockOutOrderDO.getOutOrderNumber(); + PickingOrder pickingOrder = pickingOrderService.getOne(new QueryWrapper().lambda() + .eq(PickingOrder::getOrderNumber, outOrderNumber) + .eq(PickingOrder::getDelFlag, 1), false); + if (pickingOrder == null) { + throw new RuntimeException("拣货单不存在!"); + } + pickingOrder.setStatus(2); + pickingOrderService.updateById(pickingOrder); + List materialDetailList = stockOutOrderDO.getMaterialDetailList(); + if (CollectionUtils.isEmpty(materialDetailList)) { + throw new RuntimeException("出库单明细不存在!"); + } + List pickingMaterialDetailList = materialDetailList.stream() + .filter(m -> m.getOutWeight() != null || m.getOutVolume() != null) + .collect(Collectors.toList()); + if (pickingMaterialDetailList != null && pickingMaterialDetailList.size() > 0) { + for (OutMaterialDetailDO outMaterialDetailDO : pickingMaterialDetailList) { + Long uniqueId = outMaterialDetailDO.getUniqueId(); + BigDecimal outWeight = outMaterialDetailDO.getOutWeight(); + BigDecimal outVolume = outMaterialDetailDO.getOutVolume(); + PickingMaterialDetail pickingMaterialDetail = pickingMaterialDetailService.getOne(new QueryWrapper().lambda() + .eq(PickingMaterialDetail::getOutUniqueId, uniqueId) + .eq(PickingMaterialDetail::getDelFlag, 1), false); + if (pickingMaterialDetail != null) { + pickingMaterialDetail.setWeightLimit(outWeight); + pickingMaterialDetail.setTotalNetWeight(outWeight); + pickingMaterialDetail.setTotalGrossWeight(outVolume); + pickingMaterialDetail.setVolumeLimit(outVolume); + pickingMaterialDetail.setTotalVolume(outVolume); + pickingMaterialDetail.setPickingQuantity(pickingMaterialDetail.getQuantity()); + pickingMaterialDetail.setAlreadyPickingQuantity(pickingMaterialDetail.getQuantity()); + pickingMaterialDetailService.updateById(pickingMaterialDetail); + } + } + } + return Boolean.TRUE; + } + + @Transactional(rollbackFor = Exception.class) + public Boolean checkUpload(StockOutOrderDO stockOutOrderDO){ + String outOrderNumber = stockOutOrderDO.getOutOrderNumber(); + StockOutOrder stockOutOrder = stockOutOrderService.getOne(new QueryWrapper().lambda() + .eq(StockOutOrder::getOutOrderNumber, outOrderNumber) + .eq(StockOutOrder::getDelFlag, 1), false); + if (stockOutOrder == null) { + throw new RuntimeException("出库单不存在!"); + } + PickingOrder pickingOrder = pickingOrderService.getOne(new QueryWrapper().lambda() + .eq(PickingOrder::getOrderNumber, outOrderNumber) + .eq(PickingOrder::getDelFlag, 1), false); + if (pickingOrder == null) { + throw new RuntimeException("拣货单不存在!"); + } + PickingOrderDO pickingOrderDO = new PickingOrderDO(); + pickingOrderDO.setType(1); + pickingOrderDO.setPickingOrderId(pickingOrder.getPickingOrderId()); + pickingOrderDomainService.completePicking(pickingOrderDO); + + + //复核 + List materialDetailList = stockOutOrderDO.getMaterialDetailList(); + if (materialDetailList != null && materialDetailList.size() > 0) { + for (OutMaterialDetailDO outMaterialDetailDO : materialDetailList) { + Long uniqueId = outMaterialDetailDO.getUniqueId(); + PickingMaterialDetail pickingMaterialDetail = pickingMaterialDetailService.getOne(new QueryWrapper().lambda() + .eq(PickingMaterialDetail::getOutUniqueId, uniqueId) + .eq(PickingMaterialDetail::getDelFlag, 1), false); + if (pickingMaterialDetail != null) { + outMaterialDetailDO.setActualQuantity(pickingMaterialDetail.getPickingQuantity()); + outMaterialDetailDO.setCheckArea(pickingMaterialDetail.getTotalArea()); + outMaterialDetailDO.setCheckVolume(pickingMaterialDetail.getTotalVolume()); + outMaterialDetailDO.setCheckNetWeight(pickingMaterialDetail.getTotalNetWeight()); + outMaterialDetailDO.setCheckGrossWeight(pickingMaterialDetail.getTotalGrossWeight()); + } + } + } + stockOutOrderDO.setMaterialDetailList(materialDetailList); + batchCheck(stockOutOrderDO); + checkConfirm(stockOutOrderDO); + //交接 + HandoverTaskOrder handoverTaskOrder = handoverTaskOrderService.getOne(new LambdaQueryWrapper() + .eq(HandoverTaskOrder::getOrderNumber, outOrderNumber) + .eq(HandoverTaskOrder::getDelFlag, 1)); + if (handoverTaskOrder != null) { + HandoverTaskOrderDO handoverTaskOrderDO = new HandoverTaskOrderDO(); + List handoverTaskOrderId = new ArrayList<>(); + handoverTaskOrderId.add(handoverTaskOrder.getHandoverTaskOrderId()); + handoverTaskOrderDO.setHandoverTaskOrderIds(handoverTaskOrderId); + handoverTaskOrderDomainService.completeHandover(handoverTaskOrderDO); + } + return Boolean.TRUE; + } + @Transactional(rollbackFor = Exception.class) public Boolean genPickingOrderByOms(StockOutOrderDO stockOutOrderDO){ List stockOutOrderList = stockOutOrderService.list(new QueryWrapper().lambda() diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outMaterialDetail/OutMaterialDetailDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outMaterialDetail/OutMaterialDetailDTO.java index 0fa14e65e..67cfc6d1e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outMaterialDetail/OutMaterialDetailDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/outMaterialDetail/OutMaterialDetailDTO.java @@ -506,4 +506,16 @@ public class OutMaterialDetailDTO extends BaseVOEntity { private String bondInvtNoGw; private String whNoGw; private String seatNoGw; + //仓码简易模式 + @ApiModelProperty("出库重量") + @Excel(name = "出库重量") + private BigDecimal outWeight; + + @ApiModelProperty("出库体积") + @Excel(name = "出库体积") + private BigDecimal outVolume; + + @ApiModelProperty("出库数量") + @Excel(name = "出库数量") + private BigDecimal outQuantity; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java index d383bed5a..30dbd3023 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockOutOrder/StockOutOrderApi.java @@ -347,6 +347,29 @@ public class StockOutOrderApi extends BaseController { return toAjax(stockOutOrderApplicationService.genPickingOrder(stockOutOrderDO)); } + + /** + * 生成拣货单 + */ + @ApiOperation("生成拣货单") + @PostMapping("/adjustPicking") + public AjaxResult adjustPicking(@RequestBody StockOutOrderDTO stockOutOrderDTO) { + StockOutOrderDO stockOutOrderDO = JSONUtil.toBean(JSONUtil.toJsonStr(stockOutOrderDTO), StockOutOrderDO.class); + return toAjax(stockOutOrderApplicationService.adjustPicking(stockOutOrderDO)); + } + + + + /** + * 生成拣货单 + */ + @ApiOperation("生成拣货单") + @PostMapping("/checkUpload") + public AjaxResult checkUpload(@RequestBody StockOutOrderDTO stockOutOrderDTO) { + StockOutOrderDO stockOutOrderDO = JSONUtil.toBean(JSONUtil.toJsonStr(stockOutOrderDTO), StockOutOrderDO.class); + return toAjax(stockOutOrderApplicationService.checkUpload(stockOutOrderDO)); + } + /** * 生成拣货单 */