diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java index dd0f1298b..4789f9682 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java @@ -82,7 +82,12 @@ public class NDCAgvServiceImpl implements NDCAgvService { if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) { if (!StrUtil.equals(agv_system_type, "1")) { String instcode = inst.getInstruction_code(); - int type = Integer.parseInt(inst.getAgv_inst_type()); + int type; + if (StrUtil.equals(inst.getInstruction_type(), "4")){ + type = Integer.parseInt("4"); + }else { + type = Integer.parseInt(inst.getAgv_inst_type()); + } int priority = Integer.parseInt(inst.getPriority()) + 128; DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceServiceImpl.class); @@ -150,7 +155,7 @@ public class NDCAgvServiceImpl implements NDCAgvService { (byte) 0X00, (byte) 0X00, (byte) carnohigh, (byte) carnolow }; - } else if (type == 2) { + } else if (type == 2 || type == 4) { b = new byte[]{(byte) 0X87, (byte) 0XCD, (byte) 0X00, (byte) 0X08, (byte) 0X00, (byte) 0X18, diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java index 6a640b92b..8be1910c5 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java @@ -283,7 +283,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { if (device.getDeviceDriver() instanceof AirShowerDoorDeviceDriver) { airShowerDoorDeviceDriver = (AirShowerDoorDeviceDriver) device.getDeviceDriver(); try { - if ("AD4".equals(device.getDevice_code())&& airShowerDoorDeviceDriver.getClose2() == 1) { + if (("AD4".equals(device.getDevice_code()) || "AD6".equals(device.getDevice_code()) )&& airShowerDoorDeviceDriver.getClose2() == 1) { airShowerDoorDeviceDriver.writing("to_open", "1"); airShowerDoorDeviceDriver.writing("to_close", "0"); if (airShowerDoorDeviceDriver.getOpen() == 1 && airShowerDoorDeviceDriver.getToOpen() == 1&& airShowerDoorDeviceDriver.getClose2() == 1) { @@ -293,12 +293,12 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { log.info("未下发NDC信号原因: 下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getToClose()); } } - if ("AD5".equals(device.getDevice_code()) && airShowerDoorDeviceDriver.getClose() == 1) { + if (("AD5".equals(device.getDevice_code()) || "AD7".equals(device.getDevice_code())) && airShowerDoorDeviceDriver.getClose() == 1) { airShowerDoorDeviceDriver.writing("to_open2", "1"); airShowerDoorDeviceDriver.writing("to_close", "0"); airShowerDoorDeviceDriver.writing("to_close2", "0"); if (airShowerDoorDeviceDriver.getOpen2() == 1 && airShowerDoorDeviceDriver.getToOpen2() == 1&& airShowerDoorDeviceDriver.getClose() == 1) { - log.info("下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getOpen()); + log.info("下发风淋门2开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getOpen()); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } else { log.info("未下发NDC信号原因: 下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen2(), airShowerDoorDeviceDriver.getToClose2()); @@ -375,21 +375,21 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { if (device.getDeviceDriver() instanceof AirShowerDoorDeviceDriver) { airShowerDoorDeviceDriver = (AirShowerDoorDeviceDriver) device.getDeviceDriver(); try { - if ("AD4".equals(device.getDevice_code())) { + if ("AD4".equals(device.getDevice_code()) || "AD6".equals(device.getDevice_code())) { airShowerDoorDeviceDriver.writing("to_close", "1"); airShowerDoorDeviceDriver.writing("to_open", "0"); if (airShowerDoorDeviceDriver.getClose2() == 1) { - log.info("下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getOpen()); + log.info("下发风淋门关门信号值为:{},读取关门信号值为:{}", airShowerDoorDeviceDriver.getToClose(), airShowerDoorDeviceDriver.getClose()); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } else { log.info("未下发NDC信号原因: 下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getToClose()); } } - if ("AD5".equals(device.getDevice_code())) { + if ("AD5".equals(device.getDevice_code()) || "AD7".equals(device.getDevice_code())) { airShowerDoorDeviceDriver.writing("to_close2", "1"); airShowerDoorDeviceDriver.writing("to_open2", "0"); if (airShowerDoorDeviceDriver.getClose2() == 1 ) { - log.info("下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen2(), airShowerDoorDeviceDriver.getOpen2()); + log.info("下发风淋门2关门信号值为:{},读取关门2信号值为:{}", airShowerDoorDeviceDriver.getToClose2(), airShowerDoorDeviceDriver.getClose2()); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } else { log.info("未下发NDC信号原因: 下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen2(), airShowerDoorDeviceDriver.getToClose2()); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 4c7b748a1..e8280494e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -1488,9 +1488,10 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } String instruction_type = inst.getInstruction_type(); //上传称重数据 - if (StrUtil.equals(instruction_type, CommonFinalParam.ONE)) { + if (StrUtil.equals(instruction_type, "4")) { weight = agvaddr; inst.setWeight(String.valueOf(weight)); + inst.setRemark("废箔重量:" + weight); instructionService.update(inst); if (ObjectUtil.isNotEmpty(task)) { @@ -1503,6 +1504,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic logDto.setLog_level(4); luceneExecuteLogService.deviceExecuteLog(logDto); task.setWeight(String.valueOf(weight)); + task.setRemark("废箔重量:" + weight); task.setCar_no(this.device_code); taskService.update(task); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java index 5a5417cd2..8c4388a08 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java @@ -173,7 +173,7 @@ public class AutoCreateInst { //1、生箔; Itype=1:取空,取满,放空,放满; //2、分切 Itype=3取满、取空、放满、放空; //3、普通任务 Itype=2:取货、放货; - //4、叉车任务 + //4、废箔agv //5、输送任务 //6、行架 //7、立库 @@ -188,7 +188,9 @@ public class AutoCreateInst { instdto.setAgv_inst_type("2"); }else if (StrUtil.equals(task_type, "2")) { instdto.setAgv_inst_type("3"); - } else if (StrUtil.equals(task_type, "8")) { + } else if (StrUtil.equals(task_type, "4")) { + instdto.setAgv_inst_type("4"); + }else if (StrUtil.equals(task_type, "8")) { instdto.setAgv_inst_type("2"); } else { log.info("未找到对应的AGV指令类型,任务号:" + acsTask.getTask_code() + ",task_type:" + acsTask.getTask_type()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotTrussTask.java index a280b881b..2f23386e1 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/InHotTrussTask.java @@ -101,6 +101,9 @@ public class InHotTrussTask extends AbstractTask { SchBasePoint point = hotDjwList.get(0); task.setPoint_code2(point.getPoint_code()); } + if (hotDjwList.size() == 0){ + throw new BadRequestException("入烘箱没有找到存放母卷位置"); + } } // todo: 需要烘烤,且是小卷,但是没有位置,需要将最快结束的烘箱组锁住 } else { @@ -114,18 +117,17 @@ public class InHotTrussTask extends AbstractTask { } // 如果都没有位置, 就去未开启的烘箱的空位,也是区分大小卷 + // todo: (有可能是待烘烤、也有可能是不需要烘烤做为暂存, 目前是判断未使用的点位,后期可能需要加字段) - if (ObjectUtil.isEmpty(task.getPoint_code2())) { - List notTaskHotOven = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), - "0"); - if (notTaskHotOven.size() == 0) { - throw new BadRequestException("未找到可用货位!"); - } - // 代表是暂存 - flag = "1"; - StIvtHotpointivt stIvtHotpointivt = notTaskHotOven.get(0); - task.setPoint_code2(stIvtHotpointivt.getPoint_code()); - } +// if (ObjectUtil.isEmpty(task.getPoint_code2())) { +// List notTaskHotOven = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), +// "0"); +// +// // 代表是暂存 +// flag = "1"; +// StIvtHotpointivt stIvtHotpointivt = notTaskHotOven.get(0); +// task.setPoint_code2(stIvtHotpointivt.getPoint_code()); +// } // 保存任务参数 requestObj.put("caching", flag); task.setRequest_param(requestObj.toJSONString()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java index 0df58b547..d847fb70e 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawCallRollTrussTask.java @@ -69,6 +69,11 @@ public class RawCallRollTrussTask extends AbstractTask { if (endPoints.size() == 0) { throw new BadRequestException("收卷辊出口查询失败!"); } + + List schBaseTasks = taskService.checkHaveTask(endPoints.get(0).getPoint_code()); + if (schBaseTasks.size() > 0) { + throw new BadRequestException("已创建行架任务等待agv完成后再下生箔下料任务!"); + } // 获取点 SchBasePoint startPoint = startPoints.get(0); SchBasePoint endPoint = endPoints.get(0); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterDownAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterDownAGVTask.java index 6ae8e920b..27860df39 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterDownAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterDownAGVTask.java @@ -90,12 +90,20 @@ public class SlitterDownAGVTask extends AbstractTask { .orElse(null); task.setPoint_code1(requestObj.getString("device_code")); // 查找终点,在内包间的区域找个空位. + // 校验acs点位信息与终点点位信息是否匹配 List areaEmptyNotTaskPoint = bstIvtCutpointivtService.getAreaNotTaskPointByStatus("1", "1", "0", "1"); if (areaEmptyNotTaskPoint.size() == 0) { throw new BadRequestException("请求搬运失败,内包间没有可存放位置!"); } - BstIvtCutpointivt endPoint = areaEmptyNotTaskPoint.get(0); + BstIvtCutpointivt endPoint = null; + + for (BstIvtCutpointivt bstIvtCutpointivt : areaEmptyNotTaskPoint) { + + } + if (endPoint == null) { + throw new BadRequestException("请求搬运失败,缓存架没有匹配的位置!"); + } task.setPoint_code2(endPoint.getPoint_code()); // 设置气胀轴 task.setVehicle_code(currentUpPlan != null ? currentUpPlan.getQzzno() : "");