From de7af74a86374d4bcb58df42316f52c3a8add3ce Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 07 四月 2026 15:50:04 +0800
Subject: [PATCH] fix: 生产工单-领料优化

---
 src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java          |    4 ++++
 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java |    9 +++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
index 0efd3f0..5b3df50 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -292,6 +292,10 @@
                 if (drawMaterialDto.getProductModelId() == null) {
                     throw new RuntimeException("浜у搧鍨嬪彿ID涓嶈兘涓虹┖");
                 }
+                if (drawMaterialDto.getQualitity() == null  || drawMaterialDto.getQualitity().compareTo(BigDecimal.ZERO) == 0) {
+                    throw new RuntimeException("浜у搧" + drawMaterialDto.getProductName() + "鍨嬪彿" + drawMaterialDto.getModel()
+                     + "鎵瑰彿" + drawMaterialDto.getBatchNo() + "搴撳瓨涓嶈冻锛�");
+                }
                 stockUtils.substractStock(drawMaterialDto.getProductModelId(), drawMaterialDto.getRequisitionQty(),
                         StockOutQualifiedRecordTypeEnum.DRAW_MATERIALS_STOCK_OUT.getCode(), productOrderDto.getId(),
                         drawMaterialDto.getBatchNo(),drawMaterialDto.getCustomer());
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index f46baa1..8b2b427 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -93,6 +93,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean addProductMain(ProductionProductMainDto dto) {
         SysUser user = userMapper.selectUserById(dto.getUserId());
         ProductionProductMain productionProductMain = new ProductionProductMain();
@@ -177,6 +178,12 @@
                 Long modelId = drawMaterial.getProductModelId();
                 BigDecimal reportQty = drawMaterial.getReportQty();
 
+                if (reportQty != null && reportQty.compareTo(new BigDecimal(0)) == 0) {
+                    throw new RuntimeException("浜у搧" + drawMaterial.getProductName() + "- 鍨嬪彿" + drawMaterial.getModel() +
+                            "- 鎵规鍙�=" + drawMaterial.getBatchNo() + "鐨勬枡宸茬敤瀹岋紝璇烽噸鏂伴鏂�");
+
+                }
+
                 String key = drawMaterial.getProductModelId() + "_" +
                         (drawMaterial.getBatchNo() == null ? "" : drawMaterial.getBatchNo()) + "_" +
                         (drawMaterial.getCustomer() == null ? "" : drawMaterial.getCustomer());
@@ -216,6 +223,8 @@
                 order.setDrawMaterials(JSON.toJSONString(existingMaterialList));
                 productOrderMapper.updateById(order);
             }
+        }else {
+            throw new RuntimeException("璇烽鍙栨姇鍏ユ潗鏂�");
         }
         /*鏂板鎶ュ伐浜у嚭琛�*/
         ProductionProductOutput productionProductOutput = new ProductionProductOutput();

--
Gitblit v1.9.3