From 945774c0ddc6bdae1d53cfbd74892efcf7d949a1 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期三, 11 三月 2026 15:41:00 +0800
Subject: [PATCH] lsh#
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java | 69 ++++++++++++++++++++++++----------
1 files changed, 49 insertions(+), 20 deletions(-)
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 97d64bc..9247168 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
@@ -134,7 +134,7 @@
taskInstanceNode.setStatus(flowInstance.getStatus());
TaskInstance taskInstance = taskInstanceService.getById(flowInstance.getTaskId());
if (Cools.isEmpty(taskInstance)) { continue;}
- Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, taskInstance.getTaskNo()));
+ Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, taskInstance.getTaskNo()).last("limit 1"),false);
if (Cools.isEmpty(task)) { continue;}
if (!task.getTaskStatus().equals(flowStepInstance.getWmsNowTaskStatus())) {
log.error("浠诲姟鍙凤細"+task.getTaskCode()+"鐨勪换鍔$姸鎬佷笌鎵ц妗f浠诲姟鐘舵�侊細"+flowStepInstance.getWmsNowTaskStatus()+"涓嶄竴鑷达紒锛侊紒");
@@ -156,7 +156,7 @@
.eq(FlowStepInstance::getStatus, (short)0)
.eq(FlowStepInstance::getTaskNo, flowStepInstance.getTaskNo())
.eq(FlowStepInstance::getStepOrder, flowStepInstance.getStepOrder() + 1)
- .eq(FlowStepInstance::getWmsNowTaskStatus, flowStepInstance.getWmsNextTaskStatus()));
+ .eq(FlowStepInstance::getWmsNowTaskStatus, flowStepInstance.getWmsNextTaskStatus()).last("limit 1"));
if (Cools.isEmpty(nextFlowStepInstance)) {
throw new CoolException("浠诲姟鍙�"+task.getTaskCode()+"浠诲姟姝ラ涓㈠け锛侊紒锛�");
}
@@ -183,7 +183,7 @@
if (souSign){
WarehouseAreas warehouseAreas = warehouseAreasService.getById(Long.parseLong(taskInstance.getSourceCode()));
if (Cools.isEmpty(warehouseAreas)){
- BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getSourceCode()));
+ BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getSourceCode()).last("limit 1"));
if (Cools.isEmpty(basStation)){
basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
.apply("station_alias != '[]'") // 涓嶆槸绌烘暟缁�
@@ -209,7 +209,7 @@
missionTaskIssueParam.setSourceCode(taskInstance.getSourceCode());
}
} else {
- BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getSourceCode()));
+ BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getSourceCode()).last("limit 1"));
if (Cools.isEmpty(basStation)){
basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
.apply("station_alias != '[]'") // 涓嶆槸绌烘暟缁�
@@ -235,7 +235,7 @@
if (endSign){
WarehouseAreas warehouseAreas = warehouseAreasService.getById(Long.parseLong(taskInstance.getTargetCode()));
if (Cools.isEmpty(warehouseAreas)){
- BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getTargetCode()));
+ BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getTargetCode()).last("limit 1"));
if (Cools.isEmpty(basStation)){
basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
.apply("station_alias != '[]'") // 涓嶆槸绌烘暟缁�
@@ -261,7 +261,7 @@
missionTaskIssueParam.setTargetCode(taskInstance.getTargetCode());
}
} else {
- BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getTargetCode()));
+ BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getTargetCode()).last("limit 1"));
if (Cools.isEmpty(basStation)){
basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
.apply("station_alias != '[]'") // 涓嶆槸绌烘暟缁�
@@ -286,6 +286,7 @@
missionTaskIssueParam.setTaskPri(task.getSort());
missionTaskIssueParam.setBarcode(task.getBarcode());
missionTaskIssueParam.setTaskNo(task.getTaskCode());
+ missionTaskIssueParam.setStaNoArea(task.getTargSiteAreaNow());
if (missionTaskIssueParam.getType().equals(RcsTaskType.RCS_TASK_TYPE_ENUM_IN.type) && endSign){
missionTaskIssueParam.setLocNo(task.getTargLoc());
missionTaskIssueParam.setSourcestaNo(missionTaskIssueParam.getSourcestaNo());
@@ -345,7 +346,7 @@
.eq(FlowStepInstance::getStatus, (short)0)
.eq(FlowStepInstance::getTaskNo, flowStepInstance.getTaskNo())
.eq(FlowStepInstance::getStepOrder, flowStepInstance.getStepOrder() + 1)
- .eq(FlowStepInstance::getWmsNowTaskStatus, flowStepInstance.getWmsNextTaskStatus()));
+ .eq(FlowStepInstance::getWmsNowTaskStatus, flowStepInstance.getWmsNextTaskStatus()).last("limit 1"));
if (Cools.isEmpty(nextFlowStepInstance)) {
throw new CoolException("浠诲姟鍙�"+task.getTaskCode()+"浠诲姟姝ラ涓㈠け锛侊紒锛�");
}
@@ -453,13 +454,37 @@
|| task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
|| task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
task.setTaskStatus(TaskStsType.COMPLETE_IN.id);
- } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
+ } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)){
+ if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)){
+ task.setTaskStatus(TaskStsType.AWAIT.id);
+ } else {
+ task.setTaskStatus(TaskStsType.COMPLETE_OUT.id);
+ }
+ String targSite = task.getTargSite();
+ BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, targSite));
+ basStation.setUseStatus("F");
+ basStation.setBarcode(task.getBarcode());
+ basStationService.updateById(basStation);
+ } else if (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_CROSS_DOCKING_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_OUT.type)) {
+ || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)) {
+ if (!Cools.isEmpty(task.getResource()) && task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)){
+ task.setTaskStatus(TaskStsType.AWAIT.id);
+ } else {
+ task.setTaskStatus(TaskStsType.WAVE_SEED.id);
+ }
+ } else if (task.getTaskType().equals(TaskType.TASK_TYPE_CROSS_DOCKING_OUT.type)){//澶囪揣
task.setTaskStatus(TaskStsType.COMPLETE_OUT.id);
+ } else if (task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_OUT.type)){
+ task.setTaskStatus(TaskStsType.COMPLETE_OUT.id);
+ String targSite = task.getTargSite();
+ BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, targSite));
+ basStation.setUseStatus("D");
+ basStation.setBarcode(task.getBarcode());
+ basStationService.updateById(basStation);
+ } else {
+ log.error(task.getTaskCode()+":浠诲姟鏃犳硶瀹屾垚");
+ continue;
}
taskService.updateById(task);
}
@@ -482,7 +507,7 @@
// @Scheduled(cron = "0/3 * * * * ?")
public void completeInStock() throws Exception {
try{
- List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id).select(Task::getId));
+ List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().select(Task::getId).eq(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id));
if (tasks.isEmpty()) {
return;
}
@@ -760,7 +785,7 @@
BasStation station = null;
if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
- station = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getTargSite()));
+ station = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getTargSite()).last("limit 1"));
if (Objects.isNull(station)) {
throw new CoolException("绔欑偣涓嶅瓨鍦紒锛�");
}
@@ -771,7 +796,7 @@
Loc locStart = null;
if (task.getTaskType().equals(TaskType.TASK_TYPE_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_EMPTY_OUT.type)) {
- locStart = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
+ locStart = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()).last("limit 1"));
if (Objects.isNull(locStart)) {
throw new CoolException("婧愬簱浣嶄笉瀛樺湪锛侊紒");
}
@@ -790,7 +815,7 @@
task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type) ||
task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
) {
- BasStation stationS = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getOrgSite()));
+ BasStation stationS = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getOrgSite()).last("limit 1"));
if (Objects.isNull(stationS)) {
throw new CoolException("婧愬簱浣嶄笉瀛樺湪锛侊紒");
}
@@ -798,7 +823,7 @@
if (stationS.getType().equals(StationTypeEnum.STATION_TYPE_MUTI.type)) {
taskParams.setSign(LocStsWcsOrOtherType.LOC_STS_TYPE_WCS.type);
} else {
- Loc locEnd = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTargLoc()));
+ Loc locEnd = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTargLoc()).last("limit 1"));
if (Objects.isNull(locEnd)) {
throw new CoolException("婧愬簱浣嶄笉瀛樺湪锛侊紒");
}
@@ -818,7 +843,9 @@
// if (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
// throw new CoolException( "褰撳墠绔欑偣涓嶆槸F.鍦ㄥ簱鐘舵�佺姸鎬侊紒锛�");
// }
- station.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
+ if (!station.getType().equals(0)){
+ station.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
+ }
if (!basStationService.updateById(station)) {
throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
}
@@ -858,7 +885,7 @@
/**绔欑偣闂寸Щ搴撳弬鏁�*/
itemParam.setOriSta(task.getOrgSite()).setDestSta(task.getTargSite());
- BasStation curSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getOrgSite()));
+ BasStation curSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getOrgSite()).last("limit 1"));
if (Objects.isNull(curSta)) {
throw new CoolException("绔欑偣涓嶅瓨鍦紒锛�");
}
@@ -912,7 +939,9 @@
if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
/**濡傛灉鏄櫘閫氱珯鐐癸紝淇敼绔欑偣鐘舵�佷负鍑哄簱棰勭害*/
if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
- station.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
+ if (!station.getType().equals(0)){
+ station.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
+ }
if (!basStationService.updateById(station)) {
throw new CoolException("绔欑偣棰勭害澶辫触锛侊紒");
}
--
Gitblit v1.9.1