From 3179e57a855b09d1056af91a93e1df25c9ef8c13 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期一, 26 一月 2026 14:49:11 +0800
Subject: [PATCH] lsh#
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java | 162 +++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 131 insertions(+), 31 deletions(-)
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 30b10da..7919184 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.*;
@@ -255,6 +256,9 @@
.setCreateBy(loginUserId)
.setUpdateBy(loginUserId)
.setOrderId(item.getAsnId())
+ .setSplrBatch(item.getBatch())
+ .setPlatWorkCode(item.getPlatWorkCode())
+ .setPlatItemId(item.getPlatItemId())
.setOrderItemId(item.getAsnItemId());
}).collect(Collectors.toList());
@@ -471,17 +475,49 @@
}
/**鏂欑鎼繍涓紝 淇敼绔欑偣鐘舵��*/
-// 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_BIN.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)) {
+ /**淇敼鍑哄簱绔欑偣鐘舵��*/
+ BasStation 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)) {
+ station.setUseStatus(LocStsType.LOC_STS_TYPE_O.type);
+ station.setBarcode(null);
+ if (!basStationService.updateById(station)) {
+ 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.getOrgLoc()));
+ if (Objects.isNull(station)) {
+ throw new CoolException("鏁版嵁閿欒锛岀珯鐐逛笉瀛樺湪锛侊紒");
+ }
+ if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+ station.setUseStatus(LocStsType.LOC_STS_TYPE_O.type);
+ station.setBarcode(null);
+ if (!basStationService.updateById(station)) {
+ 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)
@@ -532,6 +568,20 @@
if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
.lt(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id)
.set(Task::getTaskStatus, TaskStsType.AWAIT.id))) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ }
+ } else if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_TRANSFER.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.WCS_EXECUTE_IN.id)
+ .eq(Task::getTaskCode, task.getTaskCode())
+ .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id))) {
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
}
@@ -938,23 +988,29 @@
if (waitPakins.isEmpty()) {
throw new CoolException("鍗曟嵁涓嶅瓨鍦� 锛侊紒");
}
+
+ BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, params.getSourceStaNo()).orderByDesc(BasStation::getId), false);
+ if (Objects.isNull(basStation)) {
+ throw new CoolException(params.getSourceStaNo()+"绔欑偣涓嶅瓨鍦紒锛�");
+ }
+ if (!basStation.getType().equals(StationTypeEnum.STATION_TYPE_MUTI.type)) {
+ throw new CoolException(params.getSourceStaNo()+"绔欑偣闈炲厜鐢电珯鐐癸紒锛佽浣跨敤PDA缁戝畾鍏ュ簱");
+ }
Task one = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getBarcode()));
if (!Cools.isEmpty(one)) {
+ if (!one.getTaskStatus().equals(TaskStsType.WCS_EXECUTE_IN.id)) {
+ return R.error("浠诲姟宸插瓨鍦ㄤ絾鏄姸鎬佷笉涓�鑷达紒锛侊紒").add("浠诲姟宸插瓨鍦ㄤ絾鏄姸鎬佷笉涓�鑷达紒锛侊紒");
+ }
InTaskWcsReportParam inTaskWcsReportParam = new InTaskWcsReportParam();
inTaskWcsReportParam.setTaskNo(one.getTaskCode());
inTaskWcsReportParam.setLocNo(one.getTargLoc());
inTaskWcsReportParam.setTaskPri(one.getSort());
return R.ok("浠诲姟宸插瓨鍦ㄧ洿鎺ヤ笅鍙戯紒").add(inTaskWcsReportParam);
}
-
- DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>().eq(DeviceSite::getSite,params.getSourceStaNo()).orderByDesc(DeviceSite::getId),false);
- if (Objects.isNull(deviceSite)) {
- throw new CoolException(params.getSourceStaNo()+"绔欑偣涓嶅瓨鍦紒锛�");
- }
GenerateTaskParams taskParams = new GenerateTaskParams();
taskParams.setWaitPakins(waitPakins)
- .setSiteId(deviceSite.getId());
- R r = taskService.generateTasks(taskParams, 111L);
+ .setSiteId(basStation.getId());
+ 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();
@@ -970,7 +1026,7 @@
}
/**
- * WCS鍏ュ簱浠诲姟鐢宠
+ * WCS浠诲姟涓婃姤閫氱煡
*
* @return
*/
@@ -979,21 +1035,65 @@
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 (Cools.isEmpty(one)) {
+ return R.error(params.getSuperTaskNo()+"浠诲姟鍙�==>鏈煡璇㈠埌鐩稿叧浠诲姟锛侊紒锛�");
}
- 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));
+ 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("鏆備笉鍏佽鍙栨秷");
+ }
+ return R.error("鏁版嵁寮傚父");
}
/**
- * WCS鍏ュ簱浠诲姟鐢宠
+ * WCS浠诲姟涓婃姤閫氱煡
+ *
+ * @return
+ */
+ @Override
+ public R wcsTaskReport2(TaskReportParam params) {
+ if (Objects.isNull(params)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ Task one = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, params.getSuperTaskNo()));
+ if (Cools.isEmpty(one)) {
+ return R.error(params.getSuperTaskNo()+"浠诲姟鍙�==>鏈煡璇㈠埌鐩稿叧浠诲姟锛侊紒锛�");
+ }
+ if (params.getMsgType().equals(WcsMsgTypeEvent.TASK_COMPLETE.event)){
+ if (!Cools.isEmpty(one)) {
+ one.setTaskStatus(TaskStsType.GENERATE_IN.id);
+ one.setOrgSite(one.getTargSite());
+ 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("鏆備笉鍏佽鍙栨秷");
+ }
+ return R.error("鏁版嵁寮傚父");
+ }
+
+ /**
+ * WCS鐢宠浠诲姟閲嶆柊鍒嗛厤鍏ュ簱
*
* @return
*/
@@ -1016,7 +1116,7 @@
}
/**
- * WCS鍏ュ簱浠诲姟鐢宠
+ * WCS鐢宠鍦ㄥ簱搴撲綅鏇存崲搴撲綅
*
* @return
*/
--
Gitblit v1.9.1