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