From 3bbc9acc8603c6727fb979fddbbd0a7ff474b8ed Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 23 五月 2025 17:39:17 +0800
Subject: [PATCH] 添加盘点功能

---
 rsf-admin/src/page/work/outBound/OutBoundList.jsx                                            |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java    |    9 ++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java |   33 ++++++++++++++--
 rsf-admin/src/page/work/checkOutBound/CheckOutBoundList.jsx                                  |    9 ----
 rsf-admin/src/page/task/TaskList.jsx                                                         |    6 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskStsType.java               |    3 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java    |    2 
 rsf-admin/src/i18n/zh.js                                                                     |    2 -
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java       |    7 +--
 9 files changed, 44 insertions(+), 29 deletions(-)

diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 245811c..834c823 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -1,5 +1,3 @@
-import basContainer from "../page/basicInfo/basContainer";
-import outBound from "../page/outWork/outBound";
 import chineseMessages from "./core/chineseMessages";
 
 const customChineseMessages = {
diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx
index 72c5c80..6b73c19 100644
--- a/rsf-admin/src/page/task/TaskList.jsx
+++ b/rsf-admin/src/page/task/TaskList.jsx
@@ -186,7 +186,7 @@
     const refresh = useRefresh();
 
     const checkClick = async () => {
-        const { data: { code, data, msg } } = await request.post(`/task/pick/` + record.id);
+        const { data: { code, data, msg } } = await request.post(`/task/check/` + record.id);
         if (code === 200) {
             notify(msg);
             refresh();
@@ -195,7 +195,7 @@
         }
     }
 
-    return (record?.taskStatus == 199 && record?.taskType == 107 ? <ConfirmButton label={"toolbar.check"} startIcon={<GradingOutlinedIcon />} onConfirm={checkClick} /> : <></>)
+    return (record?.taskStatus == 198 && record?.taskType == 107 ? <ConfirmButton label={"toolbar.check"} startIcon={<GradingOutlinedIcon />} onConfirm={checkClick} /> : <></>)
 }
 
 /**
@@ -218,7 +218,7 @@
     }
 
     return (
-        record?.taskStatus == 198 ? <ConfirmButton label={"toolbar.pick"} startIcon={<ColorizeOutlinedIcon />} onConfirm={pickClick} /> : <></>
+        record?.taskStatus == 198 && record?.taskType == 103 ? <ConfirmButton label={"toolbar.pick"} startIcon={<ColorizeOutlinedIcon />} onConfirm={pickClick} /> : <></>
     )
 }
 
diff --git a/rsf-admin/src/page/work/checkOutBound/CheckOutBoundList.jsx b/rsf-admin/src/page/work/checkOutBound/CheckOutBoundList.jsx
index 56af1d0..278e218 100644
--- a/rsf-admin/src/page/work/checkOutBound/CheckOutBoundList.jsx
+++ b/rsf-admin/src/page/work/checkOutBound/CheckOutBoundList.jsx
@@ -182,14 +182,7 @@
         http(sta, data);
     }
     const http = async (sta, items) => {
-        console.log(items);
-
-        const filter = items.filter(item => (item.outQty + item.workQty) > item.anfme);
-        if (filter.length > 0) {
-            notify(translate('toolbar.request.error.out_stock_qty'))
-            return
-        }
-        const { data: { code, data, msg } } = await request.post(`/locItem/generate/task`, { siteNo: sta, items: items });
+        const { data: { code, data, msg } } = await request.post(`/locItem/generate/task`, { siteNo: sta, items: items, type: 'check' });
         if (code === 200) {
             notify(msg);
             refresh()
diff --git a/rsf-admin/src/page/work/outBound/OutBoundList.jsx b/rsf-admin/src/page/work/outBound/OutBoundList.jsx
index 7a2db95..e7eea22 100644
--- a/rsf-admin/src/page/work/outBound/OutBoundList.jsx
+++ b/rsf-admin/src/page/work/outBound/OutBoundList.jsx
@@ -189,7 +189,7 @@
             notify(translate('toolbar.request.error.out_stock_qty'))
             return
         }
-        const { data: { code, data, msg } } = await request.post(`/locItem/generate/task`, { siteNo: sta, items: items });
+        const { data: { code, data, msg } } = await request.post(`/locItem/check/task`, { siteNo: sta, items: items });
         if (code === 200) {
             notify(msg);
             refresh()
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java
index 85c0c8e..ac258a8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java
@@ -110,7 +110,7 @@
      * @return
      */
     @PreAuthorize("hasAuthority('manager:locItem:list')")
-    @PostMapping("/locItem/generate/check/task")
+    @PostMapping("/locItem/check/task")
     public R genStatisticalTask(@RequestBody Map<String, Object> map) {
         if (Objects.isNull(map)) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
index eb28056..1068c34 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
@@ -147,8 +147,7 @@
     }
 
     /**
-     * 鎷f枡鍑哄簱
-     *
+     * 鎷f枡鍑哄簱锛堢敤浜庢祴璇曟嫞鏂欏嚭搴擄級
      * @return
      */
     @PreAuthorize("hasAuthority('manager:task:update')")
@@ -166,12 +165,12 @@
     }
 
     /**
-     * 鐩樼偣鍑哄簱
+     * 鐩樼偣鍑哄簱锛堢敤浜庢祴璇曠洏鐐瑰嚭搴擄級
      *
      * @return
      */
     @PreAuthorize("hasAuthority('manager:task:update')")
-    @ApiOperation("鎷f枡鍑哄簱")
+    @ApiOperation("鐩樼偣鍑哄簱")
     @PostMapping("/task/check/{id}")
     public R checkTask(@PathVariable Long id) {
         if (Objects.isNull(id)) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskStsType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskStsType.java
index 1208abd..d07868f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskStsType.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskStsType.java
@@ -38,7 +38,8 @@
     WCS_EXECUTE_OUT_CONVEYOR("107", "RCS瀹瑰櫒娴佸姩浠诲姟宸蹭笅鍙�"),
 
     GENERATE_WAVE_SEED("197", "绛夊緟瀹瑰櫒鍒拌揪"),
-    WAVE_SEED("198", "鎾涓�"),
+
+    WAVE_SEED("198", "鎾涓�/鐩樼偣涓�"),
 
     COMPLETE_OUT("199", "鍑哄簱瀹屾垚"),
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
index 9a5470a..d07ce0b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -163,14 +163,39 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public R gentMoveTask(Map<String, Object> map) {
-        if (Objects.isNull(map.get("targetLoc"))) {
-
+        if (Objects.isNull(map.get("targetLoc")) && StringUtils.isNotBlank(map.get("targetLoc").toString())) {
+            throw new CoolException("鐩爣搴撲綅涓嶈兘涓虹┖锛�1");
         }
-        if (Objects.isNull(map.get("orgLoc"))) {
-
+        if (Objects.isNull(map.get("orgLoc")) && StringUtils.isNotBlank(map.get("orgLoc").toString())) {
+            throw new CoolException("婧愬簱浣嶄笉鑳戒负绌猴紒");
         }
 
+        Loc orgLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, map.get("orgLoc")));
+        if (Objects.isNull(orgLoc)) {
+            throw new CoolException("婧愬簱浣嶄笉瀛樺湪锛侊紒");
+        }
+
+        Loc targetLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, map.get("targetLoc").toString()));
+        if (Objects.isNull(targetLoc)) {
+            throw new CoolException("鐩爣搴撲綅涓嶅瓨鍦紒锛�");
+        }
+
+        targetLoc.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
+
+        if (!locService.updateById(targetLoc)) {
+            throw new CoolException("鐩爣搴撲綅棰勭害澶辫触锛侊紒");
+        }
+
+        String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, null);
+        Task task = new Task();
+        task.setOrgLoc(orgLoc.getCode())
+                .setTaskCode(ruleCode)
+                .setTaskType(TaskType.TASK_TYPE_LOC_MOVE.type)
+                .setBarcode(orgLoc.getBarcode());
+
+
         return null;
     }
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index ffbcebe..ebf1007 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -395,6 +395,7 @@
                 pickComplateInStock(task);
             } else if (task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)) {
                 //57.鐩樼偣鍐嶅叆搴�
+                pickComplateInStock(task);
             }
         }
     }
@@ -417,12 +418,10 @@
                 complateOutStock(task);
             } else if (task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)) {
                 //鎷f枡鍑哄簱
-//                Task seviceOne = pickTask(task.getId());
-                //绉婚櫎鍘熷搴撳瓨
                 complateOutStock(task);
             } else if (task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)) {
-
-
+                //鐩樼偣鍑哄簱
+                complateOutStock(task);
             }
         }
     }
@@ -722,7 +721,7 @@
             throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
         }
 
-        if (!task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)) {
+        if (!task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type) || !task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)) {
             if (!this.update(new LambdaUpdateWrapper<Task>()
                     .eq(Task::getId, task.getId())
                     .set(Task::getTaskStatus, TaskStsType.UPDATED_OUT.id))) {

--
Gitblit v1.9.1