浙大调度fix

This commit is contained in:
psh
2024-05-22 14:50:15 +08:00
parent 646e67058e
commit e63fd20e56
2 changed files with 60 additions and 2 deletions

View File

@@ -94,6 +94,7 @@ public class TBXMLTask extends AbstractTask {
String requestParam = task.getRequest_param();
JSONObject jsonObject = JSONObject.parseObject(requestParam);
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
String pointCode = againApplyLocal(task,point.getPoint_code(),task.getTask_id());
if (ObjectUtil.isEmpty(point)) {
task.setRemark("涂板线[" + task.getPoint_code1() + "]未找到所需点位!");
taskService.updateById(task);
@@ -103,7 +104,8 @@ public class TBXMLTask extends AbstractTask {
continue;
}
// 设置终点并修改创建成功状态
task.setPoint_code2(point.getPoint_code());
// task.setPoint_code2(point.getPoint_code());
task.setPoint_code2(pointCode);
task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark("");
taskService.updateById(task);
@@ -129,6 +131,7 @@ public class TBXMLTask extends AbstractTask {
String requestParam = task.getRequest_param();
JSONObject jsonObject = JSONObject.parseObject(requestParam);
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
String pointCode = againApplyLocal(task,point.getPoint_code(),task.getTask_id());
if (ObjectUtil.isEmpty(point)) {
throw new BadRequestException("涂板线[" + task.getPoint_code1() + "]未找到所需点位!");
}
@@ -139,6 +142,7 @@ public class TBXMLTask extends AbstractTask {
task.setGroup_id(setGroupPlate(jsonObject));
// 设置等待点并修改创建成功状态
task.setNext_wait_point(point.getPoint_code());
task.setPoint_code2(pointCode);
task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark("");
task.setVehicle_code(vehicleCode);
@@ -393,7 +397,46 @@ public class TBXMLTask extends AbstractTask {
* @param task_id: 任务标识
* @return
*/
@Override
public String againApplyLocal(SchBaseTask task,String waitPoint,String task_id) {
if (ObjectUtil.isEmpty(task)) {
throw new BadRequestException("任务:[" + task_id + "]不存在!");
}
if (ObjectUtil.isEmpty(waitPoint)) {
throw new BadRequestException("找不到任务:[" + task_id + "]等待点!");
}
if (ObjectUtil.isNotEmpty(task.getPoint_code2())) {
throw new BadRequestException("任务:[" + task_id + "]已请求过!");
}
// 根据任务上等待点的位置获取准确的固化室位置。
// mark: 不考虑前空中间有货后空的问题
SchBasePoint ghsInPoint = pointService.getById(waitPoint);
List<SchBasePoint> pointList = pointService.list(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getParent_point_code, ghsInPoint.getParent_point_code())
.eq(SchBasePoint::getPoint_type, PointTypeConstant.DOCKING_POINT)
.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));
// hint: 如果满了,是否可以考虑转到其他固化室等待点
if (pointList.size() == 0) {
throw new BadRequestException("找不到对应的固化室");
}
// 获取第一条
SchBasePoint point = pointList.get(0);
// 锁住货位点
PointUtils.setUpdateByAcs(point);
point.setIng_task_code(task.getTask_code());
pointService.updateById(point);
// 任务修改点位
task.setPoint_code2(point.getPoint_code());
TaskUtils.setUpdateByAcs(task);
taskService.updateById(task);
return point.getPoint_code();
}
public String againApply(String task_id) {
SchBaseTask task = taskService.getById(task_id);
if (ObjectUtil.isEmpty(task)) {