AND t.create_time #{whereJson.end_time}
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dto/SchBaseTaskQuery.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dto/SchBaseTaskQuery.java
index 05bf7fc7..8f1671dd 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dto/SchBaseTaskQuery.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dto/SchBaseTaskQuery.java
@@ -26,7 +26,7 @@ public class SchBaseTaskQuery implements Serializable {
private String unFinished;
private String allBoxOut;
private String config_code;
-
- private String is_delete="0";
+ private String remark;
+ private String is_delete;
}
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java
index 1ae147b7..1f40c070 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java
@@ -51,6 +51,7 @@ import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
/**
*
@@ -84,21 +85,16 @@ public class SchBaseTaskServiceImpl extends ServiceImpl queryAll(SchBaseTaskQuery whereJson, PageQuery page) {
- //默认显示未下发的拣选任务
- if ("84".equals(whereJson.getTask_type())) {
- if (whereJson.getMore_status() == null) {
- whereJson.setMore_status("10");
- }
- whereJson.setAllBoxOut("1");
- whereJson.setTask_type(null);
- }
- List collect = ObjectUtil.isNotEmpty(whereJson.getMore_status())
- ? Arrays.stream(whereJson.getMore_status().split(",")).collect(Collectors.toList()) : null;
- if (collect != null) {
- if (collect.contains("")) {
- collect = null;
- whereJson.setUnFinished(StatusEnum.FORM_STATUS.code("执行中"));
- }
+ //无任何查询条件时,默认显示未完成的任务
+ if (Stream.of(
+ whereJson.getTask_id(), whereJson.getTask_code(), whereJson.getTask_type(),
+ whereJson.getVehicle_code(), whereJson.getPoint_code1(), whereJson.getPoint_code2(),
+ whereJson.getPoint_code3(), whereJson.getPoint_code4(), whereJson.getMaterial_code(),
+ whereJson.getTask_step(), whereJson.getStart_time(), whereJson.getEnd_time(),
+ whereJson.getMore_status(), whereJson.getUnFinished(), whereJson.getAllBoxOut(),
+ whereJson.getConfig_code(), whereJson.getRemark(), whereJson.getIs_delete()
+ ).allMatch(v -> v == null || (v).trim().isEmpty())) {
+ whereJson.setUnFinished(StatusEnum.FORM_STATUS.code("完成"));
}
List taskTypes = ObjectUtil.isNotEmpty(whereJson.getTask_type())
? Arrays.stream(whereJson.getTask_type().split(",")).collect(Collectors.toList()) : null;
@@ -106,6 +102,22 @@ public class SchBaseTaskServiceImpl extends ServiceImpl collect = ObjectUtil.isNotEmpty(whereJson.getMore_status())
+ ? Arrays.stream(whereJson.getMore_status().split(",")).collect(Collectors.toList()) : null;
+ if (collect != null) {
+ if (collect.contains("")) {
+ collect = null;
+ whereJson.setUnFinished(StatusEnum.FORM_STATUS.code("完成"));
+ }
}
IPage pages = new Page<>(page.getPage() + 1, page.getSize());
pages = this.baseMapper.selectPageLeftJoin(pages, whereJson, collect,taskTypes);
@@ -194,11 +206,12 @@ public class SchBaseTaskServiceImpl extends ServiceImpl().eq("task_code", task_code));
- if (task==null){
+ if (task == null) {
return;
}
- if (task.getStatus().equals(StatusEnum.FORM_STATUS.code("完成"))) {
- throw new BadRequestException("当前任务已完成");
+ param.put("group_code", task.getGroup_code());
+ if (task.getStatus().equals(StatusEnum.FORM_STATUS.code("完成")) || task.getStatus().equals(StatusEnum.FORM_STATUS.code("取消")) || task.getStatus().equals(StatusEnum.FORM_STATUS.code("强制完成"))) {
+ throw new BadRequestException("当前任务已完成或被取消");
}
if (param.getString("status").equals(StatusEnum.FORM_STATUS.code("完成"))) {
List vehicleMaterList = iMdPbVehicleMaterService.list(new QueryWrapper()
@@ -308,26 +321,34 @@ public class SchBaseTaskServiceImpl extends ServiceImpl()
+ List vehicleList = iMdPbVehicleMaterService.list(new QueryWrapper()
.eq("vehicle_code", task.getVehicle_code())
- .eq("is_delete",false));
- if (vehicleCode!=null){
- iActRuExecutionService.update(new UpdateWrapper()
- .set("status", StatusEnum.FLOW_STATUS.code("异常完成"))
- .set("remark", task.getVehicle_code() + "载具空出:货位" + struct_code)
- .eq("proc_inst_id", vehicleCode.getProc_inst_id()));
+ .eq("is_delete", false));
+ if (ObjectUtils.isNotEmpty(vehicleList)) {
+ //非混料托盘
+ if (vehicleList.size() == 1) {
+ //清除库位库存
+ iStIvtStructattrService.update(new UpdateWrapper()
+ .set("update_time", DateUtil.now())
+ .set("vehicle_code", null)
+ .set("lock_type", StatusEnum.LOCK.code("无锁"))
+ .set("remark", struct_code + "空出异常")
+ .eq("struct_code", struct_code));
+ }
+ //流程异常完成
+ vehicleList = vehicleList.stream().filter(r -> StringUtils.isNotBlank(r.getProc_inst_id())).collect(Collectors.toList());
+ if (ObjectUtils.isNotEmpty(vehicleList)) {
+ iActRuExecutionService.update(new UpdateWrapper()
+ .set("status", StatusEnum.FLOW_STATUS.code("异常完成"))
+ .set("remark", task.getVehicle_code() + "载具空出:货位" + struct_code)
+ .eq("proc_inst_id", vehicleList.get(0).getProc_inst_id()));
+ }
+ this.update(new UpdateWrapper()
+ .set("status", StatusEnum.FORM_STATUS.code("取消"))
+ .set("remark", struct_code + "空出异常")
+ .set("update_time", DateUtil.now())
+ .eq("task_code", task_code));
}
- iStIvtStructattrService.update(new UpdateWrapper()
- .set("update_time", DateUtil.now())
- .set("vehicle_code", null)
- .set("lock_type", StatusEnum.LOCK.code("无锁"))
- .set("remark", struct_code + "空出异常")
- .eq("struct_code", struct_code));
- this.update(new UpdateWrapper()
- .set("status", StatusEnum.FORM_STATUS.code("取消"))
- .set("remark", struct_code + "空出异常")
- .set("update_time", DateUtil.now())
- .eq("task_code", task_code));
break;
case "rm":
return rm(stIvtStructattr, task);
@@ -390,27 +411,20 @@ public class SchBaseTaskServiceImpl extends ServiceImpl()
- .set("update_time", DateUtil.now())
- .set("vehicle_code", null)
- .set("remark", "该货位进行移库任务号为:" + task.getTask_code() + "时,目标货位:" + task.getPoint_code2() + "为深位,存在浅位:"+stIvtStructattr.getStruct_code()+"阻挡,清除载具号,即将重新分配新目标货位。")
- .eq("struct_code", task.getPoint_code1()));
- }
//查询分配规则
Map map = SpringContextHolder.getBean(DecisionHandler.class)
.dispenseTransa(ListOf.of("limitStorage", "depthPriority", "alleyAve")
, new JSONObject(MapOf.of("stor_code", stIvtStructattr.getStor_code()
, "vehicle_code", task.getVehicle_code(),
- "start_point", task.getPoint_code1(), "errorTask", "errorTask")));
+ "start_point", task.getPoint_code1(), "errorTask", "errorTask", "rm", "rm")));
String new_struct_code = ((Map) map.get("form_data")).get("end_struct_code");
iActRuExecutionService.update(new UpdateWrapper()
- .set("remark", stIvtStructattr.getStruct_code() + "入满异常重新分配货位" + new_struct_code)
+ .set("remark", stIvtStructattr.getStruct_code() + "入库阻挡异常重新分配货位" + new_struct_code)
.eq("proc_inst_id", vehicleCode.getProc_inst_id()));
+ log.error("任务:{},载具号:{},原终点:{}入库阻挡异常重新分配货位:{}", task_code, task.getVehicle_code(), task.getPoint_code2(), new_struct_code);
this.update(new UpdateWrapper()
.set("point_code2", new_struct_code)
- .set("remark", stIvtStructattr.getStruct_code() + "入满异常重新分配货位" + new_struct_code)
+ .set("remark", stIvtStructattr.getStruct_code() + "入库阻挡异常重新分配货位" + new_struct_code)
.eq("task_code", task_code));
JSONObject result = new JSONObject();
result.put("point_code2", new_struct_code);
@@ -418,31 +432,49 @@ public class SchBaseTaskServiceImpl extends ServiceImpl()
+ //阻挡位锁定,如果无载具,那么锁定为异常库位,需要人工查看库位情况
+ if (StringUtils.isEmpty(stIvtStructattr.getVehicle_code())) {
+ iStIvtStructattrService.update(new UpdateWrapper()
+ .eq("struct_code", stIvtStructattr.getStruct_code())
+ .set("lock_type", StatusEnum.LOCK.code("异常锁定"))
+ .set("update_time", DateUtil.now())
+ .set("remark", "入满异常:" + task_code)
+ .set("vehicle_code", task_code + "_ZD_" + org.nl.common.utils.IdUtil.getStringId()));
+ }
+ List vehicleList = iMdPbVehicleMaterService
+ .list(new QueryWrapper()
.eq("vehicle_code", task.getVehicle_code())
- .eq("is_delete",false));
+ .eq("is_delete", false));
//查询分配规则
iStIvtStructattrService.update(new UpdateWrapper()
.eq("struct_code", stIvtStructattr.getStruct_code())
.set("lock_type", StatusEnum.LOCK.code("异常锁定"))
.set("update_time", DateUtil.now())
.set("remark", "入满异常:" + task_code)
- .set("vehicle_code", task_code+"_ZD_"+org.nl.common.utils.IdUtil.getStringId()));
+ .set("vehicle_code", task_code + "_ZD_" + org.nl.common.utils.IdUtil.getStringId()));
+ if (task.getTask_type().equals(StatusEnum.IOBILL_TYPE_MOVE.code("异常位移库"))) {
+ iStIvtStructattrService.update(new UpdateWrapper()
+ .eq("struct_code", task.getPoint_code1())
+ .set("update_time", DateUtil.now())
+ .set("remark", "异常位移库分配库位,出现二次满入,清除起点载具信息:" + task.getVehicle_code() + ",任务号为:" + task_code)
+ .set("vehicle_code", null));
+ }
Map map = SpringContextHolder.getBean(DecisionHandler.class)
- .dispenseTransa(ListOf.of("limitStorage","depthPriority","alleyAve"), new JSONObject(MapOf.of("stor_code", stIvtStructattr.getStor_code()
- ,"vehicle_code",task.getVehicle_code(),
- "start_point",task.getPoint_code1(),"errorTask","errorTask")));
+ .dispenseTransa(ListOf.of("limitStorage", "depthPriority", "alleyAve"), new JSONObject(MapOf.of("stor_code", stIvtStructattr.getStor_code()
+ , "vehicle_code", task.getVehicle_code(),
+ "start_point", task.getPoint_code1(), "errorTask", "errorTask", "taskType", task.getTask_type())));
String new_struct_code = ((Map) map.get("form_data")).get("end_struct_code");
- if (vehicleCode!=null){
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(vehicleList)) {
iActRuExecutionService.update(new UpdateWrapper()
.set("remark", stIvtStructattr.getStruct_code() + "入满异常重新分配货位" + new_struct_code)
- .eq("proc_inst_id", vehicleCode.getProc_inst_id()));
+ .eq("proc_inst_id", vehicleList.get(0).getProc_inst_id()));
}
+ log.error("任务:{},载具号:{},原终点:{}入满异常重新分配货位:{}", task_code, task.getVehicle_code(), task.getPoint_code2(), new_struct_code);
this.update(new UpdateWrapper()
.set("point_code2", new_struct_code)
.set("remark", stIvtStructattr.getStruct_code() + "入满异常重新分配货位" + new_struct_code)
.eq("task_code", task_code));
+
JSONObject result = new JSONObject();
result.put("point_code2", new_struct_code);
return result;
diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/acs/service/AcsToWmsService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/acs/service/AcsToWmsService.java
index d85f7087..d2212868 100644
--- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/acs/service/AcsToWmsService.java
+++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/acs/service/AcsToWmsService.java
@@ -1,8 +1,10 @@
package org.nl.wms.external_system.acs.service;
+import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.exception.BadRequestException;
import org.nl.common.enums.StatusEnum;
import org.nl.wms.dispatch_manage.point.service.ISchBasePointService;
@@ -30,6 +32,7 @@ import java.util.Map;
}
*/
@Service
+@Slf4j
public class AcsToWmsService {
@@ -43,12 +46,19 @@ public class AcsToWmsService {
public String applyTask(String service, String type, JSONObject data, InteracteDto