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 2b13d0b48..390d8fefb 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 @@ -534,6 +534,11 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic log.info("等待LMS系统进行确认离开,设备号{},指令号:{}", device_code, ikey); message = "等待LMS系统进行确认离开,设备号:" + device_code + ",指令号:" + ikey; } + } + if (ObjectUtil.isNotEmpty(device.getExtraValue().get("finish_task")) + && StrUtil.equals("true", device.getExtraValue().get("finish_task").toString())) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); + standardOrdinarySiteDeviceDriver.setOption(0); } else { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } @@ -1509,12 +1514,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); //申请烘箱行架任务 if (ObjectUtil.isNotEmpty(manipulatorAgvStationDeviceDriver.getDevice().getExtraValue().get("request_robot_task")) && StrUtil.equals("true", manipulatorAgvStationDeviceDriver.getDevice().getExtraValue().get("request_robot_task").toString())) { if (manipulatorAgvStationDeviceDriver.getTo_command() != 4 && !manipulatorAgvStationDeviceDriver.getOvenGantryTask()) { - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); String task_code = inst.getTask_code(); JSONObject jsonObject = new JSONObject(); jsonObject.put("task_code", task_code); @@ -1538,31 +1543,13 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } } - //行架取货完成后反馈ndc -// if ((manipulatorAgvStationDeviceDriver.getAction() == 4)) { -// -// manipulatorAgvStationDeviceDriver.setOvenGantryTask(false); -// LuceneLogDto logDto = LuceneLogDto.builder() -// .device_code(this.getDeviceCode()) -// .content("agvphase:" + phase + "反馈:" + data) -// .build(); -// logDto.setLog_level(4); -// luceneExecuteLogService.deviceExecuteLog(logDto); -// } else { -// log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", manipulatorAgvStationDeviceDriver.getDeviceCode(), manipulatorAgvStationDeviceDriver.getAction(), ikey); -// LuceneLogDto logDto = LuceneLogDto.builder() -// .device_code(manipulatorAgvStationDeviceDriver.getDeviceCode()) -// .content(manipulatorAgvStationDeviceDriver.getDevice_code() + "动作信号不为1") -// .build(); -// logDto.setLog_level(4); -// luceneExecuteLogService.deviceExecuteLog(logDto); -// } + } else { -// try { -// manipulatorAgvStationDeviceDriver.writing(4); -// } catch (Exception e) { -// e.printStackTrace(); -// } + try { + manipulatorAgvStationDeviceDriver.writing(4); + } catch (Exception e) { + e.printStackTrace(); + } data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); LuceneLogDto logDto = LuceneLogDto.builder() .device_code(this.getDeviceCode()) @@ -1783,6 +1770,22 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic logDto.setLog_level(4); luceneExecuteLogService.deviceExecuteLog(logDto); } + } + //废泊处理的时候要判断是否允许任务完成 + if (ObjectUtil.isNotEmpty(device.getExtraValue().get("finish_task")) + && StrUtil.equals("true", device.getExtraValue().get("finish_task").toString())) { + if (standardOrdinarySiteDeviceDriver.getOption() == 3) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); + } else { + log.info("等待LMS系统进行确认允许任务完成信号,设备号{},option值{}", standardOrdinarySiteDeviceDriver.getDevice_code(), standardOrdinarySiteDeviceDriver.getOption()); + logServer.deviceExecuteLog(device.getDevice_code(), "", "", "等待LMS系统进行确认允许取货,设备号" + device.getDevice_code() + ",指令号" + ikey); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(standardOrdinarySiteDeviceDriver.getDevice_code()) + .content("等待LMS系统进行确认允许任务完成信号,设备号" + standardOrdinarySiteDeviceDriver.getDevice_code() + ",option当前值" + standardOrdinarySiteDeviceDriver.getOption()) + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + } } else { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); LuceneLogDto logDto = LuceneLogDto.builder() @@ -1813,19 +1816,50 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); - try { - manipulatorAgvStationDeviceDriver.writing(5); - } catch (Exception e) { - e.printStackTrace(); + //行架到达安全位 + if (ObjectUtil.isNotEmpty(manipulatorAgvStationDeviceDriver.getDevice().getExtraValue().get("request_robot_task")) + && StrUtil.equals("true", manipulatorAgvStationDeviceDriver.getDevice().getExtraValue().get("request_robot_task").toString())) { + //行架取货完成后反馈ndc + if ((manipulatorAgvStationDeviceDriver.getAction() == 4)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); + manipulatorAgvStationDeviceDriver.setOvenGantryTask(false); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(this.getDeviceCode()) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + try { + manipulatorAgvStationDeviceDriver.writing(5); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", manipulatorAgvStationDeviceDriver.getDeviceCode(), manipulatorAgvStationDeviceDriver.getAction(), ikey); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(manipulatorAgvStationDeviceDriver.getDeviceCode()) + .content(manipulatorAgvStationDeviceDriver.getDevice_code() + "动作信号不为1") + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + } + + } else { + try { + manipulatorAgvStationDeviceDriver.writing(5); + } catch (Exception e) { + e.printStackTrace(); + } + 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); + } - data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); - manipulatorAgvStationDeviceDriver.setOvenGantryTask(true); - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(this.getDeviceCode()) - .content("agvphase:" + phase + "反馈:" + data) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); + } else if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); try { @@ -2034,23 +2068,42 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); + + //申请烘箱行架任务 + if (ObjectUtil.isNotEmpty(manipulatorAgvStationDeviceDriver.getDevice().getExtraValue().get("request_robot_task")) + && StrUtil.equals("true", manipulatorAgvStationDeviceDriver.getDevice().getExtraValue().get("request_robot_task").toString())) { + if (manipulatorAgvStationDeviceDriver.getTo_command() != 4 && !manipulatorAgvStationDeviceDriver.getOvenGantryTask()) { + String task_code = inst.getTask_code(); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("task_code", task_code); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("申请烘箱行架任务,参数:" + jsonObject) + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + String response = acsToWmsService.applyOvenGantryTask(jsonObject); + 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) { + manipulatorAgvStationDeviceDriver.setOvenGantryTask(true); + manipulatorAgvStationDeviceDriver.writing(4); + + } + } - try { - manipulatorAgvStationDeviceDriver.writing(4); - } catch (Exception e) { - e.printStackTrace(); - } - //收卷辊放货忽略取货校验 - if (ObjectUtil.isNotEmpty(manipulatorAgvStationDeviceDriver.getDevice().getExtraValue().get("ignore_pickup_check")) - && StrUtil.equals("true", manipulatorAgvStationDeviceDriver.getDevice().getExtraValue().get("ignore_pickup_check").toString())) { - 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 { + try { + manipulatorAgvStationDeviceDriver.writing(4); + } catch (Exception e) { + e.printStackTrace(); + } data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); LuceneLogDto logDto = LuceneLogDto.builder() .device_code(this.getDeviceCode()) @@ -2060,7 +2113,6 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic luceneExecuteLogService.deviceExecuteLog(logDto); } - } else if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); try { @@ -2204,18 +2256,51 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } else if (device.getDeviceDriver() instanceof ManipulatorAgvStationDeviceDriver) { manipulatorAgvStationDeviceDriver = (ManipulatorAgvStationDeviceDriver) device.getDeviceDriver(); - try { - manipulatorAgvStationDeviceDriver.writing(5); - } catch (Exception e) { - e.printStackTrace(); + + //行架到达安全位 + if (ObjectUtil.isNotEmpty(manipulatorAgvStationDeviceDriver.getDevice().getExtraValue().get("request_robot_task")) + && StrUtil.equals("true", manipulatorAgvStationDeviceDriver.getDevice().getExtraValue().get("request_robot_task").toString())) { + //行架取货完成后反馈ndc + if ((manipulatorAgvStationDeviceDriver.getAction() == 4)) { + data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); + manipulatorAgvStationDeviceDriver.setOvenGantryTask(false); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(this.getDeviceCode()) + .content("agvphase:" + phase + "反馈:" + data) + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + try { + manipulatorAgvStationDeviceDriver.writing(5); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + log.info("设备{},动作信号{} ,不满足取货条件,指令号{}", manipulatorAgvStationDeviceDriver.getDeviceCode(), manipulatorAgvStationDeviceDriver.getAction(), ikey); + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(manipulatorAgvStationDeviceDriver.getDeviceCode()) + .content(manipulatorAgvStationDeviceDriver.getDevice_code() + "动作信号不为1") + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + } + + } else { + try { + manipulatorAgvStationDeviceDriver.writing(5); + } catch (Exception e) { + e.printStackTrace(); + } + 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); + } - 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 if (device.getDeviceDriver() instanceof PaperTubePickSiteDeviceDriver) { paperTubePickSiteDeviceDriver = (PaperTubePickSiteDeviceDriver) device.getDeviceDriver(); try { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/HongXiangConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/HongXiangConveyorDeviceDriver.java index 407e5a2af..2df6c464c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/HongXiangConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/HongXiangConveyorDeviceDriver.java @@ -80,7 +80,7 @@ public class HongXiangConveyorDeviceDriver extends AbstractOpcDeviceDriver imple public int error = 0; public int door = 0; public float temperature = 0; - public int to_temperature = 0; + public float to_temperature = 0; public int countdown_house = 0; public int countdown_min = 0; public int countdown_sec = 0; @@ -88,7 +88,7 @@ public class HongXiangConveyorDeviceDriver extends AbstractOpcDeviceDriver imple public int task = 0; public int error1 = 0; public int material = 0; - public int consumption = 0; + public float consumption = 0; public float voltageA = 0; public float voltageB = 0; public float voltageC = 0; @@ -110,7 +110,7 @@ public class HongXiangConveyorDeviceDriver extends AbstractOpcDeviceDriver imple public int last_task = 0; public int last_error1 = 0; public int last_material = 0; - public int last_consumption = 0; + public float last_consumption = 0; public float last_voltageA = 0; public float last_voltageB = 0; public float last_voltageC = 0; @@ -118,6 +118,7 @@ public class HongXiangConveyorDeviceDriver extends AbstractOpcDeviceDriver imple public float last_currentB = 0; public float last_currentC = 0; + Boolean isonline = true; Boolean iserror = false; @@ -140,8 +141,8 @@ public class HongXiangConveyorDeviceDriver extends AbstractOpcDeviceDriver imple @Override public void execute() { - - device_code = this.getDeviceCode(); + device_code + = this.getDeviceCode(); heartbeat = this.itemProtocol.getItem_heartbeat(); mode = this.itemProtocol.getItem_mode(); move = this.itemProtocol.getItem_move(); @@ -251,15 +252,19 @@ public class HongXiangConveyorDeviceDriver extends AbstractOpcDeviceDriver imple logDto.setLog_level(4); luceneExecuteLogService.deviceExecuteLog(logDto); String str = acsToWmsService.outHotTaskApply(apply); + JSONObject jo = JSON.parseObject(str); - LuceneLogDto logDto2 = LuceneLogDto.builder() - .device_code(device_code) - .content("烘箱完成反馈LMS,参数,接口返回:" + jo) - .build(); - logDto2.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto2); - message = "烘箱完成反馈LMS,参数,接口返回:" + jo; - return; + if (jo.getInteger("status") == 200) { + LuceneLogDto logDto2 = LuceneLogDto.builder() + .device_code(device_code) + .content("烘箱完成反馈LMS,参数,接口返回:" + jo) + .build(); + logDto2.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto2); + message = "烘箱完成反馈LMS,参数,接口返回:" + jo; + requireSucess = true; + return; + } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/ItemProtocol.java index 3542c0ca3..5c2faac68 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/ItemProtocol.java @@ -85,8 +85,8 @@ public class ItemProtocol { public int getItem_error1(){ return this.getOpcIntegerValue(item_error1); } ; - public int getItem_consumption(){ - return this.getOpcIntegerValue(item_consumption); + public float getItem_consumption(){ + return this.getOpcFloatValue(item_consumption); } ; public float getItem_voltageA(){ return this.getOpcFloatValue(item_voltageA); @@ -107,8 +107,8 @@ public class ItemProtocol { return this.getOpcFloatValue(item_currentC); } ; - public int getItem_to_temperature(){ - return this.getOpcIntegerValue(item_to_temperature); + public float getItem_to_temperature(){ + return this.getOpcFloatValue(item_to_temperature); } ; Boolean isonline; 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 bef097e66..6d7056107 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 @@ -953,8 +953,8 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i if (StrUtil.isNotEmpty(taskDto.getOven_time())) { //下发烘箱时间 int time = Integer.parseInt(taskDto.getOven_time()); - int hours = (time / (60 * 60)); // 整数小时 - int minutes = (time % (60 * 60)) / 60; // 剩余分钟 + int hours = time / 60; // 整数小时 + int minutes = time % 60 ; // 剩余分钟 map.put("to_time_house", String.valueOf(hours)); map.put("to_time_min", String.valueOf(minutes)); hongXiangConveyorDeviceDriver.writing(map); @@ -1050,6 +1050,8 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } } + + public synchronized boolean finish_instruction(Instruction inst) throws Exception { instructionService.finish(inst); return true; diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index 6090b1bb4..e42a1184a 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -44,7 +44,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { @Override public JSONObject getHotPointStatus(JSONArray deviceRows) { String api = "api/wms/querydevice"; - return AcsUtil.notifyAcs(api, deviceRows); + return AcsUtil.notifyAcs5(api, deviceRows); } @Override diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java index 24cf99450..cb84d0d5e 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/BakingPdaServiceImpl.java @@ -200,6 +200,7 @@ public class BakingPdaServiceImpl implements BakingPdaService { rawOrder.setIs_baking(isBaking); rawOrder.setRoll_type(rollType); rawOrder.setWind_roll(rollCode); + rawOrder.setBaking_temperature(temperature); rawOrder.setBaking_time(time); TaskUtils.setRawOrderCreateByDefault(rawOrder); rawOrder.setProduct_area("A1"); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateInHotTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateInHotTask.java index 14c59b139..e98b7af56 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateInHotTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateInHotTask.java @@ -44,9 +44,10 @@ public class AutoCreateInHotTask { List hotNotTaskPoints = pointService.getHotNotTaskPoint("A1", HX_REGION, null, "2"); log.info("找到待烘烤的暂存位:{}", hotNotTaskPoints); + //烘箱入烘箱任务行架不支持 // 获取烘箱点位状态是暂存且需要烘烤的点位数据。 - List hotPoints = hotpointivtService.getNeedBakingPoint(); - log.info("找到待烘烤的烘箱位:{}", hotPoints); +// List hotPoints = hotpointivtService.getNeedBakingPoint(); +// log.info("找到待烘烤的烘箱位:{}", hotPoints); // 合并一起 List collect1 = hotNotTaskPoints.stream().map(item -> NeedBakingDto .builder() @@ -54,15 +55,16 @@ public class AutoCreateInHotTask { .workorder_id(item.getSource_id()) .vehicle_code(item.getVehicle_code()) .update_time(item.getUpdate_time()).build()).collect(Collectors.toList()); - List collect2 = hotPoints.stream().map(item -> NeedBakingDto - .builder() - .point_code(item.getPoint_code()) - .vehicle_code(item.getFull_vehicle_code()) - .workorder_id(item.getWorkorder_id()) - .update_time(item.getUpdate_time()).build()).collect(Collectors.toList()); + //烘箱入烘箱任务行架不支持 +// List collect2 = hotPoints.stream().map(item -> NeedBakingDto +// .builder() +// .point_code(item.getPoint_code()) +// .vehicle_code(item.getFull_vehicle_code()) +// .workorder_id(item.getWorkorder_id()) +// .update_time(item.getUpdate_time()).build()).collect(Collectors.toList()); List combinedList = new ArrayList<>(); combinedList.addAll(collect1); - combinedList.addAll(collect2); +// combinedList.addAll(collect2); combinedList.sort(Comparator.comparing(NeedBakingDto::getUpdate_time)); log.info("排序后的数据 {}", combinedList); // 调用自动入烘箱的任务 diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoQueryDeviceStatus.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoQueryDeviceStatus.java index da7cc9534..723891271 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoQueryDeviceStatus.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoQueryDeviceStatus.java @@ -4,11 +4,14 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.common.utils.RedisUtils; +import org.nl.system.service.param.ISysParamService; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.pdm.ivt.hot.service.IstIvtHotpointivtService; +import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt; import org.nl.wms.quartz.dto.HotDeviceAndEreaDto; import org.nl.wms.util.URLEnum; import org.springframework.beans.factory.annotation.Autowired; @@ -19,6 +22,7 @@ import java.util.List; /** * 自动查询烘箱温度 + * * @Author: lyd * @Date: 2024/8/9 */ @@ -31,6 +35,8 @@ public class AutoQueryDeviceStatus { private WmsToAcsService wmsToAcsService; @Autowired private IstIvtHotpointivtService hotpointivtService; + @Autowired + private ISysParamService paramService; @SneakyThrows public void run() { @@ -43,7 +49,7 @@ public class AutoQueryDeviceStatus { if (device_rows.size() == 0) { continue; } - JSONArray array= JSONArray.parseArray(JSON.toJSONString(device_rows)); + JSONArray array = JSONArray.parseArray(JSON.toJSONString(device_rows)); JSONObject jo = wmsToAcsService.getHotPointStatus(array); JSONArray de_rows = jo.getJSONArray("data"); for (int i = 0; i < de_rows.size(); i++) { @@ -63,9 +69,27 @@ public class AutoQueryDeviceStatus { if (StrUtil.isEmpty(countdown_sec)) { countdown_sec = "0"; } - String last_time = countdown_house + "小时" + countdown_min + "分钟"; - redisUtils.hset(device_code, "temperature", row.getString("temperature")); - redisUtils.hset(device_code, "last_time", last_time); + + //实际温度小于预设关机温度,烘箱改为关机状态 +// String temperature = (String) redisUtils.hget(device_code, "temperature"); +// String hotNotuseTemperature = paramService.findByCode("HOT_NOTUSE_TEMPERATURE").getValue(); +// if (!StrUtil.equals(row.getString("temperature"), temperature) && row.getString("temperature").compareTo(hotNotuseTemperature) < 0) { +// hotpointivtService.update(new LambdaUpdateWrapper() +// .set(StIvtHotpointivt::getIs_used, "0") +// .eq(StIvtHotpointivt::getPoint_code, device_code)); +// } + //如果烘箱关机,则温度为0 + if ("0".equals(row.getString("mode"))){ + String last_time = countdown_house + "小时" + countdown_min + "分钟"; + redisUtils.hset(device_code, "temperature","0"); + redisUtils.hset(device_code, "last_time", last_time); + }else { + String last_time = countdown_house + "小时" + countdown_min + "分钟"; + redisUtils.hset(device_code, "temperature", row.getString("temperature")); + redisUtils.hset(device_code, "last_time", last_time); + } + + } } catch (Exception e) { log.info("获取温度出现异常:{}", e); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsUtil.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsUtil.java index 342f752b0..e3f9f3de0 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsUtil.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AcsUtil.java @@ -35,7 +35,8 @@ import java.util.List; public class AcsUtil { /** * 对数组进行拆分独自下发 - * @param api 请求路径 + * + * @param api 请求路径 * @param list 数据数组 * @return acs响应 */ @@ -79,10 +80,10 @@ public class AcsUtil { result.put("message", "网络不通,操作失败!"); result.put("data", new JSONObject()); log.error("ACS出现异常: {}", e); - log.info("下发ACS任务失败,原因是:----------------------------------------+"+ msg); + log.info("下发ACS任务失败,原因是:----------------------------------------+" + msg); } if (!StrUtil.equals(result.getString("status"), "200")) { - log.info("下发acs任务失败,原因是:----------------------------------------+"+ result.getString("message")); + log.info("下发acs任务失败,原因是:----------------------------------------+" + result.getString("message")); throw new BadRequestException(result.getString("message")); } else { //如果向ACS下发任务,变更任务状态为下发 @@ -98,16 +99,67 @@ public class AcsUtil { } } - log.info("下发acs任务,结果是:----------------------------------------+"+ result); + log.info("下发acs任务,结果是:----------------------------------------+" + result); + return result; + } + + + public static JSONObject notifyAcs5(String api, JSONArray list) { + log.info("下发ACS参数----------------------------------------+" + api + ",---" + list.toString()); + //判断是否连接ACS系统 + String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_connect_acs").getValue(); + JSONObject result = new JSONObject(); + if (StrUtil.equals("0", isConnect)) { + result.put("status", HttpStatus.OK.value()); + result.put("message", "下发成功,但未连接ACS!"); + result.put("data", new JSONObject()); + return result; + } + + JSONObject jo = list.getJSONObject(0); + String product_area = jo.getString("product_area"); + if (StrUtil.isEmpty(product_area)) { + throw new BadRequestException("区域不能为空!下发信息:" + jo); + } + String acs_url = URLEnum.find(product_area); + if (StrUtil.isEmpty(acs_url)) { + log.info(product_area); + throw new BadRequestException("未查询到区域对应的acs地址!"); + } + String url = acs_url + api; + try { + String resultMsg = HttpRequest.post(url) + .body(String.valueOf(list)) + .execute().body(); + result = JSONObject.parseObject(resultMsg); + log.info("下发acs任务成功,返回参数----------------------------------------+" + api + ",---" + result.toString()); + } catch (Exception e) { + //acs抛异常这里 + String msg = e.getMessage(); + //ConnectException: Connection refused: connect + //网络不通 + result.put("status", HttpStatus.BAD_REQUEST.value()); + result.put("message", "网络不通,操作失败!"); + result.put("data", new JSONObject()); + log.error("ACS出现异常: {}", e); + log.info("下发ACS任务失败,原因是:----------------------------------------+" + msg); + } + if (!StrUtil.equals(result.getString("status"), "200")) { + log.info("下发acs任务失败,原因是:----------------------------------------+" + result.getString("message")); + throw new BadRequestException(result.getString("message")); + } + + log.info("下发acs任务,结果是:----------------------------------------+" + result); return result; } /** * 原生默认请求方法: 默认执行的参数都是jsonArray + * * @param api * @param list - * @return * @param + * @return */ public static ResultForAcs notifyAcs2(String api, List list) { SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); @@ -149,10 +201,11 @@ public class AcsUtil { /** * 新的请求方式:对象中包含数组 + * * @param api * @param object - * @return * @param + * @return */ public static AcsResponse notifyAcs3(String api, T object) { SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); @@ -189,9 +242,11 @@ public class AcsUtil { } return resultForAcs; } + /** * 数组一次性下发 - * @param api 请求路径 + * + * @param api 请求路径 * @param list 数据数组 * @return acs响应 */ diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/AutoInHotTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/AutoInHotTrussTask.java index f0817762d..2c3e97bf5 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/AutoInHotTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/AutoInHotTrussTask.java @@ -97,6 +97,9 @@ public class AutoInHotTrussTask extends AbstractTask { } // 临时测试 // task.setPoint_code2(hxPoint.getPoint_code()); + } + if (ObjectUtil.isEmpty(task.getPoint_code2())) { + log.error("找不到缓存温度为:{} 的可用烘箱位置", bakingTemperature); break; } JSONObject param = new JSONObject(); 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 75de31be2..a280b881b 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 @@ -70,8 +70,8 @@ public class InHotTrussTask extends AbstractTask { String flag = "0"; PdmBiRawfoilworkorder order = rawfoilworkorderService.getByContainerName(orderCode); // TODO: 没有设置是否烘烤、时间、温度、不继续 - if (GeneralDefinition.YES.equals(order.getIs_baking())) { + String bakingTemperature = order.getBaking_temperature(); requestObj.put("baking_temperature", bakingTemperature); requestObj.put("baking_time", order.getBaking_time()); @@ -90,7 +90,6 @@ public class InHotTrussTask extends AbstractTask { } // 临时测试 // task.setPoint_code2(hotPoint.getPoint_code()); - break; } } // 没有烘烤位置或者没有找到对应的点就区待烘烤区, 就去待烘烤 diff --git a/lms2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml b/lms2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml index 8748f5319..d95e8e3f5 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml +++ b/lms2/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml @@ -10,7 +10,7 @@ nl: password: NLABC&ld123 database: ldnx_lms2 redis: - ip: 192.168.20.15 + ip: 127.0.0.1 port: 6379 password: null database: 1