Merge branch 'b_lms' of http://121.40.234.130:8899/root/lanzhouhailiang_one into b_lms
This commit is contained in:
@@ -91,6 +91,12 @@ public class TwoOutBoxTask extends AbstractAcsTask {
|
|||||||
jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定"));
|
jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定"));
|
||||||
jsonAttr.put("storagevehicle_code","");
|
jsonAttr.put("storagevehicle_code","");
|
||||||
attrTab.update(jsonAttr);
|
attrTab.update(jsonAttr);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 取消
|
// 取消
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ public class DjqTask extends AbstractAcsTask {
|
|||||||
.is_send(isSend ? "1" : "0")
|
.is_send(isSend ? "1" : "0")
|
||||||
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
||||||
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
||||||
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
||||||
.build();
|
.build();
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
BeanUtils.copyProperties(schBaseTaskVo, task);
|
BeanUtils.copyProperties(schBaseTaskVo, task);
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ public class GzqTask extends AbstractAcsTask {
|
|||||||
.is_send(isSend ? "1" : "0")
|
.is_send(isSend ? "1" : "0")
|
||||||
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
||||||
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
||||||
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
||||||
.build();
|
.build();
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
BeanUtils.copyProperties(schBaseTaskVo, task);
|
BeanUtils.copyProperties(schBaseTaskVo, task);
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ public class KzjhcwTask extends AbstractAcsTask {
|
|||||||
.is_send(isSend ? "1" : "0")
|
.is_send(isSend ? "1" : "0")
|
||||||
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
||||||
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
||||||
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
||||||
.build();
|
.build();
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
BeanUtils.copyProperties(schBaseTaskVo, task);
|
BeanUtils.copyProperties(schBaseTaskVo, task);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
package org.nl.b_lms.sch.tasks.first_floor_area;
|
package org.nl.b_lms.sch.tasks.first_floor_area;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.BooleanUtil;
|
import cn.hutool.core.util.BooleanUtil;
|
||||||
@@ -28,6 +29,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum;
|
|||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -72,7 +74,6 @@ public class MzhcwTask extends AbstractAcsTask {
|
|||||||
private SsxDjwTask ssxDjwTask;
|
private SsxDjwTask ssxDjwTask;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AcsTaskDto> addTask() {
|
public List<AcsTaskDto> addTask() {
|
||||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||||
@@ -106,7 +107,7 @@ public class MzhcwTask extends AbstractAcsTask {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq( SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
|
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
|
||||||
if (schBaseTask == null) {
|
if (schBaseTask == null) {
|
||||||
throw new BadRequestException("输送线点位 -> 满轴缓存位更新接口任务号为空!");
|
throw new BadRequestException("输送线点位 -> 满轴缓存位更新接口任务号为空!");
|
||||||
}
|
}
|
||||||
@@ -133,98 +134,100 @@ public class MzhcwTask extends AbstractAcsTask {
|
|||||||
throw new BadRequestException("找不到子卷信息!");
|
throw new BadRequestException("找不到子卷信息!");
|
||||||
}
|
}
|
||||||
//子卷等级
|
//子卷等级
|
||||||
String level = containerInfo.getLevel();
|
String level = containerInfo.getLevel() == null ? "1" : containerInfo.getLevel();
|
||||||
if (Arrays.stream(ContainerLevelEnum.values()).noneMatch(enumItem -> enumItem.getCode().equals(level))) {
|
// if (Arrays.stream(ContainerLevelEnum.values()).noneMatch(enumItem -> enumItem.getCode().equals(level))) {
|
||||||
throw new BadRequestException("非法的子卷等级!");
|
// throw new BadRequestException("非法的子卷等级!");
|
||||||
}
|
// }
|
||||||
//查询待检区和管制区库位情况
|
//查询待检区和管制区库位情况
|
||||||
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
|
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
|
||||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||||
.orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
.orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||||
JSONObject toDjqTask = new JSONObject();
|
// JSONObject toDjqTask = new JSONObject();
|
||||||
//获取子卷号
|
// //获取子卷号
|
||||||
toDjqTask.put("vehicle_code", containerInfo.getContainer_name());
|
// toDjqTask.put("vehicle_code", containerInfo.getContainer_name());
|
||||||
// 判断子卷等级属于待检区还是管制区,创建满轴缓存位到待检区或管制区的agv任务
|
// // 判断子卷等级属于待检区还是管制区,创建满轴缓存位到待检区或管制区的agv任务
|
||||||
if (Stream.of(ContainerLevelEnum.BEST, ContainerLevelEnum.WELL, ContainerLevelEnum.COMMON).anyMatch(enumItem -> enumItem.getCode().equals(level))) {
|
// if (Stream.of(ContainerLevelEnum.BEST, ContainerLevelEnum.WELL, ContainerLevelEnum.COMMON).anyMatch(enumItem -> enumItem.getCode().equals(level))) {
|
||||||
List<BstIvtPackageinfoivt> djqPointList = bstIvtPackageinfoivtList.stream()
|
// List<BstIvtPackageinfoivt> djqPointList = bstIvtPackageinfoivtList.stream()
|
||||||
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status())
|
// .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("待检区").equals(r.getPoint_status())
|
||||||
&& PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList());
|
// && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList());
|
||||||
if (CollectionUtils.isEmpty(djqPointList)) {
|
// if (CollectionUtils.isEmpty(djqPointList)) {
|
||||||
throw new BadRequestException("待检区暂无空余库位!");
|
// throw new BadRequestException("待检区暂无空余库位!");
|
||||||
}
|
// }
|
||||||
toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"));
|
// toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"));
|
||||||
toDjqTask.put("point_code1", schBaseTask.getPoint_code2());
|
// toDjqTask.put("point_code1", schBaseTask.getPoint_code2());
|
||||||
toDjqTask.put("point_code2", djqPointList.get(0).getPoint_code());
|
// toDjqTask.put("point_code2", djqPointList.get(0).getPoint_code());
|
||||||
djqTask.createTask(toDjqTask);
|
// djqTask.createTask(toDjqTask);
|
||||||
} else if (Stream.of(ContainerLevelEnum.REWORK, ContainerLevelEnum.CONTROL).anyMatch(enumItem -> enumItem.getCode().equals(level))) {
|
// } else if (Stream.of(ContainerLevelEnum.REWORK, ContainerLevelEnum.CONTROL).anyMatch(enumItem -> enumItem.getCode().equals(level))) {
|
||||||
List<BstIvtPackageinfoivt> gkqPointList = bstIvtPackageinfoivtList.stream()
|
// List<BstIvtPackageinfoivt> gkqPointList = bstIvtPackageinfoivtList.stream()
|
||||||
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("管制区").equals(r.getPoint_status())
|
// .filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("管制区").equals(r.getPoint_status())
|
||||||
&& PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList());
|
// && PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList());
|
||||||
if (CollectionUtils.isEmpty(gkqPointList)) {
|
// if (CollectionUtils.isEmpty(gkqPointList)) {
|
||||||
throw new BadRequestException("管控区暂无空余库位!");
|
// throw new BadRequestException("管控区暂无空余库位!");
|
||||||
}
|
// }
|
||||||
toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->管制区"));
|
// toDjqTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->管制区"));
|
||||||
toDjqTask.put("point_code1", schBaseTask.getPoint_code2());
|
// toDjqTask.put("point_code1", schBaseTask.getPoint_code2());
|
||||||
toDjqTask.put("point_code2", gkqPointList.get(0).getPoint_code());
|
// toDjqTask.put("point_code2", gkqPointList.get(0).getPoint_code());
|
||||||
gzqTask.createTask(toDjqTask);
|
// gzqTask.createTask(toDjqTask);
|
||||||
}
|
// }
|
||||||
//4.创建空载具到输送线任务
|
//4.创建空载具到输送线任务
|
||||||
List<BstIvtPackageinfoivt> kzjPointList = bstIvtPackageinfoivtList.stream()
|
if (schBaseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))) {
|
||||||
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status())
|
List<BstIvtPackageinfoivt> kzjPointList = bstIvtPackageinfoivtList.stream()
|
||||||
&& PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList());
|
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status())
|
||||||
JSONObject toSsxTask = new JSONObject();
|
&& PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList());
|
||||||
toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
JSONObject toSsxTask = new JSONObject();
|
||||||
toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
|
toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
||||||
toSsxTask.put("vehicle_code", containerInfo.getContainer_name());
|
toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
|
||||||
//判断空载具缓存位是否有空载具库存,有就叫agv去任一一个位置搬空载具
|
toSsxTask.put("vehicle_code", containerInfo.getContainer_name());
|
||||||
if (CollectionUtils.isNotEmpty(kzjPointList)) {
|
//判断空载具缓存位是否有空载具库存,有就叫桁架去任一一个位置搬空载具
|
||||||
//直接创建搬运空载具任务
|
if (CollectionUtils.isNotEmpty(kzjPointList)) {
|
||||||
toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code());
|
//直接创建搬运空载具任务
|
||||||
//终点为输送线点位
|
toSsxTask.put("point_code1", kzjPointList.get(0).getPoint_code());
|
||||||
toSsxTask.put("point_code2", schBaseTask.getPoint_code1());
|
//终点为输送线点位
|
||||||
ssxDjwTask.createTask(toSsxTask);
|
toSsxTask.put("point_code2", schBaseTask.getPoint_code1());
|
||||||
} else {
|
ssxDjwTask.createTask(toSsxTask);
|
||||||
//空载具缓存位没有可用的库存:判断是否有正在搬运空载具过来的任务,有的话不创建
|
} else {
|
||||||
//没有的话创建搬运空载具任务, 当任务完成的时候,补发桁架任务。
|
//空载具缓存位没有可用的库存:判断是否有正在搬运空载具过来的任务,有的话不创建
|
||||||
List<BstIvtPackageinfoivt> packageinfoivtList = packageinfoivtService.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
//没有的话创建搬运空载具任务, 当任务完成的时候,补发桁架任务。
|
||||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"))
|
List<BstIvtPackageinfoivt> packageinfoivtList = packageinfoivtService.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")));
|
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"))
|
||||||
//todo 查找正在搬运到待检区的任务,假设只有一个
|
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用")));
|
||||||
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
//todo 查找正在搬运到待检区的任务,假设只有一个
|
||||||
//执行中
|
List<SchBaseTask> taskList = taskService.list(new LambdaUpdateWrapper<SchBaseTask>()
|
||||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
|
//执行中
|
||||||
.and(
|
.eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode())
|
||||||
r -> r.in(SchBaseTask::getPoint_code2, packageinfoivtList)
|
.and(
|
||||||
));
|
r -> r.in(SchBaseTask::getPoint_code2, packageinfoivtList)
|
||||||
//没有正在搬运空载具过来的任务,创建搬运空载具任务
|
));
|
||||||
if (CollectionUtils.isEmpty(taskList)) {
|
//没有正在搬运空载具过来的任务,创建搬运空载具任务
|
||||||
//查询待检区或管制区有空载具的
|
if (CollectionUtils.isEmpty(taskList)) {
|
||||||
List<BstIvtPackageinfoivt> djqOrGzqPointList = packageinfoivtService
|
//查询待检区或管制区有空载具的
|
||||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
List<BstIvtPackageinfoivt> djqOrGzqPointList = packageinfoivtService
|
||||||
.in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区"))
|
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")).orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
.in(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.POINT_STATUS.code("管制区"))
|
||||||
List<BstIvtPackageinfoivt> djqPointList = djqOrGzqPointList.stream().filter(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList());
|
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具")).orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||||
//待检区库位有空载具
|
List<BstIvtPackageinfoivt> djqPointList = djqOrGzqPointList.stream().filter(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList());
|
||||||
if (CollectionUtils.isNotEmpty(djqPointList)) {
|
//待检区库位有空载具
|
||||||
List<BstIvtPackageinfoivt> kzjPoint = packageinfoivtList.stream()
|
|
||||||
.filter(r -> PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status()))
|
|
||||||
.sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
//创建搬运空载具任务
|
|
||||||
JSONObject toKzjhcwTask = new JSONObject();
|
|
||||||
if (CollectionUtils.isNotEmpty(djqPointList)) {
|
if (CollectionUtils.isNotEmpty(djqPointList)) {
|
||||||
//优先去待检区取空载具
|
List<BstIvtPackageinfoivt> kzjPoint = packageinfoivtList.stream()
|
||||||
toKzjhcwTask.put("point_code1", djqPointList.get(0).getPoint_code());
|
.filter(r -> PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status()))
|
||||||
} else {
|
.sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
//创建搬运空载具任务
|
||||||
|
JSONObject toKzjhcwTask = new JSONObject();
|
||||||
|
if (CollectionUtils.isNotEmpty(djqPointList)) {
|
||||||
|
//优先去待检区取空载具
|
||||||
|
toKzjhcwTask.put("point_code1", djqPointList.get(0).getPoint_code());
|
||||||
|
} else {
|
||||||
|
|
||||||
toKzjhcwTask.put("point_code1", djqOrGzqPointList.get(0).getPoint_code());
|
toKzjhcwTask.put("point_code1", djqOrGzqPointList.get(0).getPoint_code());
|
||||||
|
}
|
||||||
|
toKzjhcwTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("取空(待检区->空载具缓存位)"));
|
||||||
|
//送到到任意空载具缓存位
|
||||||
|
toKzjhcwTask.put("point_code2", kzjPoint.get(0).getPoint_code());
|
||||||
|
toKzjhcwTask.put("vehicle_code", containerInfo.getContainer_name());
|
||||||
|
kzjhcwTask.createTask(toKzjhcwTask);
|
||||||
}
|
}
|
||||||
toKzjhcwTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("取空(待检区->空载具缓存位)"));
|
|
||||||
//送到到任意空载具缓存位
|
|
||||||
toKzjhcwTask.put("point_code2", kzjPoint.get(0).getPoint_code());
|
|
||||||
toKzjhcwTask.put("vehicle_code", containerInfo.getContainer_name());
|
|
||||||
kzjhcwTask.createTask(toKzjhcwTask);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -280,7 +283,7 @@ public class MzhcwTask extends AbstractAcsTask {
|
|||||||
.is_send(isSend ? "1" : "0")
|
.is_send(isSend ? "1" : "0")
|
||||||
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
||||||
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
||||||
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
||||||
.build();
|
.build();
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
BeanUtils.copyProperties(schBaseTaskVo, task);
|
BeanUtils.copyProperties(schBaseTaskVo, task);
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ public class SsxDjwTask extends AbstractAcsTask {
|
|||||||
.is_send(isSend ? "1" : "0")
|
.is_send(isSend ? "1" : "0")
|
||||||
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
||||||
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
||||||
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
||||||
.build();
|
.build();
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
BeanUtils.copyProperties(schBaseTaskVo, task);
|
BeanUtils.copyProperties(schBaseTaskVo, task);
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import org.nl.wms.sch.manage.TaskStatusEnum;
|
|||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -49,7 +50,6 @@ import java.util.stream.Collectors;
|
|||||||
public class ZxDjwTask extends AbstractAcsTask {
|
public class ZxDjwTask extends AbstractAcsTask {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DjqTask djqTask;
|
private DjqTask djqTask;
|
||||||
@Resource
|
@Resource
|
||||||
@@ -202,7 +202,7 @@ public class ZxDjwTask extends AbstractAcsTask {
|
|||||||
.is_send(isSend ? "1" : "0")
|
.is_send(isSend ? "1" : "0")
|
||||||
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
.acs_task_type(StrUtil.isEmpty(form.getString("acs_task_type")) ? PackageInfoIvtEnum.ACS_TASK_TYPE.code("agv任务") : form.getString("acs_task_type"))
|
||||||
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
.task_status(StrUtil.isEmpty(form.getString("task_status")) ? TaskStatusEnum.START_AND_POINT.getCode() : form.getString("task_status"))
|
||||||
//.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
.product_area(StrUtil.isEmpty(form.getString("product_area")) ? "B2" : form.getString("product_area"))
|
||||||
.build();
|
.build();
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
BeanUtils.copyProperties(schBaseTaskVo, task);
|
BeanUtils.copyProperties(schBaseTaskVo, task);
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public enum PackageInfoIvtEnum {
|
|||||||
|
|
||||||
//任务类型
|
//任务类型
|
||||||
TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010701", "满轴缓存位->待检区", "010702", "满轴缓存位->管制区", "010703", "放空(空载具缓存位->输送线)",
|
TASK_TYPE(MapOf.of("输送线->满轴缓存位", "010701", "满轴缓存位->待检区", "010702", "满轴缓存位->管制区", "010703", "放空(空载具缓存位->输送线)",
|
||||||
"010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709","放空(装箱区->待检区)", "010710")),
|
"010704", "取空(待检区->空载具缓存位)", "010705", "待检区->管制区", "010706","管制区->待检区", "010707","待检区->装箱区", "010708", "装箱区->装箱对接位", "010709","放空(装箱区->待检区)", "010710","输送线四个点任务", "010711")),
|
||||||
|
|
||||||
//ACS任务类型
|
//ACS任务类型
|
||||||
ACS_TASK_TYPE(MapOf.of("agv任务", "1", "桁架任务", "6")),
|
ACS_TASK_TYPE(MapOf.of("agv任务", "1", "桁架任务", "6")),
|
||||||
|
|||||||
@@ -65,6 +65,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
|
||||||
@@ -1738,25 +1739,35 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) {
|
if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) {
|
||||||
throw new BadRequestException("接口sendProductToFirstFloor,任务号或子卷号参数为空!");
|
throw new BadRequestException("接口sendProductToFirstFloor,任务号或子卷号参数为空!");
|
||||||
|
|
||||||
}
|
}
|
||||||
//1.查询满轴缓存位是否有空位
|
//1.查询满轴缓存位是否有空位
|
||||||
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
|
List<BstIvtPackageinfoivt> bstIvtPackageinfoivtList = packageinfoivtService
|
||||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"))
|
.orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
||||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
List<BstIvtPackageinfoivt> mzPointList = bstIvtPackageinfoivtList.stream()
|
||||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空")).orderByAsc(BstIvtPackageinfoivt::getSort_seq));
|
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位").equals(r.getPoint_status())
|
||||||
|
&& PackageInfoIvtEnum.IVT_STATUS.code("空").equals(r.getIvt_status())).collect(Collectors.toList());
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
|
|
||||||
jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
||||||
//todo 获取子卷号,子卷号就是载具号?
|
|
||||||
jo.put("vehicle_code", whereJson.getString("material_barcode"));
|
jo.put("vehicle_code", whereJson.getString("material_barcode"));
|
||||||
//2.创建输送线->满轴位桁架任务,
|
//2.创建输送线->满轴位桁架任务,
|
||||||
String point_code1 = whereJson.getString("device_code");
|
String point_code1 = whereJson.getString("device_code");
|
||||||
jo.put("point_code1", point_code1);
|
jo.put("point_code1", point_code1);
|
||||||
if (CollectionUtils.isNotEmpty(bstIvtPackageinfoivtList)) {
|
if (CollectionUtils.isNotEmpty(mzPointList)) {
|
||||||
//任意一个满轴缓存位为终点
|
//任意一个满轴缓存位为终点
|
||||||
jo.put("point_code2", bstIvtPackageinfoivtList.get(0).getPoint_code());
|
jo.put("point_code2", mzPointList.get(0).getPoint_code());
|
||||||
|
List<BstIvtPackageinfoivt> kzjPointList = bstIvtPackageinfoivtList.stream()
|
||||||
|
.filter(r -> PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位").equals(r.getPoint_status())
|
||||||
|
&& PackageInfoIvtEnum.IVT_STATUS.code("空载具").equals(r.getIvt_status())).collect(Collectors.toList());
|
||||||
|
//空载具缓存位有空载具
|
||||||
|
if (CollectionUtils.isNotEmpty(kzjPointList)) {
|
||||||
|
jo.put("point_code3", kzjPointList.get(0).getPoint_code());
|
||||||
|
//终点为输送线点位
|
||||||
|
jo.put("point_code4", whereJson.getString("device_code"));
|
||||||
|
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"));
|
||||||
|
} else {
|
||||||
|
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
|
||||||
|
}
|
||||||
jo.put("is_send", true);
|
jo.put("is_send", true);
|
||||||
mzhcwTask.createTask(jo);
|
mzhcwTask.createTask(jo);
|
||||||
result.put("status", HttpStatus.OK.value());
|
result.put("status", HttpStatus.OK.value());
|
||||||
@@ -1875,9 +1886,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
String material_barcode = "";
|
String material_barcode = "";
|
||||||
for (int i = 0; i < resultJSONArray.size(); i++) {
|
for (int i = 0; i < resultJSONArray.size(); i++) {
|
||||||
JSONObject resultObj = resultJSONArray.getJSONObject(i);
|
JSONObject resultObj = resultJSONArray.getJSONObject(i);
|
||||||
if (i==0){
|
if (i == 0) {
|
||||||
material_barcode = resultObj.getString("container_name");
|
material_barcode = resultObj.getString("container_name");
|
||||||
}else {
|
} else {
|
||||||
material_barcode += "," + resultObj.getString("container_name");
|
material_barcode += "," + resultObj.getString("container_name");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user