From e19163def1da10e16ad5baf58131a1563acfe7e1 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期一, 02 二月 2026 15:24:21 +0800
Subject: [PATCH] lsh#

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java |  107 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 85 insertions(+), 22 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
index 2698e82..2d28fc9 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
@@ -31,6 +31,8 @@
 import com.vincent.rsf.server.manager.service.impl.LocServiceImpl;
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.manager.enums.LocStsType;
+import com.vincent.rsf.server.system.entity.User;
+import com.vincent.rsf.server.system.service.impl.UserServiceImpl;
 import com.vincent.rsf.server.system.utils.SerialRuleUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -82,6 +84,8 @@
     private RestTemplate restTemplate;
     @Autowired
     private RemotesInfoProperties.RcsApi rcsApi;
+    @Autowired
+    private UserServiceImpl userService;
 
 
     @Override
@@ -201,7 +205,7 @@
                             String targetSite, String sourceSiteNo, Long loginUserId) {
         Task task = new Task();
         task.setTaskCode(ruleCode)
-                .setTaskStatus(TaskStsType.GENERATE_IN.id)
+                .setTaskStatus(TaskStsType.MISSION_INITIAL.id)
                 .setTaskType(TaskType.TASK_TYPE_IN.type)
                 .setWarehType(WarehType.WAREHOUSE_TYPE_CRN.val)
                 .setTargLoc(targetLoc)
@@ -256,6 +260,9 @@
                     .setCreateBy(loginUserId)
                     .setUpdateBy(loginUserId)
                     .setOrderId(item.getAsnId())
+                    .setSplrBatch(item.getBatch())
+                    .setPlatWorkCode(item.getPlatWorkCode())
+                    .setPlatItemId(item.getPlatItemId())
                     .setOrderItemId(item.getAsnItemId());
         }).collect(Collectors.toList());
 
@@ -468,26 +475,58 @@
         }
         Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, params.getSeqNum()));
         if (Objects.isNull(task)) {
-            throw new CoolException("浠诲姟涓嶅瓨鍦ㄥ彲宸茬粨鏉燂紒锛�");
+            throw new CoolException("浠诲姟涓嶅瓨鍦ㄥ彲浠ョ粨鏉燂紒锛�");
         }
 
         /**鏂欑鎼繍涓紝 淇敼绔欑偣鐘舵��*/
-//        if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_OBIT.event)) {
-//            if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
-//                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
-//                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
-//                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)
-//                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
-//                    || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
-//
-//            }
-//            /**鍙栫瀹屾垚锛� 淇敼浠诲姟鐘舵��*/
-//        } else
+        if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_BIN.event)) {
+            if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+                /**淇敼鍑哄簱绔欑偣鐘舵��*/
+                BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                        .eq(BasStation::getStationName, task.getOrgSite()));
+                if (Objects.isNull(station)) {
+                    throw new CoolException("鏁版嵁閿欒锛岀珯鐐逛笉瀛樺湪锛侊紒");
+                }
+                if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+                    station.setUseStatus(LocStsType.LOC_STS_TYPE_O.type);
+                    station.setBarcode(null);
+                    if (!basStationService.updateById(station)) {
+                        throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                    }
+                }
+            } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.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_EMPTY_OUT.type)) {
+
+
+                /**淇敼鍑哄簱绔欑偣鐘舵��*/
+                BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                        .eq(BasStation::getStationName, task.getOrgLoc()));
+                if (Objects.isNull(station)) {
+                    throw new CoolException("鏁版嵁閿欒锛岀珯鐐逛笉瀛樺湪锛侊紒");
+                }
+                if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+                    station.setUseStatus(LocStsType.LOC_STS_TYPE_O.type);
+                    station.setBarcode(null);
+                    if (!basStationService.updateById(station)) {
+                        throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                    }
+                }
+            }
+            /**鍙栫瀹屾垚锛� 淇敼浠诲姟鐘舵��*/
+        } else
         if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_END.event)) {
             if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
-                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_IN.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
 
@@ -514,7 +553,7 @@
                     || 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)) {
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_OUT.type)) {
 
 
                 /**淇敼鍑哄簱绔欑偣鐘舵��*/
@@ -533,6 +572,21 @@
                 if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
                         .lt(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id)
                         .set(Task::getTaskStatus, TaskStsType.AWAIT.id))) {
+                    throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                }
+            }
+        } else if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_TRANSFER.event)) {
+            if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+                if (!taskService.update(new LambdaUpdateWrapper<Task>()
+                        .lt(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id)
+                        .eq(Task::getTaskCode, task.getTaskCode())
+                        .set(Task::getOrgSite, task.getTargSite())
+                        .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id))) {
                     throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                 }
             }
@@ -935,30 +989,39 @@
         if (Objects.isNull(params)) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, params.getBarcode()));
-        if (waitPakins.isEmpty()) {
-            throw new CoolException("鍗曟嵁涓嶅瓨鍦� 锛侊紒");
-        }
 
         BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, params.getSourceStaNo()).orderByDesc(BasStation::getId), false);
         if (Objects.isNull(basStation)) {
             throw new CoolException(params.getSourceStaNo()+"绔欑偣涓嶅瓨鍦紒锛�");
         }
         if (!basStation.getType().equals(StationTypeEnum.STATION_TYPE_MUTI.type)) {
-            throw new CoolException(params.getSourceStaNo()+"绔欑偣闈炲厜鐢电珯鐐癸紒锛佽浣跨敤PDA缁戝畾鍏ュ簱");
+            throw new CoolException(params.getSourceStaNo()+"绔欑偣闈炴櫤鑳界珯鐐癸紒锛佽浣跨敤PDA缁戝畾鍏ュ簱");
         }
         Task one = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getBarcode()));
         if (!Cools.isEmpty(one)) {
+            if (!one.getTaskStatus().equals(TaskStsType.WCS_EXECUTE_IN.id)) {
+                return R.error("浠诲姟宸插瓨鍦ㄤ絾鏄姸鎬佷笉涓�鑷达紒锛侊紒").add("浠诲姟宸插瓨鍦ㄤ絾鏄姸鎬佷笉涓�鑷达紒锛侊紒");
+            }
             InTaskWcsReportParam inTaskWcsReportParam = new InTaskWcsReportParam();
             inTaskWcsReportParam.setTaskNo(one.getTaskCode());
             inTaskWcsReportParam.setLocNo(one.getTargLoc());
             inTaskWcsReportParam.setTaskPri(one.getSort());
             return R.ok("浠诲姟宸插瓨鍦ㄧ洿鎺ヤ笅鍙戯紒").add(inTaskWcsReportParam);
         }
+        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, params.getBarcode()));
+        if (waitPakins.isEmpty()) {
+            throw new CoolException("缁勬墭鍗曟嵁涓嶅瓨鍦� 锛侊紒");
+        }
         GenerateTaskParams taskParams = new GenerateTaskParams();
         taskParams.setWaitPakins(waitPakins)
                 .setSiteId(basStation.getId());
-        R r = taskService.generateTasksWcs(taskParams, 111L,params.getRowList());//lsh寰呬慨鏀�  WCS鐢ㄦ埛淇℃伅
+
+        User wcs = userService.getByUsername("wcs", 1L);
+        Long wcsId = 1111L;
+        if (!Cools.isEmpty(wcs)) {
+            wcsId = wcs.getId();
+        }
+        R r = taskService.generateTasksWcs(taskParams, wcsId,params.getRowList());
         if (r.get("msg").equals("浠诲姟鐢熸垚瀹屾瘯锛�")) {
             one = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getBarcode()));
             InTaskWcsReportParam inTaskWcsReportParam = new InTaskWcsReportParam();
@@ -1022,7 +1085,7 @@
         }
         if (params.getMsgType().equals(WcsMsgTypeEvent.TASK_COMPLETE.event)){
             if (!Cools.isEmpty(one)) {
-                one.setTaskStatus(TaskStsType.GENERATE_IN.id);
+                one.setTaskStatus(TaskStsType.MISSION_INITIAL.id);
                 one.setOrgSite(one.getTargSite());
                 if (!taskService.updateById(one)) {
 //                    throw new CoolException("瀹屾垚浠诲姟澶辫触");

--
Gitblit v1.9.1