From 3eb6ea1ce6f381cb9545bb4906863f74236152a3 Mon Sep 17 00:00:00 2001
From: zc <zyzc>
Date: 星期一, 20 十月 2025 17:10:33 +0800
Subject: [PATCH] Default Changelist
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java | 87 +++++++++++++++++++++++++++++++++++--------
1 files changed, 71 insertions(+), 16 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 613f2bb..8b917c4 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,6 +18,7 @@
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.enums.CallBackEvent;
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;
@@ -45,6 +46,7 @@
import java.util.List;
import java.util.Objects;
+import java.util.Random;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@@ -415,6 +417,7 @@
ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1);
scheduled.scheduleWithFixedDelay(new Runnable() {
int current = 1;
+
@Override
public void run() {
params.setCurrent(current);
@@ -422,24 +425,30 @@
if (dtos.isEmpty()) {
scheduled.shutdown();
}
- dtos.forEach(dto -> {
+ for (SyncLocsDto dto : dtos) {
Loc loc = new Loc();
+ String string = new Random().nextInt(10000000) + "";
+ Loc one = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, dto.getLocNo()));
+ if (!Objects.isNull(one)) {
+ string = new Random().nextInt(10000000) + "";
+ }
loc.setCode(dto.getLocNo())
.setBarcode(dto.getBarcode())
.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)) {
scheduled.shutdown();
throw new CoolException("WCS搴撲綅鍚屾澶辫触锛侊紒");
}
- });
+ }
current++;
}
}, 1, 1, TimeUnit.SECONDS);
@@ -448,6 +457,7 @@
/**
* 寮傚父淇℃伅涓婃姤
+ *
* @return
*/
@Override
@@ -455,20 +465,47 @@
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("浠诲姟涓嶅瓨鍦紒锛�");
+ 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 (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
+
+ 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("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
@@ -477,19 +514,35 @@
|| 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))) {
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
}
}
-
log.info(JSONObject.toJSONString(params));
return R.ok(JSONObject.toJSONString(params));
}
/**
* 涓嬪彂浠诲姟鑷充腑杞珹PI
+ *
* @param params
* @return
*/
@@ -552,7 +605,7 @@
}
}
- private InTaskMsgDto getLocNoCrn(String orgLoc, DeviceBind deviceBind, Long area, Integer sourceStaNo, String matnr, String batch, LocTypeDto locTypeDto, int times, Integer ioType) {
+ private InTaskMsgDto getLocNoCrn(String orgLoc, DeviceBind deviceBind, Long area, String sourceStaNo, String matnr, String batch, LocTypeDto locTypeDto, int times, Integer ioType) {
if (Cools.isEmpty(matnr)) { //鐗╂枡鍙�
matnr = "";
}
@@ -641,7 +694,7 @@
if (Cools.isEmpty(deviceSite)) {
channel = 0;
} else {
- inTaskMsgDto.setStaNo(Integer.parseInt(deviceSite.getDeviceSite()));
+ inTaskMsgDto.setStaNo(deviceSite.getDeviceSite());
}
//鏇存柊褰撳墠鎺�
@@ -805,7 +858,7 @@
return inTaskMsgDto;
}
- private InTaskMsgDto getLocNoCtu(DeviceBind deviceBind, Long area, Integer sourceStaNo, String matnr, String batch, LocTypeDto locTypeDto, int times, Integer ioType) {
+ private InTaskMsgDto getLocNoCtu(DeviceBind deviceBind, Long area, String sourceStaNo, String matnr, String batch, LocTypeDto locTypeDto, int times, Integer ioType) {
if (Cools.isEmpty(matnr)) { //鐗╂枡鍙�
matnr = "";
}
@@ -819,6 +872,8 @@
.eq(Loc::getAreaId, area)
.eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
.eq(Loc::getType, locTypeDto.getLocType1())
+ .ge(Loc::getRow, deviceBind.getStartRow())
+ .le(Loc::getRow, deviceBind.getEndRow())
.orderByAsc(Loc::getLev)
.orderByAsc(Loc::getCol)
.orderByAsc(Loc::getRow)
@@ -834,13 +889,13 @@
DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
.eq(DeviceSite::getType, ioType)
.eq(DeviceSite::getSite, sourceStaNo)
- .eq(DeviceSite::getDeviceCode, loc.getDeviceNo())
+ .eq(!Objects.isNull(loc.getDeviceNo()), DeviceSite::getDeviceCode, loc.getDeviceNo())
);
if (Cools.isEmpty(deviceSite)) {
deviceNo = 0;
loc = null;
} else {
- inTaskMsgDto.setStaNo(Integer.parseInt(deviceSite.getDeviceSite()));
+ inTaskMsgDto.setStaNo(deviceSite.getDeviceSite());
}
// 閫掑綊鏌ヨ
if (Cools.isEmpty(loc) || !loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
--
Gitblit v1.9.1