Merge remote-tracking branch 'origin/master_merge' into master_merge
This commit is contained in:
@@ -1,15 +1,11 @@
|
||||
package org.nl.b_lms.sch.point.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
|
||||
|
||||
@@ -61,7 +57,13 @@ public interface IbstIvtPackageinfoivtService extends IService<BstIvtPackageinfo
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 根据点位类型查询库存
|
||||
* @param ivtType 点位类型
|
||||
* @param ivtStatus 库存状态
|
||||
* @param sortType 排序
|
||||
*/
|
||||
List<BstIvtPackageinfoivt> getBstIvtPackageinfoivts(String ivtType, String ivtStatus, String sortType);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -132,7 +132,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
log.info("一楼装箱区点位二次分配接口请求返回结果:---------------------------------------------" + result);
|
||||
log.info("一楼装箱区点位二次分配" + taskCode + "---------------------------------------------" + result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -144,6 +144,8 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
* @return 新的点位
|
||||
*/
|
||||
private String getNewPoint(String taskCode, String actionType) {
|
||||
BstIvtPackageinfoivt newPoint;
|
||||
String taskPointType = null;
|
||||
//执行中的任务
|
||||
SchBaseTask baseTask = taskService.getOne(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getTask_code, taskCode)
|
||||
@@ -153,23 +155,22 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
throw new BadRequestException("该任务未执行或不存在!");
|
||||
}
|
||||
//已分配过二次分配点位
|
||||
// if (StringUtils.isNotBlank(baseTask.getResponse_param())) {
|
||||
// if (baseTask.getResponse_param().equals(IOSEnum.IS_SEND.code("是"))) {
|
||||
// if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) {
|
||||
// return baseTask.getPoint_code1();
|
||||
// } else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) {
|
||||
// return baseTask.getPoint_code2();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
BstIvtPackageinfoivt newPoint;
|
||||
String taskPointType = null;
|
||||
if (StringUtils.isNotBlank(baseTask.getResponse_param())) {
|
||||
if (baseTask.getResponse_param().equals(IOSEnum.IS_SEND.code("是"))) {
|
||||
if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) {
|
||||
return baseTask.getPoint_code1();
|
||||
}
|
||||
//else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) {
|
||||
//return baseTask.getPoint_code2();
|
||||
//}
|
||||
}
|
||||
}
|
||||
//检查是否满足二次分配条件
|
||||
checkTaskInfo(baseTask);
|
||||
//空载具缓存位特殊二次分配逻辑:先判断是否有执行中的行架任务或补空载具任务,如未完成,不分配点位
|
||||
if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")) ||
|
||||
baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"))
|
||||
) {
|
||||
//检查是否满足二次分配条件
|
||||
checkTaskInfo(baseTask);
|
||||
newPoint = checkIvtSBlock(baseTask);
|
||||
} else {
|
||||
if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) {
|
||||
@@ -178,25 +179,31 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
}
|
||||
newPoint = getBstIvtPackageinfoivt(actionType, taskPointType, baseTask);
|
||||
}
|
||||
if (StringUtils.isNotBlank(newPoint.getPoint_code())) {
|
||||
//更新任务起点或终点
|
||||
if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) {
|
||||
baseTask.setPoint_code1(newPoint.getPoint_code());
|
||||
if (StringUtils.isNotBlank(newPoint.getContainer_name())) {
|
||||
//更新子卷号
|
||||
baseTask.setVehicle_code(newPoint.getContainer_name());
|
||||
//分配的点位
|
||||
if (newPoint != null) {
|
||||
if (StringUtils.isNotBlank(newPoint.getPoint_code())) {
|
||||
//更新任务起点或终点
|
||||
if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) {
|
||||
baseTask.setPoint_code1(newPoint.getPoint_code());
|
||||
if (StringUtils.isNotBlank(newPoint.getContainer_name())) {
|
||||
//更新子卷号
|
||||
baseTask.setVehicle_code(newPoint.getContainer_name());
|
||||
}
|
||||
} else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) {
|
||||
baseTask.setPoint_code2(newPoint.getPoint_code());
|
||||
}
|
||||
} else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) {
|
||||
baseTask.setPoint_code2(newPoint.getPoint_code());
|
||||
//标记二次分配已分配过点位
|
||||
baseTask.setResponse_param(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
taskService.updateById(baseTask);
|
||||
log.info("一楼装箱区二次分配" + taskCode + ",接口返回最新点位:---------------------------------------------" + newPoint.getPoint_code());
|
||||
return newPoint.getPoint_code();
|
||||
} else {
|
||||
log.info("一楼装箱区二次分配" + taskCode + ",分配失败,暂无点位资源或点位外层有载具阻挡!");
|
||||
throw new BadRequestException("一楼装箱区二次分配" + taskCode + ",分配失败,暂无点位资源或点位外层有载具阻挡!");
|
||||
}
|
||||
//标记二次分配已分配过点位
|
||||
baseTask.setResponse_param(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
taskService.updateById(baseTask);
|
||||
log.info("一楼装箱区二次分配任务编号为:" + taskCode + ",接口返回最新点位:---------------------------------------------" + newPoint.getPoint_code());
|
||||
return newPoint.getPoint_code();
|
||||
} else {
|
||||
log.info("一楼装箱区二次分配任务编号为:" + taskCode + ",分配失败,暂无点位资源或点位外层有载具阻挡!");
|
||||
throw new BadRequestException("一楼装箱区二次分配任务编号为:" + taskCode + ",分配失败,暂无点位资源或点位外层有载具阻挡!");
|
||||
log.info("一楼装箱区二次分配" + taskCode + ",分配失败,暂无点位资源或点位外层有载具阻挡!");
|
||||
throw new BadRequestException("一楼装箱区二次分配" + taskCode + ",分配失败,暂无点位资源或点位外层有载具阻挡!");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,6 +219,8 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
*/
|
||||
@Override
|
||||
public List<BstIvtPackageinfoivt> checkEndPointTask(String ivtType, String ivtStatus, String pointCode, String sortType, String taskType) {
|
||||
List<SchBaseTask> taskList;
|
||||
Set<String> pointSets;
|
||||
List<BstIvtPackageinfoivt> returList = new ArrayList<>();
|
||||
List<BstIvtPackageinfoivt> packageinfoivtList = getBstIvtPackageinfoivts(ivtType, ivtStatus, sortType);
|
||||
Set<String> pointIds = packageinfoivtList.stream()
|
||||
@@ -223,8 +232,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
if (pointCode == null) {
|
||||
return packageinfoivtList;
|
||||
}
|
||||
List<SchBaseTask> taskList;
|
||||
Set<String> pointSets;
|
||||
if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务")) || pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"))) {
|
||||
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, null, null);
|
||||
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货分配"))) {
|
||||
@@ -232,8 +239,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货分配"))) {
|
||||
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, pointIds, null, pointIds);
|
||||
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务分配"))) {
|
||||
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, null, null, null);
|
||||
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货"))) {
|
||||
// taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, null, null, null);
|
||||
//四个点任务取货分配条件为取货完成信号即刻更新库存,所以不判断是否有起点任务
|
||||
taskList = new ArrayList<>();
|
||||
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务取货"))) {
|
||||
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, null, pointIds, null);
|
||||
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("空载具放货"))) {
|
||||
taskList = bstIvtPackageinfoivtMapper.getTaskList(null, pointIds, null, pointIds);
|
||||
@@ -264,7 +273,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
return packageinfoivtList;
|
||||
}
|
||||
// 未完成的任务点位汇集
|
||||
if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货"))) {
|
||||
if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务取货"))) {
|
||||
pointSets = taskList.stream()
|
||||
.flatMap(task -> Stream.of(
|
||||
task.getPoint_code1(),
|
||||
@@ -330,7 +339,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
* 获取没有阻挡的点位
|
||||
*/
|
||||
private List<BstIvtPackageinfoivt> getNoBlockIvt(String pointCode, List<SchBaseTask> taskList, List<BstIvtPackageinfoivt> ivtList) {
|
||||
Set<String> taskPointSet = taskList.stream().map(SchBaseTask::getPoint_code2).filter(pointCode2 -> !pointCode2.equals("ZXQ_01_1")).collect(Collectors.toSet());
|
||||
Set<String> taskPointSet = null;
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
taskPointSet = taskList.stream().map(SchBaseTask::getPoint_code2).filter(pointCode2 -> !pointCode2.equals("ZXQ_01_1")).collect(Collectors.toSet());
|
||||
}
|
||||
List<BstIvtPackageinfoivt> pointList = new ArrayList<>();
|
||||
//存在补空载具任务已分配却未完成的任务
|
||||
if (CollectionUtils.isEmpty(taskPointSet)) {
|
||||
@@ -352,47 +364,73 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否满足二次分配条件
|
||||
* 校验各类型的取放货分配否满足分配条件
|
||||
*/
|
||||
private void checkTaskInfo(SchBaseTask baseTask) {
|
||||
List<SchBaseTask> taskList1 = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
|
||||
.and(
|
||||
r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"))
|
||||
.or()
|
||||
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")
|
||||
)));
|
||||
if (CollectionUtils.isNotEmpty(taskList1)) {
|
||||
List<SchBaseTask> taskList3 = taskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
|
||||
if (taskList3.size() == 1) {
|
||||
//校验已分配的补空载具任务是否为当前请求的任务,是可重新分配,否不允许重新分配
|
||||
if (!taskList3.get(0).getTask_code().equals(baseTask.getTask_code())) {
|
||||
log.info("一楼装箱区二次分配" + taskList3.get(0).getTask_code() + ",分配失败,存在多个或上一个已分配的补空载具任务未完成,请检查!");
|
||||
throw new BadRequestException("一楼装箱区二次分配" + taskList3.get(0).getTask_code() + ",分配失败,存在多个或上一个已分配的补空载具任务未完成,请检查!");
|
||||
//补空载具放货任务
|
||||
if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")) ||
|
||||
baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"))
|
||||
) {
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
|
||||
.and(
|
||||
r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"))
|
||||
.or()
|
||||
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"))
|
||||
.or()
|
||||
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))
|
||||
.or()
|
||||
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))
|
||||
));
|
||||
//是否有执行中已分配补空载具任务
|
||||
List<SchBaseTask> taskList1 = taskList.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"))).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(taskList1)) {
|
||||
List<SchBaseTask> taskList2 = taskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
|
||||
if (taskList2.size() == 1) {
|
||||
//校验已分配的补空载具任务是否为当前请求的任务,是可重新分配,否不允许重新分配
|
||||
if (!taskList2.get(0).getTask_code().equals(baseTask.getTask_code())) {
|
||||
log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的补空载具任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!");
|
||||
throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的补空载具任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!");
|
||||
}
|
||||
} else if (taskList2.size() > 1) {
|
||||
log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的补空载具任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!");
|
||||
throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的补空载具任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!");
|
||||
}
|
||||
} else if (taskList3.size() > 1) {
|
||||
log.info("一楼装箱区二次分配" + taskList3.get(0).getTask_code() + ",分配失败,存在多个或上一个已分配的补空载具任务未完成,请检查!");
|
||||
throw new BadRequestException("一楼装箱区二次分配:" + taskList3.get(0).getTask_code() + ",分配失败,存在多个或上一个已分配的补空载具任务未完成,请检查!");
|
||||
}
|
||||
}
|
||||
//是否有执行中的行架任务,有等待取空载具任务完成再分配
|
||||
List<SchBaseTask> taskList2 = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
|
||||
.and(
|
||||
r -> r.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))
|
||||
.or()
|
||||
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")
|
||||
)));
|
||||
if (CollectionUtils.isNotEmpty(taskList2)) {
|
||||
if (StringUtils.isBlank(taskList2.get(0).getRequest_param())) {
|
||||
log.info("一楼装箱区二次分配" + taskList2.get(0).getTask_code() + ",分配失败,请等待桁架任务取空载具动作执行完成");
|
||||
throw new BadRequestException("一楼装箱区二次分配" + taskList2.get(0).getTask_code() + ",分配失败,请等待桁架任务取空载具动作执行完成");
|
||||
} else {
|
||||
if (!taskList2.get(0).getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) {
|
||||
log.info("一楼装箱区二次分配" + taskList2.get(0).getTask_code() + ",分配失败,请等待桁架任务取空载具动作执行完成");
|
||||
throw new BadRequestException("一楼装箱区二次分配" + taskList2.get(0).getTask_code() + ",分配失败,请等待桁架任务取空载具动作执行完成");
|
||||
//是否有执行中的行架任务,有等待取空载具任务完成再分配
|
||||
List<SchBaseTask> taskList3 = taskList.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(taskList3)) {
|
||||
if (StringUtils.isBlank(taskList3.get(0).getRequest_param())) {
|
||||
log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,桁架任务编号为:" + taskList3.get(0).getTask_code() + "的取载具动作未完成,请检查!");
|
||||
throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,桁架任务编号为:" + taskList3.get(0).getTask_code() + "的取载具动作未完成,请检查!");
|
||||
} else {
|
||||
if (!taskList3.get(0).getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) {
|
||||
log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,桁架任务编号为:" + taskList3.get(0).getTask_code() + "的取载具动作未完成,请检查!");
|
||||
throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,桁架任务编号为:" + taskList3.get(0).getTask_code() + "的取载具动作未完成,请检查!");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) {
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
|
||||
.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区")));
|
||||
//满轴缓存位->待检区agv任务如果分配了起点,是否发送取货完成信息,否,则需等待此任务发送取货完成信号才能分配第2个任务的起点
|
||||
List<SchBaseTask> taskList1 = taskList.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(taskList1)) {
|
||||
//多个已分配的未完成的取满轴任务,需要全部取货完成才能继续分配
|
||||
List<SchBaseTask> taskList2 = taskList1.stream().filter(r -> StringUtils.isBlank(r.getRequest_param())).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(taskList2)) {
|
||||
log.info("一楼装箱区取货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的取满轴任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!");
|
||||
throw new BadRequestException("一楼装箱区取货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的取满轴任务编号为:" + taskList2.get(0).getTask_code() + "的任务未完成,请检查!");
|
||||
}
|
||||
List<SchBaseTask> taskList3 = taskList1.stream().filter(r -> StringUtils.isNotBlank(r.getRequest_param())).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(taskList3)) {
|
||||
if (taskList3.stream().anyMatch(r -> !r.getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成")))) {
|
||||
log.info("一楼装箱区取货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的取满轴任务编号为:" + taskList3.get(0).getTask_code() + "的任务未完成,请检查!");
|
||||
throw new BadRequestException("一楼装箱区取货分配" + baseTask.getTask_code() + ",分配失败,存在已分配的取满轴任务编号为:" + taskList3.get(0).getTask_code() + "的任务未完成,请检查!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -401,8 +439,12 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
|
||||
/**
|
||||
* 根据点位类型查询库存
|
||||
*
|
||||
* @param ivtType 点位类型
|
||||
* @param ivtStatus 库存状态
|
||||
* @param sortType 排序
|
||||
*/
|
||||
private List<BstIvtPackageinfoivt> getBstIvtPackageinfoivts(String ivtType, String ivtStatus, String sortType) {
|
||||
public List<BstIvtPackageinfoivt> getBstIvtPackageinfoivts(String ivtType, String ivtStatus, String sortType) {
|
||||
LambdaQueryWrapper<BstIvtPackageinfoivt> queryWrapper = new LambdaQueryWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.eq(BstIvtPackageinfoivt::getPoint_status, ivtType);
|
||||
@@ -467,23 +509,27 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
String pointCode;
|
||||
//取满轴
|
||||
if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) {
|
||||
//过滤未二次分配的任务
|
||||
if (StringUtils.isBlank(baseTask.getResponse_param())) {
|
||||
throw new BadRequestException("取货完成失败" + baseTask.getTask_code() + ",起点未进行二次分配!");
|
||||
}
|
||||
List<BstIvtPackageinfoivt> ivtList = packageinfoivtService.list(new LambdaQueryWrapper<BstIvtPackageinfoivt>()
|
||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||
.eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code1()));
|
||||
if (CollectionUtils.isEmpty(ivtList)) {
|
||||
throw new BadRequestException("任务编号为:" + baseTask.getTask_code() + "取货完成的目标点位不存在!");
|
||||
throw new BadRequestException("取货完成失败" + baseTask.getTask_code() + "agv取货完成的目标点位不存在!");
|
||||
}
|
||||
//只有子卷号相同才能清除库存
|
||||
if (baseTask.getVehicle_code().equals(ivtList.get(0).getContainer_name())) {
|
||||
upDateIvtOrTask(baseTask, baseTask.getPoint_code1(), false);
|
||||
upDateIvtOrTask(baseTask, baseTask.getPoint_code1());
|
||||
}
|
||||
} else if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))) {
|
||||
pointCode = baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) ? baseTask.getPoint_code3() : baseTask.getPoint_code1();
|
||||
if (StringUtils.isBlank(baseTask.getRequest_param())) {
|
||||
upDateIvtOrTask(baseTask, pointCode, true);
|
||||
upDateIvtOrTask(baseTask, pointCode);
|
||||
} else if (StringUtils.isNotBlank(baseTask.getRequest_param())) {
|
||||
if (!baseTask.getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) {
|
||||
upDateIvtOrTask(baseTask, pointCode, true);
|
||||
upDateIvtOrTask(baseTask, pointCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -502,7 +548,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
.set("container_name", baseTask.getVehicle_code())
|
||||
.set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷"))
|
||||
.eq("point_code", baseTask.getPoint_code2()));
|
||||
log.info("一楼装箱区二次分配的任务编号为:" + baseTask.getTask_code() + ",放货完成执行成功,放货信息:点位:" + baseTask.getPoint_code2() + "子卷号为:" + baseTask.getVehicle_code());
|
||||
log.info("一楼装箱区二次放货分配" + baseTask.getTask_code() + ",放货完成执行成功,放货信息:点位:" + baseTask.getPoint_code2() + "子卷号为:" + baseTask.getVehicle_code());
|
||||
} else {
|
||||
throw new BadRequestException("该点位已有库存!");
|
||||
}
|
||||
@@ -513,20 +559,20 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
/**
|
||||
* 取货完成更新点位或任务标识
|
||||
*/
|
||||
private void upDateIvtOrTask(SchBaseTask baseTask, String pointCode, boolean isUpDateTask) {
|
||||
private void upDateIvtOrTask(SchBaseTask baseTask, String pointCode) {
|
||||
UpdateWrapper<BstIvtPackageinfoivt> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.eq("point_code", pointCode);
|
||||
updateWrapper.setSql("ivt_status = '0', container_name = null");
|
||||
updateWrapper.set("ivt_status", "0");
|
||||
updateWrapper.set("container_name", null);
|
||||
//清空起点库存状态
|
||||
bstIvtPackageinfoivtMapper.update(null, updateWrapper);
|
||||
if (isUpDateTask) {
|
||||
//标记桁架任务取空载具完成
|
||||
UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>();
|
||||
updateWrapper1.eq("task_id", baseTask.getTask_id());
|
||||
updateWrapper1.set("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"));
|
||||
taskService.update(updateWrapper1);
|
||||
}
|
||||
log.info("一楼装箱区二次分配的任务编号为:" + baseTask.getTask_code() + ",取货完成执行成功,取货信息:点位:" + pointCode + "子卷号为:" + baseTask.getVehicle_code());
|
||||
log.info("一楼装箱区二次分配清空起点库存" + baseTask.getTask_code() + ",执行成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code());
|
||||
//标记agv取满轴或四个点或两个点任务取空载具完成
|
||||
UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>();
|
||||
updateWrapper1.eq("task_id", baseTask.getTask_id());
|
||||
updateWrapper1.set("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"));
|
||||
taskService.update(updateWrapper1);
|
||||
log.info("一楼装箱区二次分配取货完成" + baseTask.getTask_code() + ",取货完成信号接收成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -535,8 +581,8 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
* @param baseTask 任务信息
|
||||
*/
|
||||
private BstIvtPackageinfoivt getBstIvtPackageinfoivt(String actionType, String taskPointType, SchBaseTask baseTask) {
|
||||
BstIvtPackageinfoivt newPoint;
|
||||
String targetPoint ="";
|
||||
BstIvtPackageinfoivt newPoint = null;
|
||||
String targetPoint = "";
|
||||
//1取货任务2放货任务
|
||||
LambdaQueryWrapper<BstIvtPackageinfoivt> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货分配").equals(actionType)) {
|
||||
@@ -550,6 +596,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
targetPoint = taskPointType;
|
||||
}
|
||||
BstIvtPackageinfoivt bstIvtPackageinfoivt = bstIvtPackageinfoivtMapper.selectOne(queryWrapper);
|
||||
//无库存点位
|
||||
if (bstIvtPackageinfoivt == null) {
|
||||
return newPoint;
|
||||
}
|
||||
//根据任务类型返回点位分配规则
|
||||
BstIvtPackageinfoivt ivtInfo = getIvtInfoFromRegion(baseTask.getTask_type(), actionType);
|
||||
List<BstIvtPackageinfoivt> newPointList = packageinfoivtService.checkEndPointTask(bstIvtPackageinfoivt.getPoint_status(), ivtInfo.getIvt_status(), targetPoint, ivtInfo.getSort_seq().toString(), "");
|
||||
|
||||
@@ -79,7 +79,7 @@ public class AutoSendMzToDjq {
|
||||
return;
|
||||
}
|
||||
//满轴有子卷且过滤未完成任务
|
||||
List<BstIvtPackageinfoivt> mzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
|
||||
List<BstIvtPackageinfoivt> mzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务取货"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
|
||||
if (CollectionUtils.isEmpty(mzqPackageinfoivtList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -25,6 +24,8 @@ import java.util.stream.Collectors;
|
||||
@RequiredArgsConstructor
|
||||
public class AutoSendVehicleToDjq {
|
||||
private final String THIS_CLASS = AutoSendVehicleToDjq.class.getName();
|
||||
|
||||
|
||||
@Resource
|
||||
private RedissonClient redissonClient;
|
||||
@Resource
|
||||
@@ -32,6 +33,9 @@ public class AutoSendVehicleToDjq {
|
||||
@Resource
|
||||
private SendGzqKzjTask sendGzqKzjTask;
|
||||
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService ibstIvtPackageinfoivtService;
|
||||
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
|
||||
@@ -43,32 +47,27 @@ public class AutoSendVehicleToDjq {
|
||||
|
||||
@SneakyThrows
|
||||
public void sendVehicleToDjqOrGzq1() {
|
||||
log.info(THIS_CLASS+"-装箱区->待检区或管制区补空任务开始执行扫描。");
|
||||
log.info(THIS_CLASS + "-装箱区->待检区或管制区补空任务开始执行扫描。");
|
||||
RLock lock = redissonClient.getLock(THIS_CLASS);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
//存在装箱区有空载具的点位
|
||||
String pointCode2 = null;
|
||||
String pointCode2;
|
||||
JSONObject task = new JSONObject();
|
||||
List<BstIvtPackageinfoivt> ivtList =ibstIvtPackageinfoivtService.getBstIvtPackageinfoivts(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"),"");
|
||||
if (CollectionUtils.isNotEmpty(ivtList)) {
|
||||
return;
|
||||
}
|
||||
//存在装箱区有空载具的点位
|
||||
List<BstIvtPackageinfoivt> zxqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", "");
|
||||
if (CollectionUtils.isEmpty(zxqIvtList)) {
|
||||
return;
|
||||
}
|
||||
//待检区有空位且过滤未完成任务
|
||||
List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
|
||||
if (CollectionUtils.isNotEmpty(djqPackageinfoivtList)) {
|
||||
pointCode2 = djqPackageinfoivtList.get(0).getPoint_code();
|
||||
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));
|
||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"));
|
||||
if ( Integer.parseInt(zxqIvtList.get(0).getSort_seq().toString()) % 2 != 0) {
|
||||
//优先去管制区
|
||||
pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"));
|
||||
} else {
|
||||
//管制区有空位
|
||||
List<BstIvtPackageinfoivt> gzqList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
|
||||
if (CollectionUtils.isNotEmpty(gzqList)) {
|
||||
pointCode2 = gzqList.get(0).getPoint_code();
|
||||
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));
|
||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)"));
|
||||
}
|
||||
pointCode2 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)"));
|
||||
}
|
||||
//去装箱区搬运空载具
|
||||
if (pointCode2 != null) {
|
||||
@@ -91,6 +90,40 @@ public class AutoSendVehicleToDjq {
|
||||
}
|
||||
|
||||
|
||||
|
||||
private String getPointCode(JSONObject task, String taskType) {
|
||||
String pointCode2 = null;
|
||||
List<BstIvtPackageinfoivt> packageList;
|
||||
if (taskType.equals(PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"))) {
|
||||
packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
|
||||
if (CollectionUtils.isEmpty(packageList)) {
|
||||
packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
|
||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)"));
|
||||
} else {
|
||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"));
|
||||
}
|
||||
} else {
|
||||
packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
|
||||
if (CollectionUtils.isEmpty(packageList)) {
|
||||
packageList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
|
||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"));
|
||||
} else {
|
||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->管制区)"));
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(packageList)) {
|
||||
pointCode2 = packageList.get(0).getPoint_code();
|
||||
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("普通任务"));
|
||||
}
|
||||
return pointCode2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 二次分配任务
|
||||
*/
|
||||
|
||||
@@ -37,8 +37,6 @@ public class AutoSendVehicleToKzj {
|
||||
private DjqToKzjhcwTask djqToKzjhcwTask;
|
||||
@Resource
|
||||
private GzqToKzjhcwTask gzqToKzjhcwTask;
|
||||
@Resource
|
||||
private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper;
|
||||
|
||||
@Resource
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
@@ -112,10 +110,10 @@ public class AutoSendVehicleToKzj {
|
||||
return;
|
||||
}
|
||||
if (existTask.size() % 2 != 0) {
|
||||
//优先去待检区
|
||||
pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"));
|
||||
} else {
|
||||
//优先去管制区
|
||||
pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"));
|
||||
} else {
|
||||
pointCode1 = getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"));
|
||||
}
|
||||
//去待检区或管制区搬运空载具
|
||||
if (pointCode1 != null) {
|
||||
|
||||
@@ -41,7 +41,7 @@ public enum PackageInfoIvtEnum {
|
||||
|
||||
|
||||
//起点终点类型
|
||||
TASK_POINT_TYPE(MapOf.of("取货任务", "1", "放货任务", "2", "取货分配", "3", "放货分配", "4", "取货任务取货分配", "5", "放货任务放货分配", "6", "四个点任务放货", "7","空载具放货", "8", "四个点任务分配", "9","空载具放货分配", "10")),
|
||||
TASK_POINT_TYPE(MapOf.of("取货任务", "1", "放货任务", "2", "取货分配", "3", "放货分配", "4", "取货任务取货分配", "5", "放货任务放货分配", "6", "四个点任务取货", "7","空载具放货", "8", "四个点任务分配", "9","空载具放货分配", "10")),
|
||||
|
||||
//等待点类型
|
||||
WAIT_POINT_TYPE(MapOf.of("满轴区等待点", "1", "待检区等待点", "2")),
|
||||
|
||||
@@ -118,7 +118,7 @@ public class BakingServiceImpl implements BakingService {
|
||||
*/
|
||||
JSONObject jsonPointZc = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
|
||||
JSONObject cool_jo = coolIvtTab.query("full_point_code = '" + point_code1 + "' AND point_type = '3'").uniqueResult(0);
|
||||
JSONObject cool_jo = coolIvtTab.query("point_code = '" + point_code1 + "' AND point_type = '3'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonPointZc) || ObjectUtil.isNotEmpty(cool_jo)) {
|
||||
if (ObjectUtil.isEmpty(jsonPointZc)) {
|
||||
jsonPointZc = cool_jo;
|
||||
@@ -150,7 +150,27 @@ public class BakingServiceImpl implements BakingService {
|
||||
}
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonHotIvt)) {
|
||||
throw new BadRequestException("烘烤区没有合适温度的空位!");
|
||||
//如果属于B1的烘箱,变更位置再查询
|
||||
if (ObjectUtil.isNotEmpty(cool_jo) && cool_jo.getString("product_area").equals("B1")) {
|
||||
jsonMap.put("point_location", jsonPointZc.getString("point_location").equals("0") ? "1" : "0");
|
||||
hot_rows = WQL.getWO("PDA_BAKING_01").addParamMap(jsonMap).process().getResultJSONArray(0);
|
||||
for (int i = 0; i < hot_rows.size(); i++) {
|
||||
JSONObject hot_row = hot_rows.getJSONObject(i);
|
||||
String point_code = hot_row.getString("point_code");
|
||||
String point_temperature = (String) redisUtils.hget(point_code, "temperature");
|
||||
if (!ObjectUtil.isEmpty(point_temperature)) {
|
||||
if (point_temperature.equals(temperature)) {
|
||||
jsonHotIvt = hot_row;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ObjectUtil.isEmpty(jsonHotIvt)) {
|
||||
throw new BadRequestException("烘烤区没有合适温度的空位!");
|
||||
}
|
||||
} else {
|
||||
throw new BadRequestException("烘烤区没有合适温度的空位!");
|
||||
}
|
||||
}
|
||||
// 2.创建暂存位 --> 烘烤区任务
|
||||
JSONObject param = new JSONObject();
|
||||
|
||||
@@ -268,7 +268,9 @@ public class FeedingServiceImpl implements FeedingService {
|
||||
}
|
||||
|
||||
JSONObject cool_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code + "'").uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isEmpty(cool_jo)) {
|
||||
cool_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("point_code = '" + point_code + "'").uniqueResult(0);
|
||||
}
|
||||
if (ObjectUtil.isEmpty(cool_jo)) {
|
||||
throw new BadRequestException("请输入或者扫描冷却区满轴位的点位做为起点!");
|
||||
} else {
|
||||
@@ -285,54 +287,99 @@ public class FeedingServiceImpl implements FeedingService {
|
||||
}
|
||||
|
||||
if (cool_jo.getString("product_area").equals("B1")) {
|
||||
JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("full_point_code = '" + next_point_code + "'").uniqueResult(0);
|
||||
JSONObject task_jo = new JSONObject();
|
||||
task_jo.put("point_code1", cool_jo.getString("point_code"));
|
||||
String reging_id = "";
|
||||
//查询出的对接位
|
||||
switch (cool_jo.getString("product_area")) {
|
||||
case "A1":
|
||||
reging_id = RegionTypeEnum.A_HKZC.getId();
|
||||
break;
|
||||
case "A2":
|
||||
reging_id = RegionTypeEnum.B_HKZC.getId();
|
||||
break;
|
||||
case "A3":
|
||||
reging_id = RegionTypeEnum.C_HKZC.getId();
|
||||
break;
|
||||
case "A4":
|
||||
reging_id = RegionTypeEnum.D_HKZC.getId();
|
||||
break;
|
||||
case "B1":
|
||||
reging_id = RegionTypeEnum.B1_HKZC.getId();
|
||||
break;
|
||||
case "B2":
|
||||
reging_id = RegionTypeEnum.B2_HKZC.getId();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
if (ObjectUtil.isNotEmpty(cool_jo) && cool_jo.getString("point_type").equals("4")) {
|
||||
JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("full_point_code = '" + next_point_code + "'").uniqueResult(0);
|
||||
//起点为分切缓存位,终点为分切机
|
||||
JSONObject jo = new JSONObject();
|
||||
if (StrUtil.equals("01", cut_jo.getString("empty_point_status"))) {
|
||||
jo.put("point_code1", cool_jo.getString("full_point_code"));
|
||||
jo.put("point_code2", cut_jo.getString("full_point_code"));
|
||||
jo.put("material_code", cool_jo.getString("container_name"));
|
||||
jo.put("product_area", cut_jo.getString("product_area"));
|
||||
jo.put("task_type", "010302");
|
||||
} else {
|
||||
jo.put("point_code1", cool_jo.getString("full_point_code"));
|
||||
jo.put("point_code2", cut_jo.getString("full_point_code"));
|
||||
jo.put("point_code3", cut_jo.getString("empty_point_code"));
|
||||
// 2.找冷却区空货位
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("flag", "2");
|
||||
map.put("product_area", cut_jo.getString("product_area"));
|
||||
map.put("point_location", "0");
|
||||
|
||||
JSONObject jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0);
|
||||
// 如果为空
|
||||
if (ObjectUtil.isEmpty(jsonCooIvt)) {
|
||||
map.put("point_location", "1");
|
||||
jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0);
|
||||
}
|
||||
if (ObjectUtil.isEmpty(jsonCooIvt)) {
|
||||
throw new BadRequestException("冷却区空位不足");
|
||||
}
|
||||
jo.put("point_code4", jsonCooIvt.getString("empty_point_code"));
|
||||
jo.put("material_code", cool_jo.getString("container_name"));
|
||||
jo.put("product_area", cut_jo.getString("product_area"));
|
||||
jo.put("task_type", "010301");
|
||||
}
|
||||
AbstractAcsTask task = new CoolCutTask();
|
||||
task.createTask(jo);
|
||||
} else {
|
||||
JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("full_point_code = '" + next_point_code + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(cut_jo) && ObjectUtil.isEmpty(cool_jo)) {
|
||||
throw new BadRequestException("目的点不存在!");
|
||||
}
|
||||
JSONObject task_jo = new JSONObject();
|
||||
task_jo.put("point_code1", cool_jo.getString("point_code"));
|
||||
String reging_id = "";
|
||||
//查询出的对接位
|
||||
switch (cool_jo.getString("product_area")) {
|
||||
case "A1":
|
||||
reging_id = RegionTypeEnum.A_HKZC.getId();
|
||||
break;
|
||||
case "A2":
|
||||
reging_id = RegionTypeEnum.B_HKZC.getId();
|
||||
break;
|
||||
case "A3":
|
||||
reging_id = RegionTypeEnum.C_HKZC.getId();
|
||||
break;
|
||||
case "A4":
|
||||
reging_id = RegionTypeEnum.D_HKZC.getId();
|
||||
break;
|
||||
case "B1":
|
||||
reging_id = RegionTypeEnum.B1_HKZC.getId();
|
||||
break;
|
||||
case "B2":
|
||||
reging_id = RegionTypeEnum.B2_HKZC.getId();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("flag", "1");
|
||||
map.put("reging_id", reging_id);
|
||||
map.put("point_location", cool_jo.getString("point_location"));
|
||||
//只找出箱点位
|
||||
map.put("point_type", "5");
|
||||
|
||||
JSONObject pointArr = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(pointArr)) {
|
||||
map.put("point_location", cool_jo.getString("point_location").equals("0") ? "1" : "0");
|
||||
pointArr = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(pointArr)) {
|
||||
throw new BadRequestException("没有无货且没有任务的点位类型为出箱的烘箱对接位!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
task_jo.put("point_code2", pointArr.getString("point_code"));
|
||||
//将分切机的点位作为目的点,桁架任务完成时,自动创建AGV任务
|
||||
task_jo.put("point_code3", next_point_code);
|
||||
task_jo.put("material_code", cool_jo.getString("container_name"));
|
||||
task_jo.put("product_area", cool_jo.getString("product_area"));
|
||||
task_jo.put("task_type", "010205");
|
||||
OutHotTask outHotTask = new OutHotTask();
|
||||
String task_id = outHotTask.createTask(task_jo);
|
||||
}
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("flag", "1");
|
||||
map.put("reging_id", reging_id);
|
||||
map.put("point_location", cool_jo.getString("point_location"));
|
||||
//只找出箱点位
|
||||
map.put("point_type", "5");
|
||||
|
||||
JSONObject pointArr = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(pointArr)) {
|
||||
throw new BadRequestException("没有无货且没有任务的点位类型为出箱的烘箱对接位!");
|
||||
}
|
||||
|
||||
|
||||
task_jo.put("point_code2", pointArr.getString("point_code"));
|
||||
//将分切机的点位作为目的点,桁架任务完成时,自动创建AGV任务
|
||||
task_jo.put("point_code3", next_point_code);
|
||||
task_jo.put("vehicle_code", cool_jo.getString("container_name"));
|
||||
task_jo.put("product_area", cut_jo.getString("product_area"));
|
||||
task_jo.put("task_type", "010205");
|
||||
OutHotTask outHotTask = new OutHotTask();
|
||||
String task_id = outHotTask.createTask(task_jo);
|
||||
} else {
|
||||
JSONObject jo = new JSONObject();
|
||||
//查询该分切机对应的点位
|
||||
|
||||
@@ -215,8 +215,13 @@ public class RawFoilServiceImpl implements RawFoilService {
|
||||
cache_map.put("point_location", jsonSb.getString("point_location"));
|
||||
//只找入箱点位
|
||||
cache_map.put("point_type", "4");
|
||||
cache_map.put("mater_flag", "1");
|
||||
|
||||
JSONObject point_code2_jo = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(cache_map).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(point_code2_jo)) {
|
||||
cache_map.put("point_location", jsonSb.getString("point_location").equals("0") ? "1" : "0");
|
||||
point_code2_jo = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(cache_map).process().uniqueResult(0);
|
||||
}
|
||||
if (ObjectUtil.isEmpty(point_code2_jo)) {
|
||||
throw new BadRequestException("未查询到可用的点位类型为入箱的烘箱对接位!");
|
||||
}
|
||||
|
||||
@@ -82,6 +82,9 @@
|
||||
OPTION 输入.point_type = "5"
|
||||
IFNULL(po.material_code,'') = ''
|
||||
ENDOPTION
|
||||
OPTION 输入.mater_flag = "1"
|
||||
IFNULL(po.material_code,'') = ''
|
||||
ENDOPTION
|
||||
UNION
|
||||
SELECT
|
||||
task.task_id,
|
||||
@@ -137,6 +140,9 @@
|
||||
OPTION 输入.point_type = "5"
|
||||
IFNULL(po.material_code,'') = ''
|
||||
ENDOPTION
|
||||
OPTION 输入.mater_flag = "1"
|
||||
IFNULL(po.material_code,'') = ''
|
||||
ENDOPTION
|
||||
) c
|
||||
GROUP BY
|
||||
c.point_code
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
FROM
|
||||
sch_base_task
|
||||
WHERE
|
||||
( point_code1 = empty_point_code OR point_code2 = empty_point_code )
|
||||
( point_code1 = empty_point_code OR point_code2 = empty_point_code OR point_code2 = point_code )
|
||||
AND task_status < '07'
|
||||
AND is_delete = '0'
|
||||
)
|
||||
|
||||
Binary file not shown.
@@ -114,17 +114,50 @@ public class CoolCutTask extends AbstractAcsTask {
|
||||
if ("B1".equals(product_area)) {
|
||||
//更新起点烘箱对接位
|
||||
JSONObject dj_jo = WQLObject.getWQLObject("sch_base_point").query("point_code ='" + point_code1 + "'").uniqueResult(0);
|
||||
dj_jo.put("point_status", "1");
|
||||
dj_jo.put("material_code", "");
|
||||
WQLObject.getWQLObject("sch_base_point").update(dj_jo);
|
||||
JSONObject cool_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code ='" + point_code1 + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(dj_jo)) {
|
||||
dj_jo.put("point_status", "1");
|
||||
dj_jo.put("material_code", "");
|
||||
WQLObject.getWQLObject("sch_base_point").update(dj_jo);
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(cool_jo)) {
|
||||
cool_jo.put("full_point_status", "01");
|
||||
cool_jo.put("container_name", "");
|
||||
cool_jo.put("workorder_id", "");
|
||||
cool_jo.put("update_optid", currentUserId);
|
||||
cool_jo.put("update_optname", currentUsername);
|
||||
cool_jo.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("st_ivt_coolpointivt").update(cool_jo);
|
||||
}
|
||||
JSONObject full_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code ='" + point_code2 + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(full_jo)) {
|
||||
full_jo.put("full_point_status", "02");
|
||||
full_jo.put("container_name", jsonTask.getString("material_code"));
|
||||
full_jo.put("update_optid", currentUserId);
|
||||
full_jo.put("update_optname", currentUsername);
|
||||
full_jo.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("st_ivt_coolpointivt").update(full_jo);
|
||||
}
|
||||
|
||||
//更新满轴终点的空轴对接位
|
||||
JSONObject cut_jo = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("empty_point_code = '" + point_code3 + "'").uniqueResult(0);
|
||||
cut_jo.put("empty_point_status", "02");
|
||||
cut_jo.put("empty_vehicle_code", "SJG");
|
||||
cut_jo.put("update_optid", currentUserId);
|
||||
cut_jo.put("update_optname", currentUsername);
|
||||
cut_jo.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo);
|
||||
if (ObjectUtil.isEmpty(cut_jo)) {
|
||||
cut_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("empty_point_code = '" + point_code3 + "'").uniqueResult(0);
|
||||
cut_jo.put("empty_point_status", "01");
|
||||
cut_jo.put("empty_vehicle_code", "");
|
||||
cut_jo.put("update_optid", currentUserId);
|
||||
cut_jo.put("update_optname", currentUsername);
|
||||
cut_jo.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("st_ivt_coolpointivt").update(cut_jo);
|
||||
} else {
|
||||
cut_jo.put("empty_point_status", "02");
|
||||
cut_jo.put("empty_vehicle_code", "SJG");
|
||||
cut_jo.put("update_optid", currentUserId);
|
||||
cut_jo.put("update_optname", currentUsername);
|
||||
cut_jo.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo);
|
||||
}
|
||||
|
||||
//更新空轴点位
|
||||
JSONObject jsonCoolIvt2 = WQLObject.getWQLObject("st_ivt_coolpointivt").query("empty_point_code = '" + point_code4 + "'").uniqueResult(0);
|
||||
jsonCoolIvt2.put("empty_point_status", "02");
|
||||
@@ -207,63 +240,83 @@ public class CoolCutTask extends AbstractAcsTask {
|
||||
if ("B1".equals(product_area)) {
|
||||
//更新起点烘箱对接位
|
||||
JSONObject dj_jo = WQLObject.getWQLObject("sch_base_point").query("point_code ='" + point_code1 + "'").uniqueResult(0);
|
||||
dj_jo.put("point_status", "1");
|
||||
dj_jo.put("material_code", "");
|
||||
WQLObject.getWQLObject("sch_base_point").update(dj_jo);
|
||||
JSONObject cool_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code ='" + point_code1 + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(dj_jo)) {
|
||||
dj_jo.put("point_status", "1");
|
||||
dj_jo.put("material_code", "");
|
||||
WQLObject.getWQLObject("sch_base_point").update(dj_jo);
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(cool_jo)) {
|
||||
cool_jo.put("full_point_status", "01");
|
||||
cool_jo.put("container_name", "");
|
||||
cool_jo.put("workorder_id", "");
|
||||
cool_jo.put("update_optid", currentUserId);
|
||||
cool_jo.put("update_optname", currentUsername);
|
||||
cool_jo.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("st_ivt_coolpointivt").update(cool_jo);
|
||||
}
|
||||
//更新满轴终点的空轴对接位
|
||||
JSONObject cut_jo = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("full_point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
cut_jo.put("empty_point_status", "02");
|
||||
cut_jo.put("empty_vehicle_code", "SJG");
|
||||
if (ObjectUtil.isEmpty(cut_jo)) {
|
||||
cut_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
cut_jo.put("full_point_status", "02");
|
||||
cut_jo.put("container_name", jsonTask.getString("material_code"));
|
||||
WQLObject.getWQLObject("st_ivt_coolpointivt").update(cut_jo);
|
||||
} else {
|
||||
cut_jo.put("empty_point_status", "02");
|
||||
cut_jo.put("empty_vehicle_code", "SJG");
|
||||
cut_jo.put("update_optid", currentUserId);
|
||||
cut_jo.put("update_optname", currentUsername);
|
||||
cut_jo.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo);
|
||||
}
|
||||
|
||||
} else {
|
||||
// 更新主表状态
|
||||
JSONObject coolMst = ivtTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
coolMst.put("bill_status", "50");
|
||||
ivtTab.update(coolMst);
|
||||
|
||||
//更新冷却区母卷库存
|
||||
JSONObject jsonCoolIvt = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
String container_name = jsonCoolIvt.getString("container_name"); // 母卷号
|
||||
|
||||
jsonCoolIvt.put("full_point_status", "01");
|
||||
jsonCoolIvt.put("container_name", "");
|
||||
jsonCoolIvt.put("workorder_id", "");
|
||||
jsonCoolIvt.put("ivt_qty", "0");
|
||||
jsonCoolIvt.put("cool_ivt_status", "01");
|
||||
jsonCoolIvt.put("instorage_time", "");
|
||||
jsonCoolIvt.put("update_optid", currentUserId);
|
||||
jsonCoolIvt.put("update_optname", currentUsername);
|
||||
jsonCoolIvt.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("st_ivt_coolpointivt").update(jsonCoolIvt);
|
||||
|
||||
//更新分切区母卷库存
|
||||
JSONObject cut_jo = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("full_point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
cut_jo.put("full_point_status", "02");
|
||||
cut_jo.put("container_name", container_name);
|
||||
cut_jo.put("update_optid", currentUserId);
|
||||
cut_jo.put("update_optname", currentUsername);
|
||||
cut_jo.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo);
|
||||
} else {
|
||||
|
||||
//更新该母卷对应分切计划的状态
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("is_parent_ok", "1");
|
||||
WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").update(map, "parent_container_name = '" + container_name + "'");
|
||||
|
||||
//回传MES
|
||||
JSONObject mom_jo = new JSONObject();
|
||||
mom_jo.put("contain_name", container_name);
|
||||
mom_jo.put("warehouse", "1");
|
||||
//判断该接口是否需要回传
|
||||
JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'cutPlanMomRollDeliveryComplete'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) {
|
||||
new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mom_jo);
|
||||
}
|
||||
}
|
||||
// 更新主表状态
|
||||
JSONObject coolMst = ivtTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
coolMst.put("bill_status", "50");
|
||||
ivtTab.update(coolMst);
|
||||
|
||||
//更新冷却区母卷库存
|
||||
JSONObject jsonCoolIvt = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
String container_name = jsonCoolIvt.getString("container_name"); // 母卷号
|
||||
|
||||
jsonCoolIvt.put("full_point_status", "01");
|
||||
jsonCoolIvt.put("container_name", "");
|
||||
jsonCoolIvt.put("workorder_id", "");
|
||||
jsonCoolIvt.put("ivt_qty", "0");
|
||||
jsonCoolIvt.put("cool_ivt_status", "01");
|
||||
jsonCoolIvt.put("instorage_time", "");
|
||||
jsonCoolIvt.put("update_optid", currentUserId);
|
||||
jsonCoolIvt.put("update_optname", currentUsername);
|
||||
jsonCoolIvt.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("st_ivt_coolpointivt").update(jsonCoolIvt);
|
||||
|
||||
//更新分切区母卷库存
|
||||
JSONObject cut_jo = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("full_point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
cut_jo.put("full_point_status", "02");
|
||||
cut_jo.put("container_name", container_name);
|
||||
cut_jo.put("update_optid", currentUserId);
|
||||
cut_jo.put("update_optname", currentUsername);
|
||||
cut_jo.put("update_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo);
|
||||
|
||||
//更新该母卷对应分切计划的状态
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("is_parent_ok", "1");
|
||||
WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").update(map, "parent_container_name = '" + container_name + "'");
|
||||
|
||||
//回传MES
|
||||
JSONObject mom_jo = new JSONObject();
|
||||
mom_jo.put("contain_name", container_name);
|
||||
mom_jo.put("warehouse", "1");
|
||||
//判断该接口是否需要回传
|
||||
JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'cutPlanMomRollDeliveryComplete'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) {
|
||||
new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mom_jo);
|
||||
}
|
||||
}
|
||||
|
||||
if ("010303".equals(jsonTask.getString("task_type"))) {
|
||||
@@ -379,6 +432,7 @@ public class CoolCutTask extends AbstractAcsTask {
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("vehicle_code2", form.getString("vehicle_code2"));
|
||||
json.put("product_area", form.getString("product_area"));
|
||||
json.put("material_code", form.getString("material_code"));
|
||||
json.put("handle_class", THIS_CLASS);
|
||||
json.put("create_id", currentUserId);
|
||||
json.put("create_name", currentUsername);
|
||||
|
||||
@@ -117,56 +117,56 @@ public class InHotTask extends AbstractAcsTask {
|
||||
|
||||
String hot_point_code = "";
|
||||
// 判断此任务是否有三个点位
|
||||
if (ObjectUtil.isEmpty(jsonTask.getString("point_code3"))) {
|
||||
if (ObjectUtil.isEmpty(jsonTask.getString("point_code3"))) {
|
||||
|
||||
if (jsonTask.getString("task_type").equals("010204")) {
|
||||
//更新冷却区库存
|
||||
JSONObject cool_jo = coolIvtTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0);
|
||||
cool_jo.put("full_point_status", "02");
|
||||
cool_jo.put("cool_ict_status", "01");
|
||||
cool_jo.put("container_name", jsonTask.getString("material_code"));
|
||||
coolIvtTab.update(cool_jo);
|
||||
//更新对接位库存
|
||||
JSONObject dj_jo = pointTab.query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
dj_jo.put("point_status", "1");
|
||||
dj_jo.put("material_code", "");
|
||||
pointTab.update(dj_jo);
|
||||
return;
|
||||
} else {
|
||||
/*
|
||||
* 暂存区入烘箱任务
|
||||
*/
|
||||
// 更新烘箱区库存状态
|
||||
JSONObject jsonHotIvt = hotIvtTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0);
|
||||
jsonHotIvt.put("point_status", "02");
|
||||
jsonHotIvt.put("container_name", jsonHotMst.getString("container_name"));
|
||||
jsonHotIvt.put("workorder_id", jsonHotMst.getString("workorder_id"));
|
||||
jsonHotIvt.put("ivt_qty", jsonHotMst.getString("qty"));
|
||||
jsonHotIvt.put("instorage_time", DateUtil.now());
|
||||
jsonHotIvt.put("update_optid", currentUserId);
|
||||
jsonHotIvt.put("update_optname", currentUsername);
|
||||
jsonHotIvt.put("update_time", DateUtil.now());
|
||||
hotIvtTab.update(jsonHotIvt);
|
||||
|
||||
String product_area = jsonHotIvt.getString("product_area");
|
||||
if (product_area.equals("B1")) {
|
||||
JSONObject jsonPoint = coolIvtTab.query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
jsonPoint.put("container_name", "");
|
||||
jsonPoint.put("full_point_status", "01");
|
||||
coolIvtTab.update(jsonPoint);
|
||||
if (jsonTask.getString("task_type").equals("010204")) {
|
||||
//更新冷却区库存
|
||||
JSONObject cool_jo = coolIvtTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0);
|
||||
cool_jo.put("full_point_status", "02");
|
||||
cool_jo.put("cool_ict_status", "01");
|
||||
cool_jo.put("container_name", jsonTask.getString("material_code"));
|
||||
coolIvtTab.update(cool_jo);
|
||||
//更新对接位库存
|
||||
JSONObject dj_jo = pointTab.query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
dj_jo.put("point_status", "1");
|
||||
dj_jo.put("material_code", "");
|
||||
pointTab.update(dj_jo);
|
||||
return;
|
||||
} else {
|
||||
// 更新暂存区点位状态为空位
|
||||
JSONObject jsonPoint = pointTab.query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
jsonPoint.put("point_status", "1");
|
||||
jsonPoint.put("material_code", "");
|
||||
pointTab.update(jsonPoint);
|
||||
/*
|
||||
* 暂存区入烘箱任务
|
||||
*/
|
||||
// 更新烘箱区库存状态
|
||||
JSONObject jsonHotIvt = hotIvtTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0);
|
||||
jsonHotIvt.put("point_status", "02");
|
||||
jsonHotIvt.put("container_name", jsonHotMst.getString("container_name"));
|
||||
jsonHotIvt.put("workorder_id", jsonHotMst.getString("workorder_id"));
|
||||
jsonHotIvt.put("ivt_qty", jsonHotMst.getString("qty"));
|
||||
jsonHotIvt.put("instorage_time", DateUtil.now());
|
||||
jsonHotIvt.put("update_optid", currentUserId);
|
||||
jsonHotIvt.put("update_optname", currentUsername);
|
||||
jsonHotIvt.put("update_time", DateUtil.now());
|
||||
hotIvtTab.update(jsonHotIvt);
|
||||
|
||||
String product_area = jsonHotIvt.getString("product_area");
|
||||
if (product_area.equals("B1")) {
|
||||
JSONObject jsonPoint = coolIvtTab.query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
jsonPoint.put("container_name", "");
|
||||
jsonPoint.put("full_point_status", "01");
|
||||
coolIvtTab.update(jsonPoint);
|
||||
} else {
|
||||
// 更新暂存区点位状态为空位
|
||||
JSONObject jsonPoint = pointTab.query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
jsonPoint.put("point_status", "1");
|
||||
jsonPoint.put("material_code", "");
|
||||
pointTab.update(jsonPoint);
|
||||
}
|
||||
|
||||
|
||||
hot_point_code = jsonHotIvt.getString("ext_code");
|
||||
}
|
||||
|
||||
|
||||
hot_point_code = jsonHotIvt.getString("ext_code");
|
||||
}
|
||||
|
||||
} else {
|
||||
} else {
|
||||
/*
|
||||
* 冷却区入烘箱任务
|
||||
*/
|
||||
|
||||
@@ -103,12 +103,27 @@ public class OutHotTask extends AbstractAcsTask {
|
||||
|
||||
if (jsonTask.getString("task_type").equals("010205")) {
|
||||
JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("full_point_code = '" + jsonTask.getString("point_code3") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(cut_jo)) {
|
||||
cut_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + jsonTask.getString("point_code3") + "'").uniqueResult(0);
|
||||
}
|
||||
//清空起点库存
|
||||
JSONObject cool_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
cool_jo.put("container_name", "");
|
||||
cool_jo.put("full_point_status", "01");
|
||||
WQLObject.getWQLObject("st_ivt_coolpointivt").update(cool_jo);
|
||||
|
||||
//更新终点库存
|
||||
JSONObject jsonPoint2 = pointTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0);
|
||||
jsonPoint2.put("point_status", "2");
|
||||
jsonPoint2.put("material_code", jsonTask.getString("material_code"));
|
||||
pointTab.update(jsonPoint2);
|
||||
|
||||
//创建AGV任务
|
||||
JSONObject jo = new JSONObject();
|
||||
if (StrUtil.equals("01", cut_jo.getString("empty_point_status"))) {
|
||||
jo.put("point_code1", jsonTask.getString("point_code2"));
|
||||
jo.put("point_code2", cut_jo.getString("full_point_code"));
|
||||
jo.put("vehicle_code", jsonTask.getString("material_code"));
|
||||
jo.put("material_code", jsonTask.getString("material_code"));
|
||||
jo.put("product_area", cut_jo.getString("product_area"));
|
||||
jo.put("task_type", "010302");
|
||||
} else {
|
||||
@@ -131,7 +146,7 @@ public class OutHotTask extends AbstractAcsTask {
|
||||
throw new BadRequestException("冷却区空位不足");
|
||||
}
|
||||
jo.put("point_code4", jsonCooIvt.getString("empty_point_code"));
|
||||
jo.put("vehicle_code", jsonTask.getString("container_name"));
|
||||
jo.put("material_code", jsonTask.getString("material_code"));
|
||||
jo.put("product_area", cut_jo.getString("product_area"));
|
||||
jo.put("task_type", "010301");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user