fix
This commit is contained in:
@@ -117,7 +117,7 @@ public class GHCMLTask extends AbstractTask {
|
||||
task.setGroup_id(setGroupPlate(jsonObject));
|
||||
// 设置等待点并修改创建成功状态
|
||||
// task.setNext_wait_point(point.getPoint_code());
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
task.setPoint_code2("DDD");
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
task.setRemark("");
|
||||
TaskUtils.setUpdateByAcs(task);
|
||||
@@ -126,10 +126,6 @@ public class GHCMLTask extends AbstractTask {
|
||||
PointUtils.setUpdateByAcs(point);
|
||||
pointService.updateById(point);
|
||||
|
||||
//任务创建后锁住起点
|
||||
startPoint.setIng_task_code(task.getTask_code());
|
||||
pointService.updateById(startPoint);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -152,6 +148,10 @@ public class GHCMLTask extends AbstractTask {
|
||||
.eq(SchBasePoint::getRow_num, sameMaterialPoints.getRow_num())
|
||||
.eq(SchBasePoint::getIs_used, true)
|
||||
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
|
||||
// 当前执行的任务为空或者NULL,有数据表示锁住
|
||||
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
|
||||
.or()
|
||||
.eq(SchBasePoint::getIng_task_code, ""))
|
||||
.orderByAsc(SchBasePoint::getCol_num), false);
|
||||
if (ObjectUtil.isNotEmpty(point)) {
|
||||
return point;
|
||||
@@ -299,54 +299,61 @@ public class GHCMLTask extends AbstractTask {
|
||||
if (ObjectUtil.isEmpty(task)) {
|
||||
throw new BadRequestException("任务:[" + task_id + "]不存在!");
|
||||
}
|
||||
String waitPoint = task.getNext_wait_point();
|
||||
if (ObjectUtil.isEmpty(waitPoint)) {
|
||||
throw new BadRequestException("找不到任务:[" + task_id + "]等待点!");
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(task.getPoint_code2())) {
|
||||
throw new BadRequestException("任务:[" + task_id + "]已请求过!");
|
||||
}
|
||||
SchBasePoint waitPointObj = pointService.getById(waitPoint);
|
||||
SchBasePoint result;
|
||||
// 找到这排对应的准确货位,
|
||||
// hint: 需要考虑前后空,中间有货的情况,有货之后的即使是空也不能放。
|
||||
// 寻找有货的数据
|
||||
List<SchBasePoint> points = pointService.list(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code, waitPointObj.getRegion_code())
|
||||
.eq(SchBasePoint::getRow_num, waitPointObj.getRow_num())
|
||||
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode())
|
||||
.eq(SchBasePoint::getIs_used, true)
|
||||
.orderByDesc(SchBasePoint::getIn_order_seq));
|
||||
if (points.size() > 0) {
|
||||
SchBasePoint basePoint = points.get(0);
|
||||
// 找到物料位置的下一个位置
|
||||
result = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code, waitPointObj.getRegion_code())
|
||||
.eq(SchBasePoint::getRow_num, waitPointObj.getRow_num())
|
||||
.eq(SchBasePoint::getCol_num, basePoint.getCol_num() - 1)
|
||||
// 当前执行的任务为空或者NULL,有数据表示锁住
|
||||
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
|
||||
.or()
|
||||
.eq(SchBasePoint::getIng_task_code, ""))
|
||||
.eq(SchBasePoint::getIs_used, true));
|
||||
if (ObjectUtil.isEmpty(result)) {
|
||||
throw new BadRequestException("点位错误");
|
||||
}
|
||||
} else {
|
||||
// 空的话代表这排是新的一排,找个位置就行
|
||||
points = pointService.list(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code, waitPointObj.getRegion_code())
|
||||
.eq(SchBasePoint::getRow_num, waitPointObj.getRow_num())
|
||||
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
|
||||
// 当前执行的任务为空或者NULL,有数据表示锁住
|
||||
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
|
||||
.or()
|
||||
.eq(SchBasePoint::getIng_task_code, ""))
|
||||
.eq(SchBasePoint::getIs_used, true)
|
||||
.orderByAsc(SchBasePoint::getIn_order_seq));
|
||||
// 获取第一条
|
||||
result = points.get(0);
|
||||
// String waitPoint = task.getNext_wait_point();
|
||||
// if (ObjectUtil.isEmpty(waitPoint)) {
|
||||
// throw new BadRequestException("找不到任务:[" + task_id + "]等待点!");
|
||||
// }
|
||||
if (!"DDD".equals(task.getPoint_code2())) {
|
||||
log.info("任务号{}已请求过二次分配,直接返回已分配地址{}",task_id,task.getPoint_code2());
|
||||
return task.getPoint_code2();
|
||||
}
|
||||
// SchBasePoint waitPointObj = pointService.getById(waitPoint);
|
||||
// SchBasePoint result;
|
||||
// // 找到这排对应的准确货位,
|
||||
// // hint: 需要考虑前后空,中间有货的情况,有货之后的即使是空也不能放。
|
||||
// // 寻找有货的数据
|
||||
// List<SchBasePoint> points = pointService.list(new LambdaQueryWrapper<SchBasePoint>()
|
||||
// .eq(SchBasePoint::getRegion_code, waitPointObj.getRegion_code())
|
||||
// .eq(SchBasePoint::getRow_num, waitPointObj.getRow_num())
|
||||
// .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode())
|
||||
// .eq(SchBasePoint::getIs_used, true)
|
||||
// .orderByDesc(SchBasePoint::getIn_order_seq));
|
||||
// if (points.size() > 0) {
|
||||
// SchBasePoint basePoint = points.get(0);
|
||||
// // 找到物料位置的下一个位置
|
||||
// result = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||
// .eq(SchBasePoint::getRegion_code, waitPointObj.getRegion_code())
|
||||
// .eq(SchBasePoint::getRow_num, waitPointObj.getRow_num())
|
||||
// .eq(SchBasePoint::getCol_num, basePoint.getCol_num() - 1)
|
||||
// // 当前执行的任务为空或者NULL,有数据表示锁住
|
||||
// .and(la -> la.isNull(SchBasePoint::getIng_task_code)
|
||||
// .or()
|
||||
// .eq(SchBasePoint::getIng_task_code, ""))
|
||||
// .eq(SchBasePoint::getIs_used, true));
|
||||
// if (ObjectUtil.isEmpty(result)) {
|
||||
// throw new BadRequestException("点位错误");
|
||||
// }
|
||||
// } else {
|
||||
// // 空的话代表这排是新的一排,找个位置就行
|
||||
// points = pointService.list(new LambdaQueryWrapper<SchBasePoint>()
|
||||
// .eq(SchBasePoint::getRegion_code, waitPointObj.getRegion_code())
|
||||
// .eq(SchBasePoint::getRow_num, waitPointObj.getRow_num())
|
||||
// .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
|
||||
// // 当前执行的任务为空或者NULL,有数据表示锁住
|
||||
// .and(la -> la.isNull(SchBasePoint::getIng_task_code)
|
||||
// .or()
|
||||
// .eq(SchBasePoint::getIng_task_code, ""))
|
||||
// .eq(SchBasePoint::getIs_used, true)
|
||||
// .orderByAsc(SchBasePoint::getIn_order_seq));
|
||||
// // 获取第一条
|
||||
// result = points.get(0);
|
||||
// }
|
||||
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||
List<String> nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(","))
|
||||
.collect(Collectors.toList());
|
||||
JSONObject jsonObject = JSONObject.parseObject(task.getRequest_param());
|
||||
SchBasePoint result = findNextPoint(nextRegionStr, jsonObject);
|
||||
// 锁住货位点
|
||||
PointUtils.setUpdateByAcs(result);
|
||||
result.setIng_task_code(task.getTask_code());
|
||||
|
||||
Reference in New Issue
Block a user