From ba85ad92c793164beb4087366a18101d14061626 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期一, 19 一月 2026 10:55:04 +0800
Subject: [PATCH] lsh#空板流程

---
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsRcsService.java           |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java    |   16 +++++
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/RcsPubTaskParams.java  |    3 +
 rsf-open-api/src/main/resources/application-dev.yml                                     |    6 +
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsRcsServiceImpl.java  |   47 ++++++++++++++-
 rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/WcsTaskParams.java    |    3 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocStsWcsOrOtherType.java |   65 +++++++++++++++++++++
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsRcsController.java     |    6 +
 8 files changed, 141 insertions(+), 6 deletions(-)

diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsRcsController.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsRcsController.java
index 0a7d0b8..ad2a54b 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsRcsController.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/WmsRcsController.java
@@ -40,7 +40,11 @@
         if (Objects.isNull(params)) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-       return wmsRcsService.pubTasks(params);
+        if (params.getSign().equals("RCS")){
+            return wmsRcsService.pubTasks(params);
+        }  else {
+            return wmsRcsService.pubTasksWcs(params);
+        }
     }
 
     /**
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/RcsPubTaskParams.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/RcsPubTaskParams.java
index 3240a4c..9bf4923 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/RcsPubTaskParams.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/RcsPubTaskParams.java
@@ -13,6 +13,9 @@
 @ApiModel(value = "RcsPubTaskParams", description = "涓嬪彂浠诲姟鍙傛暟")
 public class RcsPubTaskParams implements Serializable {
 
+    @ApiModelProperty("鏍囪绫诲瀷{HKRCS: 娴峰悍, WCS: 绔嬪簱WCS, OTHER: 鍏跺畠}")
+    private String sign;
+
     @ApiModelProperty("鎵规")
     private String batch;
 
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsRcsService.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsRcsService.java
index d18de2c..0b7d985 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsRcsService.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/WmsRcsService.java
@@ -16,6 +16,7 @@
 public interface WmsRcsService extends IService<Loc> {
 
     CommonResponse pubTasks(RcsPubTaskParams params);
+    CommonResponse pubTasksWcs(RcsPubTaskParams params);
 
     CommonResponse cancelTasks(Map<String, Object> params);
 
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsRcsServiceImpl.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsRcsServiceImpl.java
index d5d2cf5..52daba3 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsRcsServiceImpl.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsRcsServiceImpl.java
@@ -11,6 +11,7 @@
 import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.openApi.config.PlatformProperties;
 import com.vincent.rsf.openApi.entity.Loc;
+import com.vincent.rsf.openApi.entity.constant.WcsConstant;
 import com.vincent.rsf.openApi.entity.constant.WmsConstant;
 import com.vincent.rsf.openApi.entity.dto.CommonResponse;
 import com.vincent.rsf.openApi.entity.constant.RcsConstant;
@@ -46,6 +47,9 @@
     private PlatformProperties.WmsApi wmsApi;
 
     @Autowired
+    private PlatformProperties.WcsApi wcsApi;
+
+    @Autowired
     private RestTemplate restTemplate;
 
 
@@ -60,15 +64,52 @@
     public CommonResponse pubTasks(RcsPubTaskParams params)  {
         /**RCS鍩虹閰嶇疆閾炬帴*/
         String rcsUrl =  rcsApi.getHost() + ":" + rcsApi.getPort() + RcsConstant.pubTask;
-        log.info("浠诲姟涓嬪彂锛岃姹傚湴鍧�锛� {}锛� 璇锋眰鍙傛暟锛� {}", rcsUrl , JSONObject.toJSONString(params));
+        log.info("RCS浠诲姟涓嬪彂锛岃姹傚湴鍧�锛� {}锛� 璇锋眰鍙傛暟锛� {}", rcsUrl , JSONObject.toJSONString(params));
         HttpHeaders headers = new HttpHeaders();
         headers.add("Content-Type", "application/json");
         headers.add("api-version", "v2.0");
         HttpEntity httpEntity = new HttpEntity(params, headers);
         ResponseEntity<String> exchange = restTemplate.exchange(rcsUrl, HttpMethod.POST, httpEntity, String.class);
-        log.info("浠诲姟涓嬪彂鍚庯紝鍝嶅簲缁撴灉锛� {}", exchange);
+        log.info("RCS浠诲姟涓嬪彂鍚庯紝鍝嶅簲缁撴灉锛� {}", exchange);
         if (Objects.isNull(exchange.getBody())) {
-            throw new CoolException("浠诲姟涓嬪彂澶辫触锛侊紒");
+            throw new CoolException("RCS浠诲姟涓嬪彂澶辫触锛侊紒");
+        } else {
+            ObjectMapper objectMapper = new ObjectMapper();
+            objectMapper.coercionConfigDefaults()
+                    .setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
+            try {
+                CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
+                if (result.getCode() == 200) {
+                    return result;
+                } else {
+                    return result;
+                }
+            } catch (JsonProcessingException e) {
+                throw new CoolException(e.getMessage());
+            }
+        }
+    }
+
+    /**
+     * @author Munch D. Luffy
+     * @date 2026/01/19
+     * @description: WCS浠诲姟涓嬪彂
+     * @version 1.0
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public CommonResponse pubTasksWcs(RcsPubTaskParams params)  {
+        /**WCS鍩虹閰嶇疆閾炬帴*/
+        String rcsUrl =  wcsApi.getHost() + ":" + wcsApi.getPort() + WcsConstant.pubTask;
+        log.info("WCS浠诲姟涓嬪彂锛岃姹傚湴鍧�锛� {}锛� 璇锋眰鍙傛暟锛� {}", rcsUrl , JSONObject.toJSONString(params));
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Content-Type", "application/json");
+        headers.add("api-version", "v2.0");
+        HttpEntity httpEntity = new HttpEntity(params, headers);
+        ResponseEntity<String> exchange = restTemplate.exchange(rcsUrl, HttpMethod.POST, httpEntity, String.class);
+        log.info("WCS浠诲姟涓嬪彂鍚庯紝鍝嶅簲缁撴灉锛� {}", exchange);
+        if (Objects.isNull(exchange.getBody())) {
+            throw new CoolException("WCS浠诲姟涓嬪彂澶辫触锛侊紒");
         } else {
             ObjectMapper objectMapper = new ObjectMapper();
             objectMapper.coercionConfigDefaults()
diff --git a/rsf-open-api/src/main/resources/application-dev.yml b/rsf-open-api/src/main/resources/application-dev.yml
index a93ac00..e6159ea 100644
--- a/rsf-open-api/src/main/resources/application-dev.yml
+++ b/rsf-open-api/src/main/resources/application-dev.yml
@@ -14,10 +14,12 @@
 #    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://192.168.4.15:3306/rsf_20250106?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
-    password: 1234
+#    url: jdbc:mysql://192.168.4.15:3306/rsf_20250106?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+#    password: 1234
 #    url: jdbc:mysql://10.10.10.200:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
 #    password: xltys1995
+    url: jdbc:mysql://192.168.4.199:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+    password: root
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
       initial-size: 5
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/WcsTaskParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/WcsTaskParams.java
index e25c034..cf05a79 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/WcsTaskParams.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/WcsTaskParams.java
@@ -14,6 +14,9 @@
 @ApiModel(value = "WcsTaskParams", description = "浠诲姟涓嬪彂鍙傛暟")
 public class WcsTaskParams implements Serializable {
 
+    @ApiModelProperty("鏍囪绫诲瀷{HKRCS: 娴峰悍, WCS: 绔嬪簱WCS, OTHER: 鍏跺畠}")
+    private String sign;
+
     @ApiModelProperty("鎵规")
     private String batch;
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocStsWcsOrOtherType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocStsWcsOrOtherType.java
new file mode 100644
index 0000000..364fc4a
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocStsWcsOrOtherType.java
@@ -0,0 +1,65 @@
+package com.vincent.rsf.server.manager.enums;
+
+public enum LocStsWcsOrOtherType {
+
+    //WCS
+    LOC_STS_TYPE_WCS("WCS", "WCS"),
+    //RCS
+    LOC_STS_TYPE_RCS("RCS", "RCS"),
+    //OTHER
+    LOC_STS_TYPE_OTHER("OTHER", "OTHER")
+    ;
+
+    public String type;
+
+    public String desc;
+
+    LocStsWcsOrOtherType(String type, String desc) {
+        this.type = type;
+        this.desc = desc;
+    }
+
+
+    public static LocStsWcsOrOtherType get(String el) {
+        for (LocStsWcsOrOtherType value : LocStsWcsOrOtherType.values()) {
+            if (el.equals(value.toString())) {
+                return value;
+            }
+        }
+        return null;
+    }
+
+    public static String getApiType(String val) {
+        switch (val) {
+            case "3#绔嬩綋搴撳尯":
+                return LocStsWcsOrOtherType.LOC_STS_TYPE_WCS.type;
+//            case "RCS":
+//                return LocStsWcsOrOtherType.LOC_STS_TYPE_RCS.type;
+            default:
+                return LocStsWcsOrOtherType.LOC_STS_TYPE_RCS.type;
+        }
+    }
+
+//    public static String getLocSts(String val) {
+//        if (val.equals("WCS")) {
+//            return LocStsWcsOrOtherType.LOC_STS_TYPE_WCS.type;
+//        } else if (val.equals("RCS")) {
+//            return LocStsWcsOrOtherType.LOC_STS_TYPE_RCS.type;
+//        } else {
+//            return LocStsWcsOrOtherType.LOC_STS_TYPE_OTHER.type;
+//        }
+//    }
+
+//    public static String getLocSts(Integer areaId) {
+//        switch (areaId) {
+//            case 22:
+//                return LocStsWcsOrOtherType.LOC_STS_TYPE_RCS.type;
+//            case 100:
+//                return LocStsWcsOrOtherType.LOC_STS_TYPE_WCS.type;
+//            default:
+//                return LocStsWcsOrOtherType.LOC_STS_TYPE_OTHER.type;
+//        }
+//    }
+
+
+}
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 d5f77f6..753449e 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
@@ -380,6 +380,22 @@
         }
 
 
+        /**鍒ゆ柇鏄惁璧风偣绯荤粺绫诲瀷  闈炴爣鍑嗙▼搴�*/
+        Loc loc = null;
+        if (task.getTaskType()>=TaskType.TASK_TYPE_OUT.type) {
+            loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
+            if (Objects.isNull(loc)) {
+                throw new CoolException("婧愬簱浣嶄笉瀛樺湪锛侊紒");
+            }
+        }
+
+        if (!Objects.isNull(loc)) {
+            taskParams.setSign(LocStsWcsOrOtherType.getApiType(loc.getAreaId$()));
+        } else {
+            taskParams.setSign(LocStsWcsOrOtherType.LOC_STS_TYPE_RCS.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)) {

--
Gitblit v1.9.1