From db0da79142146cd3de6e7fcca92dceeceb6d2665 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 04 九月 2025 13:42:27 +0800
Subject: [PATCH] 添加普通站点及下发任务站点管理功能

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java |   38 ++++++++++++++++++++++++++++++++++----
 1 files changed, 34 insertions(+), 4 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 8af462a..40d4c5d 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
@@ -18,6 +18,7 @@
 import com.vincent.rsf.server.api.entity.dto.LocTypeDto;
 import com.vincent.rsf.server.api.controller.erp.params.TaskInParam;
 import com.vincent.rsf.server.api.entity.dto.SyncLocsDto;
+import com.vincent.rsf.server.api.entity.enums.CallBackEvent;
 import com.vincent.rsf.server.api.entity.params.CommonRequest;
 import com.vincent.rsf.server.api.entity.params.ExMsgParams;
 import com.vincent.rsf.server.api.entity.params.WcsTaskParams;
@@ -416,6 +417,7 @@
         ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1);
         scheduled.scheduleWithFixedDelay(new Runnable() {
             int current = 1;
+
             @Override
             public void run() {
                 params.setCurrent(current);
@@ -455,6 +457,7 @@
 
     /**
      * 寮傚父淇℃伅涓婃姤
+     *
      * @return
      */
     @Override
@@ -462,13 +465,12 @@
         if (Objects.isNull(params)) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-
         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("END")) {
+        /**鍙栫瀹屾垚*/
+        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)
@@ -479,6 +481,19 @@
                         .set(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id))) {
                     throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                 }
+
+                if (!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);
+                        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)
@@ -487,6 +502,18 @@
                 if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
                         .set(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id))) {
                     throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                }
+                /**淇敼鍑哄簱绔欑偣鐘舵��*/
+                BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                        .eq(BasStation::getStationName, task.getTargSite()));
+                if (Objects.isNull(station)) {
+                    throw new CoolException("鏁版嵁閿欒锛岀珯鐐逛笉瀛樺湪锛侊紒");
+                }
+                if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+                    station.setUseStatus(LocStsType.LOC_STS_TYPE_F.type);
+                    if (!basStationService.updateById(station)) {
+                        throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                    }
                 }
             }
         }
@@ -497,6 +524,7 @@
 
     /**
      * 涓嬪彂浠诲姟鑷充腑杞珹PI
+     *
      * @param params
      * @return
      */
@@ -826,6 +854,8 @@
                 .eq(Loc::getAreaId, area)
                 .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
                 .eq(Loc::getType, locTypeDto.getLocType1())
+                .ge(Loc::getRow, deviceBind.getStartRow())
+                .le(Loc::getRow, deviceBind.getEndRow())
                 .orderByAsc(Loc::getLev)
                 .orderByAsc(Loc::getCol)
                 .orderByAsc(Loc::getRow)

--
Gitblit v1.9.1