diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java index 54064516..1bc57086 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java @@ -16,6 +16,7 @@ import com.nflg.wms.admin.util.QRCodeUtil; import com.nflg.wms.admin.util.ThymeleafUtil; import com.nflg.wms.common.constant.BarCodeProcessStage; import com.nflg.wms.common.constant.STATE; +import com.nflg.wms.common.exception.DataAlertException; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; @@ -347,7 +348,9 @@ public class OutAssistanceController extends BaseController { // 等待5秒获取锁,10秒后自动释放 if (lock.tryLock(5, 10, TimeUnit.SECONDS)) { if (inventoryService.getNumOne(info.getFactoryNo(), info.getWarehouseNo(), info.getMaterialNo()).compareTo(lockNum) < 0) { - lockVOS.addAll(inventoryService.getLockList(info.getFactoryNo(), info.getWarehouseNo(), info.getMaterialNo())); + List itemLocks = inventoryService.getLockList(info.getFactoryNo(), info.getWarehouseNo(), info.getMaterialNo()); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(itemLocks)).throwMessage("库存不足:" + info.getMaterialNo()); + lockVOS.addAll(itemLocks); } } else { throw new NflgException(STATE.BusinessError, "获取锁失败"); @@ -362,7 +365,7 @@ public class OutAssistanceController extends BaseController { } }); if (CollectionUtil.isNotEmpty(lockVOS)) { - return ApiResult.errorWithExtras(STATE.OutOfStock, lockVOS); + throw new DataAlertException(STATE.OutOfStock, lockVOS); } outAssistanceItemService.updateBatchById(datas); outAssistanceTicketItemService.saveBatch(ticketItems); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java index 9de4ca0d..31323034 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java @@ -16,6 +16,7 @@ import com.nflg.wms.admin.util.QRCodeUtil; import com.nflg.wms.admin.util.ThymeleafUtil; import com.nflg.wms.common.constant.BarCodeProcessStage; import com.nflg.wms.common.constant.STATE; +import com.nflg.wms.common.exception.DataAlertException; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; @@ -338,7 +339,9 @@ public class OutCostCenterController extends BaseController { // 等待5秒获取锁,10秒后自动释放 if (lock.tryLock(5, 10, TimeUnit.SECONDS)) { if (inventoryService.getNumOne(info.getFactoryNo(), info.getWarehouseNo(), info.getMaterialNo()).compareTo(lockNum) < 0) { - lockVOS.addAll(inventoryService.getLockList(info.getFactoryNo(), info.getWarehouseNo(), info.getMaterialNo())); + List itemLocks = inventoryService.getLockList(info.getFactoryNo(), info.getWarehouseNo(), info.getMaterialNo()); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(itemLocks)).throwMessage("库存不足:" + info.getMaterialNo()); + lockVOS.addAll(itemLocks); } } else { throw new NflgException(STATE.BusinessError, "获取锁失败"); @@ -353,7 +356,7 @@ public class OutCostCenterController extends BaseController { } }); if (CollectionUtil.isNotEmpty(lockVOS)) { - return ApiResult.errorWithExtras(STATE.OutOfStock, lockVOS); + throw new DataAlertException(STATE.OutOfStock, lockVOS); } outCostcenterItemService.updateBatchById(datas); outCostcenterTicketItemService.saveBatch(ticketItems); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java index ca67deef..b1e487cf 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java @@ -15,6 +15,7 @@ import com.nflg.wms.admin.util.QRCodeUtil; import com.nflg.wms.admin.util.ThymeleafUtil; import com.nflg.wms.common.constant.BarCodeProcessStage; import com.nflg.wms.common.constant.STATE; +import com.nflg.wms.common.exception.DataAlertException; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; @@ -167,7 +168,9 @@ public class OutProduceController extends BaseController { if (inventoryService.getNumOne(item.getDwerk(), item.getLgort2(), item.getMatnr()) .compareTo(item.getSqsl()) < 0 ) { - lockVOS.addAll(inventoryService.getLockList(item.getDwerk(), item.getLgort2(), item.getMatnr())); + List itemLocks = inventoryService.getLockList(item.getDwerk(), item.getLgort2(), item.getMatnr()); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(itemLocks)).throwMessage("库存不足:" + item.getMatnr()); + lockVOS.addAll(itemLocks); } else { WmsOutProduceItem data = Convert.convert(WmsOutProduceItem.class, item); data.setLockNum(item.getSqsl()); @@ -190,7 +193,7 @@ public class OutProduceController extends BaseController { if (CollectionUtil.isEmpty(lockVOS)) { return ApiResult.success(); } else { - return ApiResult.errorWithExtras(STATE.OutOfStock, lockVOS); + throw new DataAlertException(STATE.OutOfStock, lockVOS); } } @@ -226,7 +229,9 @@ public class OutProduceController extends BaseController { if (inventoryService.getNumOne(item.getDwerk(), item.getLgort2(), item.getMatnr()) .compareTo(item.getSqsl()) < 0 ) { - lockVOS.addAll(inventoryService.getLockList(item.getDwerk(), item.getLgort2(), item.getMatnr())); + List itemLocks = inventoryService.getLockList(item.getDwerk(), item.getLgort2(), item.getMatnr()); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(itemLocks)).throwMessage("库存不足:" + item.getMatnr()); + lockVOS.addAll(itemLocks); } else { WmsOutProduceItem data = Convert.convert(WmsOutProduceItem.class, item); data.setLockNum(data.getSqsl()); @@ -250,7 +255,7 @@ public class OutProduceController extends BaseController { if (CollectionUtil.isEmpty(lockVOS)) { return ApiResult.success(); } else { - return ApiResult.errorWithExtras(STATE.OutOfStock, lockVOS); + throw new DataAlertException(STATE.OutOfStock, lockVOS); } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java index 5a915a8c..0bf52803 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java @@ -16,6 +16,7 @@ import com.nflg.wms.admin.util.ThymeleafUtil; import com.nflg.wms.common.constant.BarCodeProcessStage; import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.constant.UserType; +import com.nflg.wms.common.exception.DataAlertException; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.dto.*; @@ -132,7 +133,7 @@ public class PurchaseReturnController extends BaseController { if (CollectionUtil.isEmpty(inventoryLockVOS)) { return ApiResult.success(); } else { - return ApiResult.errorWithExtras(STATE.OutOfStock, inventoryLockVOS); + throw new DataAlertException(STATE.OutOfStock, inventoryLockVOS); } } @@ -442,7 +443,7 @@ public class PurchaseReturnController extends BaseController { if (CollectionUtil.isEmpty(inventoryLockVOS)) { return ApiResult.success(); } else { - return ApiResult.errorWithExtras(STATE.OutOfStock, inventoryLockVOS); + throw new DataAlertException(STATE.OutOfStock, inventoryLockVOS); } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java index 1b491545..e023f9e6 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java @@ -18,6 +18,7 @@ import com.nflg.wms.admin.service.SapService; import com.nflg.wms.admin.util.*; import com.nflg.wms.common.constant.BarCodeProcessStage; import com.nflg.wms.common.constant.STATE; +import com.nflg.wms.common.exception.DataAlertException; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; @@ -144,7 +145,9 @@ public class TransferCompanyController extends BaseController { if (inventoryService.getNumOne(item.getReswk(), item.getLgfsb1(), item.getMatnr()) .compareTo(item.getNum()) < 0 ) { - lockVOS.addAll(inventoryService.getLockList(item.getReswk(), item.getLgfsb1(), item.getMatnr())); + List itemLocks = inventoryService.getLockList(item.getReswk(), item.getLgfsb1(), item.getMatnr()); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(itemLocks)).throwMessage("库存不足:" + item.getMatnr()); + lockVOS.addAll(itemLocks); } else { WmsTransferCompanyItem data = Convert.convert(WmsTransferCompanyItem.class, item); data.setOrderId(order.getId()); @@ -167,7 +170,7 @@ public class TransferCompanyController extends BaseController { if (CollectionUtil.isEmpty(lockVOS)) { return ApiResult.success(); } else { - return ApiResult.errorWithExtras(STATE.OutOfStock, lockVOS); + throw new DataAlertException(STATE.OutOfStock, lockVOS); } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java index 2bc0799d..8acef79a 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java @@ -16,6 +16,7 @@ import com.nflg.wms.admin.util.QRCodeUtil; import com.nflg.wms.admin.util.ThymeleafUtil; import com.nflg.wms.common.constant.BarCodeProcessStage; import com.nflg.wms.common.constant.STATE; +import com.nflg.wms.common.exception.DataAlertException; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; @@ -145,7 +146,9 @@ public class TransferFactoryController extends BaseController { if (inventoryService.getNumOne(item.getWerks(), item.getLgort(), item.getMatnr()) .compareTo(item.getNum()) < 0 ) { - lockVOS.addAll(inventoryService.getLockList(item.getWerks(), item.getLgort(), item.getMatnr())); + List itemLocks = inventoryService.getLockList(item.getWerks(), item.getLgort(), item.getMatnr()); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(itemLocks)).throwMessage("库存不足:" + item.getMatnr()); + lockVOS.addAll(itemLocks); } else { WmsTransferFactoryItem data = Convert.convert(WmsTransferFactoryItem.class, item); data.setOrderId(order.getId()); @@ -168,7 +171,7 @@ public class TransferFactoryController extends BaseController { if (CollectionUtil.isEmpty(lockVOS)) { return ApiResult.success(); } else { - return ApiResult.errorWithExtras(STATE.OutOfStock, lockVOS); + throw new DataAlertException(STATE.OutOfStock, lockVOS); } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/exception/DataAlertException.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/exception/DataAlertException.java new file mode 100644 index 00000000..d58bc964 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/exception/DataAlertException.java @@ -0,0 +1,18 @@ +package com.nflg.wms.common.exception; + +import com.nflg.wms.common.constant.STATE; +import lombok.Data; + +@Data +public class DataAlertException extends RuntimeException { + + private final STATE state; + + private final Object obj; + + public DataAlertException(STATE state, Object obj) { + super(state.getType()); + this.state = state; + this.obj = obj; + } +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsReturnRequestServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsReturnRequestServiceImpl.java index 67afdb20..5aa4d99b 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsReturnRequestServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsReturnRequestServiceImpl.java @@ -17,6 +17,7 @@ import com.nflg.wms.common.pojo.qo.GoodsReceiptSearchQO; import com.nflg.wms.common.pojo.vo.ApplyReturnRequestVO; import com.nflg.wms.common.pojo.vo.GoodsReceiptVO; import com.nflg.wms.common.pojo.vo.InventoryLockVO; +import com.nflg.wms.common.util.VUtil; import com.nflg.wms.repository.entity.WmsOutProduceItem; import com.nflg.wms.repository.entity.WmsReturnRequest; import com.nflg.wms.repository.entity.WmsReturnRequestItem; @@ -71,7 +72,9 @@ public class WmsReturnRequestServiceImpl extends ServiceImpl itemLocks = inventoryService.getLockList(item.getFactoryCode(), item.getStorageLocation(), item.getMaterialCode()); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(itemLocks)).throwMessage("库存不足:" + item.getMaterialCode()); + lockVOS.addAll(itemLocks); } else { itemService.save(item); } diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsWarehouseMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsWarehouseMapper.xml index 6cdfcfe3..a6908dac 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsWarehouseMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsWarehouseMapper.xml @@ -86,9 +86,10 @@ diff --git a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java index dc970d73..1238f63a 100644 --- a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java +++ b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/advice/GlobalRestControllerAdvice.java @@ -4,6 +4,7 @@ import cn.dev33.satoken.exception.NotLoginException; import cn.hutool.core.util.StrUtil; import com.nflg.wms.common.constant.Constant; import com.nflg.wms.common.constant.STATE; +import com.nflg.wms.common.exception.DataAlertException; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.exception.SAPException; import com.nflg.wms.common.pojo.ApiResult; @@ -81,4 +82,10 @@ public class GlobalRestControllerAdvice { log.error("SAP错误: ", ex); return ApiResult.error(ex.getState(), "SAP错误:" + ex.getMessage()); } + + @ExceptionHandler(DataAlertException.class) + public ApiResult handleDataAlertException(DataAlertException ex) { + log.error("返回数据的错误: ", ex); + return ApiResult.errorWithExtras(ex.getState(), ex.getObj()); + } } \ No newline at end of file