From 35f92fe6b383057a576fd31c1efe29d735b61215 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期一, 15 九月 2025 17:17:17 +0800
Subject: [PATCH] 跑库程序修改

---
 rsf-open-api/src/main/resources/application.yml                                         |    2 
 rsf-open-api/src/main/resources/application-prod.yml                                    |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java    |   20 ++++--
 rsf-server/src/main/java/com/vincent/rsf/server/system/entity/SerialRule.java           |    9 +-
 rsf-server/src/main/resources/application-prod.yml                                      |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java    |    5 +
 rsf-open-api/src/main/resources/application-dev.yml                                     |   14 ++--
 rsf-server/src/main/resources/application.yml                                           |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java |   58 ++++++++++++++++--
 rsf-admin/.env                                                                          |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java    |    2 
 rsf-server/src/main/resources/application-dev.yml                                       |   10 +-
 12 files changed, 91 insertions(+), 39 deletions(-)

diff --git a/rsf-admin/.env b/rsf-admin/.env
index a3c69b2..9658e17 100644
--- a/rsf-admin/.env
+++ b/rsf-admin/.env
@@ -1,3 +1,3 @@
 VITE_BASE_IP=127.0.0.1
 # VITE_BASE_IP=47.76.147.249
-VITE_BASE_PORT=8080
+VITE_BASE_PORT=8085
diff --git a/rsf-open-api/src/main/resources/application-dev.yml b/rsf-open-api/src/main/resources/application-dev.yml
index b79a379..2d214ee 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
@@ -58,11 +58,11 @@
   #RCS閾炬帴
   rcs:
     #閾炬帴
-    host: http://10.10.10.200
+    host: http://127.0.0.1
     #绔彛
     port: 8088
   wms:
     #閾炬帴
-    host: http://10.10.10.157
+    host: http://127.0.0.1
     #绔彛
-    port: 8080
\ No newline at end of file
+    port: 8081
\ No newline at end of file
diff --git a/rsf-open-api/src/main/resources/application-prod.yml b/rsf-open-api/src/main/resources/application-prod.yml
index decbc2c..dac8347 100644
--- a/rsf-open-api/src/main/resources/application-prod.yml
+++ b/rsf-open-api/src/main/resources/application-prod.yml
@@ -77,6 +77,6 @@
       port: 8088
     wms:
       #閾炬帴
-      host: http://10.10.10.200
+      host: http://127.0.0.1
       #绔彛
       port: 8085
diff --git a/rsf-open-api/src/main/resources/application.yml b/rsf-open-api/src/main/resources/application.yml
index 89b98e4..dbcd3cd 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: prod
+    active: dev
 
 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 fc391e0..97f97ff 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
@@ -428,7 +428,7 @@
                 for (SyncLocsDto dto : dtos) {
                     Loc loc = new Loc();
                     String string = new Random().nextInt(10000000) + "";
-                    Loc one = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, string));
+                    Loc one = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, dto.getLocNo()));
                     if (!Objects.isNull(one)) {
                         string = new Random().nextInt(10000000) + "";
                     }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
index 959af2a..70da919 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory;
 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
+import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
 import com.vincent.rsf.server.system.entity.User;
@@ -32,6 +33,9 @@
     @Bean
     public MybatisPlusInterceptor mybatisPlusInterceptor() {
         MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+
+        // 娣诲姞涔愯閿佹彃浠�
+        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
 
         // 澶氱鎴锋彃浠堕厤缃�
         TenantLineHandler tenantLineHandler = new TenantLineHandler() {
@@ -108,5 +112,4 @@
             }
         };
     }
-
 }
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 6e6344e..be2532d 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
@@ -60,7 +60,7 @@
      * 鑷姩鐢熸垚搴撲綅鏄庣粏
      */
     @Transactional(rollbackFor = Exception.class)
-//    @Scheduled(cron = "0/25 * * * * ?")
+    @Scheduled(cron = "0/25 * * * * ?")
     public void insertRandomMats() {
         List<Loc> list = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type));
         for (Loc loc : list) {
@@ -103,7 +103,7 @@
      * @description: 鑷姩瀹屾垚鐩樼偣鍔熻兘
      * @version 1.0
      */
-    @Scheduled(cron = "0/35 * * * * ?")
+    @Scheduled(cron = "0/25 * * * * ?")
     @Transactional(rollbackFor = Exception.class)
     public void autoCheckComplete() {
         //鑾峰彇浠诲姟鍒楄〃涓紝涓虹洏鐐瑰嚭搴撶殑浠诲姟
@@ -146,7 +146,7 @@
      * @description: 鑷姩鐢熸垚浠诲姟
      * @version 1.0
      */
-    @Scheduled(cron = "0/25 * * * * ?")
+    @Scheduled(cron = "0/5 * * * * ?")
     public void genRun() {
         Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_RUN_CHECK_ORDERS));
         if (!Boolean.parseBoolean(config.getVal())) {
@@ -155,7 +155,7 @@
         //鑾峰彇浠诲姟鍒楄〃涓紝涓虹洏鐐瑰嚭搴撶殑浠诲姟
         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)));
-        if (tasks.size() >= 6) {
+        if (tasks.size() >= 30) {
             return;
         }
         String autoRunArea = configService.getVal("AUTO_RUN_AREA", String.class);
@@ -238,7 +238,7 @@
 
 //        // 鍑哄簱,闇�瑕佹牎楠屽伐浣滄。鏄惁瀛樺湪锛屽瓨鍦ㄥ氨璇存槑绔欑偣澶勪簬蹇欑鐘舵��
 //        this.runLocToSta(locGroupList, staGroupList, staTaskMemo);
-//        // 绉诲簱
+//        // 绉诲簱locGroupList
 //        this.runLocToLoc(locGroupList, staTaskMemo);
     }
 
@@ -265,14 +265,56 @@
 
     }
 
+    /**
+     * 鐢熸垚绉诲簱浠诲姟
+     * @param
+     * @param
+     */
     // 绉诲簱
-    private void runLocToLoc(List<Integer> locGroupList, String staTaskMemo) {
+    @Scheduled(cron = "0/7 * * * * ?")
+    @Transactional(rollbackFor = Exception.class)
+    public void runLocToLoc() {
+        Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_RUN_CHECK_ORDERS));
+        if (!Boolean.parseBoolean(config.getVal())) {
+            return;
+        }
+        List<Integer> locGroupList = new ArrayList<>();
+        //鑾峰彇浠诲姟鍒楄〃涓紝涓虹洏鐐瑰嚭搴撶殑浠诲姟
+        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
+                .eq(Task::getTaskType, TaskType.TASK_TYPE_LOC_MOVE.type));
+        if (!tasks.isEmpty() && tasks.size() >= 10) {
+            return;
+        }
+        String autoRunArea = configService.getVal("AUTO_RUN_AREA", String.class);
+        if (Cools.isEmpty(autoRunArea)) {
+            return;
+        }
+        for (char c : autoRunArea.toCharArray()) {
+            switch (c) {
+                case '1':
+                    locGroupList = LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST;
+                    break;
+                case '2':
+                    locGroupList = LocGroupConstant.RIGHT_LOC_ROW_LIST;
+                    break;
+                case '3':
+                    locGroupList = LocGroupConstant.MIDDLE_LOC_ROW_LIST;
+                    break;
+                case '4':
+                    locGroupList = LocGroupConstant.LEFT_LOC_ROW_LIST;
+                    break;
+                case '5':
+                    locGroupList = LocGroupConstant.FAR_LEFT_LOC_ROW_LIST;
+                    break;
+                default:
+                    break;
+            }
+        }
+
         Integer startRow = Collections.min(locGroupList);
         Integer endRow = Collections.max(locGroupList);
 
         String memo = "DEMO_LOC_" + startRow + "-" + endRow;
-
-
         // STOCK
         LambdaQueryWrapper<Loc> stockWrapper = new LambdaQueryWrapper<Loc>().eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type);
         if (null != startRow) {
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 97bd9d9..bebc4a1 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
@@ -364,16 +364,22 @@
         //涓诲弬鏁�
         taskParams.setBatch(task.getBarcode());
 
-        BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getTargSite()));
-        if (Objects.isNull(station)) {
-            throw new CoolException("绔欑偣涓嶅瓨鍦紒锛�");
+
+        BasStation station = null;
+        if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+             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)) {
+        if (!Objects.isNull(station) && 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 (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
-                    throw new CoolException("褰撳墠绔欑偣涓嶆槸F.鍦ㄥ簱鐘舵�佺姸鎬侊紒锛�");
-                }
+//                if (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
+//                    throw new CoolException( "褰撳墠绔欑偣涓嶆槸F.鍦ㄥ簱鐘舵�佺姸鎬侊紒锛�");
+//                }
                 station.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
                 if (!basStationService.updateById(station)) {
                     throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/SerialRule.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/SerialRule.java
index ee0a272..c983f8f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/SerialRule.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/entity/SerialRule.java
@@ -1,6 +1,7 @@
 package com.vincent.rsf.server.system.entity;
 
-import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.*;
+
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
@@ -12,10 +13,7 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -131,6 +129,9 @@
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     private Date updateTime;
 
+    @Version
+    private Integer sVersion;
+
     /**
      * 澶囨敞
      */
diff --git a/rsf-server/src/main/resources/application-dev.yml b/rsf-server/src/main/resources/application-dev.yml
index 72f5cf3..af14af6 100644
--- a/rsf-server/src/main/resources/application-dev.yml
+++ b/rsf-server/src/main/resources/application-dev.yml
@@ -1,5 +1,5 @@
 server:
-  port: 8080
+  port: 8085
   servlet:
     context-path: /@pom.artifactId@
 spring:
@@ -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://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
+#    url: jdbc:mysql://127.0.0.1:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+#    password: 34821015
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
       initial-size: 5
diff --git a/rsf-server/src/main/resources/application-prod.yml b/rsf-server/src/main/resources/application-prod.yml
index 4dfcad8..8d37532 100644
--- a/rsf-server/src/main/resources/application-prod.yml
+++ b/rsf-server/src/main/resources/application-prod.yml
@@ -74,7 +74,7 @@
     #浼佷笟ERP骞冲彴
     erp:
       #localhost
-      host: http://10.10.10.200
+      host: http://127.0.0.1
       #绔彛鍙�
       port: 8085
       #鎺ュ搧閾炬帴鍓嶇紑
@@ -85,6 +85,6 @@
         notify-inspect: /report/inspect
     rcs:
       #閾炬帴
-      host: http://10.10.10.200
+      host: http://127.0.0.1
       #绔彛
       port: 8081
diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml
index 9188a6c..0c99aef 100644
--- a/rsf-server/src/main/resources/application.yml
+++ b/rsf-server/src/main/resources/application.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: prod
+    active: dev
 
 config:
   system-name: @pom.artifactId@

--
Gitblit v1.9.1