From 4f38e5827b848298de8e95f59e0ba9b24951e615 Mon Sep 17 00:00:00 2001
From: lixiangyu <lixiangyu@xalxzn.com>
Date: 星期二, 16 九月 2025 18:01:18 +0800
Subject: [PATCH] refactor(cms): 优化刀具管理功能和性能 刀具报废功能 - 新增 提交(/subumit)接口 刀具报废功能 - 修改完善其删除功能,同时删除报废单和报废明细 刀具报废功能 - (/add)接口中增加逻辑判断禁制同一个刀具重复申请报废 刀具领用功能 - 完善刀具寿命计算 刀具领用功能 - 完善其删除功能,同时删除领用单和领用明细 刀具入库功能 - 完善其删除功能,同时删除入库单和入库明细 把刀具库存中的库存状态,从“正常”改为“在库”。

---
 src/main/java/org/jeecg/modules/cms/controller/CuttingScrapController.java |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 53 insertions(+), 1 deletions(-)

diff --git a/src/main/java/org/jeecg/modules/cms/controller/CuttingScrapController.java b/src/main/java/org/jeecg/modules/cms/controller/CuttingScrapController.java
index 8c84412..cb634e8 100644
--- a/src/main/java/org/jeecg/modules/cms/controller/CuttingScrapController.java
+++ b/src/main/java/org/jeecg/modules/cms/controller/CuttingScrapController.java
@@ -19,6 +19,7 @@
 import org.jeecg.modules.cms.entity.CuttingReceiveDetail;
 import org.jeecg.modules.cms.entity.CuttingScrap;
 import org.jeecg.modules.cms.entity.CuttingScrapDetail;
+import org.jeecg.modules.cms.service.ICuttingInventoryService;
 import org.jeecg.modules.cms.service.ICuttingScrapDetailService;
 import org.jeecg.modules.cms.service.ICuttingScrapService;
 
@@ -59,6 +60,9 @@
 
     @Autowired
     private ICuttingScrapDetailService cuttingScrapDetailService;
+
+    @Autowired
+    private ICuttingInventoryService cuttingInventoryService;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -103,11 +107,40 @@
         JSONArray jsonArray = jSONObject.getJSONArray("detailData");
         List<CuttingScrapDetail> list = jsonArray.toJavaList(CuttingScrapDetail.class);
 
+        //鍋氬垽鏂紝鐢宠鎶ュ簾鐨勬椂鍊欎竴涓垁鍏峰彧鑳界敵璇蜂竴娆�
+        for (CuttingScrapDetail temp : list) {
+            //鍒ゆ柇鍒�鍏锋槸鍚﹀凡缁忕敵璇锋姤搴�
+            QueryWrapper<CuttingScrapDetail> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("inventory_id", temp.getInventoryId());
+            // 妫�鏌ユ暟鎹簱涓槸鍚﹀凡瀛樺湪鐩稿悓inventoryId鐨勬姤搴熺敵璇�
+            if (cuttingScrapDetailService.count(queryWrapper) > 0) {
+                cuttingScrapService.removeById(cuttingScrap.getId());//鍚屾椂鍒犻櫎鏈〃鍗�
+                return Result.error("鍒�鍏�" + temp.getInventoryId() + "宸茬粡鐢宠鎶ュ簾锛岃涓嶈閲嶅鐢宠");
+            }
+        }
+        // 鎵�鏈夋鏌ラ�氳繃鍚庯紝淇濆瓨鎵�鏈夋槑缁嗘暟鎹�
         for (CuttingScrapDetail temp : list) {
             temp.setOrderId(cuttingScrap.getId());
             cuttingScrapDetailService.save(temp);
         }
+
         return Result.OK("娣诲姞鎴愬姛锛�");
+
+//        // 鏇存柊搴撳瓨鍒�鍏风姸鎬佷负"寰呮姤搴�"
+//        if (!list.isEmpty()) {
+//            // 鏀堕泦鎵�鏈夐渶瑕佹洿鏂扮姸鎬佺殑搴撳瓨ID
+//            List<String> inventoryIds = list.stream()
+//                    .map(CuttingScrapDetail::getInventoryId) // 鍋囪CuttingScrapDetail涓湁inventoryId瀛楁
+//                    .filter(id -> id != null && !id.isEmpty())
+//                    .collect(Collectors.toList());
+//
+//            if (!inventoryIds.isEmpty()) {
+//                // 鏇存柊搴撳瓨鐘舵�佷负"寰呮姤搴�"
+//                cuttingInventoryService.updateStatus(inventoryIds, "寰呮姤搴�");
+//            }
+//        }
+
+
     }
 
     /**
@@ -136,7 +169,10 @@
     //@RequiresPermissions("org.jeecg.modules:cms_cutting_scrap:delete")
     @DeleteMapping(value = "/delete")
     public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
-        cuttingScrapService.removeById(id);
+        cuttingScrapService.removeById(id);//鍒犻櫎涓昏〃鏁版嵁
+        //鍒犻櫎鍒�鍏锋姤搴熸槑缁嗚〃鐨勬暟鎹�
+        cuttingScrapDetailService.remove
+                (new QueryWrapper<CuttingScrapDetail>().eq("order_id", id));
         return Result.OK("鍒犻櫎鎴愬姛!");
     }
 
@@ -209,4 +245,20 @@
         return Result.ok(list);
     }
 
+    /**
+     * 閫夋嫨鎶ュ簾鍒�鍏风殑鍒楄〃
+     */
+    @GetMapping("/getInventoryToolList")
+    public Result<?> getInventoryToolList(@RequestParam("pageNo") Integer pageNo,
+                                          @RequestParam("pageSize") Integer pageSize,
+                                          @RequestParam Map<String, Object> params) {
+        IPage<Map<String, Object>> inventoryTooList = cuttingScrapService.getInventoryToolList(pageNo, pageSize, params);
+        return Result.ok(inventoryTooList);
+    }
+
+    @GetMapping("/submit")
+    public Result<?> submit(@RequestParam("orderId") String orderId) {
+        return cuttingScrapService.submit(orderId);
+    }
+
 }

--
Gitblit v1.9.3