指令修改

This commit is contained in:
ludj
2023-02-03 23:06:04 +08:00
parent 2db47e8cbc
commit 580f9e1597

View File

@@ -1,7 +1,5 @@
package org.nl.acs.instruction.service.impl; package org.nl.acs.instruction.service.impl;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
@@ -64,7 +62,7 @@ import java.util.stream.Collectors;
* @author ldjun * @author ldjun
* @description 服务实现 * @description 服务实现
* @date 2021-03-18 * @date 2021-03-18
**/ */
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
@@ -72,18 +70,12 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
List<Instruction> instructions = new CopyOnWriteArrayList(); List<Instruction> instructions = new CopyOnWriteArrayList();
@Autowired @Autowired DeviceAppService deviceAppService;
DeviceAppService deviceAppService; @Autowired NDCAgvService ndcAgvService;
@Autowired @Autowired ParamService paramService;
NDCAgvService ndcAgvService; @Autowired RouteLineService routeLineService;
@Autowired @Autowired TaskService taskService;
ParamService paramService; @Autowired AcsToLiKuService acsToLiKuService;
@Autowired
RouteLineService routeLineService;
@Autowired
TaskService taskService;
@Autowired
AcsToLiKuService acsToLiKuService;
@Override @Override
public void autoInitial() { public void autoInitial() {
@@ -132,10 +124,15 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
Integer currentPageNumber = page.getPageNumber() + 1; Integer currentPageNumber = page.getPageNumber() + 1;
Integer pageMaxSize = page.getPageSize(); Integer pageMaxSize = page.getPageSize();
final JSONObject jo = WQL.getWO("QINST_QUERY").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), ""); final JSONObject jo =
WQL.getWO("QINST_QUERY").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "");
JSONArray jsonArray = jo.getJSONArray("content"); JSONArray jsonArray = jo.getJSONArray("content");
List<Instruction> instructions = jsonArray.toJavaList(Instruction.class); List<Instruction> instructions = jsonArray.toJavaList(Instruction.class);
List<Instruction> instDtoList = instructions.stream().skip((currentPageNumber - 1) * pageMaxSize).limit(pageMaxSize).collect(Collectors.toList()); List<Instruction> instDtoList =
instructions.stream()
.skip((currentPageNumber - 1) * pageMaxSize)
.limit(pageMaxSize)
.collect(Collectors.toList());
jo.put("content", instDtoList); jo.put("content", instDtoList);
jo.put("totalElements", jsonArray.size()); jo.put("totalElements", jsonArray.size());
return jo; return jo;
@@ -172,7 +169,10 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
map.put("end_time", end_time); map.put("end_time", end_time);
} }
final JSONObject jo = WQL.getWO("QINST_QUERY").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "create_time desc"); final JSONObject jo =
WQL.getWO("QINST_QUERY")
.addParamMap(map)
.pageQuery(WqlUtil.getHttpContext(page), "create_time desc");
return jo; return jo;
} }
@@ -309,10 +309,10 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
dto.setInstruction_type("3"); dto.setInstruction_type("3");
} }
// 起点设备与终点设备相同则为初始指令 // 起点设备与终点设备相同则为初始指令
if (StrUtil.equals(task.getStart_device_code(), dto.getStart_device_code())) { if (StrUtil.equals(task.getStart_device_code(), dto.getStart_device_code())) {
if (!StrUtil.equals(dto.getCompound_inst(), "0") && StrUtil.equals(task.getCompound_task(), "1")) { if (!StrUtil.equals(dto.getCompound_inst(), "0")
&& StrUtil.equals(task.getCompound_task(), "1")) {
dto.setCompound_inst("1"); dto.setCompound_inst("1");
dto.setCompound_inst_data(task.getCompound_task_data()); dto.setCompound_inst_data(task.getCompound_task_data());
} }
@@ -337,7 +337,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
StandardCoveyorControlWithScannerDeviceDriver standardCoveyorControlWithScannerDeviceDriver; StandardCoveyorControlWithScannerDeviceDriver standardCoveyorControlWithScannerDeviceDriver;
if (startdevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { if (startdevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) startdevice.getDeviceDriver(); hongXiangConveyorDeviceDriver =
(HongXiangConveyorDeviceDriver) startdevice.getDeviceDriver();
hongXiangConveyorDeviceDriver.writing(3, Integer.valueOf(dto.getInstruction_code())); hongXiangConveyorDeviceDriver.writing(3, Integer.valueOf(dto.getInstruction_code()));
} }
@@ -345,13 +346,16 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
String start_device_code = dto.getStart_device_code(); String start_device_code = dto.getStart_device_code();
String next_device_code = dto.getNext_device_code(); String next_device_code = dto.getNext_device_code();
String route_plan_code = task.getRoute_plan_code(); String route_plan_code = task.getRoute_plan_code();
List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code); List<RouteLineDto> shortPathsList =
routeLineService.getShortPathLines(
start_device_code, next_device_code, route_plan_code);
RouteLineDto route = null; RouteLineDto route = null;
for (int i = 0; i < shortPathsList.size(); i++) { for (int i = 0; i < shortPathsList.size(); i++) {
RouteLineDto routeLineDto = shortPathsList.get(i); RouteLineDto routeLineDto = shortPathsList.get(i);
String route_device = routeLineDto.getDevice_code(); String route_device = routeLineDto.getDevice_code();
String route_next_device = routeLineDto.getNext_device_code(); String route_next_device = routeLineDto.getNext_device_code();
if (route_device.equals(dto.getStart_device_code()) && route_next_device.equals(dto.getNext_device_code())) { if (route_device.equals(dto.getStart_device_code())
&& route_next_device.equals(dto.getNext_device_code())) {
route = routeLineDto; route = routeLineDto;
break; break;
} }
@@ -361,7 +365,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
} }
if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) { if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) {
// 0为输送、立库任务 1 1楼叉车系统 2 2楼1区域AGV系统 3 2楼2区域AGV系统 // 0为输送、立库任务 1 1楼叉车系统 2 2楼1区域AGV系统 3 2楼2区域AGV系统
if (!StrUtil.equals(task.getAgv_system_type(), "0") && ObjectUtil.isNotEmpty(task.getAgv_system_type())) { if (!StrUtil.equals(task.getAgv_system_type(), "0")
&& ObjectUtil.isNotEmpty(task.getAgv_system_type())) {
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 { } else {
@@ -388,7 +393,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
} }
} }
@Override @Override
public void create2(Instruction dto) throws Exception { public void create2(Instruction dto) throws Exception {
Class var2 = TaskInstructionLock.class; Class var2 = TaskInstructionLock.class;
@@ -426,10 +430,10 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
dto.setInstruction_type("3"); dto.setInstruction_type("3");
} }
// 起点设备与终点设备相同则为初始指令 // 起点设备与终点设备相同则为初始指令
if (StrUtil.equals(task.getStart_device_code(), dto.getStart_device_code())) { if (StrUtil.equals(task.getStart_device_code(), dto.getStart_device_code())) {
if (!StrUtil.equals(dto.getCompound_inst(), "0") && StrUtil.equals(task.getCompound_task(), "1")) { if (!StrUtil.equals(dto.getCompound_inst(), "0")
&& StrUtil.equals(task.getCompound_task(), "1")) {
dto.setCompound_inst("1"); dto.setCompound_inst("1");
dto.setCompound_inst_data(task.getCompound_task_data()); dto.setCompound_inst_data(task.getCompound_task_data());
} }
@@ -454,7 +458,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
StandardCoveyorControlWithScannerDeviceDriver standardCoveyorControlWithScannerDeviceDriver; StandardCoveyorControlWithScannerDeviceDriver standardCoveyorControlWithScannerDeviceDriver;
if (startdevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { if (startdevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) startdevice.getDeviceDriver(); hongXiangConveyorDeviceDriver =
(HongXiangConveyorDeviceDriver) startdevice.getDeviceDriver();
hongXiangConveyorDeviceDriver.writing(3, Integer.valueOf(dto.getInstruction_code())); hongXiangConveyorDeviceDriver.writing(3, Integer.valueOf(dto.getInstruction_code()));
} }
@@ -462,13 +467,16 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
String start_device_code = dto.getStart_device_code(); String start_device_code = dto.getStart_device_code();
String next_device_code = dto.getNext_device_code(); String next_device_code = dto.getNext_device_code();
String route_plan_code = task.getRoute_plan_code(); String route_plan_code = task.getRoute_plan_code();
List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code); List<RouteLineDto> shortPathsList =
routeLineService.getShortPathLines(
start_device_code, next_device_code, route_plan_code);
RouteLineDto route = null; RouteLineDto route = null;
for (int i = 0; i < shortPathsList.size(); i++) { for (int i = 0; i < shortPathsList.size(); i++) {
RouteLineDto routeLineDto = shortPathsList.get(i); RouteLineDto routeLineDto = shortPathsList.get(i);
String route_device = routeLineDto.getDevice_code(); String route_device = routeLineDto.getDevice_code();
String route_next_device = routeLineDto.getNext_device_code(); String route_next_device = routeLineDto.getNext_device_code();
if (route_device.equals(dto.getStart_device_code()) && route_next_device.equals(dto.getNext_device_code())) { if (route_device.equals(dto.getStart_device_code())
&& route_next_device.equals(dto.getNext_device_code())) {
route = routeLineDto; route = routeLineDto;
break; break;
} }
@@ -478,7 +486,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
} }
if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) { if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) {
// 0为输送、立库任务 1 1楼叉车系统 2 2楼1区域AGV系统 3 2楼2区域AGV系统 // 0为输送、立库任务 1 1楼叉车系统 2 2楼1区域AGV系统 3 2楼2区域AGV系统
if (!StrUtil.equals(task.getAgv_system_type(), "0") && ObjectUtil.isNotEmpty(task.getAgv_system_type())) { if (!StrUtil.equals(task.getAgv_system_type(), "0")
&& ObjectUtil.isNotEmpty(task.getAgv_system_type())) {
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 { } else {
@@ -498,8 +507,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
} }
} }
@Override @Override
public void createAgain(Instruction dto) throws Exception { public void createAgain(Instruction dto) throws Exception {
Class var2 = TaskInstructionLock.class; Class var2 = TaskInstructionLock.class;
@@ -518,19 +525,34 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
if (StrUtil.isEmpty(dto.getInstruction_id())) { if (StrUtil.isEmpty(dto.getInstruction_id())) {
dto.setInstruction_id(IdUtil.simpleUUID()); dto.setInstruction_id(IdUtil.simpleUUID());
} }
List<RouteLineDto> shortPathsList = routeLineService.getShortPathLines(dto.getStart_device_code(), dto.getNext_device_code(), dto.getRoute_plan_code()); List<RouteLineDto> shortPathsList =
routeLineService.getShortPathLines(
dto.getStart_device_code(), dto.getNext_device_code(), dto.getRoute_plan_code());
if (ObjectUtils.isEmpty(shortPathsList)) { if (ObjectUtils.isEmpty(shortPathsList)) {
throw new Exception(dto.getStart_device_code() + "->" + dto.getNext_device_code() + "路由不通"); throw new Exception(dto.getStart_device_code() + "->" + dto.getNext_device_code() + "路由不通");
} }
String type = shortPathsList.get(0).getType(); String type = shortPathsList.get(0).getType();
if (!StrUtil.equals(type, "0")) { if (!StrUtil.equals(type, "0")) {
JSONObject instcheckjson = instwo.query(" instruction_status <3 and next_point_code= '" + dto.getNext_point_code() + "'" + " and start_point_code = '" + dto.getStart_point_code() + "'" + " and task_id = '" + dto.getTask_id() + "'").uniqueResult(0); JSONObject instcheckjson =
instwo
.query(
" instruction_status <3 and next_point_code= '"
+ dto.getNext_point_code()
+ "'"
+ " and start_point_code = '"
+ dto.getStart_point_code()
+ "'"
+ " and task_id = '"
+ dto.getTask_id()
+ "'")
.uniqueResult(0);
if (instcheckjson != null) { if (instcheckjson != null) {
throw new Exception(dto.getTask_code() + ":该任务已存在待完成指令!"); throw new Exception(dto.getTask_code() + ":该任务已存在待完成指令!");
} }
} }
if (!StrUtil.equals(dto.getCompound_inst(), "0") && StrUtil.equals(task.getCompound_task(), "1")) { if (!StrUtil.equals(dto.getCompound_inst(), "0")
&& StrUtil.equals(task.getCompound_task(), "1")) {
dto.setCompound_inst("1"); dto.setCompound_inst("1");
dto.setCompound_inst_data(task.getCompound_task_data()); dto.setCompound_inst_data(task.getCompound_task_data());
} }
@@ -545,7 +567,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
wo.insert(json); wo.insert(json);
DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class);
Device startdevice = appService.findDeviceByCode(dto.getStart_device_code()); Device startdevice = appService.findDeviceByCode(dto.getStart_device_code());
Device nextdevice = appService.findDeviceByCode(dto.getNext_device_code()); Device nextdevice = appService.findDeviceByCode(dto.getNext_device_code());
@@ -556,17 +577,18 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
if (!ObjectUtils.isEmpty(nextdevice.getExtraValue().get("link_three_lamp"))) { if (!ObjectUtils.isEmpty(nextdevice.getExtraValue().get("link_three_lamp"))) {
String lamd_device = nextdevice.getExtraValue().get("link_three_lamp").toString(); String lamd_device = nextdevice.getExtraValue().get("link_three_lamp").toString();
Device lamddevice = appService.findDeviceByCode(lamd_device); Device lamddevice = appService.findDeviceByCode(lamd_device);
} }
// != 0 为agv任务 // != 0 为agv任务
// if(!StrUtil.equals(type,"0")){ // if(!StrUtil.equals(type,"0")){
// if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "1")) { // if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "1"))
// {
// agvService.sendAgvInstToMagic(dto); // agvService.sendAgvInstToMagic(dto);
// } else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "2")) { // } else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(),
// "2")) {
// agvService.sendAgvInstToNDC(dto); // agvService.sendAgvInstToNDC(dto);
// } else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3")) { // } else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(),
// "3")) {
// agvService.addOrderSequences(dto); // agvService.addOrderSequences(dto);
// } // }
// } // }
@@ -595,7 +617,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
// iterator.remove(); // iterator.remove();
// } // }
// } // }
// if (StrUtil.equals(dto.getInstruction_status(), "0") || StrUtil.equals(dto.getInstruction_status(), "1")) { // if (StrUtil.equals(dto.getInstruction_status(), "0") ||
// StrUtil.equals(dto.getInstruction_status(), "1")) {
// instructions.add(dto); // instructions.add(dto);
// } // }
this.reload(); this.reload();
@@ -769,7 +792,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
// 如果是无光电的设备 放货任务完成需要变更有货状态 // 如果是无光电的设备 放货任务完成需要变更有货状态
// StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; // StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver;
// if(device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { // if(device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); // standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver)
// device.getDeviceDriver();
// standardOrdinarySiteDeviceDriver.setMove(2); // standardOrdinarySiteDeviceDriver.setMove(2);
// } // }
@@ -801,7 +825,9 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
JSONObject taskjson = taskwo.query("task_id ='" + dto.getTask_id() + "'").uniqueResult(0); JSONObject taskjson = taskwo.query("task_id ='" + dto.getTask_id() + "'").uniqueResult(0);
TaskDto acsTask = taskjson.toJavaObject(TaskDto.class); TaskDto acsTask = taskjson.toJavaObject(TaskDto.class);
RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineServiceImpl.class); RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineServiceImpl.class);
List<RouteLineDto> list = routeLineService.getShortPathLines(dto.getNext_device_code(), acsTask.getNext_device_code(), acsTask.getRoute_plan_code()); List<RouteLineDto> list =
routeLineService.getShortPathLines(
dto.getNext_device_code(), acsTask.getNext_device_code(), acsTask.getRoute_plan_code());
if (ObjectUtils.isEmpty(list)) { if (ObjectUtils.isEmpty(list)) {
throw new BadRequestException("路由不通"); throw new BadRequestException("路由不通");
} }
@@ -819,8 +845,20 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
String start_device_code = dto.getNext_device_code(); String start_device_code = dto.getNext_device_code();
String start_point_code = null; String start_point_code = null;
String next_point_code = null; String next_point_code = null;
String start_device = deviceAppService.findDeviceByCode(start_device_code).getDeviceDriverDefination().getFitDeviceTypes().get(0).name(); String start_device =
String next_device = deviceAppService.findDeviceByCode(next_device_code).getDeviceDriverDefination().getFitDeviceTypes().get(0).name(); deviceAppService
.findDeviceByCode(start_device_code)
.getDeviceDriverDefination()
.getFitDeviceTypes()
.get(0)
.name();
String next_device =
deviceAppService
.findDeviceByCode(next_device_code)
.getDeviceDriverDefination()
.getFitDeviceTypes()
.get(0)
.name();
if (StrUtil.equals("storage", start_device)) { if (StrUtil.equals("storage", start_device)) {
start_point_code = start_device_code + "-" + acsTask.getFrom_y() + "-" + acsTask.getFrom_z(); start_point_code = start_device_code + "-" + acsTask.getFrom_y() + "-" + acsTask.getFrom_z();
} else { } else {
@@ -889,7 +927,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
} }
} else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3") } else if (StrUtil.equals(paramService.findByCode(AcsConfig.AGVTYPE).getValue(), "3")
&& !StrUtil.equals(entity.getSend_status(), "2")) { && !StrUtil.equals(entity.getSend_status(), "2")) {
XianGongAgvService xianGongAgvService = SpringContextHolder.getBean(XianGongAgvService.class); XianGongAgvService xianGongAgvService =
SpringContextHolder.getBean(XianGongAgvService.class);
xianGongAgvService.deleteXZAgvInst(entity.getInstruction_code()); xianGongAgvService.deleteXZAgvInst(entity.getInstruction_code());
flag = true; flag = true;
} else { } else {
@@ -921,7 +960,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
acsToLiKuService.cancelTask(cancelTaskRequest); acsToLiKuService.cancelTask(cancelTaskRequest);
} }
String currentUsername = SecurityUtils.getCurrentUsername(); String currentUsername = SecurityUtils.getCurrentUsername();
String now = DateUtil.now(); String now = DateUtil.now();
entity.setUpdate_time(now); entity.setUpdate_time(now);
@@ -938,7 +976,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
jo.put("device_code", entity.getStart_device_code()); jo.put("device_code", entity.getStart_device_code());
if (StrUtil.equals(entity.getMaterial(), "1")) { if (StrUtil.equals(entity.getMaterial(), "1")) {
jo.put("hasGoodStatus", "1"); jo.put("hasGoodStatus", "1");
} else if (!StrUtil.equals(entity.getMaterial(), "1") && !StrUtil.isEmpty(entity.getMaterial())) { } else if (!StrUtil.equals(entity.getMaterial(), "1")
&& !StrUtil.isEmpty(entity.getMaterial())) {
jo.put("hasGoodStatus", "2"); jo.put("hasGoodStatus", "2");
} else { } else {
jo.put("hasGoodStatus", "0"); jo.put("hasGoodStatus", "0");
@@ -997,7 +1036,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
jo.put("device_code", entity.getStart_device_code()); jo.put("device_code", entity.getStart_device_code());
if (StrUtil.equals(entity.getMaterial(), "1")) { if (StrUtil.equals(entity.getMaterial(), "1")) {
jo.put("hasGoodStatus", "1"); jo.put("hasGoodStatus", "1");
} else if (!StrUtil.equals(entity.getMaterial(), "1") && !StrUtil.isEmpty(entity.getMaterial())) { } else if (!StrUtil.equals(entity.getMaterial(), "1")
&& !StrUtil.isEmpty(entity.getMaterial())) {
jo.put("hasGoodStatus", "2"); jo.put("hasGoodStatus", "2");
} else { } else {
jo.put("hasGoodStatus", "0"); jo.put("hasGoodStatus", "0");
@@ -1023,10 +1063,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
} }
removeByCodeFromCache(entity.getInstruction_code()); removeByCodeFromCache(entity.getInstruction_code());
} }
} }
@Override @Override
public void cancelNOSendAgv(String id) throws Exception { public void cancelNOSendAgv(String id) throws Exception {
Class var2 = TaskInstructionLock.class; Class var2 = TaskInstructionLock.class;
@@ -1057,7 +1095,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
jo.put("device_code", entity.getStart_device_code()); jo.put("device_code", entity.getStart_device_code());
if (StrUtil.equals(entity.getMaterial(), "1")) { if (StrUtil.equals(entity.getMaterial(), "1")) {
jo.put("hasGoodStatus", "1"); jo.put("hasGoodStatus", "1");
} else if (!StrUtil.equals(entity.getMaterial(), "1") && !StrUtil.isEmpty(entity.getMaterial())) { } else if (!StrUtil.equals(entity.getMaterial(), "1")
&& !StrUtil.isEmpty(entity.getMaterial())) {
jo.put("hasGoodStatus", "2"); jo.put("hasGoodStatus", "2");
} else { } else {
jo.put("hasGoodStatus", "0"); jo.put("hasGoodStatus", "0");
@@ -1086,7 +1125,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
} }
} }
@Override @Override
public Instruction findByLinkNumSend(String code) { public Instruction findByLinkNumSend(String code) {
Iterator<Instruction> it = instructions.iterator(); Iterator<Instruction> it = instructions.iterator();
@@ -1100,7 +1138,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
return null; return null;
} }
@Override @Override
public List<Instruction> findByLinkNum(String code) { public List<Instruction> findByLinkNum(String code) {
List<Instruction> list = new ArrayList<>(); List<Instruction> list = new ArrayList<>();
@@ -1139,7 +1176,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
return null; return null;
} }
@Override @Override
public Instruction findByBarcodeFromCache(String barcode) { public Instruction findByBarcodeFromCache(String barcode) {
Iterator<Instruction> it = instructions.iterator(); Iterator<Instruction> it = instructions.iterator();
@@ -1189,7 +1225,13 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
inst.setFrom_y(start_point[1]); inst.setFrom_y(start_point[1]);
inst.setFrom_z(start_point[2]); inst.setFrom_z(start_point[2]);
} else { } else {
String start_device = deviceAppService.findDeviceByCode(start_device_code).getDeviceDriverDefination().getFitDeviceTypes().get(0).name(); String start_device =
deviceAppService
.findDeviceByCode(start_device_code)
.getDeviceDriverDefination()
.getFitDeviceTypes()
.get(0)
.name();
if (StrUtil.equals("storage", start_device)) { if (StrUtil.equals("storage", start_device)) {
String[] start_point = start_point_code.split("-"); String[] start_point = start_point_code.split("-");
inst.setFrom_x(start_point[0]); inst.setFrom_x(start_point[0]);
@@ -1209,7 +1251,13 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
inst.setTo_z(next_point[2]); inst.setTo_z(next_point[2]);
} else { } else {
String next_device = deviceAppService.findDeviceByCode(next_device_code).getDeviceDriverDefination().getFitDeviceTypes().get(0).name(); String next_device =
deviceAppService
.findDeviceByCode(next_device_code)
.getDeviceDriverDefination()
.getFitDeviceTypes()
.get(0)
.name();
if (StrUtil.equals("storage", next_device)) { if (StrUtil.equals("storage", next_device)) {
String[] next_point = start_point_code.split("-"); String[] next_point = start_point_code.split("-");
inst.setTo_x(next_point[0]); inst.setTo_x(next_point[0]);
@@ -1227,18 +1275,29 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
public Instruction findByDeviceCodeFromCache(String devicecode) { public Instruction findByDeviceCodeFromCache(String devicecode) {
List<Instruction> instructionList = instructions; List<Instruction> instructionList = instructions;
ListUtil.sort(instructionList, new Comparator<Instruction>() { try {
ListUtil.sort(
instructionList,
new Comparator<Instruction>() {
@Override @Override
public int compare(Instruction o1, Instruction o2) { public int compare(Instruction o1, Instruction o2) {
return o1.getCreate_time().compareTo(o2.getCreate_time()); return o1.getCreate_time().compareTo(o2.getCreate_time());
} }
}); });
for (int i = 0; i < instructionList.size(); i++) { Iterator<Instruction> it = instructions.iterator();
Instruction inst = instructionList.get(i); while (it.hasNext()) {
if (StrUtil.equals(devicecode, inst.getStart_device_code()) && inst.getInstruction_status().equals("0")) { Instruction inst = it.next();
if (StrUtil.equals(devicecode, inst.getStart_device_code())
&& inst.getInstruction_status().equals("0")) {
return inst; return inst;
} }
} }
} catch (Exception e) {
log.warn("指令排序按照创建时间执执行失败!重新执行");
//失败之后重新查找指令
return findByDeviceCodeFromCache(devicecode);
}
return null; return null;
} }
@@ -1247,7 +1306,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
return instructions; return instructions;
} }
@Override @Override
public Integer querySameDestinationInst(String devicecode) { public Integer querySameDestinationInst(String devicecode) {
int num = 0; int num = 0;
@@ -1312,7 +1370,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
return false; return false;
} }
@Override @Override
public boolean createLkInst(String type, Instruction dto) { public boolean createLkInst(String type, Instruction dto) {
Class var3 = TaskInstructionLock.class; Class var3 = TaskInstructionLock.class;
@@ -1395,7 +1452,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
} }
} }
public Instruction findByContainer(String container_code) { public Instruction findByContainer(String container_code) {
Iterator var3 = instructions.iterator(); Iterator var3 = instructions.iterator();