diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_stacker/StandardStackerDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_stacker/StandardStackerDeviceDriver.java index a5bf1fd..5febdc9 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_stacker/StandardStackerDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_stacker/StandardStackerDeviceDriver.java @@ -389,8 +389,8 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme } - if (mode != 3) { - message = "未联机"; + if (mode != 3 || requireSucess) { + message = "未联机或已修改"; } else if (error != 0) { message = "有报警"; @@ -417,8 +417,10 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme HashMap map = new HashMap(); switch (command) { case 0: - applyTask(); - requireSucess = true; + boolean b = applyTask(); + if (b) { + requireSucess = true; + } break; case 1: message = "取货中"; @@ -429,13 +431,13 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme String next_device_code = instruction.getNext_device_code(); Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); if (StrUtil.equals(nextDevice.getDevice_type(), DeviceType.conveyor.name())) { - if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("z")) && "z".equals(nextDevice.getExtraValue().get("z"))) { + if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("z"))) { map.put("to_x", nextDevice.getExtraValue().get("z")); } - if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("x")) && "x".equals(nextDevice.getExtraValue().get("x"))) { + if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("x"))) { map.put("to_z", nextDevice.getExtraValue().get("x")); } - if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("y")) && "y".equals(nextDevice.getExtraValue().get("y"))) { + if (ObjectUtil.isNotEmpty(nextDevice.getExtraValue().get("y"))) { map.put("to_y", nextDevice.getExtraValue().get("y")); } } @@ -620,13 +622,13 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme map.put("to_task", inst.getInstruction_code()); if (StrUtil.equals(startDevice.getDevice_type(), DeviceType.conveyor.name())) { - if (ObjectUtil.isNotEmpty(startDevice.getExtraValue().get("x")) && "x".equals(startDevice.getExtraValue().get("x"))) { + if (ObjectUtil.isNotEmpty(startDevice.getExtraValue().get("x"))) { map.put("to_x", startDevice.getExtraValue().get("x")); } - if (ObjectUtil.isNotEmpty(startDevice.getExtraValue().get("z")) && "z".equals(startDevice.getExtraValue().get("z"))) { + if (ObjectUtil.isNotEmpty(startDevice.getExtraValue().get("z"))) { map.put("to_z", startDevice.getExtraValue().get("z")); } - if (ObjectUtil.isNotEmpty(startDevice.getExtraValue().get("y")) && "y".equals(startDevice.getExtraValue().get("y"))) { + if (ObjectUtil.isNotEmpty(startDevice.getExtraValue().get("y"))) { map.put("to_y", startDevice.getExtraValue().get("y")); } } @@ -644,7 +646,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme this.writing(map); } } - return false; + return true; } /** diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 232f16a..234cc18 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -780,7 +780,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme throw new BadRequestException(LangProcess.msg("task_checkExist",device_code)); } if (StrUtil.equals(material_type, "") || StrUtil.equals(quantity, "")) { - throw new RuntimeException("请填写物料信息!"); + throw new RuntimeException(LangProcess.msg("material_information")); } dto.setStart_device_code(device_code); dto.setStart_point_code(device_code); @@ -805,7 +805,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme JSONArray array2 = json.getJSONArray("data2"); JSONArray array3 = json.getJSONArray("data3"); if (array.size() != 0 && array3.size() != 0) { - throw new RuntimeException("只能选择一个终点"); + throw new RuntimeException(LangProcess.msg("an_endpoint")); } for (int i = 0; i < array2.size(); i++) { @@ -1515,10 +1515,10 @@ public class TaskServiceImpl extends CommonServiceImpl impleme // 如果point_device为货架,则不包含列层信息,需要重新拼接 if (StrUtil.equals("storage", start_device)) { if (StrUtil.isEmpty(task.getFrom_x())) { - throw new BadRequestException("货位信息起点需要包含列信息"); + throw new BadRequestException(LangProcess.msg("start_point_column")); } if (StrUtil.isEmpty(task.getFrom_y())) { - throw new BadRequestException("货位信息起点需要包含层信息"); + throw new BadRequestException(LangProcess.msg("start_point_layer")); } if (Integer.parseInt(task.getFrom_y()) < 10 && task.getFrom_y().length() == 1) { from_y = "0" + task.getFrom_y(); @@ -1578,10 +1578,10 @@ public class TaskServiceImpl extends CommonServiceImpl impleme .name(); if (StrUtil.equals("storage", next_device)) { if (StrUtil.isEmpty(task.getTo_x())) { - throw new BadRequestException("货位信息终点需要包含列信息"); + throw new BadRequestException(LangProcess.msg("endpoint_column")); } if (StrUtil.isEmpty(task.getTo_y())) { - throw new BadRequestException("货位信息终点需要包含层信息"); + throw new BadRequestException(LangProcess.msg("endpoint_layer")); } if (Integer.parseInt(task.getTo_y()) < 10 && task.getTo_y().length() == 1) { to_y = "0" + task.getTo_y(); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java index 4f9a288..01ae859 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java @@ -73,7 +73,8 @@ public class CreateDDJInst { RouteLineDto routeLineDto = (RouteLineDto) list.get(0); String[] path = routeLineDto.getPath().split("->"); List pathlist = Arrays.asList(path); - if (pathlist.size() < 3 || pathlist.get(1).equals(DeviceType.stacker.name())) { + String deviceType = appService.findDeviceByCode(pathlist.get(1)).getDevice_type(); + if (pathlist.size() < 3 || (!deviceType.equals(DeviceType.stacker.name()))) { return; } Device deviceByCode = appService.findDeviceByCode(pathlist.get(1)); @@ -128,6 +129,46 @@ public class CreateDDJInst { String start_height = taskDto.getStart_height(); String next_height = taskDto.getNext_height(); + /** + * 开始平均分配 + */ + String this_coevice_code = taskserver.queryAssignedByDevice(start_device_code, next_device_code); + if (StrUtil.isEmpty(this_coevice_code)) { + List shortPathsList = routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code); + RouteLineDto routeLineDto1 = shortPathsList.get(0); + + String path1 = routeLineDto1.getPath(); + String type1 = routeLineDto1.getType(); + String[] str = path1.split("->"); + + List pathlist1 = Arrays.asList(str); + int index = 0; + for (int m = 0; m < pathlist1.size(); m++) { + String deviceType1 = appService.findDeviceByCode(pathlist1.get(m)).getDevice_type(); + if(deviceType1.equals(DeviceType.stacker.name())){ + index = m + 1; + break; + } + /*if (pathlist1.get(m).equals(start_device_code)) { + + }*/ + } + next_device_code = pathlist1.get(index); + } else { + next_device_code = this_coevice_code; + } + //校验路由关系 + List shortPathsList = routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code); + if (ObjectUtils.isEmpty(shortPathsList) || shortPathsList.size()<1) { + throw new RuntimeException("路由不通!"); + } +// 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 + "-" + taskDto.getTo_y() + "-" + taskDto.getTo_z(); + } else { + next_point_code = next_device_code; + } //单台堆垛机最多只能创建固定数量指令 Instruction instruction = new Instruction(); instruction.setInstruction_status("1"); @@ -234,7 +275,7 @@ public class CreateDDJInst { String[] path1 = routeLineDto1.getPath().split("->"); List pathlist1 = Arrays.asList(path1); if (pathlist1.size() < 3 || pathlist1.get(1).equals(DeviceType.stacker.name())) { - return; + //return; } if (pathlist1.get(1).equals(pathlist.get(1))) { max++; diff --git a/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task.properties b/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task.properties index e5db703..917cf44 100644 --- a/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task.properties +++ b/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task.properties @@ -3,3 +3,12 @@ task_insHas=指令已存在 task_insRun=有指令未完成 task_isNull={0}查询信息不存在 starting_point_isNull=请选择起点 +endpoint_layer=货位信息终点需要包含层信息 +endpoint_column=货位信息终点需要包含列信息 +start_point_layer=货位信息起点需要包含层信息 +start_point_column=货位信息起点需要包含列信息 +an_endpoint=只能选择一个终点 +material_information=请填写物料信息 + + + diff --git a/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_en_US.properties b/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_en_US.properties index f374849..bf16cb2 100644 --- a/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_en_US.properties +++ b/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_en_US.properties @@ -3,3 +3,9 @@ task_insHas=Instruction already exists task_insRun=There are instructions that are not completed task_isNull={0}query is null starting_point_isNull = Please select starting point +endpoint_layer=The destination of the storage location information needs to include the floor information +endpoint_column=The location information endpoint needs to contain column information +start_point_layer=The starting point of the storage location information needs to include the floor information +start_point_column=The starting point of the storage location information needs to contain column information +an_endpoint=Only one endpoint can be selected +material_information=Please fill in the material information! diff --git a/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_in_ID.properties b/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_in_ID.properties index 41041c4..5ba8979 100644 --- a/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_in_ID.properties +++ b/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_in_ID.properties @@ -3,3 +3,9 @@ task_insHas=Instruksi sudah ada task_insRun=Ada instruksi yang belum selesai task_isNull={0}Pertanyaan Tidak ada starting_point_isNull = Silakan pilih titik awal +endpoint_layer=Tujuan informasi lokasi penyimpanan perlu mencakup informasi lantai. +endpoint_column=Tujuan informasi lokasi penyimpanan perlu mencakup informasi kolom. +start_point_layer=Titik awal perlu mencakup informasi lantai. +start_point_column=Titik awal perlu mencakup informasi kolom. +an_endpoint=Hanya satu tujuan yang dapat dipilih. +material_information=Silakan isi informasi material! diff --git a/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_zh_CN.properties b/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_zh_CN.properties index 5f0fd04..c71cc64 100644 --- a/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_zh_CN.properties +++ b/acs/nladmin-system/nlsso-server/src/main/resources/language/task/task_zh_CN.properties @@ -2,3 +2,10 @@ task_checkExist={0}任务已存在 task_insHas=指令已存在 task_insRun=有指令未完成 task_isNull={0}查询信息不存在 +starting_point_isNull=请选择起点 +endpoint_layer=货位信息终点需要包含层信息 +endpoint_column=货位信息终点需要包含列信息 +start_point_layer=货位信息起点需要包含层信息 +start_point_column=货位信息起点需要包含列信息 +an_endpoint=只能选择一个终点 +material_information=请填写物料信息