浙大调度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

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@@ -17,6 +18,7 @@ import org.apache.commons.lang3.ObjectUtils;
import org.nl.acs.AcsConfig; import org.nl.acs.AcsConfig;
import org.nl.acs.agv.server.MagicAgvService; import org.nl.acs.agv.server.MagicAgvService;
import org.nl.acs.agv.server.NDCAgvService; import org.nl.acs.agv.server.NDCAgvService;
import org.nl.acs.agv.server.ZheDaAgvService;
import org.nl.acs.auto.initial.ApplicationAutoInitial; import org.nl.acs.auto.initial.ApplicationAutoInitial;
import org.nl.acs.device.domain.Device; import org.nl.acs.device.domain.Device;
import org.nl.acs.device.service.DeviceService; import org.nl.acs.device.service.DeviceService;
@@ -450,6 +452,19 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) { if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) {
NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class); NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class);
ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto); ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto);
}else if(StrUtil.equals(shortPathsList.get(0).getType(), "2")) {
ZheDaAgvService zheDaAgvService = SpringContextHolder.getBean(ZheDaAgvService.class);
HttpResponse result = zheDaAgvService.sendAgvInstToAgv(dto);
if (!ObjectUtils.isEmpty(result)) {
JSONObject jo = JSON.parseObject(result.body());
if (jo.getInteger("status") != 200) {
dto.setSend_status("2");
} else {
dto.setSend_status("1");
}
} else {
dto.setSend_status("2");
}
} }
} catch (Exception e) { } catch (Exception e) {
dto.setSend_status("2"); dto.setSend_status("2");

View File

@@ -94,6 +94,7 @@ public class TBXMLTask extends AbstractTask {
String requestParam = task.getRequest_param(); String requestParam = task.getRequest_param();
JSONObject jsonObject = JSONObject.parseObject(requestParam); JSONObject jsonObject = JSONObject.parseObject(requestParam);
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
String pointCode = againApplyLocal(task,point.getPoint_code(),task.getTask_id());
if (ObjectUtil.isEmpty(point)) { if (ObjectUtil.isEmpty(point)) {
task.setRemark("涂板线[" + task.getPoint_code1() + "]未找到所需点位!"); task.setRemark("涂板线[" + task.getPoint_code1() + "]未找到所需点位!");
taskService.updateById(task); taskService.updateById(task);
@@ -103,7 +104,8 @@ public class TBXMLTask extends AbstractTask {
continue; continue;
} }
// 设置终点并修改创建成功状态 // 设置终点并修改创建成功状态
task.setPoint_code2(point.getPoint_code()); // task.setPoint_code2(point.getPoint_code());
task.setPoint_code2(pointCode);
task.setTask_status(TaskStatus.CREATED.getCode()); task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark(""); task.setRemark("");
taskService.updateById(task); taskService.updateById(task);
@@ -129,6 +131,7 @@ public class TBXMLTask extends AbstractTask {
String requestParam = task.getRequest_param(); String requestParam = task.getRequest_param();
JSONObject jsonObject = JSONObject.parseObject(requestParam); JSONObject jsonObject = JSONObject.parseObject(requestParam);
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
String pointCode = againApplyLocal(task,point.getPoint_code(),task.getTask_id());
if (ObjectUtil.isEmpty(point)) { if (ObjectUtil.isEmpty(point)) {
throw new BadRequestException("涂板线[" + task.getPoint_code1() + "]未找到所需点位!"); throw new BadRequestException("涂板线[" + task.getPoint_code1() + "]未找到所需点位!");
} }
@@ -139,6 +142,7 @@ public class TBXMLTask extends AbstractTask {
task.setGroup_id(setGroupPlate(jsonObject)); task.setGroup_id(setGroupPlate(jsonObject));
// 设置等待点并修改创建成功状态 // 设置等待点并修改创建成功状态
task.setNext_wait_point(point.getPoint_code()); task.setNext_wait_point(point.getPoint_code());
task.setPoint_code2(pointCode);
task.setTask_status(TaskStatus.CREATED.getCode()); task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark(""); task.setRemark("");
task.setVehicle_code(vehicleCode); task.setVehicle_code(vehicleCode);
@@ -393,7 +397,46 @@ public class TBXMLTask extends AbstractTask {
* @param task_id: 任务标识 * @param task_id: 任务标识
* @return * @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) { public String againApply(String task_id) {
SchBaseTask task = taskService.getById(task_id); SchBaseTask task = taskService.getById(task_id);
if (ObjectUtil.isEmpty(task)) { if (ObjectUtil.isEmpty(task)) {