opt:增加点位库存表启用状态过滤查询
This commit is contained in:
@@ -102,9 +102,10 @@ public class ZxqTask extends AbstractAcsTask {
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//更新库存记录
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//todo 3.空木箱出库任务中,回调判断装箱区是否存在木箱号对应的子卷,如果存在,就创建搬运任务
|
||||
//todo 3.刘先源的空木箱出库任务完成状态更新时,判断装箱区是否存在木箱号对应的子卷,如果存在,就创建搬运任务
|
||||
//4.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱位,否,什么都不做
|
||||
PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService.getOne(new LambdaUpdateWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false);
|
||||
PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService
|
||||
.getOne(new LambdaUpdateWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false);
|
||||
if (pdmBiSubpackagerelation != null) {
|
||||
//查询目标点位信息
|
||||
BstIvtPackageinfoivt zxqPoint = packageinfoivtService.getOne(new LambdaUpdateWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_code, schBaseTask.getPoint_code2()));
|
||||
|
||||
@@ -62,7 +62,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -98,71 +98,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
private MzhcwTask mzhcwTask;
|
||||
|
||||
|
||||
/**
|
||||
* 成品子卷到达一楼输送线
|
||||
*/
|
||||
@Override
|
||||
public JSONObject sendProductToFirstFloor(JSONObject whereJson) {
|
||||
log.info("sendProductToFirstFloor--------------------------:" + whereJson.toString());
|
||||
JSONObject result = new JSONObject();
|
||||
String task_code1 = whereJson.getString("task_code1");
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(StringUtils.isNotBlank(task_code1), SchBaseTask::getTask_code, task_code1));
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("接口sendProductToFirstFloor,任务号为空!");
|
||||
}
|
||||
// JSONObject whereJson 应该传子卷信息,子卷等级,载具号,任务号,车间号
|
||||
// 先查询满轴缓存位是否有可用库位,有创建搬运任务
|
||||
// 任务完成创建空载具补充到输送线桁架任务,子卷搬运至待检区或或管制区agv任务
|
||||
// 如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发;
|
||||
// 这个情况是有agv任务在搬去待检区或管制区的路上,还没有更新任务状态;需要查询是否有这种任务,等这个任务更新完后,
|
||||
// 再补发之前创建的输送线到满轴缓存位任务;
|
||||
//1.查询满轴缓存位是否有空位
|
||||
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"))
|
||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")).orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||
JSONObject jo = new JSONObject();
|
||||
//todo 添加任务类型
|
||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
|
||||
//一楼到输送线任务的目标点为当前位置,为起点
|
||||
jo.put("point_code1", schBaseTask.getPoint_code2());
|
||||
//任意一个满轴缓存位为终点
|
||||
jo.put("point_code2", bstIvtPackageinfoivtList.get(0).getPoint_code());
|
||||
//获取子卷号
|
||||
jo.put("vehicle_code", whereJson.getString("container_name1"));
|
||||
if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) {
|
||||
jo.put("isSend", true);
|
||||
mzhcwTask.createTask(jo);
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
return result;
|
||||
} else {
|
||||
//满轴缓存位点位
|
||||
List<BstIvtPackageinfoivt> packageinfoivtList = packageinfoivtService.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位")));
|
||||
//todo 查找正在搬运到待检区的任务,假设只有一个,现场其实有多个车正在搬运过去
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//执行中
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
|
||||
.and(
|
||||
r -> r.in(SchBaseTask::getPoint_code1, packageinfoivtList)
|
||||
));
|
||||
// 如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发;
|
||||
List<SchBaseTask> existTaskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//是否存在已创建的目标点相同的未下发的任务
|
||||
.eq(SchBaseTask::getPoint_code2, taskList.get(0).getPoint_code1())
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()));
|
||||
if (CollectionUtils.isEmpty(existTaskList)) {
|
||||
jo.put("point_code2", taskList.get(0).getPoint_code1());
|
||||
jo.put("isSend", false);
|
||||
mzhcwTask.createTask(jo);
|
||||
}
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* task_id:任务标识
|
||||
* task_code:任务编码
|
||||
@@ -1753,4 +1688,72 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 成品子卷到达一楼输送线
|
||||
*/
|
||||
@Override
|
||||
public JSONObject sendProductToFirstFloor(JSONObject whereJson) {
|
||||
log.info("sendProductToFirstFloor--------------------------:" + whereJson.toString());
|
||||
JSONObject result = new JSONObject();
|
||||
String task_code1 = whereJson.getString("task_code1");
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(StringUtils.isNotBlank(task_code1), SchBaseTask::getTask_code, task_code1));
|
||||
if (schBaseTask == null) {
|
||||
throw new BadRequestException("接口sendProductToFirstFloor,任务号为空!");
|
||||
}
|
||||
// JSONObject whereJson 应该传子卷信息,子卷等级,载具号,任务号,车间号
|
||||
// 先查询满轴缓存位是否有可用库位,有创建搬运任务
|
||||
// 任务完成创建空载具补充到输送线桁架任务,子卷搬运至待检区或或管制区agv任务
|
||||
// 如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发;
|
||||
// 这个情况是有agv任务在搬去待检区或管制区的路上,还没有更新任务状态;需要查询是否有这种任务,等这个任务更新完后,
|
||||
// 再补发之前创建的输送线到满轴缓存位任务;
|
||||
//1.查询满轴缓存位是否有空位
|
||||
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"))
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")).orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||
JSONObject jo = new JSONObject();
|
||||
//todo 添加任务类型
|
||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
|
||||
//一楼到输送线任务的目标点为当前位置,为起点
|
||||
jo.put("point_code1", schBaseTask.getPoint_code2());
|
||||
//任意一个满轴缓存位为终点
|
||||
jo.put("point_code2", bstIvtPackageinfoivtList.get(0).getPoint_code());
|
||||
//获取子卷号
|
||||
jo.put("vehicle_code", whereJson.getString("container_name1"));
|
||||
if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) {
|
||||
jo.put("isSend", true);
|
||||
mzhcwTask.createTask(jo);
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
return result;
|
||||
} else {
|
||||
//满轴缓存位点位
|
||||
List<BstIvtPackageinfoivt> packageinfoivtList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位")));
|
||||
//todo 查找正在搬运到待检区的任务,假设只有一个,现场其实有多个车正在搬运过去
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//执行中
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
|
||||
.and(
|
||||
r -> r.in(SchBaseTask::getPoint_code1, packageinfoivtList)
|
||||
));
|
||||
// 如果满轴位没有可用的空点位,先创建一个桁架任务但是不下发,等这边空出来点位,判断是否有这种桁架任务然后补发;
|
||||
List<SchBaseTask> existTaskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
//是否存在已创建的目标点相同的未下发的任务
|
||||
.eq(SchBaseTask::getPoint_code2, taskList.get(0).getPoint_code1())
|
||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()));
|
||||
if (CollectionUtils.isEmpty(existTaskList)) {
|
||||
jo.put("point_code2", taskList.get(0).getPoint_code1());
|
||||
jo.put("isSend", false);
|
||||
mzhcwTask.createTask(jo);
|
||||
}
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1587,7 +1587,8 @@ public class MesToLmsServiceImpl implements MesToLmsService {
|
||||
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
|
||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区"))
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")).orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||
//子卷信息
|
||||
BstIvtPackageinfoivt containerInfo =
|
||||
bstIvtPackageinfoivtList.stream().filter(r -> r.getContainer_name().equals(containerName)).collect(Collectors.toList()).get(0);
|
||||
|
||||
Reference in New Issue
Block a user