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/service/impl/CuttingInventoryServiceImpl.java |   50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/jeecg/modules/cms/service/impl/CuttingInventoryServiceImpl.java b/src/main/java/org/jeecg/modules/cms/service/impl/CuttingInventoryServiceImpl.java
index 6443d88..e4ca00f 100644
--- a/src/main/java/org/jeecg/modules/cms/service/impl/CuttingInventoryServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/cms/service/impl/CuttingInventoryServiceImpl.java
@@ -4,16 +4,21 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.cms.entity.CuttingInventory;
 import org.jeecg.modules.cms.mapper.CuttingInventoryMapper;
 import org.jeecg.modules.cms.service.ICuttingInventoryService;
 import org.springframework.stereotype.Service;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 鍒�鍏峰簱瀛�
@@ -32,11 +37,50 @@
     @Transactional(rollbackFor = Exception.class)
     public void updateStatus(List<String> ids, String status) {
         if (ids != null && !ids.isEmpty() && StringUtils.isNotBlank(status)) {
+//            UpdateWrapper<CuttingInventory> updateWrapper = new UpdateWrapper<>();
+//            updateWrapper.in("id", ids);
+//            updateWrapper.set("inventory_status", status); // 鏍规嵁瀹為檯鏁版嵁搴撳瓧娈靛悕璋冩暣
+            LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+            String username = "System"; // 榛樿鐢ㄦ埛鍚�
+            if (user != null) {
+                username = oConvertUtils.getString(user.getUsername(), "System");
+            }
             UpdateWrapper<CuttingInventory> updateWrapper = new UpdateWrapper<>();
             updateWrapper.in("id", ids);
-            updateWrapper.set("inventory_status", status); // 鏍规嵁瀹為檯鏁版嵁搴撳瓧娈靛悕璋冩暣
+            updateWrapper.set("inventory_status", status);
+            updateWrapper.set("update_time", new Date());
+            updateWrapper.set("update_by", username);
             this.update(updateWrapper);
         }
     }
 
+    @Override
+    public void restoreStatus(List<String> ids) {
+        if (ids != null && !ids.isEmpty()) {
+            // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅
+            LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+            String username = "System"; // 榛樿鐢ㄦ埛鍚�
+            if (user != null) {
+                username = oConvertUtils.getString(user.getUsername(), "System");
+            }
+
+            // 鏂瑰紡1: 鏌ヨ褰撳墠鐘舵�佸苟鏍规嵁鐘舵�佸喅瀹氭仮澶嶅埌鍝釜鐘舵��
+            List<CuttingInventory> inventoryList = this.listByIds(ids);
+            List<String> toRestoreIds = inventoryList.stream()
+                    .filter(inv -> "寰呭嚭搴�".equals(inv.getInventoryStatus())) // 鍑哄簱鍗曚綔搴熺殑鎯呭喌涓嬶紝鍙細鏈夊緟鍑哄簱閫�鍥炴甯哥姸鎬佺殑鎯呭喌銆�
+                    .map(CuttingInventory::getId)
+                    .collect(Collectors.toList());
+            if (!toRestoreIds.isEmpty()) {
+                UpdateWrapper<CuttingInventory> updateWrapper = new UpdateWrapper<>();
+                updateWrapper.in("id", toRestoreIds);
+                updateWrapper.set("inventory_status", "鍦ㄥ簱");
+                updateWrapper.set("update_time", new Date());
+                updateWrapper.set("update_by", username);
+                this.update(updateWrapper);
+            }
+        }
+    }
+
+
+
 }

--
Gitblit v1.9.3