From 7e2017163979f337f256fadf8f9508b5f7071aa9 Mon Sep 17 00:00:00 2001 From: ls <1793460677@qq.com> Date: Fri, 27 Dec 2024 08:11:27 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E5=8F=96=E6=A0=B7=E3=80=81lms=E3=80=81a?= =?UTF-8?q?cs=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../run/TwoNDCSocketConnectionAutoRun.java | 66 +++++++++-- .../service/impl/DeviceServiceImpl.java | 5 + .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 106 ++++++++++++++---- .../AirShowerDoorDeviceDriver.java | 14 +++ .../air_shower_door/ItemProtocol.java | 36 ++++-- .../ManipulatorAgvStationDeviceDriver.java | 14 +-- .../OvenGantryManipulatorDeviceDriver.java | 13 ++- .../acs/ext/wms/service/AcsToWmsService.java | 8 ++ .../wms/service/impl/AcsToWmsServiceImpl.java | 41 +++++++ .../service/quartz/task/AutoCreateInst.java | 7 +- .../acs/controller/AcsToWmsController.java | 7 ++ .../wms/ext/acs/service/AcsToWmsService.java | 8 ++ .../acs/service/impl/AcsToWmsServiceImpl.java | 6 + .../service/impl/RawFoilPdaServiceImpl.java | 49 ++++---- .../service/impl/SlitterPdaServiceImpl.java | 3 +- .../st/service/impl/OtherPdaServiceImpl.java | 9 +- .../service/OtherOperationService.java | 7 ++ .../impl/OtherOperationServiceImpl.java | 14 +++ .../tasks/other/CallToSamplingAGVTask.java | 2 + .../slitter/SlitterSendRollTrussTask.java | 25 ++++- .../tasks/slitter/SlitterUpAGVTask.java | 43 ++++--- .../tasks/slitter/SlitterUpTrussTask.java | 4 +- 22 files changed, 390 insertions(+), 97 deletions(-) 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 0c4918c28..6a640b92b 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 @@ -166,7 +166,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { //自动门 AirShowerDoorDeviceDriver airShowerDoorDeviceDriver; LiftDoorDeviceDriver liftDoorDeviceDriver; - StandardAutodoorDeviceDriver standardAutodoorDeviceDriver; + StandardAutodoorDeviceDriver standardAutodoorDeviceDriver; if (agvaddr != 0) { old_device_code = deviceService.queryDeviceCodeByAddress(agvaddr); if (StrUtil.contains(old_device_code, "-")) { @@ -283,18 +283,33 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { if (device.getDeviceDriver() instanceof AirShowerDoorDeviceDriver) { airShowerDoorDeviceDriver = (AirShowerDoorDeviceDriver) device.getDeviceDriver(); try { - airShowerDoorDeviceDriver.writing("to_open", "1"); - airShowerDoorDeviceDriver.writing("to_close", "0"); + if ("AD4".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) { + log.info("下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getOpen()); + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + log.info("未下发NDC信号原因: 下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getToClose()); + } + } + if ("AD5".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()); + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + log.info("未下发NDC信号原因: 下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen2(), airShowerDoorDeviceDriver.getToClose2()); + } + } + } catch (Exception e) { log.info("下发风淋门电气信号失败:" + e.getMessage()); e.printStackTrace(); } - if (airShowerDoorDeviceDriver.getOpen() == 1 && airShowerDoorDeviceDriver.getToOpen() == 1) { - log.info("下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getOpen()); - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); - } else { - log.info("未下发NDC信号原因: 下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getToClose()); - } + } if (device.getDeviceDriver() instanceof LiftDoorDeviceDriver) { liftDoorDeviceDriver = (LiftDoorDeviceDriver) device.getDeviceDriver(); @@ -305,7 +320,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { log.info("下发电梯门电气信号失败:" + e.getMessage()); e.printStackTrace(); } - if (liftDoorDeviceDriver.getOpen() == 1 && liftDoorDeviceDriver.getToOpen() == 1 ) { + if (liftDoorDeviceDriver.getOpen() == 1 && liftDoorDeviceDriver.getToOpen() == 1) { log.info("下发电梯门开门信号值为:{},读取开门信号值为:{}", liftDoorDeviceDriver.getToOpen(), liftDoorDeviceDriver.getOpen()); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } else { @@ -342,8 +357,10 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); try { + standardAutodoorDeviceDriver.writing("to_close", "1"); standardAutodoorDeviceDriver.writing("to_open", "0"); + } catch (Exception e) { log.info("下发电气信号失败:" + e.getMessage()); e.printStackTrace(); @@ -355,6 +372,35 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { log.info("未下发NDC信号原因: 读取关门信号值为:{}", standardAutodoorDeviceDriver.getClose()); } } + if (device.getDeviceDriver() instanceof AirShowerDoorDeviceDriver) { + airShowerDoorDeviceDriver = (AirShowerDoorDeviceDriver) device.getDeviceDriver(); + try { + if ("AD4".equals(device.getDevice_code())) { + airShowerDoorDeviceDriver.writing("to_close", "1"); + airShowerDoorDeviceDriver.writing("to_open", "0"); + if (airShowerDoorDeviceDriver.getClose2() == 1) { + log.info("下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getOpen()); + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + log.info("未下发NDC信号原因: 下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen(), airShowerDoorDeviceDriver.getToClose()); + } + } + if ("AD5".equals(device.getDevice_code())) { + airShowerDoorDeviceDriver.writing("to_close2", "1"); + airShowerDoorDeviceDriver.writing("to_open2", "0"); + if (airShowerDoorDeviceDriver.getClose2() == 1 ) { + log.info("下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen2(), airShowerDoorDeviceDriver.getOpen2()); + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + } else { + log.info("未下发NDC信号原因: 下发风淋门开门信号值为:{},读取开门信号值为:{}", airShowerDoorDeviceDriver.getToOpen2(), airShowerDoorDeviceDriver.getToClose2()); + } + } + } catch (Exception e) { + log.info("下发风淋门电气信号失败:" + e.getMessage()); + e.printStackTrace(); + } + + } } else { log.info(device_code + "对应设备号为空!"); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java index 6fd86d360..ca9ce0e96 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java @@ -35,6 +35,7 @@ import org.nl.acs.device_driver.one_manipulator.return_good_manipulator.ReturnGo import org.nl.acs.device_driver.one_manipulator.trapped_manipulator.TrappedManipulatorManipulatorDeviceDriver; import org.nl.acs.device_driver.one_manipulator.volume_two_manipulator.VolumeTwoManipulatorManipulatorDeviceDriver; import org.nl.acs.device_driver.stacker.standard_stacker.StandardStackerDeviceDriver; +import org.nl.acs.device_driver.two_conveyor.manipulator_agv_station.ManipulatorAgvStationDeviceDriver; import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver; import org.nl.acs.device_driver.two_conveyor.pipe_core_rack_manipulator.PipeCoreRackManipulatorDeviceDriver; import org.nl.acs.device_driver.two_conveyor.roll_up_roller_manipulator.RollUpRollerManipulatorDeviceDriver; @@ -1065,6 +1066,10 @@ public class DeviceServiceImpl extends CommonServiceImpl i RollUpRollerManipulatorDeviceDriver rollUpRollerManipulatorDeviceDriver = (RollUpRollerManipulatorDeviceDriver) device.getDeviceDriver(); rollUpRollerManipulatorDeviceDriver.setDeviceStatus(form); } + else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + ManipulatorAgvStationDeviceDriver manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + manipulatorAgvStationDeviceDriver.setDeviceStatus(form); + } else if (device.getDeviceDriver() instanceof PipeCoreRackManipulatorDeviceDriver) { PipeCoreRackManipulatorDeviceDriver pipeCoreRackManipulatorDeviceDriver = (PipeCoreRackManipulatorDeviceDriver) device.getDeviceDriver(); 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 f7708c82f..12e063557 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 @@ -316,7 +316,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } catch (Exception e) { e.printStackTrace(); } - }else { + } else { try { manipulatorAgvStationDeviceDriver.writing(2); } catch (Exception e) { @@ -609,7 +609,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic logDto.setLog_level(4); luceneExecuteLogService.deviceExecuteLog(logDto); } - }else { + } else { try { @@ -1073,7 +1073,8 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //收卷锟行架 if (linkDevice.getDeviceDriver() instanceof RollUpRollerManipulatorDeviceDriver) { rollUpRollerManipulatorDeviceDriver = (RollUpRollerManipulatorDeviceDriver) linkDevice.getDeviceDriver(); - if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && manipulatorAgvStationDeviceDriver.getMove() == 1 && rollUpRollerManipulatorDeviceDriver.getMode() != 3)) { + if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && manipulatorAgvStationDeviceDriver.getMove() == 1 && rollUpRollerManipulatorDeviceDriver.getMode() != 3 && rollUpRollerManipulatorDeviceDriver.getError() == 0 && rollUpRollerManipulatorDeviceDriver.getError2() + == 0)) { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); LuceneLogDto logDto = LuceneLogDto.builder() .device_code(this.getDeviceCode()) @@ -1094,7 +1095,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //烘箱行架 if (linkDevice.getDeviceDriver() instanceof OvenGantryManipulatorDeviceDriver) { ovenGantryManipulatorDeviceDriver = (OvenGantryManipulatorDeviceDriver) linkDevice.getDeviceDriver(); - if ((manipulatorAgvStationDeviceDriver.getAction() == 6 )) { + if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && ovenGantryManipulatorDeviceDriver.getError() == 0)) { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); LuceneLogDto logDto = LuceneLogDto.builder() .device_code(this.getDeviceCode()) @@ -1138,29 +1139,96 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } else if (ObjectUtil.isNotEmpty(start_device_code) && (StrUtil.equals(device_code, next_device_code) || StrUtil.equals(device_code, next_device_code2))) { if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + List linkDeviceCodes = manipulatorAgvStationDeviceDriver.getExtraDeviceCodes("link_device_code"); + //放货进入区域请求进入 try { manipulatorAgvStationDeviceDriver.writing(6); } catch (Exception e) { e.printStackTrace(); } - if ((manipulatorAgvStationDeviceDriver.getAction() == 6)) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("agvphase:" + phase + "反馈:" + data) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); + //行架运行时agv不允许进入 + if (CollUtil.isNotEmpty(linkDeviceCodes)) { + String linkDeviceCode = linkDeviceCodes.get(0); + Device linkDevice = deviceAppService.findDeviceByCode(linkDeviceCode); + RollUpRollerManipulatorDeviceDriver rollUpRollerManipulatorDeviceDriver; + OvenGantryManipulatorDeviceDriver ovenGantryManipulatorDeviceDriver; + //收卷锟行架 + if (linkDevice.getDeviceDriver() instanceof RollUpRollerManipulatorDeviceDriver) { + rollUpRollerManipulatorDeviceDriver = (RollUpRollerManipulatorDeviceDriver) linkDevice.getDeviceDriver(); + if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && rollUpRollerManipulatorDeviceDriver.getMode() != 3 && rollUpRollerManipulatorDeviceDriver.getError() == 0 && rollUpRollerManipulatorDeviceDriver.getTask() == 0 && rollUpRollerManipulatorDeviceDriver.getError2() == 0)) { + // 查询缓存架点位状态 + JSONObject param = new JSONObject(); + param.put("device_code", device_code); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("获取收卷锟缓存位点位状态请求lms,参数:" + param) + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + String response = acsToWmsService.getSJGHCPointStatus(param); + JSONObject jo = JSON.parseObject(response); + LuceneLogDto logDto2 = LuceneLogDto.builder() + .device_code(device_code) + .content("获取收卷锟缓存位点位状态,参数,接口返回:" + jo) + .build(); + logDto2.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto2); + if (jo.getInteger("status") == 200 && "1".equals(jo.getString("point_status")) ) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); + } + } + } else { + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(manipulatorAgvStationDeviceDriver.getDeviceCode()) + .content(manipulatorAgvStationDeviceDriver.getDevice_code() + "信号不满足条件") + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + } + //烘箱行架 + if (linkDevice.getDeviceDriver() instanceof OvenGantryManipulatorDeviceDriver) { + ovenGantryManipulatorDeviceDriver = (OvenGantryManipulatorDeviceDriver) linkDevice.getDeviceDriver(); + if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && ovenGantryManipulatorDeviceDriver.getError() == 0)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(this.getDeviceCode()) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + } else { + message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "光电信号:" + manipulatorAgvStationDeviceDriver.getMove() + ",行架信号:" + ovenGantryManipulatorDeviceDriver.getMode() + ",指令号:" + ikey + "不满足放货条件"; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(manipulatorAgvStationDeviceDriver.getDeviceCode()) + .content(manipulatorAgvStationDeviceDriver.getDevice_code() + "信号不满足条件") + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + } + } + } else { - message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "报警信号:" + ",指令号:" + ikey + "不满足取货条件"; - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(manipulatorAgvStationDeviceDriver.getDeviceCode()) - .content(manipulatorAgvStationDeviceDriver.getDevice_code() + "动作信号不为1") - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); + if ((manipulatorAgvStationDeviceDriver.getAction() == 6)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(this.getDeviceCode()) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + } else { + message = "设备号:" + device_code + ",动作信号:" + manipulatorAgvStationDeviceDriver.getAction() + "报警信号:" + ",指令号:" + ikey + "不满足取货条件"; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(manipulatorAgvStationDeviceDriver.getDeviceCode()) + .content(manipulatorAgvStationDeviceDriver.getDevice_code() + "动作信号不为1") + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + } } + + } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/air_shower_door/AirShowerDoorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/air_shower_door/AirShowerDoorDeviceDriver.java index e35847343..138638086 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/air_shower_door/AirShowerDoorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/air_shower_door/AirShowerDoorDeviceDriver.java @@ -37,6 +37,11 @@ public class AirShowerDoorDeviceDriver extends AbstractOpcDeviceDriver implement int open = 0; int close = 0; + int last_open2 = 0; + int last_close2 = 0; + + int open2 = 0; + int close2= 0; int last_open = 0; int last_close = 0; @@ -44,6 +49,11 @@ public class AirShowerDoorDeviceDriver extends AbstractOpcDeviceDriver implement int last_toOpen = 0; int toClose = 0; int last_toClose = 0; + + int toOpen2 = 0; + int last_toOpen2 = 0; + int toClose2 = 0; + int last_toClose2 = 0; String device_code = null; @Override @@ -61,6 +71,10 @@ public class AirShowerDoorDeviceDriver extends AbstractOpcDeviceDriver implement close = this.itemProtocol.getClose(); toOpen = this.itemProtocol.getToOpen(); toClose = this.itemProtocol.getToClose(); + open2 = this.itemProtocol.getOpen2(); + close2 = this.itemProtocol.getClose2(); + toOpen2 = this.itemProtocol.getToOpen2(); + toClose2 = this.itemProtocol.getToClose2(); if (open != last_open) { logServer.deviceExecuteLog(this.device_code, "", "", "信号open:" + last_open + "->" + open); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/air_shower_door/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/air_shower_door/ItemProtocol.java index 437d83dbe..883c7d4e4 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/air_shower_door/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/autodoor/air_shower_door/ItemProtocol.java @@ -13,7 +13,10 @@ public class ItemProtocol { public static String item_close = "close"; public static String item_to_open = "to_open"; public static String item_to_close = "to_close"; - + public static String item_open2 = "open2"; + public static String item_close2 = "close2"; + public static String item_to_open2 = "to_open2"; + public static String item_to_close2 = "to_close2"; public static String item_status = "status"; @@ -42,6 +45,23 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_to_close); } + public int getOpen2() { + return this.getOpcIntegerValue(item_open2); + } + + public int getClose2() { + return this.getOpcIntegerValue(item_close2); + } + + + public int getToOpen2() { + return this.getOpcIntegerValue(item_to_open2); + } + + public int getToClose2() { + return this.getOpcIntegerValue(item_to_close2); + } + public int getStatus() { return this.getOpcIntegerValue(item_status); @@ -75,17 +95,19 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_open, "开到位", "10001")); - list.add(new ItemDto(item_close, "关到位", "10002")); - list.add(new ItemDto(item_status, "状态", "10002")); - list.add(new ItemDto(item_error, "异常", "10002")); + list.add(new ItemDto(item_open, "开到位", "10002")); + list.add(new ItemDto(item_close, "关到位", "10001")); + list.add(new ItemDto(item_open2, "开到位2", "10004")); + list.add(new ItemDto(item_close2, "关到位2", "10003")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_open, "下发开门", "00001" )); - list.add(new ItemDto(item_to_close, "下发关门", "00002")); + list.add(new ItemDto(item_to_open, "下发开门", "00002" )); + list.add(new ItemDto(item_to_close, "下发关门", "00001")); + list.add(new ItemDto(item_to_open2, "下发开门2", "00004" )); + list.add(new ItemDto(item_to_close2, "下发关门2", "00003")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java index 509391dc3..0704c5d22 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/manipulator_agv_station/ManipulatorAgvStationDeviceDriver.java @@ -142,12 +142,7 @@ public class ManipulatorAgvStationDeviceDriver extends AbstractOpcDeviceDriver i this.setIserror(true); message = "信号量同步异常"; //未联机 - } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); - message = "未联机"; - //有报警 - } else { + } else { this.setIsonline(true); this.setIserror(false); message = ""; @@ -287,7 +282,12 @@ public class ManipulatorAgvStationDeviceDriver extends AbstractOpcDeviceDriver i @Override public void setDeviceStatus(JSONObject data) { - + String ovenGantryTask = data.getString("ovenGantryTask"); + if (StrUtil.equals(ovenGantryTask, "0")) { + this.requireSucess = false; + } else if (StrUtil.equals(ovenGantryTask, "1")) { + this.requireSucess = true; + } } @Override diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java index bb228d7d2..30884866e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java @@ -1124,15 +1124,20 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i public void setDeviceStatus(JSONObject data) { String requestSucess = data.getString("requireSucess"); String requireActionSucess = data.getString("requireActionSucess"); + Device HXDJ4Device = deviceAppService.findDeviceByCode("A1_HXDJ_4"); + ManipulatorAgvStationDeviceDriver manipulatorAgvStationDeviceDriver; if (StrUtil.equals(requestSucess, "0")) { this.requireSucess = false; } else if (StrUtil.equals(requestSucess, "1")) { this.requireSucess = true; } - if (StrUtil.equals(requireActionSucess, "0")) { - this.requireActionSucess = false; - } else if (StrUtil.equals(requireActionSucess, "1")) { - this.requireActionSucess = true; + if (HXDJ4Device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { + manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + if (StrUtil.equals(requireActionSucess, "0")) { + manipulatorAgvStationDeviceDriver.setOvenGantryTask(false); + } else if (StrUtil.equals(requireActionSucess, "1")) { + manipulatorAgvStationDeviceDriver.setOvenGantryTask(true); + } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java index ef2d39d00..ee16dbc2a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java @@ -214,6 +214,14 @@ public interface AcsToWmsService { */ String secondaryAllocationPoint(JSONObject param); + + /** + * 获取收卷锟缓存位状态 + * @param param + * @return + */ + String getSJGHCPointStatus(JSONObject param); + /** * 管芯库二次分配点位 * @param param diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index 6defffcea..c0f7acfd4 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -688,6 +688,47 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } } + + @Override + public String getSJGHCPointStatus(JSONObject param) { + try { + MDC.put(log_file_type, log_type); + log.info("getSJGHCPointStatus-----输入参数{}", param); + String wmsurl = paramService.findByCode(AcsConfig.WMSURL).getValue(); + AddressDto addressDto = addressService.findByCode("getSJGHCPointStatus"); + String url = wmsurl + addressDto.getMethods_url(); + HttpResponse result2 = null; + try { + result2 = HttpRequest.post(url) + .header("Authorization", token) + .body(String.valueOf(param)) + .execute(); + } catch (Exception e) { + String msg = e.getMessage(); + log.info("getSJGHCPointStatus-----输出参数{}", msg); + //网络不通 + } + if(ObjectUtil.isEmpty(result2)){ + log.info("getSJGHCPointStatus-----输出参数{}", "返回结果为空"); + return null; + } + String type = ""; + if (result2.getStatus() == 200) { + type = "info"; + } else { + type = "error"; + } + log.info("getSJGHCPointStatus-----输出参数{}", result2.body()); + LuceneLogDto luceneLogDto = new LuceneLogDto(4,"getSJGHCPointStatus", String.valueOf(result2.getStatus()), + JSON.toJSONString(param), String.valueOf(result2.body()), "获取收卷锟缓存位状态"); + luceneLogService.interfaceExecuteLog(luceneLogDto); + return result2.body(); + + } finally { + MDC.remove(log_file_type); + } + } + @Override public String applyPipeCoreRackNewPoint(JSONObject param) { try { 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 a0de35dd9..5a5417cd2 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 @@ -178,7 +178,12 @@ public class AutoCreateInst { //6、行架 //7、立库 if (StrUtil.equals(task_type, CommonFinalParam.ONE) ) { - instdto.setAgv_inst_type(CommonFinalParam.ONE); + //生箔四个点任务是生箔agv,两个点是普通任务 + if (StrUtil.isNotEmpty(instdto.getStart_device_code2())) { + instdto.setAgv_inst_type(CommonFinalParam.ONE); + }else { + instdto.setAgv_inst_type("2"); + } } else if (StrUtil.equals(task_type, "3")) { instdto.setAgv_inst_type("2"); }else if (StrUtil.equals(task_type, "2")) { diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java index 85236dc9c..6c1a4c932 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java @@ -61,6 +61,13 @@ public class AcsToWmsController { public ResponseEntity applyNewPoint(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(acsToWmsService.applyNewPoint(whereJson), HttpStatus.OK); } + + @PostMapping("/getSJGHCPointStatus") + @Log(value = "分切上料AGV请求进入获取缓存架状态", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) + @SaIgnore + public ResponseEntity getSJGHCPointStatus(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(acsToWmsService.getSJGHCPointStatus(whereJson), HttpStatus.OK); + } @PostMapping("/applyRollUpRollerNewPoint") @Log(value = "收卷辊库满入空出申请新点位", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) @SaIgnore diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index 2c1715bc0..08f66040c 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -147,6 +147,14 @@ public interface AcsToWmsService { */ JSONObject applyNewPoint(JSONObject param); + + /** + * 分切上料AGV请求进入获取缓存架状态 + * @param param + * @return + */ + JSONObject getSJGHCPointStatus(JSONObject param); + /** * 收卷辊满入空出 * @param param diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index eff7ef5c0..ec8bc1c38 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -208,6 +208,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return otherOperationService.takeUpRollExceptionHandling(param); } + + @Override + public JSONObject getSJGHCPointStatus(JSONObject param) { + return otherOperationService.getSJGHCPointStatus(param); + } + @Override public JSONObject acsFeedbackTubeInStorageComplete(JSONObject param) { return otherOperationService.acsFeedbackTubeInStorageComplete(param); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java index 6249eecf8..439fc127b 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java @@ -188,28 +188,39 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { if (ObjectUtil.isEmpty(sbPoint)) { throw new BadRequestException("生箔位:" + pointCode + " 不存在,请检查是否被锁住!"); } - // todo: 暂时写死,创建工单 - PdmBiRawfoilworkorder rawOrder = new PdmBiRawfoilworkorder(); - rawOrder.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr()); - rawOrder.setContainer_name(ObjectUtil.isNotEmpty(orderCode) ? orderCode : createVirtualContainer(rollCode, "yyMMddHHmmss", sbPoint.getExt_code())); - rawOrder.setResource_name(sbPoint.getExt_code()); - rawOrder.setMfg_order_name("$$$$"); - rawOrder.setProduct_name("锂电"); - rawOrder.setDescription("锂电"); - rawOrder.setTheory_height(new BigDecimal(theory_height)); - rawOrder.setProductin_qty(new BigDecimal(productin_qty)); - rawOrder.setUp_coiler_date(DateUtil.now()); - rawOrder.setStatus("01"); - rawOrder.setWind_roll(rollCode); - TaskUtils.setRawOrderCreateByDefault(rawOrder); - rawOrder.setProduct_area(sbPoint.getProduct_area()); - rawOrder.setOrder_type("1"); - rawfoilworkorderService.save(rawOrder); + PdmBiRawfoilworkorder order = rawfoilworkorderService.getByContainerName(orderCode); + + if (ObjectUtil.isNotEmpty(order)) { + order.setTheory_height(new BigDecimal(theory_height)); + order.setProductin_qty(new BigDecimal(productin_qty)); + order.setUp_coiler_date(DateUtil.now()); + rawfoilworkorderService.updateById(order); + param.put("order_code", order.getContainer_name()); + param.put("workorder_id", order.getWorkorder_id()); + }else { + // todo: 暂时写死,创建工单 + PdmBiRawfoilworkorder rawOrder = new PdmBiRawfoilworkorder(); + rawOrder.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + rawOrder.setContainer_name(ObjectUtil.isNotEmpty(orderCode) ? orderCode : createVirtualContainer(rollCode, "yyMMddHHmmss", sbPoint.getExt_code())); + rawOrder.setResource_name(sbPoint.getExt_code()); + rawOrder.setMfg_order_name("$$$$"); + rawOrder.setProduct_name("锂电"); + rawOrder.setDescription("锂电"); + rawOrder.setTheory_height(new BigDecimal(theory_height)); + rawOrder.setProductin_qty(new BigDecimal(productin_qty)); + rawOrder.setUp_coiler_date(DateUtil.now()); + rawOrder.setStatus("01"); + rawOrder.setWind_roll(rollCode); + TaskUtils.setRawOrderCreateByDefault(rawOrder); + rawOrder.setProduct_area(sbPoint.getProduct_area()); + rawOrder.setOrder_type("1"); + rawfoilworkorderService.save(rawOrder); + param.put("order_code", rawOrder.getContainer_name()); + param.put("workorder_id", rawOrder.getWorkorder_id()); + } // 组织请求任务参数 // 当前生箔的点位 param.put("device_code", pointCode); - param.put("order_code", rawOrder.getContainer_name()); - param.put("workorder_id", rawOrder.getWorkorder_id()); param.put("ext_code", sbPoint.getExt_code()); param.put("vehicle_code2", rollCode); param.put("create_mode", GeneralDefinition.PDA_CREATION); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java index 9ef522328..a42a8ff42 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java @@ -114,7 +114,8 @@ public class SlitterPdaServiceImpl implements SlitterPdaService { param.put("create_mode", GeneralDefinition.PDA_CREATION); // 判断空轴位状态 // 标记一下, 0: 只做呼叫母卷,1:呼叫母卷还要送空辊 - param.put("is_flag", "01".equals(cutPoint.getFull_point_status()) ? "0" : "1"); + // 只做四个点任务 +// param.put("is_flag", "01".equals(cutPoint.getFull_point_status()) ? "0" : "1"); param.put("vehicle_code", cutPoint.getFull_vehicle_code()); param.put("vehicle_code2", one.getWind_roll()); slitterUpTrussTask.apply(param); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java index 08a83bf03..bbf1e548f 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/OtherPdaServiceImpl.java @@ -238,10 +238,11 @@ public class OtherPdaServiceImpl implements OtherPdaService { log.info("手持呼叫AGV送样品检测 - {}", param); // point_code1, point_code2 String pointCode1 = param.getString("point_code1"); - List schBaseTasks = taskService.checkHaveTask(pointCode1); - if (schBaseTasks.size() > 0) { - throw new BadRequestException("点位[" + pointCode1 + "]已经存在任务!"); - } + //不判断是否有执行的任务 +// List schBaseTasks = taskService.checkHaveTask(pointCode1); +// if (schBaseTasks.size() > 0) { +// throw new BadRequestException("点位[" + pointCode1 + "]已经存在任务!"); +// } param.put("device_code", pointCode1); param.put("config_code", "CallToSamplingAGVTask"); param.put("create_mode", GeneralDefinition.PDA_CREATION); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/OtherOperationService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/OtherOperationService.java index 7ed9cb3fa..c9c33d1e4 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/OtherOperationService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/OtherOperationService.java @@ -22,6 +22,13 @@ public interface OtherOperationService { */ JSONObject takeUpRollExceptionHandling(JSONObject param); + /** + * 获取缓存点位状态 + * @param param / + * @return / + */ + JSONObject getSJGHCPointStatus(JSONObject param); + /** * ACS反馈管芯入库完成 * @param param / diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/OtherOperationServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/OtherOperationServiceImpl.java index fdbcd218f..3ac336cd8 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/OtherOperationServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/service/impl/OtherOperationServiceImpl.java @@ -147,6 +147,20 @@ public class OtherOperationServiceImpl implements OtherOperationService { return result; } + + @Override + public JSONObject getSJGHCPointStatus(JSONObject param) { + // 获取收卷辊货位状态 + log.info("获取收卷辊货位状态:{}", param); + String deviceCode = param.getString("device_code"); + SchBasePoint point = pointService.getById(deviceCode); + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("point_status", point.getPoint_status()); + result.put("message", "获取收卷辊货位状态成功!"); + return result; + } + @Override public JSONObject acsFeedbackTubeInStorageComplete(JSONObject param) { MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.ACS_FEEDBACK_TUBE_COMPLETE.getTag()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/CallToSamplingAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/CallToSamplingAGVTask.java index 6322cc158..17d1e39d5 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/CallToSamplingAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/CallToSamplingAGVTask.java @@ -43,6 +43,8 @@ public class CallToSamplingAGVTask extends AbstractTask { task.setHandle_class(THIS_CLASS); task.setTask_status(TaskStatus.START_AND_POINT.getCode()); setUpdateByPC(task); + // 设置车号 + task.setCar_no("3"); taskService.save(task); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterSendRollTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterSendRollTrussTask.java index 8fd38acec..6a18f7057 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterSendRollTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterSendRollTrussTask.java @@ -1,5 +1,6 @@ package org.nl.wms.sch.task_manage.tasks.slitter; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.wms.sch.point.service.ISchBasePointService; @@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Arrays; import java.util.List; import static org.nl.wms.util.PointUtils.setUpdateByType; @@ -65,12 +67,25 @@ public class SlitterSendRollTrussTask extends AbstractTask { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { checkTaskOptionStatus(taskObj); // 点位更新需要将载具编码设置到终点 + // 收卷锟缓存架更新 String endPointCode = taskObj.getPoint_code2(); - SchBasePoint endPoint = pointService.getById(endPointCode); - endPoint.setVehicle_code(taskObj.getVehicle_code()); - endPoint.setPoint_status("2"); - setUpdateByType(endPoint, taskFinishedType); - pointService.updateById(endPoint); + String startPointCode = taskObj.getPoint_code1(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("point_code", Arrays.asList(endPointCode, startPointCode)); // 假设这是你要查询的 point_code 列表 + List points = pointService.list(queryWrapper); + for (SchBasePoint point : points) { + if (point.getPoint_code().equals(endPointCode)){ + point.setVehicle_code(taskObj.getVehicle_code()); + point.setPoint_status("2"); + setUpdateByType(point, taskFinishedType); + } + if (point.getPoint_code().equals(startPointCode)){ + point.setPoint_status("1"); + setUpdateByType(point, taskFinishedType); + } + } + pointService.updateBatchById(points); + // 任务更新 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setFinished_type(taskFinishedType.getCode()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpAGVTask.java index 1f081184a..655c6e9b3 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpAGVTask.java @@ -24,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.List; import static org.nl.wms.util.TaskUtils.*; @@ -57,30 +58,31 @@ public class SlitterUpAGVTask extends AbstractTask { // 收卷辊不需要校验点位,因此无需加锁 String requestParam = task.getRequest_param(); JSONObject requestObj = JSONObject.parseObject(requestParam); - String isFlag = requestObj.getString("is_flag"); +// String isFlag = requestObj.getString("is_flag"); // 分切上料满料对接位 String cutPointCode = requestObj.getString("cut_point"); // 烘箱暂存对接位 String deviceCode = requestObj.getString("device_code"); StIvtCutpointivt cutPoint = cutpointivtService.getByFullCode(cutPointCode, false); - if ("0".equals(isFlag)) { - // 两点任务 - task.setPoint_code1(deviceCode); - task.setPoint_code2(cutPoint.getFull_point_code()); - } else { - // 收卷辊的入库不做校验 - List sjgPoints = pointService.getPointByConditions("A1", "A1-SJGK", - "1", null, null, false); - if (sjgPoints.size() == 0) { - throw new BadRequestException("收卷辊库找不到入口!"); - } - SchBasePoint sjgPoint = sjgPoints.get(0); - // 四点任务 - task.setPoint_code1(deviceCode); - task.setPoint_code2(cutPoint.getFull_point_code()); - task.setPoint_code3(cutPoint.getEmpty_point_code()); - task.setPoint_code4(sjgPoint.getPoint_code()); +// if ("0".equals(isFlag)) { +// // 两点任务 +// task.setPoint_code1(deviceCode); +// task.setPoint_code2(cutPoint.getFull_point_code()); +// } else { +// } + // 只做四个点任务 + // 收卷辊的入库不做校验 + List sjgPoints = pointService.getPointByConditions("A1", "A1-SJGK", + "1", null, null, false); + if (sjgPoints.size() == 0) { + throw new BadRequestException("收卷辊库找不到入口!"); } + SchBasePoint sjgPoint = sjgPoints.get(0); + // 四点任务 + task.setPoint_code1(deviceCode); + task.setPoint_code2(cutPoint.getFull_point_code()); + task.setPoint_code3(cutPoint.getEmpty_point_code()); + task.setPoint_code4(sjgPoint.getPoint_code()); // 创建任务 task.setHandle_class(THIS_CLASS); task.setTask_status(TaskStatus.START_AND_POINT.getCode()); @@ -110,6 +112,11 @@ public class SlitterUpAGVTask extends AbstractTask { cutPoint.setEmpty_point_status("02"); setCutUpdateByType(cutPoint, taskFinishedType); cutpointivtService.updateById(cutPoint); + //更新收卷锟缓存位库存 + String pointCode4 = taskObj.getPoint_code4(); + SchBasePoint point4 = pointService.query().eq("point_code", pointCode4).one(); + point4.setPoint_status("2"); + pointService.updateById(point4); if (ObjectUtil.isNotEmpty(taskObj.getPoint_code3())) { // 四点任务,还需要创建收卷辊桁架任务 JSONObject taskParam = new JSONObject(); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpTrussTask.java index 72e2cf97f..346420662 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterUpTrussTask.java @@ -85,7 +85,7 @@ public class SlitterUpTrussTask extends AbstractTask { JSONObject requestObj = JSONObject.parseObject(requestParam); // 分切机满料位 - String isFlag = requestObj.getString("is_flag"); +// String isFlag = requestObj.getString("is_flag"); String workorderId = requestObj.getString("workorder_id"); String startPointCode = taskObj.getPoint_code1(); String endPointCode = taskObj.getPoint_code2(); @@ -98,7 +98,7 @@ public class SlitterUpTrussTask extends AbstractTask { taskParam.put("device_code", endPointCode); taskParam.put("cut_point", requestObj.getString("device_code")); // 标记一下, 0: 只做呼叫母卷,1:呼叫母卷还要送空辊 - taskParam.put("is_flag", isFlag); +// taskParam.put("is_flag", isFlag); // 空轴的编码 taskParam.put("vehicle_code", taskObj.getVehicle_code()); // 满轴的载具号