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", 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()));
|
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.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱位,否,什么都不做
|
//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) {
|
if (pdmBiSubpackagerelation != null) {
|
||||||
//查询目标点位信息
|
//查询目标点位信息
|
||||||
BstIvtPackageinfoivt zxqPoint = packageinfoivtService.getOne(new LambdaUpdateWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_code, schBaseTask.getPoint_code2()));
|
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.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -98,71 +98,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
private MzhcwTask mzhcwTask;
|
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_id:任务标识
|
||||||
* task_code:任务编码
|
* 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<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
|
||||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||||
.in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区"))
|
.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 =
|
BstIvtPackageinfoivt containerInfo =
|
||||||
bstIvtPackageinfoivtList.stream().filter(r -> r.getContainer_name().equals(containerName)).collect(Collectors.toList()).get(0);
|
bstIvtPackageinfoivtList.stream().filter(r -> r.getContainer_name().equals(containerName)).collect(Collectors.toList()).get(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user