diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentOutboundController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentOutboundController.java index 4c55757e..546289cf 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentOutboundController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentOutboundController.java @@ -421,7 +421,7 @@ public class ComponentOutboundController extends BaseController { .eq(WmsComponentPackingItem::getPackingId, order.getId()) .list(); items.removeIf(item -> item.getOutQty().compareTo(BigDecimal.ZERO) <= 0 - || noScanningBaseControllerService.existsQrCode(item.getIdnrk())); + || noScanningBaseControllerService.cannotOutNoScanning(item.getIdnrk(),order.getFactoryNo(),item.getLgort())); return ApiResult.success( items.stream() .map(item -> new NoScanItemVO() @@ -475,7 +475,7 @@ public class ComponentOutboundController extends BaseController { VUtil.trueThrowBusinessError(Objects.isNull(packingItem)).throwMessage("无效的装箱单明细"); VUtil.trueThrowBusinessError(!StrUtil.equals(item.getMaterialNo(), packingItem.getIdnrk())) .throwMessage("装箱单明细与物料不匹配:" + item.getMaterialNo()); - VUtil.trueThrowBusinessError(noScanningBaseControllerService.existsQrCode(packingItem.getIdnrk())) + VUtil.trueThrowBusinessError(noScanningBaseControllerService.cannotOutNoScanning(packingItem.getIdnrk(), packing.getFactoryNo(), item.getWarehouseNo())) .throwMessage("物料" + packingItem.getIdnrk() + "已生成二维码,不允许无码出库"); WmsComponentOutboundItem outboundItem = setWmsComponentOutboundItem(packing, packingItem, outbound, item.getWarehouseNo()); 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 e9d8c4cf..190a865d 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 @@ -298,7 +298,7 @@ public class OutAssistanceController extends BaseController { .eq(WmsOutAssistanceItem::getOrderId, order.getId()) .list(); items.removeIf(item -> item.getLeft().compareTo(BigDecimal.ZERO) <= 0 - || noScanningBaseControllerService.existsQrCode(item.getMatnr1())); + || noScanningBaseControllerService.cannotOutNoScanning(item.getMatnr1(),order.getWerks(),order.getLgort1())); return ApiResult.success( items.stream() .map(item -> new NoScanItemVO() @@ -327,7 +327,7 @@ public class OutAssistanceController extends BaseController { VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); request.getItems() .forEach(data -> - VUtil.trueThrowBusinessError(noScanningBaseControllerService.quantityConsistencyCheck(data.getMaterialNo(),order.getWerks(),data.getWarehouseNo())) + VUtil.trueThrowBusinessError(noScanningBaseControllerService.cannotOutNoScanning(data.getMaterialNo(),order.getWerks(),data.getWarehouseNo())) .throwMessage("物料" + data.getMaterialNo() + "不支持无码出库") ); WmsOutAssistanceTicket ticket = new WmsOutAssistanceTicket() 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 99de0808..61d4263a 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 @@ -299,7 +299,7 @@ public class OutCostCenterController extends BaseController { .eq(WmsOutCostcenterItem::getOrderId, order.getId()) .list(); items.removeIf(item -> item.getLeft().compareTo(BigDecimal.ZERO) <= 0 - || noScanningBaseControllerService.existsQrCode(item.getMatnr())); + || noScanningBaseControllerService.cannotOutNoScanning(item.getMatnr(), order.getWerks(), item.getLgort())); return ApiResult.success( items.stream() .map(item -> new NoScanItemVO() @@ -328,7 +328,7 @@ public class OutCostCenterController extends BaseController { VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); request.getItems() .forEach(data -> - VUtil.trueThrowBusinessError(noScanningBaseControllerService.quantityConsistencyCheck(data.getMaterialNo(), order.getWerks(), data.getWarehouseNo())) + VUtil.trueThrowBusinessError(noScanningBaseControllerService.cannotOutNoScanning(data.getMaterialNo(), order.getWerks(), data.getWarehouseNo())) .throwMessage("物料" + data.getMaterialNo() + "不支持无码出库") ); WmsOutCostcenterTicket ticket = new WmsOutCostcenterTicket() 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 c3c72a4f..37867e3f 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 @@ -426,7 +426,7 @@ public class OutProduceController extends BaseController { .eq(WmsOutProduceItem::getOrderId, order.getId()) .list(); items.removeIf(item -> item.getSqsl().subtract(item.getNum()).compareTo(BigDecimal.ZERO) <= 0 - || noScanningBaseControllerService.existsQrCode(item.getMatnr())); + || noScanningBaseControllerService.cannotOutNoScanning(item.getMatnr(),order.getDwerk(),order.getLgort2())); return ApiResult.success( items.stream() .map(item -> new NoScanItemVO() @@ -455,7 +455,7 @@ public class OutProduceController extends BaseController { VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在"); request.getItems() .forEach(data -> - VUtil.trueThrowBusinessError(noScanningBaseControllerService.quantityConsistencyCheck(data.getMaterialNo(),order.getDwerk(),data.getWarehouseNo())) + VUtil.trueThrowBusinessError(noScanningBaseControllerService.cannotOutNoScanning(data.getMaterialNo(),order.getDwerk(),data.getWarehouseNo())) .throwMessage("物料" + data.getMaterialNo() + "不支持无码出库") ); WmsOutProduceTicket ticket = new WmsOutProduceTicket() diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java index 0733bb0c..cf08fca8 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java @@ -157,7 +157,7 @@ public class OutPurchaseController extends BaseController { .eq(WmsReturnRequestItem::getApplicationId, order.getId()) .list(); items.removeIf(item -> item.getLeft().compareTo(BigDecimal.ZERO) <= 0 - || noScanningBaseControllerService.existsQrCode(item.getMaterialCode())); + || noScanningBaseControllerService.cannotOutNoScanning(item.getMaterialCode(),item.getFactoryCode(),item.getStorageLocation())); return ApiResult.success( items.stream() .map(item -> new NoScanItemVO() @@ -194,7 +194,7 @@ public class OutPurchaseController extends BaseController { request.getItems().forEach(ri -> { WmsReturnRequestItem rrItem = returnRequestItemService.getById(ri.getOrderItemId()); VUtil.trueThrowBusinessError(Objects.isNull(rrItem)).throwMessage("申请单项无效:" + ri.getOrderItemId()); - VUtil.trueThrowBusinessError(noScanningBaseControllerService.quantityConsistencyCheck(rrItem.getMaterialCode(), rrItem.getFactoryCode(), ri.getWarehouseNo())) + VUtil.trueThrowBusinessError(noScanningBaseControllerService.cannotOutNoScanning(rrItem.getMaterialCode(), rrItem.getFactoryCode(), ri.getWarehouseNo())) .throwMessage("物料" + rrItem.getMaterialCode() + "不支持无码出库"); VUtil.trueThrowBusinessError(rrItem.getLeft().compareTo(BigDecimal.ZERO) <= 0) .throwMessage("物料" + ri.getMaterialNo() + "已全部退库"); 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 4f86d2fe..4c348f52 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 @@ -507,7 +507,7 @@ public class TransferCompanyController extends BaseController { .eq(WmsTransferCompanyItem::getOrderId, order.getId()) .list(); items.removeIf(item -> item.getLeft().compareTo(BigDecimal.ZERO) <= 0 - || noScanningBaseControllerService.existsQrCode(item.getMatnr())); + || noScanningBaseControllerService.cannotOutNoScanning(item.getMatnr(),order.getReswk(),item.getLgpro())); return ApiResult.success( items.stream() .map(item -> new NoScanItemVO() @@ -556,8 +556,8 @@ public class TransferCompanyController extends BaseController { VUtil.trueThrowBusinessError(Objects.isNull(orderItem)).throwMessage("物料" + item.getMaterialNo() + "不需要出库"); VUtil.trueThrowBusinessError(!StrUtil.equals(item.getMaterialNo(), orderItem.getMatnr())) .throwMessage("转储单明细与物料不匹配:" + item.getMaterialNo()); - VUtil.trueThrowBusinessError(noScanningBaseControllerService.existsQrCode(orderItem.getMatnr())) - .throwMessage("物料" + orderItem.getMatnr() + "已生成二维码,不允许无扫码出库"); +// VUtil.trueThrowBusinessError(noScanningBaseControllerService.cannotOutNoScanning(orderItem.getMatnr(), order.getReswk(), order.getLgfsb1())) +// .throwMessage("物料" + orderItem.getMatnr() + "已生成二维码,不允许无扫码出库"); BigDecimal totalNum = item.getDatas().stream() .peek(data -> VUtil.trueThrowBusinessError(Objects.isNull(data.getNum()) || data.getNum().compareTo(BigDecimal.ZERO) <= 0) 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 1a6b37df..3fb5d77b 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 @@ -533,7 +533,7 @@ public class TransferFactoryController extends BaseController { .eq(WmsTransferFactoryItem::getOrderId, orderId) .list(); items.removeIf(item -> item.getLeft().compareTo(BigDecimal.ZERO) <= 0 - || noScanningBaseControllerService.existsQrCode(item.getMatnr())); + || noScanningBaseControllerService.cannotOutNoScanning(item.getMatnr(),order.getWerks(),order.getLgort())); return ApiResult.success( items.stream() .map(item -> new NoScanItemVO() @@ -582,8 +582,8 @@ public class TransferFactoryController extends BaseController { VUtil.trueThrowBusinessError(Objects.isNull(orderItem)).throwMessage("物料" + item.getMaterialNo() + "不需要出库"); VUtil.trueThrowBusinessError(!StrUtil.equals(item.getMaterialNo(), orderItem.getMatnr())) .throwMessage("调拨单明细与物料不匹配:" + item.getMaterialNo()); - VUtil.trueThrowBusinessError(noScanningBaseControllerService.existsQrCode(orderItem.getMatnr())) - .throwMessage("物料" + orderItem.getMatnr() + "已生成二维码,不允许无码出库"); +// VUtil.trueThrowBusinessError(noScanningBaseControllerService.existsQrCode(orderItem.getMatnr())) +// .throwMessage("物料" + orderItem.getMatnr() + "已生成二维码,不允许无码出库"); BigDecimal totalNum = item.getDatas().stream() .peek(data -> VUtil.trueThrowBusinessError(Objects.isNull(data.getNum()) || data.getNum().compareTo(BigDecimal.ZERO) <= 0) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NoScanningBaseControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NoScanningBaseControllerService.java index d3cb16c7..79767581 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NoScanningBaseControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NoScanningBaseControllerService.java @@ -31,6 +31,13 @@ public class NoScanningBaseControllerService { return false; } + public boolean cannotOutNoScanning(String materialNo, String factoryNo, String warehouseNo) { + if (!existsQrCode(materialNo)){ + return true; + } + return !quantityConsistencyCheck(materialNo, factoryNo, warehouseNo); + } + /** * 物料库存和物料二维码数量一致性检查 * @param materialNo 物料编号 @@ -38,27 +45,28 @@ public class NoScanningBaseControllerService { * @param warehouseNo 仓库编号 * @return 数量是否一致 */ - public boolean quantityConsistencyCheck(String materialNo, String factoryNo, String warehouseNo) { - BigDecimal quantityQr = qrCodeMasterService.lambdaQuery() - .select(WmsQrCodeMaster::getQuantity) - .eq(WmsQrCodeMaster::getMaterialCode, materialNo) - .eq(WmsQrCodeMaster::getFactoryCode, factoryNo) - .eq(WmsQrCodeMaster::getStorageLocation, warehouseNo) - .eq(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) - .list() - .stream() - .map(WmsQrCodeMaster::getQuantity) - .reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal quantityInventory = inventoryService.lambdaQuery() - .select(WmsInventory::getNum) - .eq(WmsInventory::getMaterialNo, materialNo) - .eq(WmsInventory::getFactoryNo, factoryNo) - .eq(WmsInventory::getWarehouseNo, warehouseNo) - .list() - .stream() - .map(WmsInventory::getNum) - .reduce(BigDecimal.ZERO, BigDecimal::add); - return quantityQr.compareTo(quantityInventory) == 0; + private boolean quantityConsistencyCheck(String materialNo, String factoryNo, String warehouseNo) { +// BigDecimal quantityQr = qrCodeMasterService.lambdaQuery() +// .select(WmsQrCodeMaster::getQuantity) +// .eq(WmsQrCodeMaster::getMaterialCode, materialNo) +// .eq(WmsQrCodeMaster::getFactoryCode, factoryNo) +// .eq(WmsQrCodeMaster::getStorageLocation, warehouseNo) +// .eq(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) +// .list() +// .stream() +// .map(WmsQrCodeMaster::getQuantity) +// .reduce(BigDecimal.ZERO, BigDecimal::add); +// BigDecimal quantityInventory = inventoryService.lambdaQuery() +// .select(WmsInventory::getNum) +// .eq(WmsInventory::getMaterialNo, materialNo) +// .eq(WmsInventory::getFactoryNo, factoryNo) +// .eq(WmsInventory::getWarehouseNo, warehouseNo) +// .list() +// .stream() +// .map(WmsInventory::getNum) +// .reduce(BigDecimal.ZERO, BigDecimal::add); +// return quantityQr.compareTo(quantityInventory) == 0; + return true; } /**