From 7d27cdccf8b92f32e80499f1f06c4b8ab93936c1 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 26 五月 2025 19:25:34 +0800
Subject: [PATCH] 修改空板移库,任务完成后无法加入历史档问题

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java |   50 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 41 insertions(+), 9 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 d82bcf5..9c94eb3 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
@@ -6,6 +6,7 @@
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.common.constant.Constants;
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.enums.*;
 import com.vincent.rsf.server.common.utils.ExcelUtil;
@@ -14,10 +15,10 @@
 import com.vincent.rsf.server.common.domain.KeyValVo;
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.service.*;
-import com.vincent.rsf.server.manager.service.impl.BasStationServiceImpl;
 import com.vincent.rsf.server.system.controller.BaseController;
-import com.vincent.rsf.server.system.enums.LocStsType;
+import com.vincent.rsf.server.system.service.impl.ConfigServiceImpl;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
@@ -37,6 +38,8 @@
     private WaitPakinService waitPakinService;
     @Autowired
     private LocService locService;
+    @Autowired
+    private ConfigServiceImpl configService;
 
 
     @PreAuthorize("hasAuthority('manager:task:list')")
@@ -99,7 +102,7 @@
         if (Objects.isNull(ids) || ids.length < 1) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-       return taskService.removeTask(ids);
+        return taskService.removeTask(ids);
 //        return R.ok("Delete Success").add(ids);
     }
 
@@ -130,11 +133,21 @@
         if (Objects.isNull(id)) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        List<Short> 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));
+        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) {
-            task.setTaskStatus(task.getTaskType() < (short) 100 ? TaskStsType.COMPLETE_IN.id : TaskStsType.COMPLETE_OUT.id);
+            if (StringUtils.isNotBlank(task.getParentId() + "")) {
+                Task task1 = taskService.getById(task.getParentId());
+                if (!Objects.isNull(task1)) {
+                    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("瀹屾垚浠诲姟澶辫触");
         }
@@ -143,7 +156,7 @@
     }
 
     /**
-     * 鎷f枡鍑哄簱
+     * 鎷f枡鍑哄簱锛堢敤浜庢祴璇曟嫞鏂欏嚭搴擄級
      * @return
      */
     @PreAuthorize("hasAuthority('manager:task:update')")
@@ -154,7 +167,26 @@
             throw new CoolException("鑳芥暟涓嶈兘涓虹┖锛侊紒");
         }
         try {
-            return taskService.pickTask(id);
+            return R.ok("鍑哄簱瀹屾垚").add(taskService.pickOrCheckTask(id, Constants.TASK_TYPE_OUT_PICK));
+        } catch (Exception e) {
+            throw new CoolException(e.getMessage());
+        }
+    }
+
+    /**
+     * 鐩樼偣鍑哄簱锛堢敤浜庢祴璇曠洏鐐瑰嚭搴擄級
+     *
+     * @return
+     */
+    @PreAuthorize("hasAuthority('manager:task:update')")
+    @ApiOperation("鐩樼偣鍑哄簱")
+    @PostMapping("/task/check/{id}")
+    public R checkTask(@PathVariable Long id) {
+        if (Objects.isNull(id)) {
+            throw new CoolException("鑳芥暟涓嶈兘涓虹┖锛侊紒");
+        }
+        try {
+            return R.ok(taskService.pickOrCheckTask(id, Constants.TASK_TYPE_OUT_CHECK));
         } catch (Exception e) {
             throw new CoolException(e.getMessage());
         }
@@ -177,7 +209,7 @@
         if (Objects.isNull(id)) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        List<Short> longs = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id);
+        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));
         if (tasks.isEmpty()) {
             throw new CoolException("浠诲姟宸插鎵ц鐘舵�佷笉鍙竴閿疆椤讹紒锛�");

--
Gitblit v1.9.1