From db6b06cbb2564dccbc320a6a49e0e4c47475ed05 Mon Sep 17 00:00:00 2001 From: xs Date: Thu, 11 Sep 2025 10:04:08 +0800 Subject: [PATCH] =?UTF-8?q?4.2.7=20=E5=A2=9E=E5=8A=A0=E5=8E=9F=E6=9D=90?= =?UTF-8?q?=E6=96=99=E5=87=BA=E5=BA=93=E8=AE=B0=E5=BD=95=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hw/common/log/enums/BusinessType.java | 5 ++ .../controller/WmsRawOutstockController.java | 13 ++++ .../wms/service/IWmsRawOutstockService.java | 8 +++ .../impl/WmsRawOutstockServiceImpl.java | 68 +++++++++++++++++-- .../mapper/wms/WmsRawOutstockMapper.xml | 2 +- hw-ui/src/api/wms/rawoutstock.js | 9 +++ .../src/views/wms/info/rawoutstock/index.vue | 34 +++++++--- 7 files changed, 125 insertions(+), 14 deletions(-) diff --git a/hw-common/hw-common-log/src/main/java/com/hw/common/log/enums/BusinessType.java b/hw-common/hw-common-log/src/main/java/com/hw/common/log/enums/BusinessType.java index d97b77c8..8463b31c 100644 --- a/hw-common/hw-common-log/src/main/java/com/hw/common/log/enums/BusinessType.java +++ b/hw-common/hw-common-log/src/main/java/com/hw/common/log/enums/BusinessType.java @@ -173,4 +173,9 @@ public enum BusinessType * 超时 */ OVERTIME, + + /** + * 取消 + */ + CANCEL, } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawOutstockController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawOutstockController.java index 5d436ab4..7110e2c9 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawOutstockController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawOutstockController.java @@ -203,4 +203,17 @@ public class WmsRawOutstockController extends BaseController public AjaxResult associatedSalesOrders(@RequestBody OutstockRequestDTO outstockRequestDTO) { return toAjax(wmsRawOutstockService.associatedSalesOrders(outstockRequestDTO)); } + + + /** + * 申请领料,如果是五楼申请领柜体,wcs轮询后执行完成要删除库存 + */ + @RequiresPermissions("wms:rawoutstock:cancel") + @Log(title = "原材料出库记录", businessType = BusinessType.CANCEL) + @PostMapping(("/cancelRawOutstock")) + public AjaxResult cancelRawOutstock(@Validated @RequestBody WmsRawOutstock wmsRawOutstock) { + return toAjax(wmsRawOutstockService.cancelWmsRawOutstock(wmsRawOutstock)); + } + + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java index 331e8484..9b49d509 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java @@ -178,5 +178,13 @@ public interface IWmsRawOutstockService */ public int associatedSalesOrders(OutstockRequestDTO outstockRequestDTO); + + /** + * 取消原材料出库 + * + * @param wmsRawOutstock + * @return + */ + public int cancelWmsRawOutstock(WmsRawOutstock wmsRawOutstock); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java index 1840343f..86916fc9 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java @@ -868,7 +868,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { private WmsRawOutstock agvRawOutstock(WmsAgvRawOutstockVo wmsAgvRawOutstockVo, WmsBaseLocation - oriBaseLocation, String moveMaterialBarcode, Long moveMaterialId, + oriBaseLocation, String moveMaterialBarcode, Long moveMaterialId, String taskType, String userName, Date currentDate) { WmsRawOutstock rawOutstock = new WmsRawOutstock(); rawOutstock.setWarehouseId(oriBaseLocation.getWarehouseId()); @@ -899,7 +899,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { private WmsRawInstock agvRawInstock(WmsAgvRawOutstockVo wmsAgvRawOutstockVo, WmsBaseLocation - targetBaseLocation, String moveMaterialBarcode, Long moveMaterialId, + targetBaseLocation, String moveMaterialBarcode, Long moveMaterialId, String userName, Date currentDate) { WmsRawInstock rawInstock = new WmsRawInstock(); rawInstock.setWarehouseId(wmsAgvRawOutstockVo.getWarehouseId()); @@ -1447,16 +1447,18 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { /** * 获取原材料出库信息,join material和warehouse + * * @param wmsRawOutstock * @return */ @Override - public List selectWmsRawOutstockJoinMaterialList(WmsRawOutstock wmsRawOutstock){ + public List selectWmsRawOutstockJoinMaterialList(WmsRawOutstock wmsRawOutstock) { return wmsRawOutstockMapper.selectWmsRawOutstockJoinMaterialList(wmsRawOutstock); } /** * 关联销售订单 + * * @param outstockRequestDTO * @return */ @@ -1495,7 +1497,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { wmsRawOutstock.setUpdateBy(userName); wmsRawOutstock.setUpdateDate(currentDate); Long rawOutstockId = wmsRawOutstockDetail.getRawOutstockId(); - if (i == 0){ + if (i == 0) { wmsRawOutstockMapper.updateWmsRawOutstock(wmsRawOutstock); } else { wmsRawOutstock.setTaskCode(taskCode + "-" + i); @@ -1508,7 +1510,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { wmsRawOutstockDetail.setOutstockAmount(outstockAmount); wmsRawOutstockDetail.setUpdateBy(userName); wmsRawOutstockDetail.setUpdateDate(currentDate); - if (i == 0){ + if (i == 0) { wmsRawOutstockDetailMapper.updateWmsRawOutstockDetail(wmsRawOutstockDetail); } else { wmsRawOutstockDetailMapper.insertWmsRawOutstockDetail(wmsRawOutstockDetail); @@ -1518,4 +1520,60 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { return 1; } + + /** + * 取消原材料出库 + * + * @param wmsRawOutstock + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int cancelWmsRawOutstock(WmsRawOutstock wmsRawOutstock) { + String userName = SecurityUtils.getLoginUser() == null ? SecurityUtils.getUsername() : SecurityUtils.getLoginUser().getNickname(); + Date currentDate = new Date(); + + if (wmsRawOutstock.getAuditStatus().equals(WmsConstants.WMS_AUDIT_STATUS_FAIL)) { + throw new ServiceException("审核不通过状态的不允许取消"); + } + if (wmsRawOutstock.getAuditStatus().equals(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT)) { + throw new ServiceException("待审核状态的不允许取消"); + } + if (wmsRawOutstock.getExecuteStatus().equals(WmsConstants.WMS_EXECUTE_STATUS_FINISH)) { + throw new ServiceException("执行完成的不允许取消"); + } + + BigDecimal originalOutstockAmount = wmsRawOutstock.getOutstockAmount(); + BigDecimal realOutstockAmount = wmsRawOutstock.getRealOutstockAmount(); + + BigDecimal cancelAmount = originalOutstockAmount.subtract(realOutstockAmount); + if (cancelAmount.compareTo(BigDecimal.ZERO) <= 0) { + throw new ServiceException("出库数量已经等于申请数量,不需要取消!"); + } + + wmsRawOutstock.setOutstockAmount(wmsRawOutstock.getRealOutstockAmount()); + wmsRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH); + wmsRawOutstock.setUpdateBy(userName); + wmsRawOutstock.setUpdateDate(currentDate); + String auditReason = wmsRawOutstock.getAuditReason()==null ? "":wmsRawOutstock.getAuditReason(); + wmsRawOutstock.setAuditReason(auditReason + " 取消出库,原申请数量为" + originalOutstockAmount); + int updateCount = wmsRawOutstockMapper.updateWmsRawOutstock(wmsRawOutstock); + + if (wmsRawOutstock.getStockTotalId() != null) { + WmsStockTotal wmsStockTotal = wmsStockTotalMapper.selectWmsStockTotalByStockTotalId(wmsRawOutstock.getStockTotalId()); + if (wmsStockTotal != null) { + //更新占用数量 + BigDecimal newOccupyAmount = wmsStockTotal.getOccupyAmount().subtract(cancelAmount); + newOccupyAmount = newOccupyAmount.compareTo(BigDecimal.ZERO) >= 0 ? newOccupyAmount : BigDecimal.ZERO; + wmsStockTotal.setOccupyAmount(newOccupyAmount); + wmsStockTotal.setUpdateBy(userName); + wmsStockTotal.setUpdateDate(currentDate); + wmsStockTotalMapper.updateWmsStockTotal(wmsStockTotal); + } + } + + return updateCount; + + } + } diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml index 3e6f1d59..c63489cb 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml @@ -262,7 +262,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"