From 03dbce0ba849005d060af569ffe3a58c0a1e0e45 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 23 五月 2025 14:24:06 +0800
Subject: [PATCH] 盘点再入库

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java |   50 ++++++++++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java                  |    2 
 rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx                                      |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java    |   39 +++++++--
 rsf-admin/src/page/task/TaskList.jsx                                                         |   20 +++++
 rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx                             |    2 
 rsf-admin/src/page/outWork/checkOutBound/CheckOutBoundList.jsx                               |    2 
 rsf-admin/src/page/orders/asnOrder/POItemModal.jsx                                           |    2 
 rsf-admin/src/page/outWork/outBound/OutBoundList.jsx                                         |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java    |   34 ++++++++
 rsf-admin/src/i18n/zh.js                                                                     |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocItemService.java          |    3 
 rsf-admin/src/i18n/en.js                                                                     |    1 
 rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx                                         |    2 
 rsf-admin/src/config/setting.js                                                              |    2 
 rsf-admin/src/page/orders/asnOrder/AsnOrderPanel.jsx                                         |    2 
 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       |   28 ++++++
 18 files changed, 165 insertions(+), 31 deletions(-)

diff --git a/rsf-admin/src/config/setting.js b/rsf-admin/src/config/setting.js
index 901ad17..4e8f089 100644
--- a/rsf-admin/src/config/setting.js
+++ b/rsf-admin/src/config/setting.js
@@ -25,7 +25,7 @@
 
 export const ABORT_SIGNAL = false;
 
-export const DEFAULT_PAGE_SIZE = 10;
+export const DEFAULT_PAGE_SIZE = 15;
 
 export const DEFAULT_ITEM_PAGE_SIZE = 10;
 
diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index 1a971d7..31817ea 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -1121,6 +1121,7 @@
         siteInit: 'site init',
         batch: 'batch',
         pick: 'Pick',
+        check: 'Check',
         confirm: 'confirm',
         cancel: "cancel",
         query: "Query",
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 62d269e..245811c 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -1119,6 +1119,7 @@
         continue: '缁х画鏀惰揣',
         batch: '鎵归噺鎿嶄綔',
         confirm: '纭',
+        check: '鐩樼偣',
         pick: '鎷f枡',
         bulkExport: "鎵归噺瀵煎嚭",
         selectSite: '閫夋嫨绔欑偣',
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
index 1fdb77c..a865030 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
@@ -706,7 +706,7 @@
                         },
                     },
                 }}
-                pageSizeOptions={[10, 25, 50, 100]}
+                pageSizeOptions={[15, 25, 50, 100]}
                 editMode="row"
                 checkboxSelection
                 onRowSelectionModelChange={handleSelectionChange}
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderPanel.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderPanel.jsx
index 4649e7f..8bf099b 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderPanel.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderPanel.jsx
@@ -175,7 +175,7 @@
                         },
                     },
                 }}
-                pageSizeOptions={[10, 25, 50]}
+                pageSizeOptions={[15, 25, 50]}
             />
         </Box >
 
diff --git a/rsf-admin/src/page/orders/asnOrder/POItemModal.jsx b/rsf-admin/src/page/orders/asnOrder/POItemModal.jsx
index dcde225..471a4f1 100644
--- a/rsf-admin/src/page/orders/asnOrder/POItemModal.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/POItemModal.jsx
@@ -394,7 +394,7 @@
                         },
                     },
                 }}
-                pageSizeOptions={[10, 25, 50, 100]}
+                pageSizeOptions={[15, 25, 50, 100]}
                 editMode="row"
                 checkboxSelection
                 onRowSelectionModelChange={handleSelectionChange}
diff --git a/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx b/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
index 7888b21..8a93aab 100644
--- a/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
+++ b/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
@@ -595,7 +595,7 @@
                         },
                     },
                 }}
-                pageSizeOptions={[10, 25, 50, 100]}
+                pageSizeOptions={[15, 25, 50, 100]}
                 editMode="row"
                 checkboxSelection
                 onRowSelectionModelChange={handleSelectionChange}
diff --git a/rsf-admin/src/page/outWork/checkOutBound/CheckOutBoundList.jsx b/rsf-admin/src/page/outWork/checkOutBound/CheckOutBoundList.jsx
index a290e9c..fd5b94f 100644
--- a/rsf-admin/src/page/outWork/checkOutBound/CheckOutBoundList.jsx
+++ b/rsf-admin/src/page/outWork/checkOutBound/CheckOutBoundList.jsx
@@ -342,7 +342,7 @@
                         },
                     },
                 }}
-                pageSizeOptions={[10, 25, 50, 100]}
+                pageSizeOptions={[15, 25, 50, 100]}
                 editMode="row"
                 checkboxSelection
                 onRowSelectionModelChange={handleSelectionChange}
diff --git a/rsf-admin/src/page/outWork/outBound/OutBoundList.jsx b/rsf-admin/src/page/outWork/outBound/OutBoundList.jsx
index 9b9a2e3..69641d6 100644
--- a/rsf-admin/src/page/outWork/outBound/OutBoundList.jsx
+++ b/rsf-admin/src/page/outWork/outBound/OutBoundList.jsx
@@ -342,7 +342,7 @@
                         },
                     },
                 }}
-                pageSizeOptions={[10, 25, 50, 100]}
+                pageSizeOptions={[15, 25, 50, 100]}
                 editMode="row"
                 checkboxSelection
                 onRowSelectionModelChange={handleSelectionChange}
diff --git a/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx b/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx
index cffae45..b781f69 100644
--- a/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx
+++ b/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx
@@ -396,7 +396,7 @@
                         },
                     },
                 }}
-                pageSizeOptions={[10, 25, 50, 100]}
+                pageSizeOptions={[15, 25, 50, 100]}
                 checkboxSelection
                 onRowSelectionModelChange={handleSelectionChange}
                 selectionModel={selectedRows}
diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx
index 81b19c1..72c5c80 100644
--- a/rsf-admin/src/page/task/TaskList.jsx
+++ b/rsf-admin/src/page/task/TaskList.jsx
@@ -44,6 +44,7 @@
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
 import * as Common from '@/utils/common';
 import ColorizeOutlinedIcon from '@mui/icons-material/ColorizeOutlined';
+import GradingOutlinedIcon from '@mui/icons-material/GradingOutlined';
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -161,6 +162,7 @@
                         <EditButton label="toolbar.detail" />
                         <DoneButton sx={{ padding: '1px', fontSize: '.75rem' }} ></DoneButton>
                         <CancelButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
+                        <CheckButton />
                         <PickButton />
                     </WrapperField>
                 </StyledDatagrid>
@@ -178,6 +180,24 @@
 export default TaskList;
 
 
+const CheckButton = () => {
+    const record = useRecordContext();
+    const notify = useNotify();
+    const refresh = useRefresh();
+
+    const checkClick = async () => {
+        const { data: { code, data, msg } } = await request.post(`/task/pick/` + record.id);
+        if (code === 200) {
+            notify(msg);
+            refresh();
+        } else {
+            notify(msg);
+        }
+    }
+
+    return (record?.taskStatus == 199 && record?.taskType == 107 ? <ConfirmButton label={"toolbar.check"} startIcon={<GradingOutlinedIcon />} onConfirm={checkClick} /> : <></>)
+}
+
 /**
  * 鎷f枡鍑哄簱
  * @returns 
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 fde9e27..85c0c8e 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
@@ -76,6 +76,11 @@
         return R.ok().add(page);
     }
 
+    /**
+     * 鐢熸垚搴撳瓨鍑哄簱浠诲姟
+     * @param map
+     * @return
+     */
     @PreAuthorize("hasAuthority('manager:locItem:list')")
     @PostMapping("/locItem/generate/task")
     public R generateTask(@RequestBody Map<String, Object> map) {
@@ -85,6 +90,35 @@
         return locItemService.generateTask(map);
     }
 
+    /**
+     * 鐢熸垚绉诲簱浠诲姟
+     * @param map
+     * @return
+     */
+    @PreAuthorize("hasAuthority('manager:locItem:list')")
+    @PostMapping("/locItem/generate/move/task")
+    public R genMoveTask(@RequestBody Map<String, Object> map) {
+        if (Objects.isNull(map)) {
+            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return locItemService.gentMoveTask(map);
+    }
+
+    /**
+     * 鐢熸垚鐩樼偣鍑哄簱浠诲姟
+     * @param map
+     * @return
+     */
+    @PreAuthorize("hasAuthority('manager:locItem:list')")
+    @PostMapping("/locItem/generate/check/task")
+    public R genStatisticalTask(@RequestBody Map<String, Object> map) {
+        if (Objects.isNull(map)) {
+            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return locItemService.generateTask(map);
+    }
+
+
     @PreAuthorize("hasAuthority('manager:locItem:list')")
     @PostMapping("/locItem/list")
     public R list(@RequestBody Map<String, Object> map) {
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 7e7ae8a..eb28056 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
@@ -100,7 +100,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);
     }
 
@@ -132,7 +132,9 @@
             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));
+        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);
@@ -146,6 +148,7 @@
 
     /**
      * 鎷f枡鍑哄簱
+     *
      * @return
      */
     @PreAuthorize("hasAuthority('manager:task:update')")
@@ -156,7 +159,26 @@
             throw new CoolException("鑳芥暟涓嶈兘涓虹┖锛侊紒");
         }
         try {
-            return R.ok(taskService.pickTask(id));
+            return R.ok(taskService.pickOrCheckTask(id, "pick"));
+        } catch (Exception e) {
+            throw new CoolException(e.getMessage());
+        }
+    }
+
+    /**
+     * 鐩樼偣鍑哄簱
+     *
+     * @return
+     */
+    @PreAuthorize("hasAuthority('manager:task:update')")
+    @ApiOperation("鎷f枡鍑哄簱")
+    @PostMapping("/task/check/{id}")
+    public R checkTask(@PathVariable Long id) {
+        if (Objects.isNull(id)) {
+            throw new CoolException("鑳芥暟涓嶈兘涓虹┖锛侊紒");
+        }
+        try {
+            return R.ok(taskService.pickOrCheckTask(id, "check"));
         } catch (Exception e) {
             throw new CoolException(e.getMessage());
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
index 145dd7d..33337d3 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
@@ -16,7 +16,7 @@
     TASK_TYPE_MERGE_IN("54", "骞舵澘鍐嶅叆搴�"),
     TASK_TYPE_CHECK_IN("57", "鐩樼偣鍐嶅叆搴�"),
     TASK_TYPE_OUT("101", "鍑哄簱"),
-    TASK_TYPE_PICK_AGAIN_IN("103", "鎷f枡鍑哄簱"),
+    TASK_TYPE_PICK_AGAIN_OUT("103", "鎷f枡鍑哄簱"),
     TASK_TYPE_MERGE_OUT("104", "骞舵澘鍑哄簱"),
     TASK_TYPE_CHECK_OUT("107", "鐩樼偣鍑哄簱"),
     TASK_TYPE_EMPITY_OUT("110", "绌烘澘鍑哄簱"),
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocItemService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocItemService.java
index 108fd02..64e47dd 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocItemService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocItemService.java
@@ -9,4 +9,7 @@
 public interface LocItemService extends IService<LocItem> {
 
     R generateTask(Map<String, Object> map);
+
+    R gentMoveTask(Map<String, Object> map);
+
 }
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 257f8c5..8acfa0d 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
@@ -21,7 +21,7 @@
 
     R removeTask(Long[] ids);
 
-    Task pickTask(Long id) throws Exception;
+    Task pickOrCheckTask(Long id, String oType) throws Exception;
 
     void complateInTask(List<Task> tasks) throws Exception;
 }
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 238e703..9a5470a 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
@@ -19,6 +19,7 @@
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.system.utils.SerialRuleUtils;
 import lombok.Synchronized;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -45,6 +46,7 @@
 
     /**
      * 搴撳瓨鍑哄簱鐢熸垚鍑哄簱浠诲姟
+     * type: check 鐩樼偣, stock: 搴撳瓨鍑哄簱
      *
      * @param map
      * @return
@@ -53,6 +55,12 @@
     @Synchronized
     @Transactional(rollbackFor = Exception.class)
     public R generateTask(Map<String, Object> map) {
+        String type;
+        if (!Objects.isNull(map.get("type")) && StringUtils.isNotBlank(map.get("type").toString())) {
+            type = map.get("type").toString();
+        } else {
+            type = "stock";
+        }
         if (Objects.isNull(map.get("siteNo"))) {
             throw new CoolException("绔欑偣涓嶈兘涓虹┖锛�");
         }
@@ -91,19 +99,25 @@
             List<LocItem> locItemList = listMap.get(key);
             Double outQty = locItemList.stream().mapToDouble(LocItem::getOutQty).sum();
 
-
             Task serviceOne = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, loc.getBarcode()));
             if (!Objects.isNull(serviceOne)) {
                 throw new CoolException("鎵樼洏浠诲姟鎵ц涓紝涓嶈兘閲嶅鍒涘缓锛�");
             }
-            Double useQty  = Math.round((outQty + workQty) * 10000) / 10000.0;
-            if (orgQty.compareTo(useQty) > 0) {
-                //鎷f枡鍑哄簱
-                task.setTaskType(TaskType.TASK_TYPE_PICK_AGAIN_IN.type);
-            } else {
-                //鍏ㄦ澘鍑哄簱
-                task.setTaskType(TaskType.TASK_TYPE_OUT.type);
+
+            if (type.equals("stock")) {
+                Double useQty  = Math.round((outQty + workQty) * 10000) / 10000.0;
+                if (orgQty.compareTo(useQty) > 0) {
+                    //鎷f枡鍑哄簱
+                    task.setTaskType(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type);
+                } else {
+                    //鍏ㄦ澘鍑哄簱
+                    task.setTaskType(TaskType.TASK_TYPE_OUT.type);
+                }
+            } else if (type.equals("check")) {
+                //鐩樼偣鍑哄簱
+                task.setTaskType(TaskType.TASK_TYPE_CHECK_OUT.type);
             }
+            
             if (!taskService.save(task)) {
                 throw new CoolException("浠诲姟鍒涘缓澶辫触锛侊紒");
             }
@@ -130,7 +144,7 @@
                 } else {
                     item.setWorkQty(qty);
                 }
-                if (! locItemService.updateById(item)) {
+                if (!locItemService.updateById(item)) {
                     throw new CoolException("搴撳瓨淇℃伅淇敼澶辫触锛侊紒");
                 }
             });
@@ -142,4 +156,22 @@
 
         return R.ok("浠诲姟鐢熸垚瀹屾垚锛�!");
     }
+
+    /**
+     * 鐢熸垚绉诲簱浠诲姟
+     * @param map
+     * @return
+     */
+    @Override
+    public R gentMoveTask(Map<String, Object> map) {
+        if (Objects.isNull(map.get("targetLoc"))) {
+
+        }
+        if (Objects.isNull(map.get("orgLoc"))) {
+
+        }
+
+        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 ac780a4..ffbcebe 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
@@ -393,6 +393,8 @@
             } else if (task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)) {
                 //53.鎷f枡鍐嶅叆搴�
                 pickComplateInStock(task);
+            } else if (task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)) {
+                //57.鐩樼偣鍐嶅叆搴�
             }
         }
     }
@@ -413,11 +415,14 @@
             if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)) {
                 //鍏ㄦ墭鍑哄簱
                 complateOutStock(task);
-            } else if (task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_IN.type)) {
+            } 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)) {
+
+
             }
         }
     }
@@ -535,7 +540,7 @@
                             .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_R.type)
                     );
                 } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
-                        || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_IN.type)
+                        || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
                         || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
                         || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
                         || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)
@@ -569,13 +574,26 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Task pickTask(Long id) throws Exception {
+    public Task pickOrCheckTask(Long id, String oType) throws Exception {
         Task task = this.getById(id);
         if (Objects.isNull(task)) {
             throw new CoolException("褰撳墠浠诲姟涓嶅瓨鍦紒锛�");
         }
-        if (!task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_IN.type)) {
-            throw new CoolException("闈炴嫞鏂欏嚭搴� 锛屼笉鍙墽琛屾鎿嶄綔锛侊紒");
+        Integer type;
+        if (oType.equals("check")) {
+            //鐩樼偣鍏ュ簱
+            type = TaskType.TASK_TYPE_CHECK_IN.type;
+
+            if (!task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)) {
+                throw new CoolException("闈炵洏鐐瑰嚭搴� 锛屼笉鍙墽琛屾鎿嶄綔锛侊紒");
+            }
+        } else {
+            //鎷f枡鍏ュ簱
+            type = TaskType.TASK_TYPE_PICK_IN.type;
+
+            if (!task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)) {
+                throw new CoolException("闈炴嫞鏂欏嚭搴� 锛屼笉鍙墽琛屾鎿嶄綔锛侊紒");
+            }
         }
 
         Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>()
@@ -587,13 +605,14 @@
         String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, task);
         //鏇存柊浠诲姟涓诲崟
         task.setTaskCode(ruleCode)
-                .setTaskType(TaskType.TASK_TYPE_PICK_IN.type)
+                .setTaskType(type)
                 .setBarcode(task.getBarcode())
                 .setTaskStatus(TaskStsType.GENERATE_IN.id);
 
+        //TODO 鏍规嵁鐗╂枡鐨勫簱浣嶇被鍨嬬敓鎴愭柊鐨勫簱浣�
         TaskInParam param = new TaskInParam();
         param.setSourceStaNo(Integer.parseInt(task.getTargSite()))
-                .setIoType(Integer.parseInt(TaskType.TASK_TYPE_PICK_IN.type + ""))
+                .setIoType(type)
                 .setLocType1(Integer.parseInt(loc.getType()));
         InTaskMsgDto locInfo = wcsService.getLocNo(param);
 
@@ -664,6 +683,7 @@
             //鏇存柊搴撲綅鏄庣粏
             subtractLocItem(loc);
         } catch (Exception e) {
+            log.error("<UNK>", e);
             throw new CoolException(e.getMessage());
         }
 
@@ -702,7 +722,7 @@
             throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
         }
 
-        if (!task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_IN.type)) {
+        if (!task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)) {
             if (!this.update(new LambdaUpdateWrapper<Task>()
                     .eq(Task::getId, task.getId())
                     .set(Task::getTaskStatus, TaskStsType.UPDATED_OUT.id))) {
@@ -904,7 +924,8 @@
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
-    public void saveStockItems(List<TaskItem> items, Long id, String code, Short wkType, String type) throws Exception {
+    public void saveStockItems(List<TaskItem> items, Long id, String code, Short wkType, String type) throws
+            Exception {
         Stock stock = new Stock();
         String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_STOCK_CODE, null);
         if (StringUtils.isBlank(ruleCode)) {

--
Gitblit v1.9.1