浙大调度fix
This commit is contained in:
@@ -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");
|
||||||
|
|||||||
@@ -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)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user