From 2b382a92207dfabf0eb30e743265df5c7c50e7bc Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期四, 07 五月 2026 14:27:45 +0800
Subject: [PATCH] feat(approve): 新增办公用品审批功能

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java    |    8 ++-
 src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java |    2 +
 src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java                      |    1 
 src/main/java/com/ruoyi/basic/controller/CustomerController.java            |   46 +++++++++++++---------
 src/main/java/com/ruoyi/basic/service/ICustomerService.java                 |    8 ++-
 src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java         |   34 ++++++++++------
 6 files changed, 61 insertions(+), 38 deletions(-)

diff --git a/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java b/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java
index 233c459..cd3e933 100644
--- a/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java
+++ b/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java
@@ -707,6 +707,7 @@
             case 6 -> "鎶ヤ环瀹℃壒";
             case 7 -> "鍙戣揣瀹℃壒";
             case 8 -> "鍗遍櫓浣滀笟瀹℃壒";
+            case 9 -> "鍔炲叕鐢ㄥ搧瀹℃壒";
             default -> "绫诲瀷" + type;
         };
     }
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index 517f0c8..3caf7cf 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -301,6 +301,8 @@
                 return "鍙戣揣瀹℃壒";
             case 8:
                 return "鍗遍櫓浣滀笟瀹℃壒";
+            case 9:
+                return "鍔炲叕鐢ㄥ搧瀹℃壒";
         }
         return null;
     }
@@ -317,12 +319,12 @@
         qualityInspect.setUnit(saleProduct.getUnit());
         qualityInspect.setQuantity(saleProduct.getQuantity());
         qualityInspectMapper.insert(qualityInspect);
-        List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(saleProduct.getProductId(), 0,null);
-        if (qualityTestStandard.size()>0){
+        List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(saleProduct.getProductId(), 0, null);
+        if (qualityTestStandard.size() > 0) {
             qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId());
             qualityInspectMapper.updateById(qualityInspect);
             qualityTestStandardParamMapper.selectList(Wrappers.<QualityTestStandardParam>lambdaQuery()
-                            .eq(QualityTestStandardParam::getTestStandardId,qualityTestStandard.get(0).getId()))
+                            .eq(QualityTestStandardParam::getTestStandardId, qualityTestStandard.get(0).getId()))
                     .forEach(qualityTestStandardParam -> {
                         QualityInspectParam param = new QualityInspectParam();
                         com.ruoyi.common.utils.bean.BeanUtils.copyProperties(qualityTestStandardParam, param);
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index 2140949..9f505aa 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -451,6 +451,8 @@
                 return "鍙戣揣瀹℃壒";
             case 8:
                 return "鍗遍櫓浣滀笟瀹℃壒";
+            case 9:
+                return "鍔炲叕鐢ㄥ搧瀹℃壒";
         }
         return null;
     }
diff --git a/src/main/java/com/ruoyi/basic/controller/CustomerController.java b/src/main/java/com/ruoyi/basic/controller/CustomerController.java
index 866153b..9090d34 100644
--- a/src/main/java/com/ruoyi/basic/controller/CustomerController.java
+++ b/src/main/java/com/ruoyi/basic/controller/CustomerController.java
@@ -10,13 +10,12 @@
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
-import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.domain.R;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import jakarta.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -63,7 +62,7 @@
      */
     @Log(title = "瀹㈡埛妗f", businessType = BusinessType.IMPORT)
     @PostMapping("/importData")
-    public AjaxResult importData(MultipartFile file, Integer type) throws Exception {
+    public R importData(MultipartFile file, Integer type) throws Exception {
 
         return customerService.importData(file, type);
     }
@@ -72,8 +71,8 @@
      * 鑾峰彇瀹㈡埛妗f璇︾粏淇℃伅
      */
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id) {
-        return success(customerService.selectCustomerDetailById(id));
+    public R getInfo(@PathVariable("id") Long id) {
+        return R.ok(customerService.selectCustomerDetailById(id));
     }
 
     /**
@@ -81,8 +80,8 @@
      */
     @Log(title = "瀹㈡埛妗f", businessType = BusinessType.INSERT)
     @PostMapping("/addCustomer")
-    public AjaxResult add(@RequestBody Customer customer) {
-        return toAjax(customerService.insertCustomer(customer));
+    public R add(@RequestBody Customer customer) {
+        return R.ok(customerService.insertCustomer(customer));
     }
 
     /**
@@ -90,8 +89,8 @@
      */
     @Log(title = "瀹㈡埛妗f", businessType = BusinessType.UPDATE)
     @PostMapping("/updateCustomer")
-    public AjaxResult edit(@RequestBody Customer customer) {
-        return toAjax(customerService.updateCustomer(customer));
+    public R edit(@RequestBody Customer customer) {
+        return R.ok(customerService.updateCustomer(customer));
     }
 
     /**
@@ -99,11 +98,11 @@
      */
     @Log(title = "瀹㈡埛妗f", businessType = BusinessType.DELETE)
     @DeleteMapping("/delCustomer")
-    public AjaxResult remove(@RequestBody Long[] ids) {
+    public R remove(@RequestBody Long[] ids) {
         if (ids == null || ids.length == 0) {
-            return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+            return R.fail("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
         }
-        return toAjax(customerService.deleteCustomerByIds(ids));
+        return R.ok(customerService.deleteCustomerByIds(ids));
     }
 
     /**
@@ -120,9 +119,9 @@
      */
     @Log(title = "瀹㈡埛妗f", businessType = BusinessType.OTHER)
     @PostMapping("/assignCustomer")
-    public AjaxResult assignCustomer(@RequestBody CustomerDto customer) {
+    public R assignCustomer(@RequestBody CustomerDto customer) {
         customerService.assignCustomer(customer);
-        return AjaxResult.success();
+        return R.ok();
     }
 
     /**
@@ -130,9 +129,9 @@
      */
     @Log(title = "瀹㈡埛妗f", businessType = BusinessType.OTHER)
     @PostMapping("/recycleCustomer")
-    public AjaxResult recycleCustomer(@RequestBody CustomerDto customer) {
+    public R recycleCustomer(@RequestBody CustomerDto customer) {
         customerService.recycleCustomer(customer);
-        return AjaxResult.success();
+        return R.ok();
     }
 
     /**
@@ -140,8 +139,17 @@
      */
     @Log(title = "瀹㈡埛妗f", businessType = BusinessType.OTHER)
     @PostMapping("/together")
-    public AjaxResult together(@RequestBody CustomerDto customer) {
+    public R together(@RequestBody CustomerDto customer) {
         customerService.together(customer);
-        return AjaxResult.success();
+        return R.ok();
     }
-}
\ No newline at end of file
+
+    /**
+     * 绉佹捣瀹㈡埛娴佸洖鍏捣
+     */
+    @Log(title = "瀹㈡埛妗f", businessType = BusinessType.OTHER)
+    @PostMapping("/back")
+    public R back(Long id) {
+        return R.ok(customerService.back(id));
+    }
+}
diff --git a/src/main/java/com/ruoyi/basic/service/ICustomerService.java b/src/main/java/com/ruoyi/basic/service/ICustomerService.java
index c120e72..b725216 100644
--- a/src/main/java/com/ruoyi/basic/service/ICustomerService.java
+++ b/src/main/java/com/ruoyi/basic/service/ICustomerService.java
@@ -6,7 +6,7 @@
 import com.ruoyi.basic.dto.CustomerDto;
 import com.ruoyi.basic.pojo.Customer;
 import com.ruoyi.basic.vo.CustomerVo;
-import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.domain.R;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -77,7 +77,7 @@
 
     List<CustomerVo> selectCustomerLists(CustomerDto customer);
 
-    AjaxResult importData(MultipartFile file, Integer type);
+    R importData(MultipartFile file, Integer type);
 
     IPage<CustomerVo> selectCustomerList(Page<CustomerDto> page, CustomerDto customer);
 
@@ -91,4 +91,6 @@
      * @param customerDto 瀹㈡埛DTO锛堝寘鍚鎴稩D鍜屽叡浜敤鎴稩D鍒楄〃锛�
      */
     void together(CustomerDto customerDto);
-}
\ No newline at end of file
+
+    Boolean back(Long id);
+}
diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
index d826a94..52d01ec 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -10,18 +10,17 @@
 import com.ruoyi.basic.dto.CustomerDto;
 import com.ruoyi.basic.dto.CustomerFollowUpDto;
 import com.ruoyi.basic.mapper.CustomerMapper;
-import com.ruoyi.basic.pojo.*;
-import com.ruoyi.basic.service.CustomerFollowUpFileService;
-import com.ruoyi.basic.service.CustomerFollowUpService;
-import com.ruoyi.basic.service.CustomerReturnVisitService;
-import com.ruoyi.basic.service.CustomerUserService;
-import com.ruoyi.basic.service.ICustomerService;
+import com.ruoyi.basic.pojo.Customer;
+import com.ruoyi.basic.pojo.CustomerFollowUp;
+import com.ruoyi.basic.pojo.CustomerFollowUpFile;
+import com.ruoyi.basic.pojo.CustomerUser;
+import com.ruoyi.basic.service.*;
 import com.ruoyi.basic.vo.CustomerVo;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.security.LoginUser;
-import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.domain.R;
 import com.ruoyi.sales.mapper.SalesLedgerMapper;
 import com.ruoyi.sales.pojo.SalesLedger;
 import lombok.AllArgsConstructor;
@@ -261,12 +260,12 @@
     }
 
     @Override
-    public AjaxResult importData(MultipartFile file, Integer type) {
+    public R importData(MultipartFile file, Integer type) {
         try {
             ExcelUtil<Customer> util = new ExcelUtil<Customer>(Customer.class);
             List<Customer> userList = util.importExcel(file.getInputStream());
             if (CollectionUtils.isEmpty(userList)) {
-                return AjaxResult.warn("妯℃澘閿欒鎴栧鍏ユ暟鎹负绌�");
+                return R.fail("妯℃澘閿欒鎴栧鍏ユ暟鎹负绌�");
             }
 
             // 鏍规嵁 type 鍙傛暟璁剧疆瀹㈡埛绫诲瀷锛堢娴�/鍏捣锛�
@@ -276,10 +275,10 @@
                 });
             }
             this.saveOrUpdateBatch(userList);
-            return AjaxResult.success(true);
+            return R.ok(true);
         } catch (Exception e) {
             e.printStackTrace();
-            return AjaxResult.error("瀵煎叆澶辫触");
+            return R.fail("瀵煎叆澶辫触");
         }
 
     }
@@ -322,7 +321,7 @@
             customer.setUsageStatus(0L);
             customer.setUsageUser(0L);
             customerMapper.updateById(customer);
-            
+
             // 鍒犻櫎璇ュ鎴风殑鎵�鏈夊叡浜叧绯�
             customerUserService.remove(
                 new QueryWrapper<CustomerUser>().lambda()
@@ -371,6 +370,15 @@
         customerUserService.saveBatch(customerUsers);
     }
 
+    @Override
+    public Boolean back(Long id) {
+        //灏嗗鎴风殑type鏀逛负1 涓旂洿鎺ュ垎閰嶇粰褰撳墠鐢ㄦ埛
+        Customer customer = customerMapper.selectById(id);
+        customer.setType(1);
+        customer.setIsAssigned(1);
+        return this.updateById(customer);
+    }
+
     /**
      * 涓嬪垝绾垮懡鍚嶈浆椹煎嘲鍛藉悕
      */
@@ -392,4 +400,4 @@
         }
         return sb.toString();
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.9.3