diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/dto/CustomPolicyPlantDTO.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/dto/CustomPolicyPlantDTO.java index dd1bba6..24cc2bd 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/dto/CustomPolicyPlantDTO.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/custompolicy/server/dto/CustomPolicyPlantDTO.java @@ -27,5 +27,7 @@ public class CustomPolicyPlantDTO implements Serializable { private Integer to; @ApiModelProperty(value = "数量") private Integer quantity; + @ApiModelProperty(value = "排序") + private Integer sort; } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java index 4a1963c..f4d37d8 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java @@ -191,7 +191,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver } } WaitingInstructionDeque deque = null; - deque = instructionService.findByStategy(this.getDeviceCode(), "deviceCustomerDequeStrategy"); +// deque = instructionService.findByStategy(this.getDeviceCode(), "deviceCustomerDequeStrategy"); } catch (Exception var17) { diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java index 63ee120..965c5b3 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java @@ -302,15 +302,7 @@ public class TaskDto implements Serializable { */ private String temperature; - /** - * 起点高度 - */ - private String start_height; - /** - * 终点高度 - */ - private String next_height; } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/quartz/task/AutoCreateInst.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/quartz/task/AutoCreateInst.java deleted file mode 100644 index 95bcc77..0000000 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/quartz/task/AutoCreateInst.java +++ /dev/null @@ -1,343 +0,0 @@ -package org.nl.quartz.task; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.ObjectUtils; -import org.nl.acs.AcsConfig; -import org.nl.acs.device.domain.Device; -import org.nl.acs.device_driver.basedriver.standard_inspect_site.StandardInspectSiteDeviceDriver; -import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; -import org.nl.acs.instruction.domain.Instruction; -import org.nl.acs.instruction.enums.InstructionStatusEnum; -import org.nl.acs.instruction.service.InstructionService; -import org.nl.acs.opc.DeviceAppService; -import org.nl.acs.opc.DeviceAppServiceImpl; -import org.nl.acs.route.service.RouteLineService; -import org.nl.acs.route.service.dto.RouteLineDto; -import org.nl.acs.task.enums.TaskStatusEnum; -import org.nl.acs.task.service.TaskService; -import org.nl.acs.task.service.dto.TaskDto; -import org.nl.config.SpringContextHolder; -import org.nl.system.service.param.ISysParamService; -import org.springframework.stereotype.Component; - -import java.util.Arrays; -import java.util.List; - -/** - * 自动创建指令 - */ -@Slf4j -@Component -public class AutoCreateInst { - /** - * 根据任务状态创建指令、生成下一条指令 - * 创建指令前需要判断是否条件具备:起始位置是否有货、目标位置是否有货 - */ - public void run() throws Exception { - TaskService taskserver = SpringContextHolder.getBean(TaskService.class); - InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class); - RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineService.class); - ISysParamService acsConfigService = SpringContextHolder.getBean(ISysParamService.class); - List list = taskserver.queryByStauts("0"); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - for (int i = 0; i < list.size(); i++) { - TaskDto acsTask = list.get(i); - String taskid = acsTask.getTask_id(); - String taskcode = acsTask.getTask_code(); - String vehiclecode = acsTask.getVehicle_code(); - String priority = acsTask.getPriority(); - String start_point_code = acsTask.getStart_point_code(); - String start_device_code = acsTask.getStart_device_code(); - String route_plan_code = acsTask.getRoute_plan_code(); - String vehicleType = acsTask.getVehicle_type(); - //是否复合任务 =0非复合任务 - String compound_task = acsTask.getCompound_task(); - String compound_task_data = null; - String next_point_code = acsTask.getNext_point_code(); - String next_device_code = acsTask.getNext_device_code(); - if (StrUtil.isEmpty(start_device_code)) { - log.info("任务 [" + taskcode + "] 起点设备为空,无法生成指令。"); - acsTask.setRemark("任务 [" + taskcode + "] 起点设备为空,无法生成指令。"); - taskserver.updateByCodeFromCache(acsTask); - continue; - } - if (StrUtil.isEmpty(next_device_code)) { - log.info("任务 [" + taskcode + "] 终点设备为空,无法生成指令。"); - acsTask.setRemark("任务 [" + taskcode + "] 终点设备为空,无法生成指令。"); - taskserver.updateByCodeFromCache(acsTask); - continue; - } - List instructions = instructionService.queryAll("instruction_status < 2"); - String maxInstnumber = acsConfigService.findByCode(AcsConfig.MAXINSTNUMBER).getValue(); - if (ObjectUtils.isNotEmpty(maxInstnumber)) { - if (instructions.size() >= Integer.parseInt(maxInstnumber)) { - log.info("已达到系统参数配置的最大指令数 [" + maxInstnumber + "] ,无法生成指令。"); - acsTask.setRemark("已达到系统参数配置的最大指令数 [" + maxInstnumber + "] ,无法生成指令。"); - taskserver.updateByCodeFromCache(acsTask); - continue; - } - } - - - /** - * 开始平均分解校验 - */ - String this_device_code = taskserver.queryAssignedByDevice(acsTask.getStart_device_code(), acsTask.getNext_device_code()); - if (StrUtil.isEmpty(this_device_code)) { - List shortPathsList = routeLineService.getShortPathLines(start_device_code, acsTask.getNext_device_code(), route_plan_code); - RouteLineDto routeLineDto = shortPathsList.get(0); - String path = routeLineDto.getPath(); - String type = routeLineDto.getType(); - String[] str = path.split("->"); - List pathlist = Arrays.asList(str); - if (StrUtil.equals(acsTask.getTask_type(), "2")) { - for (int j = 0; j < pathlist.size(); j++) { - if (j == 0) { - compound_task_data = pathlist.get(j).trim(); - } else { - compound_task_data = compound_task_data + "->" + pathlist.get(j).trim(); - } - } - next_device_code = pathlist.get(pathlist.size() - 1); - - } else { - int index = 0; - for (int m = 0; m < pathlist.size(); m++) { - if (pathlist.get(m).equals(start_device_code)) { - index = m + 1; - break; - } - } - next_device_code = pathlist.get(index); - } - } else { - next_device_code = this_device_code; - } - //校验路由关系 - List shortPathsList = routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code); - if (ObjectUtils.isEmpty(shortPathsList)) { - log.info("任务 [" + taskcode + "] 路由不通无法生成指令。"); - acsTask.setRemark("任务 [" + taskcode + "] 路由不通无法生成指令。"); - taskserver.updateByCodeFromCache(acsTask); - continue; - } - - if (!StrUtil.equals(shortPathsList.get(0).getType(), "1")) { - continue; - } - Device startdevice = appService.findDeviceByCode(start_device_code); - Device nextdevice = appService.findDeviceByCode(next_device_code); - if (StrUtil.equals(appService.findDeviceTypeByCode(next_device_code), "storage")) { - next_point_code = next_device_code + "-" + acsTask.getTo_y() + "-" + acsTask.getTo_z(); - } else { - next_point_code = next_device_code; - } - if (ObjectUtils.isEmpty(startdevice)) { - log.info("任务 [" + taskcode + "] 起点设备编码 [" + start_device_code + "] 对应设备未找到,无法生成指令。"); - continue; - } - if (ObjectUtils.isEmpty(nextdevice)) { - log.info("任务 [" + taskcode + "] 终点设备编码 [" + next_device_code + "] 对应设备未找到,无法生成指令。"); - continue; - } - //普通站点 - StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; - StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; -// StandardEmptyPalletSiteDeviceDriver standardEmptsyPalletSiteDeviceDriver; -// LampThreecolorDeviceDriver lampThreecolorDeviceDriver; -// LnshFoldDiscSiteDeviceDriver lnshFoldDiscSiteDeviceDriver; - - String createTaskCheck = acsConfigService.findByCode(AcsConfig.CREATETASKCHECK).getValue(); - - if (StrUtil.equals(createTaskCheck, "1")) { - if (startdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) startdevice.getDeviceDriver(); - if (standardInspectSiteDeviceDriver.getMode() != 2) { - log.info("起点设备:" + startdevice.getDevice_code() + "设备未待机,任务号:" + taskcode); - acsTask.setRemark("起点设备:" + startdevice.getDevice_code() + "设备未待机,任务号:" + taskcode); - taskserver.updateByCodeFromCache(acsTask); - //this.execute_log.setResource(startdevice.getDevice_code(), startdevice.getDevice_code()); - //this.execute_log.log("起点设备:" + startdevice.getDevice_code() + "设备未待机,任务号:" + taskcode); - continue; - } - } -// if (startdevice.getDeviceDriver() instanceof StandardEmptyPalletSiteDeviceDriver) { -// standardEmptsyPalletSiteDeviceDriver = (StandardEmptyPalletSiteDeviceDriver) startdevice.getDeviceDriver(); -// if (standardEmptsyPalletSiteDeviceDriver.getMode() != 2) { -// log.info("目标设备:" + nextdevice.getDevice_code() + "设备未待机,任务号:" + taskcode); -// acsTask.setRemark("目标设备:" + nextdevice.getDevice_code() + "设备未待机,任务号:" + taskcode); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } -// } -// if (startdevice.getDeviceDriver() instanceof LnshFoldDiscSiteDeviceDriver) { -// lnshFoldDiscSiteDeviceDriver = (LnshFoldDiscSiteDeviceDriver) startdevice.getDeviceDriver(); -// if (lnshFoldDiscSiteDeviceDriver.getMode() != 2) { -// log.info("目标设备:" + nextdevice.getDevice_code() + "设备未待机,任务号:" + taskcode); -// acsTask.setRemark("目标设备:" + nextdevice.getDevice_code() + "设备未待机,任务号:" + taskcode); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } -// } - - //校验 是否同任务是否存在相同终点、未完成的指令 - int sameqty = instructionService.querySameDestinationInst(next_point_code); - if (sameqty > 0) { - log.info("存在相同终点的指令,任务号:" + taskcode); - acsTask.setRemark("存在相同终点的指令,任务号:" + taskcode); - taskserver.updateByCodeFromCache(acsTask); - continue; - } - } - - //空盘位生成指令需要另外逻辑 -// if (nextdevice.getDeviceDriver() instanceof LnshFoldDiscSiteDeviceDriver) { -// lnshFoldDiscSiteDeviceDriver = (LnshFoldDiscSiteDeviceDriver) nextdevice.getDeviceDriver(); -// if (lnshFoldDiscSiteDeviceDriver.getMode() == 0) { -// log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 未联机,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 未联机,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } else if (lnshFoldDiscSiteDeviceDriver.getError() != 0 -// || lnshFoldDiscSiteDeviceDriver.getStatus() == 3) { -// log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 异常,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 异常,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } -// int max_emptypalletnum = Integer.parseInt(nextdevice.getExtraValue().get("max_emptypalletnum").toString()); -// int nowNumber = lnshFoldDiscSiteDeviceDriver.getContainer_qty(); -// if (nowNumber >= max_emptypalletnum) { -// log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 已满,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 已满,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } -// // 查看是否有相同终点的指令 -// int count = instructionService.queryDeviceInstCount(next_device_code); -// if (count > 0) { -// log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 已被占用,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 已被占用,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// //this.execute_log.setResource(nextdevice.getDevice_code(), nextdevice.getDevice_code()); -// //this.execute_log.log("存在相同终点的指令,任务号:" + taskcode); -// continue; -// } -// next_point_code = next_device_code + "." + (nowNumber + 1); -// } else if (nextdevice.getDeviceDriver() instanceof LnshStationDeviceDriver -// && "true".equals(nextdevice.getExtraValue().get("inspect_in_stocck"))) { -// LnshStationDeviceDriver deviceDriver = (LnshStationDeviceDriver) nextdevice.getDeviceDriver(); -// if (deviceDriver.getMode() == 0) { -// log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 未联机,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 未联机,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } else if (deviceDriver.getMove() != 0) { -// log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 有货,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 有货,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } else if (deviceDriver.getError() != 0) { -// log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 异常,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 异常,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } -// } - -// if (startdevice.getDeviceDriver() instanceof LnshFoldDiscSiteDeviceDriver) { -// lnshFoldDiscSiteDeviceDriver = (LnshFoldDiscSiteDeviceDriver) startdevice.getDeviceDriver(); -// if (lnshFoldDiscSiteDeviceDriver.getMode() == 0) { -// log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 未联机,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 未联机,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } else if (lnshFoldDiscSiteDeviceDriver.getError() != 0 -// || lnshFoldDiscSiteDeviceDriver.getStatus() == 3) { -// log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 异常,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 异常,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } -// -// int container_qty = lnshFoldDiscSiteDeviceDriver.getContainer_qty(); -// int max_emptypalletnum = Integer.parseInt(startdevice.getExtraValue().get("max_emptypalletnum").toString()); -// if (container_qty < (max_emptypalletnum / 2)) { -// log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 可用托盘数量少于最大托盘数量 [" + max_emptypalletnum + "] / 2,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 可用托盘数量少于最大托盘数量 [" + max_emptypalletnum + "] / 2,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } -// -// int count = instructionService.queryDeviceInstCount(start_device_code); -// if (count > 0) { -// log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 已被占用,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 已被占用,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// //this.execute_log.setResource(nextdevice.getDevice_code(), nextdevice.getDevice_code()); -// //this.execute_log.log("存在相同终点的指令,任务号:" + taskcode); -// continue; -// } -// -// start_point_code = start_device_code + ".1"; -// } else if (startdevice.getDeviceDriver() instanceof LnshStationDeviceDriver -// && "true".equals(startdevice.getExtraValue().get("inspect_in_stocck"))) { -// LnshStationDeviceDriver deviceDriver = (LnshStationDeviceDriver) startdevice.getDeviceDriver(); -// if (deviceDriver.getMode() == 0) { -// log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 未联机,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 未联机,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } else if (deviceDriver.getMove() == 0) { -// log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 无货,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 无货,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } else if (deviceDriver.getError() != 0) { -// log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 异常,无法生成指令。"); -// acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 异常,无法生成指令。"); -// taskserver.updateByCodeFromCache(acsTask); -// continue; -// } -// } - - Instruction instdto = new Instruction(); - instdto.setInstruction_type(acsTask.getTask_type()); - instdto.setInstruction_id(IdUtil.simpleUUID()); - instdto.setRoute_plan_code(route_plan_code); - instdto.setRemark(acsTask.getRemark()); - instdto.setMaterial(acsTask.getMaterial()); - instdto.setQuantity(acsTask.getQuantity()); - instdto.setTask_id(taskid); - instdto.setTask_code(taskcode); - instdto.setVehicle_code(vehiclecode); - String now = DateUtil.now(); - instdto.setCreate_time(now); - instdto.setCreate_by("auto"); - instdto.setStart_device_code(start_device_code); - instdto.setNext_device_code(next_device_code); - instdto.setStart_point_code(start_point_code); - instdto.setNext_point_code(next_point_code); - instdto.setCompound_inst_data(compound_task_data); - instdto.setPriority(priority); - instdto.setInstruction_status(InstructionStatusEnum.READY.getIndex()); - instdto.setExecute_device_code(start_point_code); - instdto.setVehicle_type(vehicleType); - try { - instructionService.create(instdto); - } catch (Exception e) { - acsTask.setRemark(e.getMessage()); - taskserver.updateByCodeFromCache(acsTask); - continue; - } - log.info("任务 [" + taskcode + "] 指令成功生成!"); - //创建指令后修改任务状态 - acsTask.setTask_status(TaskStatusEnum.BUSY.getIndex()); - taskserver.update(acsTask); - - } - } -} diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/quartz/task/NdcAutoReconnection.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/NdcAutoReconnection.java similarity index 94% rename from acs/nladmin-system/nlsso-server/src/main/java/org/nl/quartz/task/NdcAutoReconnection.java rename to acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/NdcAutoReconnection.java index 2b43ffc..c1b1d54 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/quartz/task/NdcAutoReconnection.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/NdcAutoReconnection.java @@ -1,4 +1,4 @@ -package org.nl.quartz.task; +package org.nl.system.service.quartz.task; import lombok.extern.slf4j.Slf4j; import org.nl.acs.auto.run.AutoRunService; diff --git a/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml b/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml index e632780..4950662 100644 --- a/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml +++ b/acs/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml @@ -10,7 +10,7 @@ spring: url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lzhl_two_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} # password: ${DB_PWD:Root.123456} - password: ${DB_PWD:123456} + password: ${DB_PWD:root} # 初始连接数 initial-size: 5 # 最小连接数