From 523d8cf68615134c7780f74933e70a14edb60f01 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期五, 05 九月 2025 17:00:39 +0800
Subject: [PATCH] wcs联调功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java |    6 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java         |   25 ++++-
 rsf-admin/src/page/orders/wave/WaveList.jsx                                                  |    2 
 rsf-open-api/src/main/resources/application-dev.yml                                          |    8 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java             |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java      |   34 ++-----
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java         |   44 +++++-----
 rsf-open-api/src/main/resources/application.yml                                              |    2 
 rsf-open-api/src/main/resources/application-prod.yml                                         |   20 ++++
 rsf-admin/src/page/task/TaskList.jsx                                                         |   53 +++++++++++++
 rsf-server/src/main/resources/application-prod.yml                                           |   28 ++++++
 rsf-server/src/main/resources/application.yml                                                |    2 
 rsf-admin/src/i18n/zh.js                                                                     |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java        |    2 
 rsf-admin/src/config/setting.js                                                              |    4 
 15 files changed, 164 insertions(+), 69 deletions(-)

diff --git a/rsf-admin/src/config/setting.js b/rsf-admin/src/config/setting.js
index 41127a8..60520aa 100644
--- a/rsf-admin/src/config/setting.js
+++ b/rsf-admin/src/config/setting.js
@@ -45,4 +45,6 @@
 
 export const DEFAULT_TYPE = 15; //榛樿鏁堢巼浼樺寲  15锛氭晥鐜囦紭鍖� 16锛氬厛杩涘厛鍑�
 
-export const DEFAULT_WAVE_AUTO_EXCE = 'WaveAutoExce'; //
\ No newline at end of file
+export const DEFAULT_WAVE_AUTO_EXCE = 'WaveAutoExce'; //
+
+export const AUTO_RUN_CHECK_ORDERS = 'AUTO_RUN_CHECK_ORDERS'; //
\ No newline at end of file
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 7de7d5e..980968e 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -1331,6 +1331,7 @@
         batch: '鎵归噺鎿嶄綔',
         confirm: '纭',
         start: '鑷姩涓嬪彂',
+        autoStartLocs: '鑷姩璺戝簱',
         stopPub: '缁堟涓嬪彂',
         pause: '鏆傚仠',
         pick: '鎷f枡',
diff --git a/rsf-admin/src/page/orders/wave/WaveList.jsx b/rsf-admin/src/page/orders/wave/WaveList.jsx
index a37fce6..081348c 100644
--- a/rsf-admin/src/page/orders/wave/WaveList.jsx
+++ b/rsf-admin/src/page/orders/wave/WaveList.jsx
@@ -152,7 +152,7 @@
                     rowClick={(id, resource, record) => false}
                     expand={<WavePannel />}
                     expandSingle={true}
-                    omit={['id', 'createTime', 'createBy', 'createBy$', 'memo']}
+                    omit={['id', 'createTime', 'createBy', 'createBy$']}
                 >
                     <NumberField source="id" />
                     <TextField source="code" label="table.field.wave.code" />
diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx
index 4fa167a..55d5af7 100644
--- a/rsf-admin/src/page/task/TaskList.jsx
+++ b/rsf-admin/src/page/task/TaskList.jsx
@@ -37,7 +37,10 @@
 import TaskPanel from "./TaskPanel";
 import MyField from "../components/MyField";
 import ConfirmButton from "../components/ConfirmButton";
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, AUTO_RUN_CHECK_ORDERS } from '@/config/setting';
+import PlayArrowOutlinedIcon from '@mui/icons-material/PlayArrowOutlined';
+import PauseIcon from '@mui/icons-material/Pause';
+import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline';
 import * as Common from '@/utils/common';
 import ColorizeOutlinedIcon from '@mui/icons-material/ColorizeOutlined';
 import GradingOutlinedIcon from '@mui/icons-material/GradingOutlined';
@@ -67,7 +70,19 @@
     const translate = useTranslate();
     const refresh = useRefresh();
     const [drawerVal, setDrawerVal] = useState(false);
+    const [autoExce, setAutoExce] = useState(false);
     const dict = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_warehouse_type')) || [];
+
+    useEffect(() => {
+        getConfig()
+    }, [])
+
+    const getConfig = async () => {
+        const { data: { code, data, msg } } = await request.get('/config/flag/' + AUTO_RUN_CHECK_ORDERS);
+        if (code === 200) {
+            setAutoExce(JSON.parse(data?.val))
+        }
+    }
 
     // useEffect(() => {
     //     const interval = setInterval(() => {
@@ -127,6 +142,8 @@
                 sort={{ field: "sort", order: "desc" }}
                 actions={(
                     <TopToolbar>
+                        <BulkAutoStartButton autoExce={autoExce} setAutoExce={setAutoExce}/>
+                        <BulkAutoPauseButton autoExce={autoExce} setAutoExce={setAutoExce} />
                         <FilterButton />
                         <SelectColumnsButton preferenceKey='task' />
                     </TopToolbar>
@@ -205,6 +222,40 @@
     return (record?.taskStatus == 199 && record?.taskType == 107 ? <ConfirmButton label={"toolbar.check"} startIcon={<GradingOutlinedIcon />} onConfirm={checkClick} /> : <></>)
 }
 
+/**鑷姩涓嬪彂浠诲姟**/
+const BulkAutoStartButton = ({ autoExce, setAutoExce }) => {
+    const notify = useNotify();
+    const startClick = async () => {
+        setAutoExce(true)
+        const { data: { code, data, msg } } = await request.post('/config/byFlag', { val: true, flag: 'AUTO_RUN_CHECK_ORDERS' });
+        if (code === 200) {
+            notify(msg);
+        } else {
+            notify(msg);
+        }
+    }
+    return (
+        !autoExce ? <Button label="toolbar.autoStartLocs" onClick={startClick} startIcon={<PlayArrowOutlinedIcon />} /> : <></>
+    )
+}
+
+const BulkAutoPauseButton = ({ autoExce, setAutoExce }) => {
+    const notify = useNotify();
+    const pauseClick = async () => {
+        const { data: { code, data, msg } } = await request.post('/config/byFlag', { val: false, flag: 'AUTO_RUN_CHECK_ORDERS' });
+        if (code === 200) {
+            notify(msg);
+            setAutoExce(false)
+        } else {
+            notify(msg);
+        }
+    }
+    return (
+        autoExce ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseIcon />} /> : <></>
+    )
+}
+
+
 /**
  * 鎷f枡鍑哄簱
  * @returns 
diff --git a/rsf-open-api/src/main/resources/application-dev.yml b/rsf-open-api/src/main/resources/application-dev.yml
index ef16461..b79a379 100644
--- a/rsf-open-api/src/main/resources/application-dev.yml
+++ b/rsf-open-api/src/main/resources/application-dev.yml
@@ -14,10 +14,10 @@
 #    url: jdbc:mysql://47.76.147.249:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
 #    username: rsf
     username: root
-    url: jdbc:mysql://127.0.0.1:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
-    password: 34821015
-#    url: jdbc:mysql://10.10.10.200:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
-#    password: xltys1995
+#    url: jdbc:mysql://127.0.0.1:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+#    password: 34821015
+    url: jdbc:mysql://10.10.10.200:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+    password: xltys1995
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
       initial-size: 5
diff --git a/rsf-open-api/src/main/resources/application-prod.yml b/rsf-open-api/src/main/resources/application-prod.yml
index 1c91565..decbc2c 100644
--- a/rsf-open-api/src/main/resources/application-prod.yml
+++ b/rsf-open-api/src/main/resources/application-prod.yml
@@ -1,5 +1,5 @@
 server:
-  port: 8080
+  port: 8081
   servlet:
     context-path: /@pom.artifactId@
 
@@ -10,9 +10,9 @@
     static-path-pattern: /**
   datasource:
     driver-class-name: com.mysql.jdbc.Driver
-    url: jdbc:mysql://192.168.4.24:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://10.10.10.200:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
-    password: 34821015
+    password: xltys1995
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
       initial-size: 5
@@ -66,3 +66,17 @@
 
 stock:
   flagAvailable: true
+
+  #骞冲彴鎺ュ彛淇℃伅閰嶇疆(濡傦細ERP, QMS, WCS绛�)
+  platform:
+    #RCS閾炬帴
+    rcs:
+      #閾炬帴
+      host: http://10.10.10.200
+      #绔彛
+      port: 8088
+    wms:
+      #閾炬帴
+      host: http://10.10.10.200
+      #绔彛
+      port: 8085
diff --git a/rsf-open-api/src/main/resources/application.yml b/rsf-open-api/src/main/resources/application.yml
index dbcd3cd..89b98e4 100644
--- a/rsf-open-api/src/main/resources/application.yml
+++ b/rsf-open-api/src/main/resources/application.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: prod
 
 mybatis-plus:
   mapper-locations: classpath:mapper/*/*.xml
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 3005f19..fc391e0 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
@@ -471,13 +471,25 @@
         }
 
         /**鏂欑鎼繍涓紝 淇敼绔欑偣鐘舵��*/
-        if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_OBIT.event)) {
+//        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_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_MERGE_IN.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+
                 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)) {
@@ -490,11 +502,20 @@
                         }
                     }
                 }
+
+                if (!taskService.update(new LambdaUpdateWrapper<Task>()
+                        .lt(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id)
+                        .eq(Task::getTaskCode, task.getTaskCode())
+                        .set(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id))) {
+                    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_EMPITY_OUT.type)) {
+
+
                 /**淇敼鍑哄簱绔欑偣鐘舵��*/
                 BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
                         .eq(BasStation::getStationName, task.getTargSite()));
@@ -507,26 +528,7 @@
                         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_MERGE_IN.type)
-                    || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
-                if (!taskService.update(new LambdaUpdateWrapper<Task>()
-                        .lt(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id)
-                        .eq(Task::getTaskCode, task.getTaskCode())
-                        .set(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id))) {
-                    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_EMPITY_OUT.type)) {
+
                 if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
                         .lt(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id)
                         .set(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id))) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
index 40fb2c4..6e6344e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
@@ -13,7 +13,9 @@
 import com.vincent.rsf.server.manager.enums.*;
 import com.vincent.rsf.server.manager.service.*;
 import com.vincent.rsf.server.manager.service.impl.BasStationServiceImpl;
+import com.vincent.rsf.server.system.constant.GlobalConfigCode;
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
+import com.vincent.rsf.server.system.entity.Config;
 import com.vincent.rsf.server.system.service.ConfigService;
 import com.vincent.rsf.server.system.utils.SerialRuleUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -104,13 +106,12 @@
     @Scheduled(cron = "0/35 * * * * ?")
     @Transactional(rollbackFor = Exception.class)
     public void autoCheckComplete() {
-//        Boolean autoRunArea = configService.getVal("AUTO_RUN_CHECK_ORDERS", Boolean.class);
-//        if (!autoRunArea) {
-//            return;
-//        }
         //鑾峰彇浠诲姟鍒楄〃涓紝涓虹洏鐐瑰嚭搴撶殑浠诲姟
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
-                .in(Task::getTaskType, Arrays.asList(TaskType.TASK_TYPE_CHECK_OUT.type, TaskType.TASK_TYPE_CHECK_IN.type)));
+                .in(Task::getTaskType, Arrays.asList(TaskType.TASK_TYPE_CHECK_OUT.type,
+                        TaskType.TASK_TYPE_PICK_IN.type,
+                        TaskType.TASK_TYPE_PICK_AGAIN_OUT.type,
+                        TaskType.TASK_TYPE_CHECK_IN.type)));
 
         if (!tasks.isEmpty()) {
             tasks.forEach(task -> {
@@ -122,19 +123,13 @@
                     if (task.getTaskStatus().equals(TaskStsType.WAVE_SEED.id)) {
                         if (!stationService.update(new LambdaUpdateWrapper<BasStation>()
                                 .eq(BasStation::getStationName, task.getTargSite())
-                                .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_F.type))) {
+                                .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_R.type))) {
                             log.error("绔欑偣鐘舵�佷慨鏀瑰畬鎴愬け璐�,褰撳墠浠诲姟鐘舵�侊細", task.getTaskStatus());
-//                            throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+//                                throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                         }
                         try {
-                            taskService.pickOrCheckTask(task.getId(), Constants.TASK_TYPE_OUT_CHECK);
+                            taskService.pickOrCheckTask(task.getId(),  task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type) ? Constants.TASK_TYPE_OUT_CHECK : "");
 
-                            if (!stationService.update(new LambdaUpdateWrapper<BasStation>()
-                                    .eq(BasStation::getStationName, task.getTargSite())
-                                    .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_R.type))) {
-                                log.error("绔欑偣鐘舵�佷慨鏀瑰畬鎴愬け璐�,褰撳墠浠诲姟鐘舵�侊細", task.getTaskStatus());
-//                                throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�");
-                            }
                         } catch (Exception e) {
                             log.error("error====>", e);
                         }
@@ -152,10 +147,9 @@
      * @version 1.0
      */
     @Scheduled(cron = "0/25 * * * * ?")
-//    @Scheduled(cron = "0 0/05 * * * ?  ")
     public void genRun() {
-        Boolean flagAuto = configService.getVal("AUTO_RUN_CHECK_ORDERS", Boolean.class);
-        if (!flagAuto) {
+        Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_RUN_CHECK_ORDERS));
+        if (!Boolean.parseBoolean(config.getVal())) {
             return;
         }
         //鑾峰彇浠诲姟鍒楄〃涓紝涓虹洏鐐瑰嚭搴撶殑浠诲姟
@@ -232,12 +226,6 @@
                     continue;
                 }
                 try {
-                    //鐢熸垚鐩樼偣鍑哄簱浠诲姟锛岀珯鐐归绾�
-                    if (!stationService.update(new LambdaUpdateWrapper<BasStation>()
-                            .eq(BasStation::getStationName, deviceSite.getSite())
-                            .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_S.type))) {
-                        throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
-                    }
                     locItemService.generateTask(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val, locToTaskParams, getLoginUserId());
                 } catch (Exception e) {
                     throw new CoolException(e.getMessage());
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
index d18a1c3..97bd9d9 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -234,22 +234,26 @@
 //        }
     }
 
+    /**
+     * 闈炲厜鐢电珯鐐逛换鍔′笅鍙�
+     */
     @Scheduled(cron = "0/5 * * * * ?  ")
     @Transactional(rollbackFor = Exception.class)
     public void pubTaskToWcs() {
         Long loginUserId = SystemAuthUtils.getLoginUserId();
         List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_IN.type, TaskType.TASK_TYPE_OUT.type, TaskType.TASK_TYPE_LOC_MOVE.type, TaskType.TASK_TYPE_EMPITY_IN.type
-                , TaskType.TASK_TYPE_CHECK_IN.type, TaskType.TASK_TYPE_MERGE_IN.type, TaskType.TASK_TYPE_EMPITY_OUT.type,
+                , TaskType.TASK_TYPE_CHECK_IN.type, TaskType.TASK_TYPE_MERGE_IN.type, TaskType.TASK_TYPE_EMPITY_OUT.type, TaskType.TASK_TYPE_PICK_IN.type,
                 TaskType.TASK_TYPE_PICK_AGAIN_OUT.type, TaskType.TASK_TYPE_CHECK_OUT.type, TaskType.TASK_TYPE_MERGE_OUT.type);
         List<Integer> integers = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id);
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
                 .in(Task::getTaskType, list)
-                .in(Task::getTaskStatus, integers)
+                .in(Task::getTaskStatus, integers).last("limit 1")
                 .orderByDesc(Task::getSort));
         for (Task task : tasks) {
             /**绉诲簱涓嶅仛绔欑偣鎿嶄綔*/
             if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
-                BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName,
+                BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                        .eq(BasStation::getStationName,
                         task.getTaskStatus().equals(TaskStsType.GENERATE_IN.id) ? task.getOrgSite() : task.getTargSite()));
                 if (station.getType().equals(StationTypeEnum.STATION_TYPE_MUTI.type)) {
                     continue;
@@ -366,16 +370,25 @@
         }
         /**鍒ゆ柇鏄惁鍏夌數绔欑偣锛岄潪鍏夊簵绔欑偣闇�绠℃帶绔欑偣鐘舵��*/
         if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
-            if (task.getTaskType() <= TaskType.TASK_TYPE_CHECK_IN.type && task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+            if (task.getTaskType() <= TaskType.TASK_TYPE_CHECK_IN.type && !task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
                 if (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
-                    throw new CoolException("褰撳墠绔欑偣涓嶆槸F.鍦ㄥ簱鐘舵�侊紒锛�");
+                    throw new CoolException("褰撳墠绔欑偣涓嶆槸F.鍦ㄥ簱鐘舵�佺姸鎬侊紒锛�");
+                }
+                station.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
+                if (!basStationService.updateById(station)) {
+                    throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
                 }
             } else if (task.getTaskType() >= TaskType.TASK_TYPE_OUT.type) {
                 if (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
-                    throw new CoolException("鐩爣绔欑偣涓嶆槸O.绌洪棽鐘舵�侊紒锛�");
+                    throw new CoolException("鐩爣绔欑偣涓嶅O.绌洪棽鐘舵�侊紝鏃犳硶棰勭害鍑哄簱銆�");
+                }
+                station.setUseStatus(LocStsType.LOC_STS_TYPE_S.type);
+                if (!basStationService.updateById(station)) {
+                    throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
                 }
             }
         }
+
         /**绉诲簱鍙傛暟*/
         if (task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
             itemParam.setOriLoc(task.getOrgLoc()).setDestLoc(task.getTargLoc());
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 91e0d70..2e83811 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
@@ -137,7 +137,7 @@
                     //鎷f枡鍑哄簱 -- 鐩樼偣鍑哄簱
                     DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                             .eq(DeviceSite::getSite, siteNo)
-                            .eq(DeviceSite::getChannel, loc.getChannel())
+                            .eq(!Objects.isNull(loc.getChannel()),DeviceSite::getChannel, loc.getChannel())
                             .eq(DeviceSite::getType, TaskType.TASK_TYPE_PICK_AGAIN_OUT.type));
                     if (Objects.isNull(deviceSite)) {
                         throw new CoolException("绔欑偣涓嶆敮鎸佹嫞鏂欏嚭搴擄紒锛�");
@@ -146,7 +146,7 @@
                 } else {
                     //鍏ㄦ澘鍑哄簱
                     DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
-                            .eq(DeviceSite::getChannel, loc.getChannel())
+                            .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel())
                             .eq(DeviceSite::getSite, siteNo).eq(DeviceSite::getType, TaskType.TASK_TYPE_OUT.type));
                     if (Objects.isNull(deviceSite)) {
                         throw new CoolException("绔欑偣涓嶆敮鎸佸叏鏉垮嚭搴擄紒锛�");
@@ -294,7 +294,7 @@
             //鐩爣搴撲綅涓虹┖锛岃嚜鍔ㄨ幏鍙栨柊搴撲綅
             DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                     .eq(DeviceSite::getType, TaskType.TASK_TYPE_LOC_MOVE.type)
-                    .eq(DeviceSite::getChannel, orgLoc.getChannel()), false);
+                    .eq(!Objects.isNull(orgLoc.getChannel()), DeviceSite::getChannel, orgLoc.getChannel()), false);
             if (Objects.isNull(deviceSite)) {
                 throw new CoolException("绔欑偣淇℃伅涓嶅瓨鍦紒锛�");
             }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
index aca7d0c..b2962f7 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
@@ -157,7 +157,7 @@
                         orderOutItemDto.setLocItem(locItem);
 
                         List<DeviceSite> deviceSites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>()
-                                .eq(DeviceSite::getChannel, loc.getChannel())
+                                .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel())
                                 .eq(DeviceSite::getType, issued.doubleValue() >= locItem.getAnfme() && itemList.size() == 1 ? TaskType.TASK_TYPE_OUT.type : TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
                         );
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java
index 6cbcecc..6ec5761 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java
@@ -19,4 +19,6 @@
     /**娉㈡鑷姩涓嬪彂浠诲姟*/
     public final static String WAVE_AUTO_EXCE_TASK = "WaveAutoExce";
 
+    public final static String AUTO_RUN_CHECK_ORDERS = "AUTO_RUN_CHECK_ORDERS";
+
 }
diff --git a/rsf-server/src/main/resources/application-prod.yml b/rsf-server/src/main/resources/application-prod.yml
index 1c91565..4dfcad8 100644
--- a/rsf-server/src/main/resources/application-prod.yml
+++ b/rsf-server/src/main/resources/application-prod.yml
@@ -1,5 +1,5 @@
 server:
-  port: 8080
+  port: 8085
   servlet:
     context-path: /@pom.artifactId@
 
@@ -10,9 +10,9 @@
     static-path-pattern: /**
   datasource:
     driver-class-name: com.mysql.jdbc.Driver
-    url: jdbc:mysql://192.168.4.24:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://10.10.10.200:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
-    password: 34821015
+    password: xltys1995
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
       initial-size: 5
@@ -66,3 +66,25 @@
 
 stock:
   flagAvailable: true
+
+
+
+  #骞冲彴鎺ュ彛淇℃伅閰嶇疆(濡傦細ERP, QMS, WCS绛�)
+  platform:
+    #浼佷笟ERP骞冲彴
+    erp:
+      #localhost
+      host: http://10.10.10.200
+      #绔彛鍙�
+      port: 8085
+      #鎺ュ搧閾炬帴鍓嶇紑
+      pre-path: rsf-server
+      #鎺ュ彛鏄庣粏
+      api:
+        #璐ㄦ涓婃姤鎺ュ彛
+        notify-inspect: /report/inspect
+    rcs:
+      #閾炬帴
+      host: http://10.10.10.200
+      #绔彛
+      port: 8081
diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml
index 0c99aef..9188a6c 100644
--- a/rsf-server/src/main/resources/application.yml
+++ b/rsf-server/src/main/resources/application.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: prod
 
 config:
   system-name: @pom.artifactId@

--
Gitblit v1.9.1