From e461c84027885a02f8af27cca01e0cbff0c5ade4 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期六, 10 一月 2026 13:00:13 +0800
Subject: [PATCH] lsh#
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 6 -
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsChangeLocParam.java | 28 +++++--
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ReassignLocParam.java | 2
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/WcsMsgTypeEvent.java | 23 +++++
rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java | 6
rsf-server/src/main/resources/application.yml | 2
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsTaskReportParam.java | 28 +++++--
rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java | 19 ++++
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ChangeLocParam.java | 2
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/TaskReportParam.java | 28 +++++--
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java | 2
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java | 36 +++++---
12 files changed, 133 insertions(+), 49 deletions(-)
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsChangeLocParam.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsChangeLocParam.java
index 03b4748..404f22c 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsChangeLocParam.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsChangeLocParam.java
@@ -13,16 +13,28 @@
@ApiModel(value = "WcsTaskReportParam", description = "WCS浠诲姟涓婃姤閫氱煡")
public class WcsChangeLocParam implements Serializable {
- @ApiModelProperty("鎵樼洏鐮�")
- private String barcode;
+ @ApiModelProperty("閫氱煡娴佹按鍙�")
+ private Long id;
- @ApiModelProperty("婧愮珯")
- private Integer sourceStaNo;
+ @ApiModelProperty("閫氱煡绫诲瀷锛歵ask")
+ private String notifyType;
- @ApiModelProperty("鍙敤鎺�")
- private List<Integer> rowList;
+ @ApiModelProperty("璁惧鍙�")
+ private String device;
- @ApiModelProperty("搴撲綅绫诲瀷")
- private Integer locType1;
+ @ApiModelProperty("WCS宸ヤ綔鍙�")
+ private String taskNo;
+
+ @ApiModelProperty("涓婄骇绯荤粺宸ヤ綔鍙�")
+ private String superTaskNo;
+
+ @ApiModelProperty("娑堟伅绫诲瀷锛歵ask_complete銆乼ask_cancel")
+ private String msgType;
+
+ @ApiModelProperty("娑堟伅鎻忚堪")
+ private String msgDesc;
+
+ @ApiModelProperty("娑堟伅鏁版嵁")
+ private String data;
}
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsTaskReportParam.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsTaskReportParam.java
index 76f3472..2f410e4 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsTaskReportParam.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WcsTaskReportParam.java
@@ -13,16 +13,28 @@
@ApiModel(value = "WcsTaskReportParam", description = "WCS浠诲姟涓婃姤閫氱煡")
public class WcsTaskReportParam implements Serializable {
- @ApiModelProperty("鎵樼洏鐮�")
- private String barcode;
+ @ApiModelProperty("閫氱煡娴佹按鍙�")
+ private Long id;
- @ApiModelProperty("婧愮珯")
- private Integer sourceStaNo;
+ @ApiModelProperty("閫氱煡绫诲瀷锛歵ask")
+ private String notifyType;
- @ApiModelProperty("鍙敤鎺�")
- private List<Integer> rowList;
+ @ApiModelProperty("璁惧鍙�")
+ private String device;
- @ApiModelProperty("搴撲綅绫诲瀷")
- private Integer locType1;
+ @ApiModelProperty("WCS宸ヤ綔鍙�")
+ private String taskNo;
+
+ @ApiModelProperty("涓婄骇绯荤粺宸ヤ綔鍙�")
+ private String superTaskNo;
+
+ @ApiModelProperty("娑堟伅绫诲瀷锛歵ask_complete銆乼ask_cancel")
+ private String msgType;
+
+ @ApiModelProperty("娑堟伅鎻忚堪")
+ private String msgDesc;
+
+ @ApiModelProperty("娑堟伅鏁版嵁")
+ private String data;
}
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java
index e048b9e..851687b 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java
@@ -106,7 +106,7 @@
try {
CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
if (result.getCode() == 200) {
- return R.ok().add(result.getData());
+ return R.ok(result.getMsg()).add(result.getData());
} else {
return R.error(result.getMsg());
// throw new CoolException("浠诲姟鎵ц鐘舵�佷笂鎶ュけ璐ワ紒锛�");
@@ -145,7 +145,7 @@
try {
CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
if (result.getCode() == 200) {
- return R.ok().add(result.getData());
+ return R.ok(result.getMsg()).add(result.getData());
} else {
return R.error(result.getMsg());
// throw new CoolException("浠诲姟鎵ц鐘舵�佷笂鎶ュけ璐ワ紒锛�");
@@ -184,7 +184,7 @@
try {
CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
if (result.getCode() == 200) {
- return R.ok().add(result.getData());
+ return R.ok(result.getMsg()).add(result.getData());
} else {
return R.error(result.getMsg());
// throw new CoolException("浠诲姟鎵ц鐘舵�佷笂鎶ュけ璐ワ紒锛�");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/WcsMsgTypeEvent.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/WcsMsgTypeEvent.java
new file mode 100644
index 0000000..fcceb69
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/WcsMsgTypeEvent.java
@@ -0,0 +1,23 @@
+package com.vincent.rsf.server.api.entity.enums;
+
+/**
+ * @author Munch D. Luffy
+ * @date 2026/01/10
+ * @description: WCS娑堟伅绫诲瀷
+ * @version 1.0
+ */
+public enum WcsMsgTypeEvent {
+ /**娑堟伅绫诲瀷*/
+ TASK_COMPLETE("task_complete", "浠诲姟瀹屾垚"),
+ TASK_CANCEL("task_cancel", "浠诲姟鍙栨秷"),
+ ;
+
+ WcsMsgTypeEvent(String event, String desc) {
+ this.event = event;
+ this.desc = desc;
+ }
+
+ public String event;
+
+ public String desc;
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ChangeLocParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ChangeLocParam.java
index 455ceac..c16f291 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ChangeLocParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ChangeLocParam.java
@@ -10,7 +10,7 @@
@Data
@Accessors(chain = true)
-@ApiModel(value = "ChangeLocParam", description = "WCS浠诲姟涓婃姤閫氱煡")
+@ApiModel(value = "ChangeLocParam", description = "WCS鐢宠鍦ㄥ簱搴撲綅鏇存崲搴撲綅")
public class ChangeLocParam implements Serializable {
@ApiModelProperty("鎵樼洏鐮�")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ReassignLocParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ReassignLocParam.java
index 7be5439..ca17711 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ReassignLocParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/ReassignLocParam.java
@@ -10,7 +10,7 @@
@Data
@Accessors(chain = true)
-@ApiModel(value = "ReassignLocParam", description = "WCS浠诲姟涓婃姤閫氱煡")
+@ApiModel(value = "ReassignLocParam", description = "WCS鐢宠浠诲姟閲嶆柊鍒嗛厤鍏ュ簱")
public class ReassignLocParam implements Serializable {
@ApiModelProperty("鎵樼洏鐮�")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/TaskReportParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/TaskReportParam.java
index b2352f0..a10c4d8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/TaskReportParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/TaskReportParam.java
@@ -13,16 +13,28 @@
@ApiModel(value = "TaskReportParam", description = "WCS浠诲姟涓婃姤閫氱煡")
public class TaskReportParam implements Serializable {
- @ApiModelProperty("鎵樼洏鐮�")
- private String barcode;
+ @ApiModelProperty("閫氱煡娴佹按鍙�")
+ private Long id;
- @ApiModelProperty("婧愮珯")
- private Integer sourceStaNo;
+ @ApiModelProperty("閫氱煡绫诲瀷锛歵ask")
+ private String notifyType;
- @ApiModelProperty("鍙敤鎺�")
- private List<Integer> rowList;
+ @ApiModelProperty("璁惧鍙�")
+ private String device;
- @ApiModelProperty("搴撲綅绫诲瀷")
- private Integer locType1;
+ @ApiModelProperty("WCS宸ヤ綔鍙�")
+ private String taskNo;
+
+ @ApiModelProperty("涓婄骇绯荤粺宸ヤ綔鍙�")
+ private String superTaskNo;
+
+ @ApiModelProperty("娑堟伅绫诲瀷锛歵ask_complete銆乼ask_cancel")
+ private String msgType;
+
+ @ApiModelProperty("娑堟伅鎻忚堪")
+ private String msgDesc;
+
+ @ApiModelProperty("娑堟伅鏁版嵁")
+ private String data;
}
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 965568f..3670db5 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
@@ -19,6 +19,7 @@
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.enums.WcsMsgTypeEvent;
import com.vincent.rsf.server.api.entity.params.*;
import com.vincent.rsf.server.manager.controller.params.GenerateTaskParams;
import com.vincent.rsf.server.manager.enums.*;
@@ -957,7 +958,7 @@
GenerateTaskParams taskParams = new GenerateTaskParams();
taskParams.setWaitPakins(waitPakins)
.setSiteId(deviceSite.getId());
- R r = taskService.generateTasksWcs(taskParams, 111L);//lsh寰呬慨鏀� WCS鐢ㄦ埛淇℃伅
+ R r = taskService.generateTasksWcs(taskParams, 111L,params.getRowList());//lsh寰呬慨鏀� WCS鐢ㄦ埛淇℃伅
if (r.get("msg").equals("浠诲姟鐢熸垚瀹屾瘯锛�")) {
one = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getBarcode()));
InTaskWcsReportParam inTaskWcsReportParam = new InTaskWcsReportParam();
@@ -973,7 +974,7 @@
}
/**
- * WCS鍏ュ簱浠诲姟鐢宠
+ * WCS浠诲姟涓婃姤閫氱煡
*
* @return
*/
@@ -982,21 +983,28 @@
if (Objects.isNull(params)) {
return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, params.getBarcode()));
- if (waitPakins.isEmpty()) {
- throw new CoolException("鍗曟嵁涓嶅瓨鍦� 锛侊紒");
+ Task one = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, params.getSuperTaskNo()));
+ if (params.getMsgType().equals(WcsMsgTypeEvent.TASK_COMPLETE.event)){
+ if (!Cools.isEmpty(one)) {
+ one.setTaskStatus(one.getTaskType() < 100 ? TaskStsType.COMPLETE_IN.id : TaskStsType.AWAIT.id);
+ if (!taskService.updateById(one)) {
+// throw new CoolException("瀹屾垚浠诲姟澶辫触");
+ return R.error("瀹屾垚浠诲姟澶辫触").add(one);
+ }
+ return R.ok("浠诲姟瀹屾垚鎴愬姛").add(one);
+ }
+ } else if (params.getMsgType().equals(WcsMsgTypeEvent.TASK_CANCEL.event)){
+// if (!Cools.isEmpty(one)) {
+// one.setTaskStatus(one.getTaskType() < 100 ? TaskStsType.COMPLETE_IN.id : TaskStsType.AWAIT.id);
+// return R.ok("锛�").add(one);
+// }
+ return R.error("鏆備笉鍏佽鍙栨秷");
}
- GenerateTaskParams taskParams = new GenerateTaskParams();
- taskParams.setWaitPakins(waitPakins)
- .setSiteId(params.getSourceStaNo().longValue());
- return R.ok(taskService.generateTasks(taskParams, 111L));
-// return R.ok("浠诲姟鐢熸垚瀹屾瘯锛�");
-// log.info(JSONObject.toJSONString(params));
-// return R.ok(JSONObject.toJSONString(params));
+ return R.error("鏁版嵁寮傚父");
}
/**
- * WCS鍏ュ簱浠诲姟鐢宠
+ * WCS鐢宠浠诲姟閲嶆柊鍒嗛厤鍏ュ簱
*
* @return
*/
@@ -1019,7 +1027,7 @@
}
/**
- * WCS鍏ュ簱浠诲姟鐢宠
+ * WCS鐢宠鍦ㄥ簱搴撲綅鏇存崲搴撲綅
*
* @return
*/
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java
index ec3f9f7..d148b04 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java
@@ -10,7 +10,7 @@
public interface TaskService extends IService<Task> {
R generateTasks(GenerateTaskParams waitPakin, Long loginUserId);
- R generateTasksWcs(GenerateTaskParams waitPakin, Long loginUserId);
+ R generateTasksWcs(GenerateTaskParams waitPakin, Long loginUserId,List<Integer> rowList);
R generateFlatWarehouseTasks(WaitPakin waitPakins, String locCode, Long loginUserId);
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index 01697b5..cf7d0b9 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -448,16 +448,14 @@
/**
- * @param
* @param loginUserId
- * @return
* @author Munch D. Luffy
* @date 2026/01/10
* @description: WCS鍏ュ簱浠诲姟鐢宠
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public synchronized R generateTasksWcs(GenerateTaskParams waitPakin, Long loginUserId) {
+ public synchronized R generateTasksWcs(GenerateTaskParams waitPakin, Long loginUserId,List<Integer> rowList) {
if (Objects.isNull(waitPakin) || waitPakin.getWaitPakins().isEmpty()) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
@@ -490,7 +488,7 @@
throw new CoolException("瀹瑰櫒鏈淮鎶ゅ叆搴擄紝璇风淮鎶ゅ悗鍐嶆搷浣滐紒锛�");
}
/**鑾峰彇搴撲綅*/
- String targetLoc = LocManageUtil.getTargetLoc(warehouseArea.getId(), container.getContainerType());
+ String targetLoc = LocManageUtil.getTargetLoc(warehouseArea.getId(), container.getContainerType(),rowList);
if (Cools.isEmpty(targetLoc)) {
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 cfc5abf..974c0b7 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
@@ -33,6 +33,25 @@
return getTargetLoc(areaId, null);
}
+ public static String getTargetLoc(Long areaId, Long containerType,List<Integer> rowList) {
+
+ Long locType = containerType;
+ //TODO 搴撲綅绛栫暐鍚庣画鎺掓湡
+ LocService locService = SpringUtils.getBean(LocService.class);
+ Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>()
+ .eq(!Objects.isNull(locType), Loc::getType, locType)
+ .eq(Loc::getAreaId, areaId)
+ .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
+ .in(Objects.nonNull(rowList) && !rowList.isEmpty(), Loc::getRow, rowList)
+ .orderByAsc(Loc::getLev)
+ .orderByAsc(Loc::getCol)
+ .orderByAsc(Loc::getRow)
+ .last("LIMIT 1")
+ );
+
+ return !Objects.isNull(loc) ? loc.getCode() : null;
+ }
+
public static String getTargetLoc(Long areaId, Long containerType) {
Long locType = null;
// if (!Objects.isNull(containerType)) {
diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml
index 0c99aef..e097076 100644
--- a/rsf-server/src/main/resources/application.yml
+++ b/rsf-server/src/main/resources/application.yml
@@ -33,7 +33,7 @@
:banner: false
db-config:
id-type: auto
- logic-delete-value: 1
+ logic-delete-value: 0
logic-not-delete-value: 0
super:
--
Gitblit v1.9.1