From b7708454cd284e64159eea04eb32b818f5d1a930 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 30 五月 2025 09:37:55 +0800
Subject: [PATCH] 完成任务,判断浅库位是否完成,降低任务优先级

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java |   61 ++++++++++++++++++++++++++----
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java          |    2 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java    |   26 ++-----------
 3 files changed, 59 insertions(+), 30 deletions(-)

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 3ac0737..24658cf 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
@@ -53,7 +53,6 @@
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<Task, BaseParam> pageParam = new PageParam<>(baseParam, Task.class);
         QueryWrapper<Task> queryWrapper = pageParam.buildWrapper(true);
-        queryWrapper.orderByDesc("sort");
         return R.ok().add(taskService.page(pageParam, queryWrapper));
     }
 
@@ -136,31 +135,14 @@
     @PreAuthorize("hasAuthority('manager:task:update')")
     @ApiOperation("瀹屾垚浠诲姟")
     @PostMapping("/task/complete/{id}")
-    public R completeTask(@PathVariable String id) throws Exception {
-        if (Objects.isNull(id)) {
+    public R completeTask(@PathVariable Long id) throws Exception {
+        if (Cools.isEmpty(id)) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        List<Integer> longs = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id);
-        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
-                .eq(Task::getId, id)
-                .in(Task::getTaskStatus, longs));
-        for (Task task : tasks) {
-//            if (StringUtils.isNotBlank(task.getParentId() + "")) {
-//                Task task1 = taskService.getById(task.getParentId());
-//                if (!Objects.isNull(task1) && task1.getTaskType().equals(TaskStsType.UPDATED_IN.id)) {
-//                    throw new CoolException("鐖朵换鍔★細" + task1.getTaskCode() + "鏈墽琛屽畬鎴愶紒");
-//                }
-//            }
-            task.setTaskStatus(task.getTaskType() < 100 ? TaskStsType.COMPLETE_IN.id : TaskStsType.COMPLETE_OUT.id);
-        }
-
-        if (!taskService.updateBatchById(tasks)) {
-            return R.error("瀹屾垚浠诲姟澶辫触");
-        }
-
-        return R.ok("瀹屾垚浠诲姟鎴愬姛");
+        return R.ok("瀹屾垚浠诲姟鎴愬姛").add(taskService.operateComplete(id));
     }
 
+
     /**
      * 鎷f枡鍑哄簱锛堢敤浜庢祴璇曟嫞鏂欏嚭搴擄級
      * @return
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java
index 49d69a4..a39de4e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java
@@ -26,4 +26,6 @@
     void complateInTask(List<Task> tasks) throws Exception;
 
     Task taskToTop(Long id) throws Exception;
+
+    Task operateComplete(Long id);
 }
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 9dca556..3f31a35 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
@@ -424,9 +424,57 @@
         if (Objects.isNull(tasks)) {
             throw new CoolException("浠诲姟宸插鎵ц鐘舵�佷笉鍙竴閿疆椤讹紒锛�");
         }
+        //鍒ゆ柇瀛愪换鍔★紝淇敼浠诲姟浼樺厛绾�
+        modiftyTaskSort(tasks);
 
-        if (!LocUtils.isShallowLoc(tasks.getOrgLoc())) {
-            String shallowLoc = LocUtils.getShallowLoc(tasks.getOrgLoc());
+        if (!taskService.updateById(tasks)) {
+            throw new CoolException("缃《澶辫触锛侊紒");
+        }
+        return null;
+    }
+
+    /**
+     * 鎵嬪姩瀹屾垚浠诲姟
+     * @param id
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Task operateComplete(Long id) {
+        List<Integer> longs = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id);
+        Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
+                .eq(Task::getId, id)
+                .in(Task::getTaskStatus, longs));
+
+        if (Objects.isNull(task)) {
+            throw new CoolException("褰撳墠浠诲姟姝e湪鎵ц涓紝涓嶅彲鍙栨秷锛侊紒");
+        }
+
+        modiftyTaskSort(task);
+
+        task.setTaskStatus(task.getTaskType() < 100 ? TaskStsType.COMPLETE_IN.id : TaskStsType.COMPLETE_OUT.id);
+        if (!this.updateById(task)) {
+            throw new CoolException("瀹屾垚浠诲姟澶辫触");
+        }
+        return task;
+    }
+
+    /**
+     * 淇敼浠诲姟浼樺厛绾�
+     * @param task
+     */
+    private Task modiftyTaskSort(Task task) {
+        String curLoc;
+        if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)) {
+            curLoc = task.getTargLoc();
+        } else {
+            curLoc = task.getOrgLoc();
+        }
+        if (!LocUtils.isShallowLoc(curLoc)) {
+            String shallowLoc = LocUtils.getShallowLoc(curLoc);
+            if (StringUtils.isNotBlank(shallowLoc)) {
+                throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛橈紒");
+            }
             Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLoc));
             if (Objects.isNull(loc)) {
                 throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒");
@@ -437,18 +485,15 @@
                         .or()
                         .eq(Task::getTargLoc, loc.getCode()));
                 if (Objects.isNull(serviceOne)) {
-                    tasks.setSort(999);
+                    task.setSort(999);
                 } else {
                     int i = serviceOne.getSort() - 1;
-                    tasks.setSort(i);
+                    task.setSort(i);
                 }
             }
         }
 
-        if (!taskService.updateById(tasks)) {
-            throw new CoolException("缃《澶辫触锛侊紒");
-        }
-        return null;
+        return task;
     }
 
     @Transactional(rollbackFor = Exception.class)

--
Gitblit v1.9.1