From e9db3cc8e323e87215ea2a3d964eceac8d8d3e66 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期六, 10 一月 2026 09:02:25 +0800
Subject: [PATCH] #
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java | 187 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 168 insertions(+), 19 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 a850147..965568f 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
@@ -18,9 +18,9 @@
import com.vincent.rsf.server.api.entity.dto.LocTypeDto;
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.params.CommonRequest;
-import com.vincent.rsf.server.api.entity.params.ExMsgParams;
-import com.vincent.rsf.server.api.entity.params.WcsTaskParams;
+import com.vincent.rsf.server.api.entity.enums.CallBackEvent;
+import com.vincent.rsf.server.api.entity.params.*;
+import com.vincent.rsf.server.manager.controller.params.GenerateTaskParams;
import com.vincent.rsf.server.manager.enums.*;
import com.vincent.rsf.server.api.service.WcsService;
import com.vincent.rsf.server.api.utils.LocUtils;
@@ -43,6 +43,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Random;
@@ -427,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) + "";
}
@@ -436,11 +437,11 @@
.setRow(dto.getRow())
.setLev(dto.getLev())
.setId(null)
- .setAreaId(41L)
- .setWarehouseId(27L)
+ .setAreaId(42L)
+ .setWarehouseId(29L)
.setBarcode(string)
.setCol(dto.getBay())
- .setType(dto.getLocType())
+ .setType(dto.getLocType().equals("16") ? "17" : "15")
.setStatus(dto.getStatusBool())
.setUseStatus(LocStsType.getLocSts(dto.getLocSts()));
if (!locService.save(loc)) {
@@ -464,46 +465,77 @@
if (Objects.isNull(params)) {
return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
-
Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, params.getSeqNum()));
if (Objects.isNull(task)) {
throw new CoolException("浠诲姟涓嶅瓨鍦ㄥ彲宸茬粨鏉燂紒锛�");
}
- if (params.getEventType().equals("END")) {
+ /**鏂欑鎼繍涓紝 淇敼绔欑偣鐘舵��*/
+// 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_END.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 (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+ BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getOrgSite()));
+ if (Objects.isNull(station)) {
+ throw new CoolException("鏁版嵁閿欒锛岀珯鐐逛笉瀛樺湪锛侊紒");
+ }
+ if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+ station.setUseStatus(LocStsType.LOC_STS_TYPE_O.type);
+ if (!basStationService.updateById(station)) {
+ throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ }
+ }
+
if (!taskService.update(new LambdaUpdateWrapper<Task>()
.lt(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id)
.eq(Task::getTaskCode, task.getTaskCode())
.set(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id))) {
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
-
- if (!Objects.isNull(task.getOrgSite())) {
- if (!basStationService.update(new LambdaUpdateWrapper<BasStation>()
- .eq(BasStation::getStationName, task.getOrgSite())
- .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type))) {
- 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.getTargSite()));
+ if (Objects.isNull(station)) {
+ throw new CoolException("鏁版嵁閿欒锛岀珯鐐逛笉瀛樺湪锛侊紒");
+ }
+ if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
+ station.setUseStatus(LocStsType.LOC_STS_TYPE_F.type);
+ if (!basStationService.updateById(station)) {
+ throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ }
+
if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
.lt(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id)
- .set(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id))) {
+ .set(Task::getTaskStatus, TaskStsType.AWAIT.id))) {
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
}
}
-
log.info(JSONObject.toJSONString(params));
return R.ok(JSONObject.toJSONString(params));
}
@@ -891,4 +923,121 @@
inTaskMsgDto.setLocNo(locNo);
return inTaskMsgDto;
}
+
+ /**
+ * WCS鍏ュ簱浠诲姟鐢宠
+ *
+ * @return
+ */
+ @Override
+ public R wcsCreateInTask(CreateInTaskParam params) {
+ 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("鍗曟嵁涓嶅瓨鍦� 锛侊紒");
+ }
+
+ 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()+"绔欑偣涓嶅瓨鍦紒锛�");
+ }
+ if (deviceSite.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type.toString())) {
+ throw new CoolException(params.getSourceStaNo()+"绔欑偣闈炲厜鐢电珯鐐癸紒锛佽浣跨敤PDA缁戝畾鍏ュ簱");
+ }
+ Task one = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getBarcode()));
+ if (!Cools.isEmpty(one)) {
+ InTaskWcsReportParam inTaskWcsReportParam = new InTaskWcsReportParam();
+ inTaskWcsReportParam.setTaskNo(one.getTaskCode());
+ inTaskWcsReportParam.setLocNo(one.getTargLoc());
+ inTaskWcsReportParam.setTaskPri(one.getSort());
+ return R.ok("浠诲姟宸插瓨鍦ㄧ洿鎺ヤ笅鍙戯紒").add(inTaskWcsReportParam);
+ }
+ GenerateTaskParams taskParams = new GenerateTaskParams();
+ taskParams.setWaitPakins(waitPakins)
+ .setSiteId(deviceSite.getId());
+ R r = taskService.generateTasksWcs(taskParams, 111L);//lsh寰呬慨鏀� WCS鐢ㄦ埛淇℃伅
+ if (r.get("msg").equals("浠诲姟鐢熸垚瀹屾瘯锛�")) {
+ one = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getBarcode()));
+ InTaskWcsReportParam inTaskWcsReportParam = new InTaskWcsReportParam();
+ inTaskWcsReportParam.setTaskNo(one.getTaskCode());
+ inTaskWcsReportParam.setLocNo(one.getTargLoc());
+ inTaskWcsReportParam.setTaskPri(one.getSort());
+ return R.ok("浠诲姟鐢熸垚瀹屾瘯锛�").add(inTaskWcsReportParam);
+ }
+ return R.error();
+// return R.ok("浠诲姟鐢熸垚瀹屾瘯锛�");
+// log.info(JSONObject.toJSONString(params));
+// return R.ok(JSONObject.toJSONString(params));
+ }
+
+ /**
+ * WCS鍏ュ簱浠诲姟鐢宠
+ *
+ * @return
+ */
+ @Override
+ public R wcsTaskReport(TaskReportParam params) {
+ 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("鍗曟嵁涓嶅瓨鍦� 锛侊紒");
+ }
+ 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));
+ }
+
+ /**
+ * WCS鍏ュ簱浠诲姟鐢宠
+ *
+ * @return
+ */
+ @Override
+ public R wcsReassignLoc(ReassignLocParam params) {
+ 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("鍗曟嵁涓嶅瓨鍦� 锛侊紒");
+ }
+ 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));
+ }
+
+ /**
+ * WCS鍏ュ簱浠诲姟鐢宠
+ *
+ * @return
+ */
+ @Override
+ public R wcsChangeLoc(ChangeLocParam params) {
+ 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("鍗曟嵁涓嶅瓨鍦� 锛侊紒");
+ }
+ 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));
+ }
}
--
Gitblit v1.9.1