diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/rest/DeviceController.java b/acs/nladmin-system/src/main/java/org/nl/acs/device/rest/DeviceController.java index 3ac1e92..e3076cb 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device/rest/DeviceController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device/rest/DeviceController.java @@ -76,6 +76,15 @@ public class DeviceController { deviceService.downDeviceDBloadCSV(deviceService.queryDeviceProtocol(whereJson), response); } + @Log("导出设备协议") + @ApiOperation("导出设备协议CSVUA") + @GetMapping(value = "/protocol/downloadCSVUA") + //@PreAuthorize("@el.check('device:list')") + public void downDeviceDBloadCSVUA(HttpServletResponse response, @RequestParam Map whereJson) throws IOException { + deviceService.downDeviceDBloadCSVUA(deviceService.queryDeviceProtocol(whereJson), response); + } + + @PostMapping @Log("新增设备") @ApiOperation("新增设备") diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/service/DeviceService.java b/acs/nladmin-system/src/main/java/org/nl/acs/device/service/DeviceService.java index 0768fe9..4267c0b 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device/service/DeviceService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device/service/DeviceService.java @@ -249,6 +249,8 @@ public interface DeviceService { void downDeviceDBloadCSV(JSONArray queryDeviceProtocol, HttpServletResponse response); + void downDeviceDBloadCSVUA(JSONArray queryDeviceProtocol, HttpServletResponse response); + void downDeviceDBloadOumulongCSV(JSONArray queryDeviceProtocol, HttpServletResponse response); JSONArray selectDeviceListByType(String type); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java index 310aa30..a341598 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java @@ -52,6 +52,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.util.*; +import java.util.concurrent.ThreadLocalRandom; /** * @author ldjun @@ -1530,6 +1531,78 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial ExportCSVUtil.responseSetProperties(fileName, bytes, response); } + @Override + public void downDeviceDBloadCSVUA(JSONArray jsonarr, HttpServletResponse response) { + List cellList = new ArrayList<>(); + for (int i = 0; i < jsonarr.size(); i++) { + List item = new ArrayList(); + JSONObject jo = jsonarr.getJSONObject(i); + String extra_code = jo.getString("extra_code"); + //校验数据 格式为: RD1.RD1.A1.mode + int num = countStr(extra_code, "."); + if (num != 3) { + throw new BadRequestException(extra_code + "数据格式不正确"); + } + int randomNum1= ThreadLocalRandom.current().nextInt(1,100); + int randomNum2= ThreadLocalRandom.current().nextInt(1,100); + String random="ns="+randomNum1+";i="+randomNum2; + extra_code = extra_code.substring(extra_code.indexOf(".") + 1, extra_code.length()); + extra_code = extra_code.substring(extra_code.indexOf(".") + 1, extra_code.length()); + item.add(extra_code); + item.add(random); + String datatype = jo.getString("extra_name"); + //西门子1200、1500 为DB + if (datatype.startsWith("DB")) { + //校验数据 格式为:DB600.B1 +// if(datatype.indexOf(".") == -1 ){ +// throw new BadRequestException(jo.getString("extra_code") + "点位数据格式不正确"); +// } +// int count = countStr(datatype,"."); +// if(count != 1){ +// throw new BadRequestException(jo.getString("extra_code") + "点位数据格式不正确"); +// } + + String str1 = datatype.substring(0, datatype.indexOf(".")); + String headtype = datatype.substring(str1.length() + 1, datatype.length()); + if (headtype.startsWith("B")) { + if (headtype.contains(".")) { + datatype = "Boolean"; + } else { + datatype = "Byte"; + } + } else if (headtype.startsWith("W")) { + datatype = "Word"; + } else if (headtype.startsWith("D")) { + datatype = "DWord"; + } else if (headtype.startsWith("S")) { + datatype = "String"; + } else if (headtype.startsWith("REAL")) { + datatype = "Double"; + } + } else { + //西门子200 + if (datatype.indexOf(".") == -1) { + datatype = "Byte"; + } else { + datatype = "Boolean"; + } + } + + item.add(datatype); + item.add("1"); + item.add("R/W"); + item.add("100"); + + cellList.add(item.toArray()); + } + + String[] tableHeaderArr = {"Tag Name", "Address", "Data Type", "Respect Data Type", + "Client Access", "Scan Rate"}; + String fileName = "导出文件.csv"; + byte[] bytes = ExportCSVUtil.writeCsvAfterToBytes(tableHeaderArr, cellList); + ExportCSVUtil.responseSetProperties(fileName, bytes, response); + } + @Override public void downDeviceDBloadOumulongCSV(JSONArray jsonarr, HttpServletResponse response) { List cellList = new ArrayList<>(); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/wql/task_inst.xls b/acs/nladmin-system/src/main/java/org/nl/acs/device/wql/task_inst.xls index 44ac6a1..50ca679 100644 Binary files a/acs/nladmin-system/src/main/java/org/nl/acs/device/wql/task_inst.xls and b/acs/nladmin-system/src/main/java/org/nl/acs/device/wql/task_inst.xls differ diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index a2311ac..dbfb72f 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -49,10 +49,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.nl.start.auto.run.NDCSocketConnectionAutoRun; import javax.validation.constraints.NotBlank; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * NDC单工位AGV @@ -182,7 +179,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic //到达取货点 //(需要WCS反馈) } else if (phase == 0x03) { - log.info("==================AGV请求取货=================="); + log.info("================== =================="); if (ObjectUtil.isEmpty(inst)) { log.info("未找到指令:" + ikey); logService.deviceExecuteLog(device_code, "", "", "未找到指令 [" + ikey + "]"); @@ -237,9 +234,11 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic && lnshPalletizingManipulatorSiteDeviceDriver.getMove() != 0 && (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 1) && (lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 1)) { + Map map = new LinkedHashMap<>(); + map.put("to_command",2); + lnshPalletizingManipulatorSiteDeviceDriver.writing(map); inst.setExecute_status("1"); instructionService.update(inst); - lnshPalletizingManipulatorSiteDeviceDriver.writing(2); data = AgvService.sendAgvOneModeInst(phase, index, 0); lnshPalletizingManipulatorSiteDeviceDriver.setMessage(""); flag = true; @@ -270,11 +269,14 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic if(device.getDeviceDriver() instanceof LnshStationDeviceDriver){ lnshStationDeviceDriver=(LnshStationDeviceDriver) device.getDeviceDriver(); if(lnshStationDeviceDriver.getMode()!=0 - &&lnshStationDeviceDriver.getMove() != 0 - && (lnshStationDeviceDriver.getIo_action() == 3 || lnshStationDeviceDriver.getIo_action() == 1) - && (lnshStationDeviceDriver.getAction() == 3 || lnshStationDeviceDriver.getAction() == 1)){ + &&lnshStationDeviceDriver.getMove() != 0 + && (lnshStationDeviceDriver.getIo_action() == 3 || lnshStationDeviceDriver.getIo_action() == 1) + && (lnshStationDeviceDriver.getAction() == 3 || lnshStationDeviceDriver.getAction() == 1)){ inst.setExecute_status("1"); instructionService.update(inst); + Map map = new LinkedHashMap<>(); + map.put("to_command",2); + lnshStationDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); lnshStationDeviceDriver.setMessage(""); flag=true; @@ -309,8 +311,10 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic && conveyorPressStationDeviceDriver.getMove() != 0 && (conveyorPressStationDeviceDriver.getIo_action() == 3 || conveyorPressStationDeviceDriver.getIo_action() == 1) && (conveyorPressStationDeviceDriver.getAction() == 3 || conveyorPressStationDeviceDriver.getAction() == 1)) { + Map map = new LinkedHashMap<>(); + map.put("to_command",2); + conveyorPressStationDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); - conveyorPressStationDeviceDriver.writing(2); conveyorPressStationDeviceDriver.setMessage(""); flag = true; } else { @@ -365,9 +369,11 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic ) { inst.setExecute_status("1"); instructionService.update(inst); + Map map = new LinkedHashMap<>(); + map.put("to_command",2); + conveyorBarcodeDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); conveyorBarcodeDeviceDriver.setMessage(""); - conveyorBarcodeDeviceDriver.writing(2); flag = true; } else { String message = ""; @@ -395,7 +401,9 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic // && (lnshFoldDiscSiteDeviceDriver.getAction() == 3 || lnshFoldDiscSiteDeviceDriver.getAction() == 1) inst.setExecute_status("1"); instructionService.update(inst); - lnshFoldDiscSiteDeviceDriver.writing(2); + Map map = new LinkedHashMap<>(); + map.put("to_command",2); + lnshFoldDiscSiteDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); lnshFoldDiscSiteDeviceDriver.setMessage(""); flag = true; @@ -496,11 +504,13 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic if (lnshPalletizingManipulatorSiteDeviceDriver.getMode() != 0 && lnshPalletizingManipulatorSiteDeviceDriver.getMove() == 0 && (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 2) - ) { + ) { + Map map = new LinkedHashMap<>(); + map.put("to_command",3); + lnshPalletizingManipulatorSiteDeviceDriver.writing(map); inst.setExecute_status("5"); - lnshPalletizingManipulatorSiteDeviceDriver.writing(3); - instructionService.update(inst); data = AgvService.sendAgvOneModeInst(phase, index, 0); + instructionService.update(inst); lnshPalletizingManipulatorSiteDeviceDriver.setMessage(""); flag = true; } else { @@ -530,9 +540,11 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic && lnshStationDeviceDriver.getMove() == 0 && (lnshStationDeviceDriver.getIo_action() == 3 || lnshStationDeviceDriver.getIo_action() == 2) ) { - lnshStationDeviceDriver.writing(3); inst.setExecute_status("5"); instructionService.update(inst); + Map map = new LinkedHashMap<>(); + map.put("to_command",3); + lnshStationDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); lnshStationDeviceDriver.setMessage(""); flag = true; @@ -559,13 +571,15 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic //标准版-压制对接位 if(device.getDeviceDriver() instanceof ConveyorPressStationDeviceDriver){ conveyorPressStationDeviceDriver = (ConveyorPressStationDeviceDriver) device.getDeviceDriver(); - conveyorPressStationDeviceDriver.writing(3); if (conveyorPressStationDeviceDriver.getMode() != 0 && conveyorPressStationDeviceDriver.getMove() == 0 && (conveyorPressStationDeviceDriver.getIo_action() == 3 || conveyorPressStationDeviceDriver.getIo_action() == 2) ) { inst.setExecute_status("5"); instructionService.update(inst); + Map map = new LinkedHashMap<>(); + map.put("to_command",3); + conveyorPressStationDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); conveyorPressStationDeviceDriver.setMessage(""); flag = true; @@ -609,9 +623,11 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic //标准版-下发条码输送线 if(device.getDeviceDriver() instanceof ConveyorBarcodeDeviceDriver){ conveyorBarcodeDeviceDriver = (ConveyorBarcodeDeviceDriver) device.getDeviceDriver(); - conveyorBarcodeDeviceDriver.writing(3); if (conveyorBarcodeDeviceDriver.getMode() != 0) { inst.setExecute_status("5"); + Map map = new LinkedHashMap<>(); + map.put("to_command",3); + conveyorBarcodeDeviceDriver.writing(map); instructionService.update(inst); data = AgvService.sendAgvOneModeInst(phase, index, 0); conveyorBarcodeDeviceDriver.setMessage(""); @@ -636,12 +652,14 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic //标准版-叠盘机 if(device.getDeviceDriver() instanceof LnshFoldDiscSiteDeviceDriver){ lnshFoldDiscSiteDeviceDriver = (LnshFoldDiscSiteDeviceDriver) device.getDeviceDriver(); - lnshFoldDiscSiteDeviceDriver.writing(3); if (lnshFoldDiscSiteDeviceDriver.getMode() != 0 // && lnshFoldDiscSiteDeviceDriver.getContainer_qty() == 0 // && (lnshFoldDiscSiteDeviceDriver.getIo_action() == 3 || lnshFoldDiscSiteDeviceDriver.getIo_action() == 2) ) { inst.setExecute_status("5"); + Map map = new LinkedHashMap<>(); + map.put("to_command",3); + lnshFoldDiscSiteDeviceDriver.writing(map); instructionService.update(inst); data = AgvService.sendAgvOneModeInst(phase, index, 0); lnshFoldDiscSiteDeviceDriver.setMessage(""); @@ -758,7 +776,9 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic && lnshPalletizingManipulatorSiteDeviceDriver.getMove() == 0 && (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 1 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3) && (lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 2 || lnshPalletizingManipulatorSiteDeviceDriver.getAction() == 3)) { - lnshPalletizingManipulatorSiteDeviceDriver.writing(4); + Map map = new LinkedHashMap<>(); + map.put("to_command",4); + lnshPalletizingManipulatorSiteDeviceDriver.writing(map); inst.setExecute_status("3"); instructionService.update(inst); data = AgvService.sendAgvOneModeInst(phase, index, 0); @@ -794,9 +814,11 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic && lnshStationDeviceDriver.getMove() == 0 && (lnshStationDeviceDriver.getIo_action() == 1 || lnshStationDeviceDriver.getIo_action() == 3) && (lnshStationDeviceDriver.getAction() == 2 || lnshStationDeviceDriver.getAction() == 3)) { - lnshStationDeviceDriver.writing(4); inst.setExecute_status("3"); instructionService.update(inst); + Map map = new LinkedHashMap<>(); + map.put("to_command",4); + lnshStationDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); lnshStationDeviceDriver.setMessage(""); flag = true; @@ -826,14 +848,15 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic //标准版-压制对接位 if(device.getDeviceDriver() instanceof ConveyorPressStationDeviceDriver){ conveyorPressStationDeviceDriver = (ConveyorPressStationDeviceDriver) device.getDeviceDriver(); - conveyorPressStationDeviceDriver.writing(4); if (conveyorPressStationDeviceDriver.getMode() != 0 && conveyorPressStationDeviceDriver.getMove() == 0 && (conveyorPressStationDeviceDriver.getIo_action() == 1 || conveyorPressStationDeviceDriver.getIo_action() == 3) && (conveyorPressStationDeviceDriver.getAction() == 2 || conveyorPressStationDeviceDriver.getAction() == 3)) { - conveyorPressStationDeviceDriver.writing(4); inst.setExecute_status("3"); instructionService.update(inst); + Map map = new LinkedHashMap<>(); + map.put("to_command",4); + conveyorPressStationDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); conveyorPressStationDeviceDriver.setMessage(""); flag = true; @@ -881,9 +904,11 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic if(device.getDeviceDriver() instanceof ConveyorBarcodeDeviceDriver){ conveyorBarcodeDeviceDriver = (ConveyorBarcodeDeviceDriver) device.getDeviceDriver(); if (conveyorBarcodeDeviceDriver.getMode() == 2&& conveyorBarcodeDeviceDriver.getMove()==0){ - conveyorBarcodeDeviceDriver.writing(4); inst.setExecute_status("3"); instructionService.update(inst); + Map map = new LinkedHashMap<>(); + map.put("to_command",4); + conveyorBarcodeDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); conveyorBarcodeDeviceDriver.setMessage(""); flag = true; @@ -912,9 +937,11 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic // && (lnshFoldDiscSiteDeviceDriver.getIo_action() == 1 || lnshFoldDiscSiteDeviceDriver.getIo_action() == 3) // && (lnshFoldDiscSiteDeviceDriver.getAction() == 2 || lnshFoldDiscSiteDeviceDriver.getAction() == 3) ) { - lnshFoldDiscSiteDeviceDriver.writing(4); inst.setExecute_status("3"); instructionService.update(inst); + Map map = new LinkedHashMap<>(); + map.put("to_command",4); + lnshFoldDiscSiteDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); lnshFoldDiscSiteDeviceDriver.setMessage(""); flag = true; @@ -1008,12 +1035,14 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic //标准版-机械手对接位 if (device.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) { lnshPalletizingManipulatorSiteDeviceDriver = (LnshPalletizingManipulatorSiteDeviceDriver) device.getDeviceDriver(); + Map map = new LinkedHashMap<>(); + map.put("to_command",5); + lnshPalletizingManipulatorSiteDeviceDriver.writing(map); if (lnshPalletizingManipulatorSiteDeviceDriver.getMode() != 0 && lnshPalletizingManipulatorSiteDeviceDriver.getMove() != 0 && (lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 2 || lnshPalletizingManipulatorSiteDeviceDriver.getIo_action() == 3)) { inst.setExecute_status("6"); instructionService.update(inst); - lnshPalletizingManipulatorSiteDeviceDriver.writing(5); data = AgvService.sendAgvOneModeInst(phase, index, 0); lnshPalletizingManipulatorSiteDeviceDriver.setMessage(""); flag = true; @@ -1045,7 +1074,9 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic && (lnshStationDeviceDriver.getIo_action() == 2 || lnshStationDeviceDriver.getIo_action() == 3)) { inst.setExecute_status("6"); instructionService.update(inst); - lnshStationDeviceDriver.writing(5); + Map map = new LinkedHashMap<>(); + map.put("to_command",5); + lnshStationDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); lnshStationDeviceDriver.setMessage(""); flag = true; @@ -1078,23 +1109,23 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic && (conveyorPressStationDeviceDriver.getIo_action() == 2 || conveyorPressStationDeviceDriver.getIo_action() == 3)) { inst.setExecute_status("6"); instructionService.update(inst); - conveyorPressStationDeviceDriver.writing(5); TaskDto task=taskService.findByCode(inst.getTask_code()); if(ObjectUtil.isNotEmpty(task)){ String direction=task.getDirection(); if(ObjectUtil.isNotEmpty(direction)){ Integer direction1=Integer.parseInt(direction); + Map map = new LinkedHashMap<>(); + map.put("to_command",5); //困料位写入方向 - conveyorPressStationDeviceDriver.writing(2,direction1); + map.put("to_target",direction1); + conveyorPressStationDeviceDriver.writing(map); }else{ log.info("未输入方向"); } }else{ log.info("任务号为空"); } - data = AgvService.sendAgvOneModeInst(phase, index, 0); - conveyorPressStationDeviceDriver.setMessage(""); flag = true; } else { @@ -1140,10 +1171,12 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic if (conveyorBarcodeDeviceDriver.getMode() == 2){ inst.setExecute_status("6"); instructionService.update(inst); - conveyorBarcodeDeviceDriver.writing(5); if(ObjectUtil.isNotEmpty(inst.getVehicle_code())){ conveyorBarcodeDeviceDriver.writing("to_barcode",inst.getVehicle_code()); } + Map map = new LinkedHashMap<>(); + map.put("to_command",5); + conveyorBarcodeDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); TaskDto task=taskService.findByCode(inst.getTask_code()); String material=task.getDirection(); @@ -1176,7 +1209,9 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic ) { inst.setExecute_status("6"); instructionService.update(inst); - lnshFoldDiscSiteDeviceDriver.writing(5); + Map map = new LinkedHashMap<>(); + map.put("to_command",5); + lnshFoldDiscSiteDeviceDriver.writing(map); data = AgvService.sendAgvOneModeInst(phase, index, 0); lnshFoldDiscSiteDeviceDriver.setMessage(""); flag = true; @@ -1222,7 +1257,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic if (ikey == 0) { this.setErrorInfo(ikey, "0", "正常"); } else { - // 故障 + // 故障 } if (error != last_error) { diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/cargo_lift_conveyor/CargoLiftConveyorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/cargo_lift_conveyor/CargoLiftConveyorDeviceDriver.java index 40b7100..4efafa2 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/cargo_lift_conveyor/CargoLiftConveyorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/cargo_lift_conveyor/CargoLiftConveyorDeviceDriver.java @@ -206,7 +206,6 @@ public class CargoLiftConveyorDeviceDriver extends AbstractOpcDeviceDriver imple String start_device_code = task.getStart_device_code(); String route_plan_code = task.getRoute_plan_code(); String next_device_code = ""; - /** * 开始平均分配 */ diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java index 51cba48..5028e48 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java @@ -1,11 +1,14 @@ package org.nl.acs.device_driver.driver; +import lombok.extern.slf4j.Slf4j; +import org.jinterop.dcom.common.JIException; import org.nl.acs.opc.*; import org.nl.acs.udw.UnifiedDataAccessor; import org.nl.acs.udw.UnifiedDataAccessorFactory; import org.nl.acs.udw.UnifiedDataAppService; import org.nl.modules.wql.exception.WDKException; import org.nl.modules.wql.util.SpringContextHolder; +import org.openscada.opc.lib.da.AddFailedException; import org.openscada.opc.lib.da.Group; import org.openscada.opc.lib.da.Item; import org.openscada.opc.lib.da.ItemState; @@ -13,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.util.*; +@Slf4j public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements OpcDeviceDriver { UnifiedDataAccessor opcUdw; @@ -36,7 +40,7 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc } - public void checkcontrol(Map itemValues) throws Exception { + public void checkcontrol(Map itemValues) throws JIException, AddFailedException { Group group = opcServerService.getServer(this.getOpcServer()); Map write = new HashMap(); Map readitems = new LinkedHashMap(); @@ -55,28 +59,60 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc int i = 0; while(true) { //下发信号 - control( itemValues); - Map read = new HashMap(); - Map itemStatus = group.read(true, (Item[])readitems.values().toArray(new Item[0])); - Set items = itemStatus.keySet(); - Iterator var15 = items.iterator(); - - while(var15.hasNext()) { - Item item = (Item)var15.next(); - ItemState itemState = (ItemState)itemStatus.get(item); - Object value = OpcUtl.getValue(item, itemState); - read.put(item.getId(), value); - } - - boolean check = true; - Iterator var24 = itemsString.iterator(); - - while(var24.hasNext()) { - String itemString = (String)var24.next(); - if (!ObjectUtl.isEquals(itemValues.get(itemString), JsonUtl.parse(read.get(itemString)))) { - check = false; + try{ + if(i == 0){ + control( itemValues); + } else { + controlByNewConn( itemValues); } + + } catch (Exception e){ + e.printStackTrace(); } + Map read = new HashMap(); + Map itemStatus = null; + boolean check = true; + try{ + if(i>0){ + group = opcServerService.getServer(this.getOpcServer()); + itemsString = new ArrayList<> (itemValues.keySet()); + Iterator nis = itemsString.iterator(); + + while (nis.hasNext()) { + String string = (String) nis.next(); + try { + readitems.put(string, group.addItem(string)); + } catch (Exception e) { + e.printStackTrace(); + } + } + itemStatus = group.read(true, (Item[])readitems.values().toArray(new Item[0])); + + } else { + itemStatus = group.read(true, (Item[])readitems.values().toArray(new Item[0])); + } + Set items = itemStatus.keySet(); + Iterator var15 = items.iterator(); + while(var15.hasNext()) { + Item item = (Item)var15.next(); + ItemState itemState = (ItemState)itemStatus.get(item); + Object value = OpcUtl.getValue(item, itemState); + read.put(item.getId(), value); + } + + Iterator var24 = itemsString.iterator(); + + while(var24.hasNext()) { + String itemString = (String)var24.next(); + if (!ObjectUtl.isEquals(String.valueOf(itemValues.get(itemString)), String.valueOf(read.get(itemString)))) { + check = false; + } + } + } catch (Exception e){ + e.printStackTrace(); + check = false; + } + if (check) { return; } @@ -86,11 +122,91 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc } if (i > 3) { + log.info("写入次数超过3次而失败"); throw new WDKException("写入次数超过3次而失败"); } ++i; } } + public boolean controlByNewConn(Map itemValues) { + + Iterator> it = itemValues.entrySet().iterator(); + + ItemValue p2[]; + p2 = new ItemValue[itemValues.size()]; + int i=0; + while (it.hasNext()) { + Map.Entry entry = it.next(); + System.out.println("即将写入值:"+entry.getKey() + ":" + entry.getValue()); + p2[i] = new ItemValue(); + p2[i].setItem_code(entry.getKey()); + p2[i].setItem_value(entry.getValue()); + i++; + } + + return this.controlByNewConn(p2); + } + + public boolean controlByNewConn(ItemValue[] itemValues) { + if (itemValues != null && itemValues.length != 0) { + String this_items = JsonUtl.parseWithoutException(itemValues); + boolean need_write = false; + StringBuilder sb = new StringBuilder(); + ItemValue[] var5 = itemValues; + int var6 = itemValues.length; + +// for (int var7 = 0; var7 < var6; ++var7) { +// ItemValue itemValue = var5[var7]; +// String code = itemValue.getItem_code(); +// Object udw_value = this.getUdwValue(code); +// Object write_value = itemValue.getItem_value(); +// sb.append(code); +// sb.append(":"); +// sb.append(JsonUtl.parseWithoutException(udw_value)); +// sb.append(";"); +// if (!need_write && !UnifiedDataAppService.isEquals(udw_value, write_value)) { +// need_write = true; +// } else { +// log.warn("下发信号点位{} 当前写入值:{} 与系统内存值:{} 相同,不再写入 ", code, write_value, udw_value ); +// } +// } + need_write = true; + if (need_write) { + Date date = new Date(); + /*if (StringUtl.isEqual(this_items, this.last_items) && date.getTime() - this.sendTime.getTime() < (long) WcsConfig.opc_write_repeat_check) { + log.trace("发送时间因为小于{}毫秒,而被无视", WcsConfig.opc_write_repeat_check); + return false; + }*/ + + this.last_items = this_items; + this.sendTime = date; + /* this.execute_log.setResource(this.getDevice().getCode(), this.getDevice().getName()); + this.execute_log.log("原始记录{}->变更为{}", new Object[]{sb, this_items}); + OpcServerService opcServerService = OpcServerFactory.getOpcServerService();*/ + + OpcServerService opcServerService = SpringContextHolder.getBean(OpcServerServiceImpl.class); + + opcServerService.writeIntegerByNewConn(this.getOpcServer(), itemValues); + + + UnifiedDataAccessor opcValueAccessor = this.getOpcValueAccessor(); + ItemValue[] var17 = itemValues; + int var18 = itemValues.length; + + for (int var19 = 0; var19 < var18; ++var19) { + ItemValue itemValue = var17[var19]; + String code = itemValue.getItem_code(); + Object value = itemValue.getItem_value(); + opcValueAccessor.setValue(code, value); + } + } + + return true; + } else { + throw new WDKException("下发 无内容"); + } + } + public boolean control(Map itemValues) { diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ConveyorBarcodeDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ConveyorBarcodeDeviceDriver.java index f670f69..fc35a8d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ConveyorBarcodeDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ConveyorBarcodeDeviceDriver.java @@ -16,13 +16,11 @@ import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.StandardRequestMethod; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; -import org.nl.acs.device_driver.lnsh.lnsh_Laminating_machine.LnshLaminatingMachineDeviceDriver; import org.nl.acs.device_driver.lnsh.lnsh_mixing_mill.LnshMixingMillDeviceDriver; import org.nl.acs.ext.wms.data.AcsToWmsData.applySignalStaus.ApplySignalStatusRequest; import org.nl.acs.ext.wms.data.AcsToWmsData.applySignalStaus.ApplySignalStatusResponse; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskRequest; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; -import org.nl.acs.ext.wms.data.Resp; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; @@ -38,10 +36,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; import java.lang.reflect.Method; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 下发条码输送线工位 @@ -134,7 +129,6 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme message = null; try { device_code = this.getDeviceCode(); - mode = this.itemProtocol.getMode(); error = this.itemProtocol.getError(); move = this.itemProtocol.getMove(); @@ -157,8 +151,8 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if ("true".equals(this.device.getExtraValue().get("sendDeviceStatus"))) { ApplySignalStatusRequest request = new ApplySignalStatusRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(RequestMethodEnum.real_time_set_point.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.real_time_set_point.getName()); + request.setRequest_method_code(RequestMethodEnum.real_time_set_point.getCode()); + request.setRequest_method_name(RequestMethodEnum.real_time_set_point.getName()); request.setMove(String.valueOf(move)); ApplySignalStatusResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)), ApplySignalStatusResponse.class); message = RequestMethodEnum.getName("real_time_set_point") + "real_time_set_point 接口请求LMS..."; @@ -183,8 +177,8 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if ("true".equals(this.device.getExtraValue().get("sendDeviceStatus"))) { ApplySignalStatusRequest request = new ApplySignalStatusRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(RequestMethodEnum.real_time_set_point.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.real_time_set_point.getName()); + request.setRequest_method_code(RequestMethodEnum.real_time_set_point.getCode()); + request.setRequest_method_name(RequestMethodEnum.real_time_set_point.getName()); request.setAction(String.valueOf(action)); ApplySignalStatusResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)), ApplySignalStatusResponse.class); message = RequestMethodEnum.getName("real_time_set_point") + "real_time_set_point 接口请求LMS..."; @@ -193,7 +187,7 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if (resp.getCode() == 200) { message = RequestMethodEnum.getName("real_time_set_point") + "real_time_set_point 接口请求成功" + resp.getMessage();; } else { - message = RequestMethodEnum.getName("real_time_set_point") + "real_time_set_point 接口请求失败" + resp.getMessage();; + message = RequestMethodEnum.getName("real_time_set_point") + "real_time_set_point " + resp.getMessage();; } } logServer.deviceItemValue(this.device_code, "action", String.valueOf(action)); @@ -499,8 +493,8 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求LMS..."; @@ -508,11 +502,15 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求成功" + resp.getMessage(); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求失败" + resp.getMessage();; } lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(request))); @@ -533,8 +531,8 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -543,10 +541,14 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -566,8 +568,8 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -576,10 +578,14 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_take_empty_vehicle") + "apply_take_empty_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -600,8 +606,8 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); @@ -623,10 +629,14 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_take_full_vehicle") + "apply_take_full_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -663,8 +673,8 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -673,10 +683,14 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_force_take_full_vehicle") + "apply_force_take_full_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -696,9 +710,10 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); + request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -706,10 +721,14 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_force_take_full_vehicle_in_storage") + "apply_force_take_full_vehicle_in_storage 接口请求失败" + resp.getMessage();; } return true; @@ -729,8 +748,8 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -739,11 +758,14 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); - this.writing("to_barcode",String.valueOf(resp.getWeight())); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("barcode_success_apply") + "barcode_success_apply 接口请求失败" + resp.getMessage();; } return true; @@ -763,20 +785,23 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); - message = RequestMethodEnum.getName("get_vehicle_info") + "get_vehicle_info 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("get_vehicle_info") + "get_vehicle_info 接口请求失败" + resp.getMessage();; } return true; @@ -795,8 +820,8 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -805,10 +830,14 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("force_no_package") + "force_no_package 接口请求失败" + resp.getMessage();; } return true; @@ -820,34 +849,73 @@ public class ConveyorBarcodeDeviceDriver extends AbstractOpcDeviceDriver impleme } +// /** +// * 申请贴标 +// */ +// public synchronized boolean apply_labelling() { +// if(move > 0) { +// ApplyTaskRequest request = new ApplyTaskRequest(); +// request.setDevice_code(this.getDevice_code()); +// request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); +// request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); +// request.setWeight(String.valueOf(weight)); +// request.setVehicle_code(String.valueOf(barcode)); +// ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); +// +// message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 接口请求LMS..."; +// lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); +// +// if (resp.getCode() == 200) { +// this.writing(200); +// this.setRequireSucess(true); +// } else { +// this.writing(400); +// message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 接口请求失败" + resp.getMessage();; +// } +// return true; +// } else { +// message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 设备无货未请求LMS..."; +// lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message)); +// return false; +// } +// } /** - * 申请贴标 + * 多个信号一起下发电气 + * + * @param map */ - public synchronized boolean apply_labelling() { - if(move > 0) { - ApplyTaskRequest request = new ApplyTaskRequest(); - request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); - request.setWeight(String.valueOf(weight)); - request.setVehicle_code(String.valueOf(barcode)); - ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); - message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 接口请求LMS..."; - lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); - - if (resp.getCode() == 200) { - this.writing(200); - this.setRequireSucess(true); - } else { - this.writing(400); - message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 接口请求失败" + resp.getMessage();; + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); } - return true; - } else { - message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 设备无货未请求LMS..."; - lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message)); - return false; + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); } } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } + } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/conveyor_press_station/ConveyorPressStationDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/conveyor_press_station/ConveyorPressStationDeviceDriver.java index 016ee71..980c4e3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/conveyor_press_station/ConveyorPressStationDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/conveyor_press_station/ConveyorPressStationDeviceDriver.java @@ -16,7 +16,6 @@ import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskRequest; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; -import org.nl.acs.ext.wms.data.Resp; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.heartbeat.HeartbeatEvent; import org.nl.acs.heartbeat.dto.HeartbeatManageDto; @@ -38,10 +37,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; import java.lang.reflect.Method; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 晟华-工位(交互模板) @@ -489,8 +485,8 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求LMS..."; @@ -498,10 +494,14 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求失败" + resp.getMessage();; } lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message)); @@ -522,8 +522,8 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -532,10 +532,14 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -555,8 +559,8 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if(move == 1) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -565,12 +569,16 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("apply_take_empty_vehicle") + "apply_take_empty_vehicle 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_take_empty_vehicle") + "apply_take_empty_vehicle 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } @@ -592,8 +600,8 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -602,10 +610,14 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_take_full_vehicle") + "apply_take_full_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -625,8 +637,8 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -635,10 +647,14 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_force_take_full_vehicle") + "apply_force_take_full_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -658,8 +674,8 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -668,10 +684,14 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_force_take_full_vehicle_in_storage") + "apply_force_take_full_vehicle_in_storage 接口请求失败" + resp.getMessage();; } return true; @@ -691,8 +711,8 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -702,18 +722,24 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if (resp.getCode() == 200) { if(StrUtil.equals(resp.getIs_standing_finish(),"1")){ - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("barcode_success_apply") + "barcode_success_apply 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); }else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("barcode_success_apply") + "barcode_success_apply 接口请求失败" + "没有静置完成"; message = RequestMethodEnum.getName("barcode_success_apply") + "barcode_success_apply 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("barcode_success_apply") + "barcode_success_apply 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } @@ -734,8 +760,8 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -744,10 +770,14 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("get_vehicle_info") + "get_vehicle_info 接口请求失败" + resp.getMessage();; } return true; @@ -766,8 +796,8 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -776,10 +806,14 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("force_no_package") + "force_no_package 接口请求失败" + resp.getMessage();; } return true; @@ -798,8 +832,8 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -808,10 +842,14 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 接口请求失败" + resp.getMessage();; } return true; @@ -821,6 +859,44 @@ public class ConveyorPressStationDeviceDriver extends AbstractOpcDeviceDriver im return false; } } + /** + * 多个信号一起下发电气 + * + * @param map + */ + + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } public void checkHeartbeat() { Integer heartbeat_temp = null; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java index ad0310d..292f231 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java @@ -30,14 +30,10 @@ import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import java.lang.reflect.Field; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 晟华-覆膜机 @@ -150,8 +146,8 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i if ("true".equals(this.device.getExtraValue().get("sendDeviceStatus"))) { ApplySignalStatusRequest request = new ApplySignalStatusRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(RequestMethodEnum.real_time_set_point.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.real_time_set_point.getName()); + request.setRequest_method_code(RequestMethodEnum.real_time_set_point.getCode()); + request.setRequest_method_name(RequestMethodEnum.real_time_set_point.getName()); request.setMove(String.valueOf(move)); request.setVehicle_type(String.valueOf(container_type)); ApplySignalStatusResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)), ApplySignalStatusResponse.class); @@ -391,4 +387,42 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i public void setDeviceStatus(JSONObject data) { } + /** + * 多个信号一起下发电气 + * + * @param map + */ + + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_fold_disc_site/LnshFoldDiscSiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_fold_disc_site/LnshFoldDiscSiteDeviceDriver.java index d069f77..f8d2f12 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_fold_disc_site/LnshFoldDiscSiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_fold_disc_site/LnshFoldDiscSiteDeviceDriver.java @@ -29,14 +29,10 @@ import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import java.lang.reflect.Method; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 晟华叠盘机 @@ -257,26 +253,68 @@ public class LnshFoldDiscSiteDeviceDriver extends AbstractOpcDeviceDriver implem public synchronized boolean apply_take_empty_vehicle() { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); message = RequestMethodEnum.getName("apply_take_empty_vehicle") + "apply_take_empty_vehicle 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("apply_take_empty_vehicle") + "apply_take_empty_vehicle 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_take_empty_vehicle") + "apply_take_empty_vehicle 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } return true; } + /** + * 多个信号一起下发电气 + * + * @param map + */ + + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } public void writing(String param, String value) { @@ -336,7 +374,9 @@ public class LnshFoldDiscSiteDeviceDriver extends AbstractOpcDeviceDriver implem if (result.getStatus() == HttpStatus.OK.value()) { JSONObject jsonObject = JSONObject.parseObject(result.body()); if (ObjectUtil.isNotEmpty(jsonObject) && "200".equals(jsonObject.getString("status"))) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_mixing_mill/LnshMixingMillDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_mixing_mill/LnshMixingMillDeviceDriver.java index ec3ef7b..19709f9 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_mixing_mill/LnshMixingMillDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_mixing_mill/LnshMixingMillDeviceDriver.java @@ -17,7 +17,6 @@ import org.nl.acs.device_driver.StandardRequestMethod; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; -import org.nl.acs.ext.wms.data.Resp; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskRequest; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.service.InstructionService; @@ -35,10 +34,7 @@ import org.openscada.opc.lib.da.Server; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 晟华混碾机 @@ -232,6 +228,44 @@ public class LnshMixingMillDeviceDriver extends AbstractOpcDeviceDriver implemen logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, "to_command 写入 " + command)); } + /** + * 多个信号一起下发电气 + * + * @param map + */ + + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } public void writing(int type, int command) { String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() @@ -381,8 +415,8 @@ public class LnshMixingMillDeviceDriver extends AbstractOpcDeviceDriver implemen if (!"0".equals(order_No) && StrUtil.isNotBlank(order_No)) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setOrder_code(this.getOrder_No()); message = RequestMethodEnum.getName("order_verify") + "order_verify 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); @@ -404,8 +438,8 @@ public class LnshMixingMillDeviceDriver extends AbstractOpcDeviceDriver implemen if (!"0".equals(order_No) && StrUtil.isNotBlank(order_No)) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setOrder_code(this.getOrder_No()); message = RequestMethodEnum.getName("order_finish") + "order_finish 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_pallet_manipulator/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_pallet_manipulator/ItemProtocol.java index fb6e4a9..0959df1 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_pallet_manipulator/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_pallet_manipulator/ItemProtocol.java @@ -27,6 +27,7 @@ public class ItemProtocol { public static String item_production_time = "production_time"; public static String item_error_time = "error_time"; public static String item_order_No = "order_No"; + public static String item_formula = "formula"; public static String item_product_code = "product_code"; public static String item_AlongSide = "AlongSide"; public static String item_BshortSide = "BshortSide"; @@ -49,8 +50,7 @@ public class ItemProtocol { public static String item_to_on_vehicle_qty = "to_on_vehicle_qty"; public static String item_to_vehicle_type = "to_vehicle_type"; public static String item_to_tray_qty = "to_tray_qty"; - - + public static String item_to_formula = "to_formula"; private LnshPackagePalletManipulatorDeviceDriver driver; public ItemProtocol(LnshPackagePalletManipulatorDeviceDriver driver) { @@ -61,6 +61,10 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_heartbeat); } + + public String getFormula() { + return this.getOpcStringValue(item_formula); + } public int getToTrayQty() { return this.getOpcIntegerValue(item_to_tray_qty); } @@ -97,6 +101,10 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_qty); } + public int getToFormula() { + return this.getOpcIntegerValue(item_to_formula); + } + public int getOrder_qty() { return this.getOpcIntegerValue(item_order_qty); } @@ -235,6 +243,7 @@ public class ItemProtocol { list.add(new ItemDto(item_order_No, "工单号", "DB80.STRING128.50")); list.add(new ItemDto(item_grab_station, "当前抓取工位", "DB80.B130")); list.add(new ItemDto(item_place_station, "当前放置工位", "DB80.B132")); + list.add(new ItemDto(item_formula, "配方代号", "DB80.STRING182.50")); // list.add(new ItemDto(item_product_code, "产品编号", "DB1.W184")); // list.add(new ItemDto(item_AlongSide, "A长边", "DB1.W186")); // list.add(new ItemDto(item_BshortSide, "B短边", "DB1.W188")); @@ -258,9 +267,7 @@ public class ItemProtocol { list.add(new ItemDto(item_to_BshortSide, "B短边", "DB81.W66")); list.add(new ItemDto(item_to_Htrapezoidal, "H梯形高", "DB81.W68")); list.add(new ItemDto(item_to_Wthickness, "W厚度", "DB81.W70")); - - - + list.add(new ItemDto(item_to_formula, "配方代号", "DB81.STRING124.50")); return list; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_pallet_manipulator/LnshPackagePalletManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_pallet_manipulator/LnshPackagePalletManipulatorDeviceDriver.java index fffa987..e535553 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_pallet_manipulator/LnshPackagePalletManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_pallet_manipulator/LnshPackagePalletManipulatorDeviceDriver.java @@ -16,7 +16,6 @@ import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.StandardRequestMethod; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; -import org.nl.acs.device_driver.lnsh.lnsh_mixing_mill.LnshMixingMillDeviceDriver; import org.nl.acs.device_driver.lnsh.lnsh_palletizing_manipulator_site.LnshPalletizingManipulatorSiteDeviceDriver; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskRequest; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; @@ -246,8 +245,8 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD if(grab_station>0) { GrabPlaceStationRequest request = new GrabPlaceStationRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(RequestMethodEnum.apply_get_put_station.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.apply_get_put_station.getName()); + request.setRequest_method_code(RequestMethodEnum.apply_get_put_station.getCode()); + request.setRequest_method_name(RequestMethodEnum.apply_get_put_station.getName()); List getDeviceCodeList = this.getExtraDeviceCodes("link_get_station"); List putDeviceCodeList = this.getExtraDeviceCodes("link_put_station"); request.setGet_station(getDeviceCodeList.get((grab_station)-1)); @@ -292,8 +291,8 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD if(place_station>0) { GrabPlaceStationRequest request = new GrabPlaceStationRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(RequestMethodEnum.apply_get_put_station.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.apply_get_put_station.getName()); + request.setRequest_method_code(RequestMethodEnum.apply_get_put_station.getCode()); + request.setRequest_method_name(RequestMethodEnum.apply_get_put_station.getName()); List getDeviceCodeList = this.getExtraDeviceCodes("link_get_station"); List putDeviceCodeList = this.getExtraDeviceCodes("link_put_station"); request.setGet_station(getDeviceCodeList.get((grab_station)-1)); @@ -421,20 +420,24 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD if (!"0".equals(order_No) && StrUtil.isNotBlank(order_No)) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setOrder_code(this.getOrder_No()); message = RequestMethodEnum.getName("order_verify") + "order_verify 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); if (resp.getCode() == 200) { - this.writing(101); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",101); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("order_verify") + "order_verify 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("order_verify") + "order_verify 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); @@ -448,20 +451,24 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD if (!"0".equals(order_No) && StrUtil.isNotBlank(order_No)) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setOrder_code(this.getOrder_No()); message = RequestMethodEnum.getName("order_finish") + "order_finish 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); if (resp.getCode() == 200) { - this.writing(102); this.setRequireSucess(true); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",102); + this.writing(map); message = RequestMethodEnum.getName("order_finish") + "order_finish 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("order_finish") + "order_finish 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } @@ -505,18 +512,6 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD return flag; } - public void writing(int feedback) { - String to_feedback = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_feedback; - String opcservcerid = this.getDevice().getOpc_server_id(); - Server server = ReadUtil.getServer(opcservcerid); - Map itemMap = new HashMap(); - itemMap.put(to_feedback, feedback); - ReadUtil.write(itemMap, server); - server.disconnect(); - logServer.deviceExecuteLog(this.device_code, "", "", "to_feedback 写入 " + feedback); - lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, "to_feedback 写入 " + feedback)); - } public void writing(String param, String value) { @@ -532,6 +527,45 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, param + " 写入 " + value)); } + /** + * 多个信号一起下发电气 + * + * @param map + */ + + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } + @Override public JSONObject getDeviceStatusName() throws Exception { @@ -611,7 +645,7 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD jo.put("Wthickness", Wthickness); jo.put("isError", iserror); jo.put("isOnline", isonline); - jo.put("message", message); + return jo; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_site/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_site/ItemProtocol.java index 1e861e0..fdfbbb3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_site/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_site/ItemProtocol.java @@ -30,7 +30,8 @@ public class ItemProtocol { public static String item_barcode = "barcode"; public static String item_to_target = "to_target"; public static String item_to_task= "to_task"; - Boolean isonline; + public static String item_to_is_coating= "to_is_coating"; + public static String item_to_message= "to_message"; private LnshPackageSiteDeviceDriver driver; public ItemProtocol(LnshPackageSiteDeviceDriver driver) { @@ -43,6 +44,10 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_to_task); } + public int getTo_is_coating() { + return this.getOpcIntegerValue(item_to_is_coating); + } + public int getHeartbeat() { return this.getOpcIntegerValue(item_heartbeat); } @@ -57,6 +62,9 @@ public class ItemProtocol { public int getMaterial() { return this.getOpcIntegerValue(item_material); } + public String getTo_message() { + return this.getOpcStringValue(item_to_message); + } public int getTask() { return this.getOpcIntegerValue(item_task); } public int getWeight() { return this.getOpcIntegerValue(item_is_weight);} @@ -101,7 +109,7 @@ public class ItemProtocol { public int hasGoods(int move) { return move; } - + Boolean isonline; public int getOpcIntegerValue(String protocol) { Integer value = this.driver.getIntegeregerValue(protocol); @@ -146,6 +154,8 @@ public class ItemProtocol { list.add(new ItemDto(item_to_target, "下发目标站", "DB51.B2")); list.add(new ItemDto(item_to_task, "下发任务号", "DB51.B4")); list.add(new ItemDto(item_to_is_package, "下发是否包装", "DB51.B8")); + list.add(new ItemDto(item_to_is_coating, "是否裹膜", "DB51.B12")); + list.add(new ItemDto(item_to_message, "贴标信息", "DB51.STRING16.50")); return list; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_site/LnshPackageSiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_site/LnshPackageSiteDeviceDriver.java index c07fc01..28e6843 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_site/LnshPackageSiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_site/LnshPackageSiteDeviceDriver.java @@ -6,6 +6,7 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.jinterop.dcom.common.JIException; import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; @@ -20,13 +21,13 @@ import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; +import org.nl.modules.lucene.service.LuceneExecuteLogService; +import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.wql.util.SpringContextHolder; +import org.openscada.opc.lib.da.AddFailedException; import org.openscada.opc.lib.da.Server; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 晟华-包装线工位 @@ -40,6 +41,9 @@ public class LnshPackageSiteDeviceDriver extends AbstractOpcDeviceDriver impleme InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl"); + LuceneExecuteLogService lucene = SpringContextHolder.getBean("luceneExecuteLogServiceImpl"); + + DeviceService deviceservice = SpringContextHolder.getBean("deviceServiceImpl"); RouteLineService routelineserver = SpringContextHolder.getBean("routeLineServiceImpl"); @@ -238,6 +242,45 @@ public class LnshPackageSiteDeviceDriver extends AbstractOpcDeviceDriver impleme logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } + /** + * 多个信号一起下发电气 + * + * @param map + */ + + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } + public String toString() { return ""; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator/ItemProtocol.java index a14c5af..b3b9901 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator/ItemProtocol.java @@ -24,9 +24,8 @@ public class ItemProtocol { public static String item_standby_time = "standby_time"; public static String item_production_time = "production_time"; public static String item_error_time = "error_time"; - public static String item_to_feedback = "to_feedback"; - + public static String item_error_cause = "error_cause"; public static String item_get_station = "get_station"; public static String item_put_station = "put_station"; public static String item_is_qualified = "is_qualified"; @@ -75,6 +74,10 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_mode); } + public int getError_cause() { + return this.getOpcIntegerValue(item_error_cause); + } + public int getStatus() { return this.getOpcIntegerValue(item_status); } @@ -237,7 +240,7 @@ public class ItemProtocol { list.add(new ItemDto(item_flatness, "平面度", "DB112.REAL210")); list.add(new ItemDto(item_unqualified_qty, "缺陷个数", "DB112.REAL214")); list.add(new ItemDto(item_weight, "重量", "DB112.REAL218")); - + list.add(new ItemDto(item_error_cause, "故障原因", "DB112.B223")); return list; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator/LnshPalletizingManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator/LnshPalletizingManipulatorDeviceDriver.java index 1127093..259c23d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator/LnshPalletizingManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator/LnshPalletizingManipulatorDeviceDriver.java @@ -1,7 +1,6 @@ package org.nl.acs.device_driver.lnsh.lnsh_palletizing_manipulator; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.Getter; @@ -16,10 +15,7 @@ import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.StandardRequestMethod; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; -import org.nl.acs.device_driver.lnsh.lnsh_mixing_mill.LnshMixingMillDeviceDriver; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; -import org.nl.acs.ext.wms.data.Resp; -import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskRequest; import org.nl.acs.ext.wms.data.AcsToWmsData.grab.GrabRequest; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.service.InstructionService; @@ -32,7 +28,6 @@ import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; -import org.nl.modules.system.domain.Param; import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; @@ -373,8 +368,8 @@ public class LnshPalletizingManipulatorDeviceDriver extends AbstractOpcDeviceDri public boolean apply_one_grab() { GrabRequest request = new GrabRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); List getDeviceCodeList = this.getExtraDeviceCodes("link_get_station"); List putDeviceCodeList = this.getExtraDeviceCodes("link_put_station"); request.setGet_station(getDeviceCodeList.get(0)); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator_site/LnshPalletizingManipulatorSiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator_site/LnshPalletizingManipulatorSiteDeviceDriver.java index 70968c2..1ee8e5f 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator_site/LnshPalletizingManipulatorSiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_palletizing_manipulator_site/LnshPalletizingManipulatorSiteDeviceDriver.java @@ -1,6 +1,5 @@ package org.nl.acs.device_driver.lnsh.lnsh_palletizing_manipulator_site; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; @@ -10,7 +9,6 @@ import lombok.Getter; import lombok.Setter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.nl.acs.agv.AgvUtil; import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; @@ -19,13 +17,11 @@ import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.StandardRequestMethod; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; -import org.nl.acs.device_driver.lnsh.lnsh_mixing_mill.LnshMixingMillDeviceDriver; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyDeviceDto; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; import org.nl.acs.ext.wms.data.AcsToWmsData.getVehicle.GetPalletizeRequest; import org.nl.acs.ext.wms.data.AcsToWmsData.getVehicle.GetPalletizeResponse; import org.nl.acs.ext.wms.data.PalletizeDto; -import org.nl.acs.ext.wms.data.Resp; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskRequest; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.service.InstructionService; @@ -736,18 +732,22 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); this.setIserror(true); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求失败" + resp.getMessage();; } @@ -776,12 +776,12 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic // message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求LMS..."; // lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); // if (resp.getCode() == 200) { -// this.writing(200); +// map.put(200); // this.setRequireSucess(true); // message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求成功" + resp.getMessage(); // lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); // } else { -// this.writing(400); +// map.put(400); // this.setIserror(true); // message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求失败" + resp.getMessage(); // lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); @@ -794,8 +794,8 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic // } ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求LMS..."; @@ -803,10 +803,17 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if (resp.getCode() == 200) { this.writing(200); this.setRequireSucess(true); + if(resp.getIs_satisfy()==1){ + this.writing(20); + this.writing(20); + log.info("下发20,库存不足"); + } message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); this.setIserror(true); message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); @@ -823,8 +830,8 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if(move == 1) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -832,10 +839,14 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); this.setIserror(true); message = RequestMethodEnum.getName("apply_take_empty_vehicle") + "apply_take_empty_vehicle 接口请求失败" + resp.getMessage();; } @@ -858,8 +869,8 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setMaterial_code(material); request.setQty(String.valueOf(encoder_qty)); request.setWeight(String.valueOf(weight)); @@ -911,12 +922,20 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic // log.info("{}",JSON.toJSONString(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request)))); if (resp.getCode() == 200) { + if(resp.getIs_satisfy()==1){ + Map map = new LinkedHashMap<>(); + map.put("to_command",20); + writing(map); + message = RequestMethodEnum.getName("apply_take_full_vehicle") + "给电气下发20货架没有对应库存无库存"; + } this.writing(200); this.setRequireSucess(true); message = RequestMethodEnum.getName("apply_take_full_vehicle") + "apply_take_full_vehicle 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); this.setIserror(true); message = RequestMethodEnum.getName("apply_take_full_vehicle") + "apply_take_full_vehicle 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); @@ -938,8 +957,8 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -947,12 +966,16 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("apply_force_take_full_vehicle") + "apply_force_take_full_vehicle 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); this.setIserror(true); message = RequestMethodEnum.getName("apply_force_take_full_vehicle") + "apply_force_take_full_vehicle 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); @@ -974,19 +997,24 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); + request.setQty(String.valueOf(encoder_qty)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); message = RequestMethodEnum.getName("apply_force_take_full_vehicle_in_storage") + "apply_force_take_full_vehicle_in_storage 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); this.setIserror(true); message = RequestMethodEnum.getName("apply_force_take_full_vehicle_in_storage") + "apply_force_take_full_vehicle_in_storage 接口请求失败" + resp.getMessage();; } @@ -1007,8 +1035,8 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -1016,11 +1044,15 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); - this.writing(resp.getIs_standing_finish(),"1"); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + map.put(resp.getIs_standing_finish(),"1"); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); this.setIserror(true); message = RequestMethodEnum.getName("barcode_success_apply") + "barcode_success_apply 接口请求失败" + resp.getMessage();; } @@ -1041,22 +1073,28 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if(move > 0) { GetPalletizeRequest request = new GetPalletizeRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setVehicle_code(String.valueOf(barcode)); GetPalletizeResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),GetPalletizeResponse.class); + message = RequestMethodEnum.getName("get_vehicle_info") + "get_vehicle_info 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { if(ObjectUtil.isNotEmpty(resp.getPalletizeDto())){ PalletizeDto dto = resp.getPalletizeDto(); - } - this.writing(200); + Integer qty=resp.getMaterial_qty(); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + map.put("to_tray_qty",qty); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); this.setIserror(true); message = RequestMethodEnum.getName("get_vehicle_info") + "get_vehicle_info 接口请求失败" + resp.getMessage();; } @@ -1076,8 +1114,8 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -1085,10 +1123,14 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); this.setIserror(true); message = RequestMethodEnum.getName("force_no_package") + "force_no_package 接口请求失败" + resp.getMessage();; } @@ -1108,8 +1150,8 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -1117,10 +1159,14 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(false); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); this.setIserror(true); message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 接口请求失败" + resp.getMessage();; } @@ -1184,6 +1230,8 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic + "." + ItemProtocol.item_to_target; String to_task = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "." + ItemProtocol.item_to_task; + String to_tray_qty = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + ItemProtocol.item_to_tray_qty; String opcservcerid = this.getDevice().getOpc_server_id(); Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); @@ -1191,9 +1239,10 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic itemMap.put(to_command, command); } else if (type == 2) { itemMap.put(to_target, command); - } else if (type == 3) { itemMap.put(to_task, command); + }else if(type==4){ + itemMap.put(to_tray_qty, command); } ReadUtil.write(itemMap, server); server.disconnect(); @@ -1349,7 +1398,9 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if (ObjectUtil.isNotEmpty(jsonObject) && "200".equals(jsonObject.getString("status"))) { JSONObject content = jsonObject.getJSONObject("data"); if (ObjectUtil.isEmpty(content)) { - this.writing(20); + Map map = new LinkedHashMap<>(); + map.put("to_command",20); + this.writing(map); this.setRequireSucess(true); } else { String qty = content.getString("qty"); @@ -1407,62 +1458,64 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic String Htrapezoidal = content.getString("htrapezoidal"); String Wthickness = content.getString("wthickness"); - this.writing("to_product_code", StrUtil.isBlank(product_code) ? "0" : product_code); - this.writing("to_AlongSide", StrUtil.isBlank(AlongSide) ? "0" : AlongSide); - this.writing("to_BshortSide", StrUtil.isBlank(BshortSide) ? "0" : BshortSide); - this.writing("to_Htrapezoidal", StrUtil.isBlank(Htrapezoidal) ? "0" : Htrapezoidal); - this.writing("to_Wthickness", StrUtil.isBlank(Wthickness) ? "0" : Wthickness); + Map map = new LinkedHashMap<>(); + map.put("to_product_code", StrUtil.isBlank(product_code) ? "0" : product_code); + map.put("to_AlongSide", StrUtil.isBlank(AlongSide) ? "0" : AlongSide); + map.put("to_BshortSide", StrUtil.isBlank(BshortSide) ? "0" : BshortSide); + map.put("to_Htrapezoidal", StrUtil.isBlank(Htrapezoidal) ? "0" : Htrapezoidal); + map.put("to_Wthickness", StrUtil.isBlank(Wthickness) ? "0" : Wthickness); //当前托盘砖数量 - this.writing("to_tray_qty", StrUtil.isBlank(qty) ? "0" : qty); - this.writing("to_tray_high", StrUtil.isBlank(tray_high) ? "0" : tray_high); - this.writing("to_crib_category", StrUtil.isBlank(crib_category) ? "0" : crib_category); - this.writing("to_palletX1_line", StrUtil.isBlank(palletX1_line) ? "0" : palletX1_line); - this.writing("to_palletY1_row", StrUtil.isBlank(palletY1_row) ? "0" : palletY1_row); - this.writing("to_palletA1_angle", StrUtil.isBlank(palletA1_angle) ? "0" : palletA1_angle); - this.writing("to_palletX2_line", StrUtil.isBlank(palletX2_line) ? "0" : palletX2_line); - this.writing("to_palletY2_row", StrUtil.isBlank(palletY2_row) ? "0" : palletY2_row); - this.writing("to_palletA2_angle", StrUtil.isBlank(palletA2_angle) ? "0" : palletA2_angle); - this.writing("to_palletX3_line", StrUtil.isBlank(palletX3_line) ? "0" : palletX3_line); - this.writing("to_palletY3_row", StrUtil.isBlank(palletY3_row) ? "0" : palletY3_row); - this.writing("to_palletA3_angle", StrUtil.isBlank(palletA3_angle) ? "0" : palletA3_angle); - this.writing("to_pressCribX1_line", StrUtil.isBlank(pressCribX1_line) ? "0" : pressCribX1_line); - this.writing("to_pressCribY1_row", StrUtil.isBlank(pressCribY1_row) ? "0" : pressCribY1_row); - this.writing("to_pressCribA1_angle", StrUtil.isBlank(pressCribA1_angle) ? "0" : pressCribA1_angle); - this.writing("to_pressCribX2_line", StrUtil.isBlank(pressCribX2_line) ? "0" : pressCribX2_line); - this.writing("to_pressCribY2_row", StrUtil.isBlank(pressCribY2_row) ? "0" : pressCribY2_row); - this.writing("to_pressCribA2_angle", StrUtil.isBlank(pressCribA2_angle) ? "0" : pressCribA2_angle); - this.writing("to_pressCribX3_line", StrUtil.isBlank(pressCribX3_line) ? "0" : pressCribX3_line); - this.writing("to_pressCribY3_row", StrUtil.isBlank(pressCribY3_row) ? "0" : pressCribY3_row); - this.writing("to_pressCribA3_angle", StrUtil.isBlank(pressCribA3_angle) ? "0" : pressCribA3_angle); - this.writing("to_Zoffset", StrUtil.isBlank(Zoffset) ? "0" : Zoffset); - this.writing("to_pallet_layerQty", StrUtil.isBlank(pallet_layerQty) ? "0" : pallet_layerQty); - this.writing("to_pressCrib_layerQty", StrUtil.isBlank(pressCrib_layerQty) ? "0" : pressCrib_layerQty); - this.writing("to_codeLayerX1_interval", StrUtil.isBlank(codeLayerX1_interval) ? "0" : codeLayerX1_interval); - this.writing("to_codeLayerY1_interval", StrUtil.isBlank(codeLayerY1_interval) ? "0" : codeLayerY1_interval); - this.writing("to_codeLayerX2_interval", StrUtil.isBlank(codeLayerX2_interval) ? "0" : codeLayerX2_interval); - this.writing("to_codeLayerY2_interval", StrUtil.isBlank(codeLayerY2_interval) ? "0" : codeLayerY2_interval); - this.writing("to_codeLayerX3_interval", StrUtil.isBlank(codeLayerX3_interval) ? "0" : codeLayerX3_interval); - this.writing("to_codeLayerY3_interval", StrUtil.isBlank(codeLayerY3_interval) ? "0" : codeLayerY3_interval); - this.writing("to_codeLayerX1_offset", StrUtil.isBlank(codeLayerX1_offset) ? "0" : codeLayerX1_offset); - this.writing("to_codeLayerY1_offset", StrUtil.isBlank(codeLayerY1_offset) ? "0" : codeLayerY1_offset); - this.writing("to_codeLayerX2_offset", StrUtil.isBlank(codeLayerX2_offset) ? "0" : codeLayerX2_offset); - this.writing("to_codeLayerY2_offset", StrUtil.isBlank(codeLayerY2_offset) ? "0" : codeLayerY2_offset); - this.writing("to_codeLayerX3_offset", StrUtil.isBlank(codeLayerX3_offset) ? "0" : codeLayerX3_offset); - this.writing("to_codeLayerY3_offset", StrUtil.isBlank(codeLayerY3_offset) ? "0" : codeLayerY3_offset); - this.writing("to_pressLayerX1_interval", StrUtil.isBlank(pressLayerX1_interval) ? "0" : pressLayerX1_interval); - this.writing("to_pressLayerY1_interval", StrUtil.isBlank(pressLayerY1_interval) ? "0" : pressLayerY1_interval); - this.writing("to_pressLayerX2_interval", StrUtil.isBlank(pressLayerX2_interval) ? "0" : pressLayerX2_interval); - this.writing("to_pressLayerY2_interval", StrUtil.isBlank(pressLayerY2_interval) ? "0" : pressLayerY2_interval); - this.writing("to_pressLayerX3_interval", StrUtil.isBlank(pressLayerX3_interval) ? "0" : pressLayerX3_interval); - this.writing("to_pressLayerY3_interval", StrUtil.isBlank(pressLayerY3_interval) ? "0" : pressLayerY3_interval); - this.writing("to_pressLayerX1_offset", StrUtil.isBlank(pressLayerX1_offset) ? "0" : pressLayerX1_offset); - this.writing("to_pressLayerY1_offset", StrUtil.isBlank(pressLayerY1_offset) ? "0" : pressLayerY1_offset); - this.writing("to_pressLayerX2_offset", StrUtil.isBlank(pressLayerX2_offset) ? "0" : pressLayerX2_offset); - this.writing("to_pressLayerY2_offset", StrUtil.isBlank(pressLayerY2_offset) ? "0" : pressLayerY2_offset); - this.writing("to_pressLayerX3_offset", StrUtil.isBlank(pressLayerX3_offset) ? "0" : pressLayerX3_offset); - this.writing("to_pressLayerY3_offset", StrUtil.isBlank(pressLayerY3_offset) ? "0" : pressLayerY3_offset); - this.writing("to_tool_coordinate", StrUtil.isBlank(tool_coordinate) ? "0" : tool_coordinate); - this.writing(200); + map.put("to_tray_qty", StrUtil.isBlank(qty) ? "0" : qty); + map.put("to_tray_high", StrUtil.isBlank(tray_high) ? "0" : tray_high); + map.put("to_crib_category", StrUtil.isBlank(crib_category) ? "0" : crib_category); + map.put("to_palletX1_line", StrUtil.isBlank(palletX1_line) ? "0" : palletX1_line); + map.put("to_palletY1_row", StrUtil.isBlank(palletY1_row) ? "0" : palletY1_row); + map.put("to_palletA1_angle", StrUtil.isBlank(palletA1_angle) ? "0" : palletA1_angle); + map.put("to_palletX2_line", StrUtil.isBlank(palletX2_line) ? "0" : palletX2_line); + map.put("to_palletY2_row", StrUtil.isBlank(palletY2_row) ? "0" : palletY2_row); + map.put("to_palletA2_angle", StrUtil.isBlank(palletA2_angle) ? "0" : palletA2_angle); + map.put("to_palletX3_line", StrUtil.isBlank(palletX3_line) ? "0" : palletX3_line); + map.put("to_palletY3_row", StrUtil.isBlank(palletY3_row) ? "0" : palletY3_row); + map.put("to_palletA3_angle", StrUtil.isBlank(palletA3_angle) ? "0" : palletA3_angle); + map.put("to_pressCribX1_line", StrUtil.isBlank(pressCribX1_line) ? "0" : pressCribX1_line); + map.put("to_pressCribY1_row", StrUtil.isBlank(pressCribY1_row) ? "0" : pressCribY1_row); + map.put("to_pressCribA1_angle", StrUtil.isBlank(pressCribA1_angle) ? "0" : pressCribA1_angle); + map.put("to_pressCribX2_line", StrUtil.isBlank(pressCribX2_line) ? "0" : pressCribX2_line); + map.put("to_pressCribY2_row", StrUtil.isBlank(pressCribY2_row) ? "0" : pressCribY2_row); + map.put("to_pressCribA2_angle", StrUtil.isBlank(pressCribA2_angle) ? "0" : pressCribA2_angle); + map.put("to_pressCribX3_line", StrUtil.isBlank(pressCribX3_line) ? "0" : pressCribX3_line); + map.put("to_pressCribY3_row", StrUtil.isBlank(pressCribY3_row) ? "0" : pressCribY3_row); + map.put("to_pressCribA3_angle", StrUtil.isBlank(pressCribA3_angle) ? "0" : pressCribA3_angle); + map.put("to_Zoffset", StrUtil.isBlank(Zoffset) ? "0" : Zoffset); + map.put("to_pallet_layerQty", StrUtil.isBlank(pallet_layerQty) ? "0" : pallet_layerQty); + map.put("to_pressCrib_layerQty", StrUtil.isBlank(pressCrib_layerQty) ? "0" : pressCrib_layerQty); + map.put("to_codeLayerX1_interval", StrUtil.isBlank(codeLayerX1_interval) ? "0" : codeLayerX1_interval); + map.put("to_codeLayerY1_interval", StrUtil.isBlank(codeLayerY1_interval) ? "0" : codeLayerY1_interval); + map.put("to_codeLayerX2_interval", StrUtil.isBlank(codeLayerX2_interval) ? "0" : codeLayerX2_interval); + map.put("to_codeLayerY2_interval", StrUtil.isBlank(codeLayerY2_interval) ? "0" : codeLayerY2_interval); + map.put("to_codeLayerX3_interval", StrUtil.isBlank(codeLayerX3_interval) ? "0" : codeLayerX3_interval); + map.put("to_codeLayerY3_interval", StrUtil.isBlank(codeLayerY3_interval) ? "0" : codeLayerY3_interval); + map.put("to_codeLayerX1_offset", StrUtil.isBlank(codeLayerX1_offset) ? "0" : codeLayerX1_offset); + map.put("to_codeLayerY1_offset", StrUtil.isBlank(codeLayerY1_offset) ? "0" : codeLayerY1_offset); + map.put("to_codeLayerX2_offset", StrUtil.isBlank(codeLayerX2_offset) ? "0" : codeLayerX2_offset); + map.put("to_codeLayerY2_offset", StrUtil.isBlank(codeLayerY2_offset) ? "0" : codeLayerY2_offset); + map.put("to_codeLayerX3_offset", StrUtil.isBlank(codeLayerX3_offset) ? "0" : codeLayerX3_offset); + map.put("to_codeLayerY3_offset", StrUtil.isBlank(codeLayerY3_offset) ? "0" : codeLayerY3_offset); + map.put("to_pressLayerX1_interval", StrUtil.isBlank(pressLayerX1_interval) ? "0" : pressLayerX1_interval); + map.put("to_pressLayerY1_interval", StrUtil.isBlank(pressLayerY1_interval) ? "0" : pressLayerY1_interval); + map.put("to_pressLayerX2_interval", StrUtil.isBlank(pressLayerX2_interval) ? "0" : pressLayerX2_interval); + map.put("to_pressLayerY2_interval", StrUtil.isBlank(pressLayerY2_interval) ? "0" : pressLayerY2_interval); + map.put("to_pressLayerX3_interval", StrUtil.isBlank(pressLayerX3_interval) ? "0" : pressLayerX3_interval); + map.put("to_pressLayerY3_interval", StrUtil.isBlank(pressLayerY3_interval) ? "0" : pressLayerY3_interval); + map.put("to_pressLayerX1_offset", StrUtil.isBlank(pressLayerX1_offset) ? "0" : pressLayerX1_offset); + map.put("to_pressLayerY1_offset", StrUtil.isBlank(pressLayerY1_offset) ? "0" : pressLayerY1_offset); + map.put("to_pressLayerX2_offset", StrUtil.isBlank(pressLayerX2_offset) ? "0" : pressLayerX2_offset); + map.put("to_pressLayerY2_offset", StrUtil.isBlank(pressLayerY2_offset) ? "0" : pressLayerY2_offset); + map.put("to_pressLayerX3_offset", StrUtil.isBlank(pressLayerX3_offset) ? "0" : pressLayerX3_offset); + map.put("to_pressLayerY3_offset", StrUtil.isBlank(pressLayerY3_offset) ? "0" : pressLayerY3_offset); + map.put("to_tool_coordinate", StrUtil.isBlank(tool_coordinate) ? "0" : tool_coordinate); + map.put("to_command",200); + this.writing(map); } this.setRequireSucess(true); } @@ -1561,7 +1614,9 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if (result.getStatus() == HttpStatus.OK.value()) { JSONObject jsonObject = JSONObject.parseObject(result.body()); if (ObjectUtil.isNotEmpty(jsonObject) && "200".equals(jsonObject.getString("status"))) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } } @@ -1590,7 +1645,9 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if (result.getStatus() == HttpStatus.OK.value()) { JSONObject jsonObject = JSONObject.parseObject(result.body()); if (ObjectUtil.isNotEmpty(jsonObject) && "200".equals(jsonObject.getString("status"))) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } } @@ -1619,7 +1676,9 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if (result.getStatus() == HttpStatus.OK.value()) { JSONObject jsonObject = JSONObject.parseObject(result.body()); if (ObjectUtil.isNotEmpty(jsonObject) && "200".equals(jsonObject.getString("status"))) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } } @@ -1627,5 +1686,43 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic return true; } } + /** + * 多个信号一起下发电气 + * + * @param map + */ + + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_press/LnshPressDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_press/LnshPressDeviceDriver.java index c75ddf6..81475b5 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_press/LnshPressDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_press/LnshPressDeviceDriver.java @@ -2,7 +2,6 @@ package org.nl.acs.device_driver.lnsh.lnsh_press; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.Getter; @@ -19,7 +18,6 @@ import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskRequest; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; -import org.nl.acs.ext.wms.data.Resp; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; @@ -27,22 +25,16 @@ import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; import org.nl.acs.order.service.ProduceshiftorderService; -import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 晟华压力机 @@ -294,20 +286,24 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De if (!"0".equals(order_No) && StrUtil.isNotBlank(order_No)) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setOrder_code(this.getOrder_No()); message = RequestMethodEnum.getName("order_verify") + "order_verify 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); if (resp.getCode() == 200) { - this.writing(101); + Map map = new LinkedHashMap<>(); + map.put("to_command",101); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("order_verify") + "order_verify 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("order_verify") + "order_verify 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } @@ -323,20 +319,24 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De if (!"0".equals(order_No) && StrUtil.isNotBlank(order_No)) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setOrder_code(this.getOrder_No()); message = RequestMethodEnum.getName("order_finish") + "order_finish 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); if (resp.getCode() == 200) { - this.writing(102); + Map map = new LinkedHashMap<>(); + map.put("to_command",102); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("order_finish") + "order_finish 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("order_finish") + "order_finish 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } @@ -352,20 +352,24 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De public synchronized boolean pressRequestMaterial(){ ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setOrder_code(String.valueOf(order_No)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)), ApplyTaskResponse.class); message = RequestMethodEnum.getName("pressRequestMaterial") + "pressRequestMaterial 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "请求参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("pressRequestMaterial") + "pressRequestMaterial 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("pressRequestMaterial") + "pressRequestMaterial 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } @@ -379,8 +383,8 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De public synchronized boolean apply_feedback_weight() { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(unqualified)); request.setOrder_code(String.valueOf(order_No)); request.setMaterial_code(String.valueOf(material)); @@ -389,12 +393,16 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("apply_feedback_weight") + "apply_feedback_weight 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_feedback_weight") + "apply_feedback_weight 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } @@ -437,12 +445,54 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } + /** + * 多个信号一起下发电气 + * + * @param map + */ + + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } + + + public void executing(Server server, Map itemMap) { ReadUtil.write(itemMap, server); server.disconnect(); } + public void writing(int command) { String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "." + ItemProtocol.item_to_command; @@ -544,4 +594,6 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De public void setDeviceStatus(JSONObject data) { } + + } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_rgv/LnshRGVDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_rgv/LnshRGVDeviceDriver.java index 7d61ea8..a2e196a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_rgv/LnshRGVDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_rgv/LnshRGVDeviceDriver.java @@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.jinterop.dcom.common.JIException; import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; @@ -30,8 +31,11 @@ import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.lucene.service.LuceneExecuteLogService; +import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.openscada.opc.lib.da.AddFailedException; import org.openscada.opc.lib.da.Server; import org.springframework.beans.factory.annotation.Autowired; @@ -57,6 +61,8 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi RouteLineService routelineserver = SpringContextHolder.getBean("routeLineServiceImpl"); @Autowired TaskService taskserver = SpringContextHolder.getBean("taskServiceImpl"); + @Autowired + LuceneExecuteLogService lucene = SpringContextHolder.getBean("luceneExecuteLogServiceImpl"); @Autowired DeviceAppService deviceAppservice = SpringContextHolder.getBean(DeviceAppServiceImpl.class); @@ -149,8 +155,8 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi int to_target2 = 0; int to_task2 = 0; - int to_container_type = 0; - int last_to_container_type = 0; +// int to_container_type = 0; +// int last_to_container_type = 0; int last_to_command2 = 0; int last_to_oneset2 = 0; @@ -213,10 +219,10 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } - if (to_container_type != last_to_container_type) { - logServer.deviceItemValue(this.device_code, "to_container_type", String.valueOf(to_container_type)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号container_type:" + last_to_container_type + "->" + to_container_type); - } +// if (to_container_type != last_to_container_type) { +// logServer.deviceItemValue(this.device_code, "to_container_type", String.valueOf(to_container_type)); +// logServer.deviceExecuteLog(this.device_code, "", "", "信号container_type:" + last_to_container_type + "->" + to_container_type); +// } if (error != last_error) { logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); @@ -337,9 +343,6 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi driver.setMessage(msg); logServer.deviceExecuteLog(startDevice.getDevice_code(), "", "", msg); } - } else if (startDevice.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - this.writing("to_command1", "3"); - logServer.deviceExecuteLog(startDevice.getDevice_code(), "", "", "允许RGV前工位取货。"); } } @@ -434,44 +437,45 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi driver.setMessage(msg); logServer.deviceExecuteLog(startDevice.getDevice_code(), "", "", msg); } - } else if (startDevice.getDeviceDriver() instanceof LnshStationDeviceDriver) { - LnshStationDeviceDriver driver = (LnshStationDeviceDriver) startDevice.getDeviceDriver(); - if (driver.getMode() != 0 - && driver.getMove() != 0 - && (driver.getIo_action() == 3 || driver.getIo_action() == 1) - && (driver.getAction() == 3 || driver.getAction() == 1)) { - this.writing("to_command2", "1"); - driver.setMessage(""); - logServer.deviceExecuteLog(startDevice.getDevice_code(), "", "", "允许RGV后工位取货。"); - } else { - String msg = ""; - if (driver.getMode() == 0) { - msg += "站点未联机,"; - } else { - if (driver.getMove() == 0) { - msg += "站点无货,"; - } - if (driver.getIo_action() != 3 && driver.getIo_action() != 1) { - msg += "站点不允许进入,"; - } - if (driver.getAction() != 3 && driver.getAction() != 1) { - msg += "站点不允许取货,"; - } - } - msg += "不允许RGV后工位取货。"; - driver.setMessage(msg); - logServer.deviceExecuteLog(startDevice.getDevice_code(), "", "", msg); - } } +// else if (startDevice.getDeviceDriver() instanceof LnshStationDeviceDriver) { +// LnshStationDeviceDriver driver = (LnshStationDeviceDriver) startDevice.getDeviceDriver(); +// if (driver.getMode() != 0 +// && driver.getMove() != 0 +// && (driver.getIo_action() == 3 || driver.getIo_action() == 1) +// && (driver.getAction() == 3 || driver.getAction() == 1)) { +// this.writing("to_command2", "1"); +// driver.setMessage(""); +// logServer.deviceExecuteLog(startDevice.getDevice_code(), "", "", "允许RGV后工位取货。"); +// } else { +// String msg = ""; +// if (driver.getMode() == 0) { +// msg += "站点未联机,"; +// } else { +// if (driver.getMove() == 0) { +// msg += "站点无货,"; +// } +// if (driver.getIo_action() != 3 && driver.getIo_action() != 1) { +// msg += "站点不允许进入,"; +// } +// if (driver.getAction() != 3 && driver.getAction() != 1) { +// msg += "站点不允许取货,"; +// } +// } +// msg += "不允许RGV后工位取货。"; +// driver.setMessage(msg); +// logServer.deviceExecuteLog(startDevice.getDevice_code(), "", "", msg); +// } +// } } //后工位放货时判断放货位光电信号 if (mode == 3 && error == 0 && status != 3 && action2 == 2 && move2 != 0 && task2 > 0 && action1 != 1) { Instruction inst1 = instructionService.findByCodeFromCache(String.valueOf(task2)); - String next_parent_code = inst1.getNext_parent_code(); + String next_device_code = inst1.getNext_device_code(); String start_device_code=inst1.getStart_device_code(); //后工位单任务 - Device nextDevice = deviceAppservice.findDeviceByCode(next_parent_code); + Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code); //双工位 Device nextDevice1 = deviceAppservice.findDeviceByCode(start_device_code); if (nextDevice.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) { @@ -482,7 +486,6 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi // && (driver.getAction() == 2 || driver.getAction() == 3) ) { this.writing("to_command2", "2"); - this.requireSucess1 = false; driver.setMessage(""); logServer.deviceExecuteLog(nextDevice.getDevice_code(), "", "", "允许RGV后工位放货。"); } else { @@ -504,8 +507,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi driver.setMessage(msg); logServer.deviceExecuteLog(device_code, "", "", msg); } - } - if(nextDevice1.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver){ + } else if(nextDevice1.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver){ LnshPalletizingManipulatorSiteDeviceDriver driver = (LnshPalletizingManipulatorSiteDeviceDriver) nextDevice1.getDeviceDriver(); if (driver.getMode() != 0 && driver.getMove() == 0 @@ -513,7 +515,6 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi // && (driver.getAction() == 2 || driver.getAction() == 3) ) { this.writing("to_command2", "2"); - this.requireSucess1 = false; driver.setMessage(""); logServer.deviceExecuteLog(nextDevice.getDevice_code(), "", "", "允许RGV后工位放货。"); } @@ -521,10 +522,12 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi } - } catch (Exception var17) { + } catch (Exception e) { + log.error("捕获到异常:" + e.getMessage(), e); return; } + log.info("当前RGV的模式为{}",mode); if (mode == 0) { this.setIsonline(false); this.setIserror(true); @@ -538,6 +541,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi } else { this.setIsonline(true); this.setIserror(false); + logServer.deviceExecuteLog(this.device_code, "", "", "RGV准备接受任务"); message = ""; Instruction instruction = null; List toInstructions; @@ -546,7 +550,8 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi log.debug("设备运转模式:等待工作"); return; case 2: - if (move1 == 0 && move2 == 0 && !requireSucess1 &&mode==2) { + logServer.deviceExecuteLog(this.device_code, "", "", "前工位光电信号" + move1 + "后工位光电信号" + move2+"复位标记"+ requireSucess1+"模式"+mode); + if (move1 == 0 && move2 == 0 && !requireSucess1 &&mode==2 && action2 == 0 && action1==0&& task1==0&& task2==0) { instruction_require(); } break; @@ -594,7 +599,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi last_to_oneset2 = to_oneset2; last_to_target2 = to_target2; last_to_task2 = to_task2; - last_to_container_type = to_container_type; +// last_to_container_type = to_container_type; } @@ -686,7 +691,6 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi //下发4个点任务 if (ObjectUtil.isNotEmpty(start_device_code2) && ObjectUtil.isNotEmpty(next_device_code2)) { sendHeadBackSignalType(instdto); - log.info("下发五点任务,指令信息()",instdto); requireSucess1 = true; logServer.deviceExecuteLog(this.device_code, "", "", "申请前后工位任务成功,requireSucess1" + requireSucess1 + ",指令号:" + instdto.getInstruction_code()); if(ObjectUtil.isNotEmpty(start_device_code)){ @@ -704,8 +708,9 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi } else { //申请后工位任务 TaskDto task2 = null; + //后工位取货关联设备 List getDeviceCodeList2 = this.getExtraDeviceCodes("get_device_code2"); - //前工位放货关联设备 + //后工位放货关联设备 List putDeviceCodeList2 = this.getExtraDeviceCodes("put_device_code2"); for (int i = 0; i < putDeviceCodeList2.size(); i++) { if (ObjectUtil.isNotEmpty(taskserver.queryTaskByDeviceCode(getDeviceCodeList2.get(i).replace("\"", "")))) { @@ -871,15 +876,43 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi logServer.deviceExecuteLog(this.device_code, "", "", to_command1 + " 写入 " + command); } - public void writing2(int command) { - String to_command2 = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_command2; + /** + * 多个信号一起下发电气 + * + * @param map + */ - - Map itemMap = new HashMap(); - itemMap.put(to_command2, command); - this.control(itemMap); - logServer.deviceExecuteLog(this.device_code, "", "", to_command2 + " 写入 " + command); + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; } public void writing(int type, int command) { @@ -1040,8 +1073,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi log.error("RGV 双工位完成指令异常", e); logServer.deviceExecuteLog(this.device_code, "", "", "前工位指令" + task1 + "完成异常,异常原因:" + e.getMessage()); } - log.info("五点任务完成"); - this.setRequireSucess1(false); + writing("to_command1", "0"); writing("to_command1", "0"); writing("to_onset1", "0"); @@ -1058,11 +1090,8 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi writing("to_target2", "0"); writing("to_task2", "0"); writing("to_task2", "0"); - writing("to_container_type", "0"); - writing("to_container_type", "0"); + } - this.requireSucess1 = false; - log.info("前后工位任务完成复位"); //单独的后工位任务 } else if (action2 == 4 && move2 == 0 && task2 > 0 && action1 == 0 && move2 == 0 && task1 == 0) { //inst_message @@ -1074,8 +1103,6 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi log.error("RGV 后工位完成指令异常", e); logServer.deviceExecuteLog(this.device_code, "", "", "后工位指令" + task1 + "完成异常,异常原因:" + e.getMessage()); } - log.info("后工位任务完成"); - this.setRequireSucess1(false); writing("to_command2", "0"); writing("to_command2", "0"); writing("to_onset2", "0"); @@ -1085,8 +1112,6 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi writing("to_task2", "0"); writing("to_task2", "0"); } - this.requireSucess1 = false; - log.info("后工位任务完成复位"); } else if (action1 == 4 && move1 == 0 && task1 > 0 && action2 == 0 && move2 == 0 && task2 == 0) { inst1 = checkInst(); if (inst1 != null) { @@ -1096,8 +1121,6 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi log.error("RGV 前工位完成指令异常", e); logServer.deviceExecuteLog(this.device_code, "", "", "前工位指令" + task1 + "完成异常,异常原因:" + e.getMessage()); } - log.info("前工位任务完成"); - this.setRequireSucess1(false); writing("to_command1", "0"); writing("to_command1", "0"); writing("to_onset1", "0"); @@ -1106,11 +1129,9 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi writing("to_target1", "0"); writing("to_task1", "0"); writing("to_task1", "0"); - writing("to_container_type", "0"); - writing("to_container_type", "0"); +// writing("to_container_type", "0"); +// writing("to_container_type", "0"); } - this.requireSucess1 = false; - log.info("前工位任务完成复位"); } @@ -1185,16 +1206,18 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi this.isSetAddress(nextDevice); String start_addr = startDevice.getExtraValue().get("OPCServer").toString(); String next_addr = nextDevice.getExtraValue().get("OPCServer").toString(); - this.writing("to_onset1", start_addr); - this.writing("to_onset1", start_addr); - this.writing("to_target1", next_addr); - this.writing("to_target1", next_addr); - this.writing("to_task1", dto.getInstruction_code()); - this.writing("to_task1", dto.getInstruction_code()); - this.writing("to_command1", "1"); - this.writing("to_command1", "1"); + Map map = new LinkedHashMap<>(); + map.put("to_onset1", start_addr); + map.put("to_onset1", start_addr); + map.put("to_target1", next_addr); + map.put("to_target1", next_addr); + map.put("to_task1", dto.getInstruction_code()); + map.put("to_task1", dto.getInstruction_code()); + map.put("to_command1", "1"); + map.put("to_command1", "1"); + this.writing(map); + log.info("下发前工位任务起始站{}目标站{}任务号{}",start_addr,next_addr,dto.getInstruction_code()); } - /** * 下发后工位任务 * @param dto @@ -1208,14 +1231,17 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi this.isSetAddress(nextDevice); String start_addr = startDevice.getExtraValue().get("OPCServer").toString(); String next_addr = nextDevice.getExtraValue().get("OPCServer").toString(); - this.writing("to_onset2", start_addr); - this.writing("to_onset2", start_addr); - this.writing("to_target2", next_addr); - this.writing("to_target2", next_addr); - this.writing("to_task2", dto.getInstruction_code()); - this.writing("to_task2", dto.getInstruction_code()); - this.writing("to_command2", "1"); - this.writing("to_command2", "1"); + Map map = new LinkedHashMap<>(); + map.put("to_onset2", start_addr); + map.put("to_onset2", start_addr); + map.put("to_target2", next_addr); + map.put("to_target2", next_addr); + map.put("to_task2", dto.getInstruction_code()); + map.put("to_task2", dto.getInstruction_code()); + map.put("to_command2", "1"); + map.put("to_command2", "1"); + this.writing(map); + log.info("下发后工位任务起始站{}目标站{}任务号{}",start_addr,next_addr,dto.getInstruction_code()); } /** @@ -1239,21 +1265,24 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi String next_addr = nextDevice.getExtraValue().get("OPCServer").toString(); String start_addr2 = startDevice2.getExtraValue().get("OPCServer").toString(); String next_addr2 = nextDevice2.getExtraValue().get("OPCServer").toString(); - this.writing("to_onset1", start_addr); - this.writing("to_onset1", start_addr); - this.writing("to_target1", next_addr); - this.writing("to_target1", next_addr); - this.writing("to_task1", dto.getInstruction_code()); - this.writing("to_task1", dto.getInstruction_code()); + Map map = new LinkedHashMap<>(); + map.put("to_onset1", start_addr); + map.put("to_onset1", start_addr); + map.put("to_target1", next_addr); + map.put("to_target1", next_addr); + map.put("to_task1", dto.getInstruction_code()); + map.put("to_task1", dto.getInstruction_code()); //this.writing("to_command1", "1"); - this.writing("to_onset2", start_addr2); - this.writing("to_onset2", start_addr2); - this.writing("to_target2", next_addr2); - this.writing("to_target2", next_addr2); - this.writing("to_task2", dto.getInstruction_code()); - this.writing("to_task2", dto.getInstruction_code()); - this.writing("to_command2", "1"); - this.writing("to_command2", "1"); + map.put("to_onset2", start_addr2); + map.put("to_onset2", start_addr2); + map.put("to_target2", next_addr2); + map.put("to_target2", next_addr2); + map.put("to_task2", dto.getInstruction_code()); + map.put("to_task2", dto.getInstruction_code()); + map.put("to_command2", "1"); + map.put("to_command2", "1"); + this.writing(map); + log.info("下发前后工位任务前起始站{}前目标站{}任务号{}后起始站{}后目标站{}",start_addr,next_addr,dto.getInstruction_code(),start_addr2,next_addr2); } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_split_manipulator/LnshSplitManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_split_manipulator/LnshSplitManipulatorDeviceDriver.java index 4497988..0933f80 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_split_manipulator/LnshSplitManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_split_manipulator/LnshSplitManipulatorDeviceDriver.java @@ -31,7 +31,6 @@ import org.nl.modules.lucene.service.LuceneExecuteLogService; import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; -import org.springframework.beans.factory.annotation.Autowired; import java.lang.reflect.Method; import java.util.*; @@ -750,18 +749,22 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求失败" + resp.getMessage();; } lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message)); @@ -782,8 +785,8 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -791,10 +794,14 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -814,8 +821,8 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -823,10 +830,14 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("apply_take_empty_vehicle") + "apply_take_empty_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -847,8 +858,8 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setMaterial_code(material); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); @@ -867,10 +878,14 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("apply_take_full_vehicle") + "apply_take_full_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -890,8 +905,8 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -899,10 +914,14 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("apply_force_take_full_vehicle") + "apply_force_take_full_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -922,8 +941,8 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -931,10 +950,14 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("apply_force_take_full_vehicle_in_storage") + "apply_force_take_full_vehicle_in_storage 接口请求失败" + resp.getMessage();; } return true; @@ -954,8 +977,8 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -963,11 +986,15 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); this.writing(resp.getIs_standing_finish(),"1"); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("barcode_success_apply") + "barcode_success_apply 接口请求失败" + resp.getMessage();; } return true; @@ -987,8 +1014,8 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -996,10 +1023,14 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("get_vehicle_info") + "get_vehicle_info 接口请求失败" + resp.getMessage();; } return true; @@ -1018,8 +1049,8 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -1027,10 +1058,14 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("force_no_package") + "force_no_package 接口请求失败" + resp.getMessage();; } return true; @@ -1049,19 +1084,22 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); - if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",400); + this.writing(map); message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 接口请求失败" + resp.getMessage();; } return true; @@ -1168,65 +1206,67 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im String two_qty = content.getString("two_qty"); String tool_coordinate = content.getString("tool_coordinate"); - this.writing("to_material", material_code); - this.writing("to_AlongSide", AlongSide); - this.writing("to_BshortSide", BshortSide); - this.writing("to_Htrapezoidal", Htrapezoidal); - this.writing("to_Wthickness", Wthickness); - this.writing("to_tray_qty", tray_qty); - this.writing("to_tray_high", tray_high); - this.writing("to_crib_category", crib_category); - this.writing("to_palletX1_line", palletX1_line); - this.writing("to_palletY1_row", palletY1_row); - this.writing("to_palletA1_angle", palletA1_angle); - this.writing("to_palletX2_line", palletX2_line); - this.writing("to_palletY2_row", palletY2_row); - this.writing("to_palletA2_angle", palletA2_angle); - this.writing("to_palletX3_line", palletX3_line); - this.writing("to_palletY3_row", palletY3_row); - this.writing("to_palletA3_angle", palletA3_angle); - this.writing("to_pressCribX1_line", pressCribX1_line); - this.writing("to_pressCribY1_row", pressCribY1_row); - this.writing("to_pressCribA1_angle", pressCribA1_angle); - this.writing("to_pressCribX2_line", pressCribX2_line); - this.writing("to_pressCribY2_row", pressCribY2_row); - this.writing("to_pressCribA2_angle", pressCribA2_angle); - this.writing("to_pressCribX3_line", pressCribX3_line); - this.writing("to_pressCribY3_row", pressCribY3_row); - this.writing("to_pressCribA3_angle", pressCribA3_angle); - this.writing("to_Zoffset", Zoffset); - this.writing("to_pallet_layerQty", pallet_layerQty); - this.writing("to_pressCrib_layerQty", pressCrib_layerQty); - this.writing("to_codeLayerX1_interval", codeLayerX1_interval); - this.writing("to_codeLayerY1_interval", codeLayerY1_interval); - this.writing("to_codeLayerX2_interval", codeLayerX2_interval); - this.writing("to_codeLayerY2_interval", codeLayerY2_interval); - this.writing("to_codeLayerX3_interval", codeLayerX3_interval); - this.writing("to_codeLayerY3_interval", codeLayerY3_interval); - this.writing("to_codeLayerX1_offset", codeLayerX1_offset); - this.writing("to_codeLayerY1_offset", codeLayerY1_offset); - this.writing("to_codeLayerX2_offset", codeLayerX2_offset); - this.writing("to_codeLayerY2_offset", codeLayerY2_offset); - this.writing("to_codeLayerX3_offset", codeLayerX3_offset); - this.writing("to_codeLayerY3_offset", codeLayerY3_offset); - this.writing("to_pressLayerX1_interval", pressLayerX1_interval); - this.writing("to_pressLayerY1_interval", pressLayerY1_interval); - this.writing("to_pressLayerX2_interval", pressLayerX2_interval); - this.writing("to_pressLayerY2_interval", pressLayerY2_interval); - this.writing("to_pressLayerX3_interval", pressLayerX3_interval); - this.writing("to_pressLayerY3_interval", pressLayerY3_interval); - this.writing("to_pressLayerX1_offset", pressLayerX1_offset); - this.writing("to_pressLayerY1_offset", pressLayerY1_offset); - this.writing("to_pressLayerX2_offset", pressLayerX2_offset); - this.writing("to_pressLayerY2_offset", pressLayerY2_offset); - this.writing("to_pressLayerX3_offset", pressLayerX3_offset); - this.writing("to_pressLayerY3_offset", pressLayerY3_offset); - this.writing("to_one_cribTotal", one_cribTotal); - this.writing("to_two_cribTotal", two_cribTotal); - this.writing("to_one_qty", one_qty); - this.writing("to_two_qty", two_qty); - this.writing("to_tool_coordinate", tool_coordinate); - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_material", material_code); + map.put("to_AlongSide", AlongSide); + map.put("to_BshortSide", BshortSide); + map.put("to_Htrapezoidal", Htrapezoidal); + map.put("to_Wthickness", Wthickness); + map.put("to_tray_qty", tray_qty); + map.put("to_tray_high", tray_high); + map.put("to_crib_category", crib_category); + map.put("to_palletX1_line", palletX1_line); + map.put("to_palletY1_row", palletY1_row); + map.put("to_palletA1_angle", palletA1_angle); + map.put("to_palletX2_line", palletX2_line); + map.put("to_palletY2_row", palletY2_row); + map.put("to_palletA2_angle", palletA2_angle); + map.put("to_palletX3_line", palletX3_line); + map.put("to_palletY3_row", palletY3_row); + map.put("to_palletA3_angle", palletA3_angle); + map.put("to_pressCribX1_line", pressCribX1_line); + map.put("to_pressCribY1_row", pressCribY1_row); + map.put("to_pressCribA1_angle", pressCribA1_angle); + map.put("to_pressCribX2_line", pressCribX2_line); + map.put("to_pressCribY2_row", pressCribY2_row); + map.put("to_pressCribA2_angle", pressCribA2_angle); + map.put("to_pressCribX3_line", pressCribX3_line); + map.put("to_pressCribY3_row", pressCribY3_row); + map.put("to_pressCribA3_angle", pressCribA3_angle); + map.put("to_Zoffset", Zoffset); + map.put("to_pallet_layerQty", pallet_layerQty); + map.put("to_pressCrib_layerQty", pressCrib_layerQty); + map.put("to_codeLayerX1_interval", codeLayerX1_interval); + map.put("to_codeLayerY1_interval", codeLayerY1_interval); + map.put("to_codeLayerX2_interval", codeLayerX2_interval); + map.put("to_codeLayerY2_interval", codeLayerY2_interval); + map.put("to_codeLayerX3_interval", codeLayerX3_interval); + map.put("to_codeLayerY3_interval", codeLayerY3_interval); + map.put("to_codeLayerX1_offset", codeLayerX1_offset); + map.put("to_codeLayerY1_offset", codeLayerY1_offset); + map.put("to_codeLayerX2_offset", codeLayerX2_offset); + map.put("to_codeLayerY2_offset", codeLayerY2_offset); + map.put("to_codeLayerX3_offset", codeLayerX3_offset); + map.put("to_codeLayerY3_offset", codeLayerY3_offset); + map.put("to_pressLayerX1_interval", pressLayerX1_interval); + map.put("to_pressLayerY1_interval", pressLayerY1_interval); + map.put("to_pressLayerX2_interval", pressLayerX2_interval); + map.put("to_pressLayerY2_interval", pressLayerY2_interval); + map.put("to_pressLayerX3_interval", pressLayerX3_interval); + map.put("to_pressLayerY3_interval", pressLayerY3_interval); + map.put("to_pressLayerX1_offset", pressLayerX1_offset); + map.put("to_pressLayerY1_offset", pressLayerY1_offset); + map.put("to_pressLayerX2_offset", pressLayerX2_offset); + map.put("to_pressLayerY2_offset", pressLayerY2_offset); + map.put("to_pressLayerX3_offset", pressLayerX3_offset); + map.put("to_pressLayerY3_offset", pressLayerY3_offset); + map.put("to_one_cribTotal", one_cribTotal); + map.put("to_two_cribTotal", two_cribTotal); + map.put("to_one_qty", one_qty); + map.put("to_two_qty", two_qty); + map.put("to_tool_coordinate", tool_coordinate); + map.put("to_feedback",200); + this.writing(map); requireSucess = true; } return true; @@ -1257,7 +1297,9 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im HttpResponse result = acsToWmsService.lnshApplyTaskToWms(json); if (ObjectUtil.isNotEmpty(result)) { if (result.getStatus() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); requireSucess = true; } } @@ -1288,7 +1330,9 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im HttpResponse result = acsToWmsService.lnshApplyTaskToWms(json); if (ObjectUtil.isNotEmpty(result)) { if (result.getStatus() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); requireSucess = true; } } @@ -1320,7 +1364,9 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im HttpResponse result = acsToWmsService.lnshApplyTaskToWms(json); if (ObjectUtil.isNotEmpty(result)) { if (result.getStatus() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_feedback",200); + this.writing(map); } } @@ -1351,18 +1397,6 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im server.disconnect(); } - public void writing(int feedback) { - String to_feedback = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_feedback; - String opcservcerid = this.getDevice().getOpc_server_id(); - Server server = ReadUtil.getServer(opcservcerid); - Map itemMap = new HashMap(); - itemMap.put(to_feedback, feedback); - ReadUtil.write(itemMap, server); - server.disconnect(); - logServer.deviceExecuteLog(this.device_code, "", "", "to_feedback 写入 " + feedback); - lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, "to_feedback 写入 " + feedback)); - } public void writing(int type, int command) { String opcservcerid = this.getDevice().getOpc_server_id(); @@ -1386,4 +1420,43 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } + /** + * 多个信号一起下发电气 + * + * @param map + */ + + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } + } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java index fbf5ed3..ef83531 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java @@ -20,7 +20,6 @@ import org.nl.acs.device_driver.lnsh.lnsh_mixing_mill.LnshMixingMillDeviceDriver import org.nl.acs.ext.wms.data.AcsToWmsData.applySignalStaus.ApplySignalStatusRequest; import org.nl.acs.ext.wms.data.AcsToWmsData.applySignalStaus.ApplySignalStatusResponse; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; -import org.nl.acs.ext.wms.data.Resp; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskRequest; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.service.InstructionService; @@ -37,10 +36,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; import java.lang.reflect.Method; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 晟华-工位(交互模板) @@ -146,7 +142,9 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if (mode != last_mode) { if(mode==2){ - this.writing(0); + Map map = new LinkedHashMap<>(); + map.put("to_command",0); + this.writing(map); } this.setRequireSucess(false); logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); @@ -162,8 +160,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if ("true".equals(this.device.getExtraValue().get("sendDeviceStatus"))) { ApplySignalStatusRequest request = new ApplySignalStatusRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(RequestMethodEnum.real_time_set_point.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.real_time_set_point.getName()); + request.setRequest_method_code(RequestMethodEnum.real_time_set_point.getCode()); + request.setRequest_method_name(RequestMethodEnum.real_time_set_point.getName()); request.setMove(String.valueOf(move)); ApplySignalStatusResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)), ApplySignalStatusResponse.class); message = RequestMethodEnum.getName("real_time_set_point") + "real_time_set_point 接口请求LMS..."; @@ -197,8 +195,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if ("true".equals(this.device.getExtraValue().get("sendDeviceStatus"))) { ApplySignalStatusRequest request = new ApplySignalStatusRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(RequestMethodEnum.real_time_set_point.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.real_time_set_point.getName()); + request.setRequest_method_code(RequestMethodEnum.real_time_set_point.getCode()); + request.setRequest_method_name(RequestMethodEnum.real_time_set_point.getName()); request.setAction(String.valueOf(action)); ApplySignalStatusResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)), ApplySignalStatusResponse.class); message = RequestMethodEnum.getName("real_time_set_point") + "real_time_set_point 接口请求LMS..."; @@ -367,6 +365,44 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements server.disconnect(); } + /** + * 多个信号一起下发电气 + * + * @param map + */ + + public void writing(Map map) { + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + Map itemMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (ObjectUtil.isNotEmpty(value)) { + itemMap.put(getToParam() + key, value); + } + }); + if (ObjectUtil.isNotEmpty(itemMap)) { + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try{ + this.checkcontrol(itemMap); + } catch (Exception e1){ + e1.printStackTrace(); + } + } + logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); + lucene.deviceExecuteLog(new LuceneLogDto(this.getDeviceCode(), "下发多个电气信号:" + itemMap)); + } + } + /** + * 抽取统一下发电气信号前缀 + * + * @return + */ + public String getToParam() { + return this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + "."; + } public void writing(String param, String value) { @@ -541,18 +577,22 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求LMS..."; lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_put_full_vehicle") + "apply_put_full_vehicle 接口请求失败" + resp.getMessage();; } lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message)); @@ -573,8 +613,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if(move == 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -582,12 +622,16 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_put_empty_vehicle") + "apply_put_empty_vehicle 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } @@ -608,8 +652,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if(move == 1) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -617,10 +661,14 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_take_empty_vehicle") + "apply_take_empty_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -641,8 +689,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if(move > 0&& barcode>0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setMaterial_code(material); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); @@ -661,12 +709,16 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("apply_take_full_vehicle") + "apply_take_full_vehicle 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_take_full_vehicle") + "apply_take_full_vehicle 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } @@ -690,8 +742,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -699,10 +751,14 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_force_take_full_vehicle") + "apply_force_take_full_vehicle 接口请求失败" + resp.getMessage();; } return true; @@ -722,8 +778,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -731,10 +787,14 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_force_take_full_vehicle_in_storage") + "apply_force_take_full_vehicle_in_storage 接口请求失败" + resp.getMessage();; } return true; @@ -754,8 +814,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -763,12 +823,16 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); message = RequestMethodEnum.getName("barcode_success_apply") + "barcode_success_apply 接口请求成功" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("barcode_success_apply") + "barcode_success_apply 接口请求失败" + resp.getMessage(); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(resp))); } @@ -789,8 +853,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -798,10 +862,14 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("get_vehicle_info") + "get_vehicle_info 接口请求失败" + resp.getMessage();; } return true; @@ -820,8 +888,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -829,10 +897,14 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("force_no_package") + "force_no_package 接口请求失败" + resp.getMessage();; } return true; @@ -851,8 +923,8 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements if(move > 0) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setWeight(String.valueOf(weight)); request.setVehicle_code(String.valueOf(barcode)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); @@ -860,10 +932,14 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); if (resp.getCode() == 200) { - this.writing(200); + Map map = new LinkedHashMap<>(); + map.put("to_command",200); + this.writing(map); this.setRequireSucess(true); } else { - this.writing(400); + Map map = new LinkedHashMap<>(); + map.put("to_command",400); + this.writing(map); message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 接口请求失败" + resp.getMessage();; } return true; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/package_site/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/package_site/ItemProtocol.java index 8596a97..57827a0 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/package_site/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/package_site/ItemProtocol.java @@ -31,7 +31,7 @@ public class ItemProtocol { public static String item_barcode = "barcode"; public static String item_to_target = "to_target"; public static String item_to_task= "to_task"; - public static String item_is_message= "is_message"; + public static String item_to_message= "to_message"; Boolean isonline; private PackageSiteDeviceDriver driver; @@ -62,7 +62,7 @@ public class ItemProtocol { } public String getmessage() { - return this.getOpcStringValue(item_is_message); + return this.getOpcStringValue(item_to_message); } public int getTask() { return this.getOpcIntegerValue(item_task); } @@ -154,7 +154,7 @@ public class ItemProtocol { list.add(new ItemDto(item_to_target, "下发目标站", "DB51.B2")); list.add(new ItemDto(item_to_task, "下发任务号", "DB51.B4")); list.add(new ItemDto(item_to_is_package, "下发是否包装", "DB51.B8")); - list.add(new ItemDto(item_is_message, "下发信息反馈", "DB62.STRING10.50")); + list.add(new ItemDto(item_to_message, "下发信息反馈", "DB62.STRING10.50")); return list; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/package_site/PackageSiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/package_site/PackageSiteDeviceDriver.java index 3efb5db..8366882 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/package_site/PackageSiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/package_site/PackageSiteDeviceDriver.java @@ -257,8 +257,8 @@ public class PackageSiteDeviceDriver extends AbstractOpcDeviceDriver implements if(move == 1) { ApplyTaskRequest request = new ApplyTaskRequest(); request.setDevice_code(this.getDevice_code()); - request.setRequest_medthod_code(Thread.currentThread().getStackTrace()[1].getMethodName()); - request.setRequest_medthod_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); + request.setRequest_method_code(Thread.currentThread().getStackTrace()[1].getMethodName()); + request.setRequest_method_name(RequestMethodEnum.getName(Thread.currentThread().getStackTrace()[1].getMethodName())); request.setVehicle_code(String.valueOf(vehicle_code)); ApplyTaskResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)),ApplyTaskResponse.class); message = RequestMethodEnum.getName("apply_labelling") + "apply_labelling 接口请求LMS..."; @@ -397,6 +397,7 @@ public class PackageSiteDeviceDriver extends AbstractOpcDeviceDriver implements jo.put("isOnline", isonline); jo.put("hasGoods", hasGoods); jo.put("message", message); + jo.put("requireSucess",requireSucess); return jo; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/BaseRequest.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/BaseRequest.java index eb270f2..c12698c 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/BaseRequest.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/BaseRequest.java @@ -29,12 +29,12 @@ public class BaseRequest { /** * 请求方法编号 */ - private String request_medthod_code; + private String request_method_code; /** * 请求方法名称 */ - private String request_medthod_name; + private String request_method_name; /** * 设备号 diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 47dc3fb..f67d4dd 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -59,6 +59,7 @@ import org.slf4j.MDC; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -281,7 +282,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { .requestparam(JSON.toJSON(resp).toString()) .responseparam(JSON.toJSON(resp).toString()) .status_code(String.valueOf(resp.getCode())) - .method(tasks.getRequest_medthod_code()) + .method(tasks.getRequest_method_code()) .build(); lucene.interfaceExecuteLog(logDto); return (JSONObject) JSON.toJSON(resp); @@ -356,13 +357,13 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String device_code = orderDto.getDevice_code(); String material_code = orderDto.getMaterial_code(); String qty = orderDto.getPlan_qty(); - String product_code = orderDto.getProduct_code(); + String product_code = orderDto.getBrick_code(); String AlongSide = orderDto.getA(); String BshortSide = orderDto.getB(); String Htrapezoidal = orderDto.getH(); String Wthickness = orderDto.getW(); String formula = orderDto.getFormula(); - String brick_code = orderDto.getBrick_code(); + String brick_code = orderDto.getProduct_code(); String size_error = orderDto.getSize_error(); String single_weight = orderDto.getSingle_weight(); String drawing_address = orderDto.getDrawing_address(); @@ -423,58 +424,12 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { errArr.add(json); continue; } - lnshMixingMillDeviceDriver.writing("to_order_No", order_code); - lnshMixingMillDeviceDriver.writing("to_weight", qty); - lnshMixingMillDeviceDriver.writing("to_material_code", material_code); - lnshMixingMillDeviceDriver.writing(100); - is_flag = true; - } - if (device.getDeviceDriver() instanceof LnshPressDeviceDriver) { - lnshPressDeviceDriver = (LnshPressDeviceDriver) device.getDeviceDriver(); - if (lnshPressDeviceDriver.getMode() == 0) { - JSONObject json = new JSONObject(); - json.put("order_code", order_code); - json.put("devicie_code", device_code); - json.put("message","设备未联机"); - errArr.add(json); - continue; - } - if (StrUtil.isEmpty(qty)) { - JSONObject json = new JSONObject(); - json.put("order_code", order_code); - json.put("devicie_code", device_code); - json.put("message","重量不能为空"); - errArr.add(json); - continue; - } - if (StrUtil.isEmpty(material_code)) { - JSONObject json = new JSONObject(); - json.put("order_code", order_code); - json.put("devicie_code", device_code); - json.put("message","物料编号不能为空"); - errArr.add(json); - continue; - } - lnshPressDeviceDriver.writing("to_order_No", order_code); - lnshPressDeviceDriver.writing("to_qty", qty); - lnshPressDeviceDriver.writing("to_material_code", material_code); - lnshPressDeviceDriver.writing("to_product_code", product_code); - lnshPressDeviceDriver.writing("to_AlongSide", AlongSide); - lnshPressDeviceDriver.writing("to_BshortSide", BshortSide); - lnshPressDeviceDriver.writing("to_Htrapezoidal", Htrapezoidal); - lnshPressDeviceDriver.writing("to_Wthickness", Wthickness); - lnshPressDeviceDriver.writing("to_brick_code", brick_code); - lnshPressDeviceDriver.writing("to_formula", formula); - lnshPressDeviceDriver.writing("to_size_error", size_error); - lnshPressDeviceDriver.writing("to_single_weight", single_weight); - lnshPressDeviceDriver.writing("to_drawing_address", drawing_address); - lnshPressDeviceDriver.writing("to_standard_weight", standard_weight); - lnshPressDeviceDriver.writing("to_detection_error", detection_error); - lnshPressDeviceDriver.writing("to_standard_size_height1", standard_size_height1); - lnshPressDeviceDriver.writing("to_standard_size_height2", standard_size_height2); - lnshPressDeviceDriver.writing("to_standard_size_height3", standard_size_height3); - lnshPressDeviceDriver.writing("to_standard_size_height4", standard_size_height4); - lnshPressDeviceDriver.writing(100); + Map map = new LinkedHashMap<>(); + map.put("to_order_No", order_code); + map.put("to_weight", qty); + map.put("to_material_code", material_code); + map.put("to_command",100); + lnshMixingMillDeviceDriver.writing(map); is_flag = true; } if (device.getDeviceDriver() instanceof LnshPackagePalletManipulatorDeviceDriver) { @@ -503,16 +458,112 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { errArr.add(json); continue; } - lnshPackagePalletManipulatorDeviceDriver.writing("to_order_No", order_code); - lnshPackagePalletManipulatorDeviceDriver.writing("to_material", material_code); - lnshPackagePalletManipulatorDeviceDriver.writing("to_product_code", product_code); - lnshPackagePalletManipulatorDeviceDriver.writing("to_AlongSide", AlongSide); - lnshPackagePalletManipulatorDeviceDriver.writing("to_BshortSide", BshortSide); - lnshPackagePalletManipulatorDeviceDriver.writing("to_Htrapezoidal", Htrapezoidal); - lnshPackagePalletManipulatorDeviceDriver.writing("to_Wthickness", Wthickness); - lnshPackagePalletManipulatorDeviceDriver.writing(100); + Map map = new LinkedHashMap<>(); + map.put("to_order_No", order_code); + map.put("to_material", material_code); + map.put("to_product_code", product_code); + map.put("to_AlongSide", AlongSide); + map.put("to_BshortSide", BshortSide); + map.put("to_Htrapezoidal", Htrapezoidal); + map.put("to_Wthickness", Wthickness); + map.put("to_feedback",100); + lnshPackagePalletManipulatorDeviceDriver.writing(map); is_flag = true; } + if (device.getDeviceDriver() instanceof LnshPressDeviceDriver) { + + lnshPressDeviceDriver = (LnshPressDeviceDriver) device.getDeviceDriver(); + if (lnshPressDeviceDriver.getMode() == 0) { + JSONObject json = new JSONObject(); + json.put("order_code", order_code); + json.put("devicie_code", device_code); + json.put("message","设备未联机"); + errArr.add(json); + continue; + } + if (StrUtil.isEmpty(qty)) { + JSONObject json = new JSONObject(); + json.put("order_code", order_code); + json.put("devicie_code", device_code); + json.put("message","重量不能为空"); + errArr.add(json); + continue; + } + if (StrUtil.isEmpty(material_code)) { + JSONObject json = new JSONObject(); + json.put("order_code", order_code); + json.put("devicie_code", device_code); + json.put("message","物料编号不能为空"); + errArr.add(json); + continue; + } + Map map = new LinkedHashMap<>(); + map.put("to_order_No", order_code); + map.put("to_qty", qty); + map.put("to_material_code", material_code); + map.put("to_product_code", product_code); + map.put("to_AlongSide", AlongSide); + map.put("to_BshortSide", BshortSide); + map.put("to_Htrapezoidal", Htrapezoidal); + map.put("to_Wthickness", Wthickness); + map.put("to_brick_code", brick_code); + map.put("to_formula", formula); +// map.put("to_size_error", size_error); +// map.put("to_single_weight", single_weight); +// map.put("to_drawing_address", drawing_address); +// map.put("to_standard_weight", standard_weight); +// map.put("to_detection_error", detection_error); +// map.put("to_standard_size_height1", standard_size_height1); +// map.put("to_standard_size_height2", standard_size_height2); +// map.put("to_standard_size_height3", standard_size_height3); +// map.put("to_standard_size_height4", standard_size_height4); + map.put("to_command",100); + lnshPressDeviceDriver.writing(map); + is_flag = true; + } +// if (device.getDeviceDriver() instanceof LnshPackagePalletManipulatorDeviceDriver) { +// lnshPackagePalletManipulatorDeviceDriver = (LnshPackagePalletManipulatorDeviceDriver) device.getDeviceDriver(); +// if (lnshPackagePalletManipulatorDeviceDriver.getMode() == 0) { +// JSONObject json = new JSONObject(); +// json.put("order_code", order_code); +// json.put("devicie_code", device_code); +// json.put("message","设备未联机"); +// errArr.add(json); +// continue; +// } +// if (StrUtil.isEmpty(qty)) { +// JSONObject json = new JSONObject(); +// json.put("order_code", order_code); +// json.put("devicie_code", device_code); +// json.put("message","重量不能为空"); +// errArr.add(json); +// continue; +// } +// if (StrUtil.isEmpty(material_code)) { +// JSONObject json = new JSONObject(); +// json.put("order_code", order_code); +// json.put("devicie_code", device_code); +// json.put("message","物料编号不能为空"); +// errArr.add(json); +// continue; +// } +// StringBuilder sb = new StringBuilder(); +// sb.append(product_code ); +// sb.append(formula); +// +// Map map = new LinkedHashMap<>(); +// map.put("to_order_No", order_code); +// map.put("to_material", material_code); +// map.put("to_product_code", product_code); +// map.put("to_AlongSide", AlongSide); +// map.put("to_BshortSide", BshortSide); +// map.put("to_Htrapezoidal", Htrapezoidal); +// map.put("to_Wthickness", Wthickness); +// map.put("to_feedback",100); +// map.put("to_formula",sb); +// lnshPackagePalletManipulatorDeviceDriver.writing(map); +// is_flag = true; +// } if (device.getDeviceDriver() instanceof LnshSplitManipulatorDeviceDriver) { lnshSplitManipulatorDeviceDriver = (LnshSplitManipulatorDeviceDriver) device.getDeviceDriver(); if (lnshSplitManipulatorDeviceDriver.getMode() == 0) { @@ -539,15 +590,19 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { errArr.add(json); continue; } - lnshSplitManipulatorDeviceDriver.writing("to_order_No", order_code); - lnshSplitManipulatorDeviceDriver.writing("to_material_qty", qty); - lnshSplitManipulatorDeviceDriver.writing("to_material_code", material_code); - lnshSplitManipulatorDeviceDriver.writing("to_product_code", product_code); - lnshSplitManipulatorDeviceDriver.writing("to_AlongSide", AlongSide); - lnshSplitManipulatorDeviceDriver.writing("to_BshortSide", BshortSide); - lnshSplitManipulatorDeviceDriver.writing("to_Htrapezoidal", Htrapezoidal); - lnshSplitManipulatorDeviceDriver.writing("to_Wthickness", Wthickness); - lnshSplitManipulatorDeviceDriver.writing(100); + Map map = new LinkedHashMap<>(); + map.put("to_order_No", order_code); + map.put("to_material_qty", qty); + map.put("to_material_code", material_code); + map.put("to_product_code", product_code); + map.put("to_AlongSide", AlongSide); + map.put("to_BshortSide", BshortSide); + map.put("to_Htrapezoidal", Htrapezoidal); + map.put("to_Wthickness", Wthickness); + map.put("to_formula",formula); + map.put("to_feedback",100); + lnshSplitManipulatorDeviceDriver.writing(map); + is_flag = true; } @@ -583,7 +638,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { .requestparam(JSON.toJSON(resp).toString()) .responseparam(JSON.toJSON(resp).toString()) .status_code(String.valueOf(resp.getCode())) - .method(orders.getRequest_medthod_code()) + .method(orders.getRequest_method_code()) .build(); lucene.interfaceExecuteLog(logDto); return (JSONObject) JSON.toJSON(resp); @@ -1148,8 +1203,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { if (driver.getMode() != 0 && driver.getError() == 0 && driver.getMove() != 0) { - driver.writing(100); - driver.writing(100); + Map map = new LinkedHashMap<>(); + map.put("to_command",100); + driver.writing(map); } else { String message = ""; if (driver.getMode() != 0) { @@ -1344,18 +1400,12 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { if (ObjectUtil.isNotEmpty(device)) { if (device.getDeviceDriver() instanceof LnshPackageSiteDeviceDriver) { LnshPackageSiteDeviceDriver driver = (LnshPackageSiteDeviceDriver) device.getDeviceDriver(); - - driver.writing("to_vehicle_type", info.getString("vehicle_type")); - driver.writing("to_vehicle_type", info.getString("vehicle_type")); - - driver.writing("to_vehicle_code", String.valueOf(info.getIntValue("vehicle_code"))); - driver.writing("to_vehicle_code", String.valueOf(info.getIntValue("vehicle_code"))); - - driver.writing("to_is_package", info.getString("is_package")); - driver.writing("to_is_package", info.getString("is_package")); - - driver.writing(5); - driver.writing(5); + Map map = new LinkedHashMap<>(); + map.put("to_vehicle_type", info.getString("vehicle_type")); + map.put("to_vehicle_code", String.valueOf(info.getIntValue("vehicle_code"))); + map.put("to_is_package", info.getString("is_package")); + map.put("to_command",5); + driver.writing(map); } } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index a28a6b9..6488024 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -765,7 +765,6 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu if (StrUtil.isEmpty(entity.getRoute_plan_code())) { entity.setRoute_plan_code(task.getRoute_plan_code()); } - List shortPathsList = routeLineService.getShortPathLines(entity.getStart_device_code(), entity.getNext_device_code(), entity.getRoute_plan_code()); String type = shortPathsList.get(0).getType(); // != 0 为agv任务 1=magic 2=NDC 3=XZ @@ -796,7 +795,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu flag = true; } - if (flag) { + String currentUsername = SecurityUtils.getCurrentUsername(); String now = DateUtil.now(); entity.setUpdate_time(now); @@ -839,7 +838,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu } LampThreecolorDeviceDriver lampThreecolorDeviceDriver; removeByCodeFromCache(entity.getInstruction_code()); - } + } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerService.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerService.java index 4f53ca9..6341f02 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerService.java @@ -1,5 +1,6 @@ package org.nl.acs.opc; +import org.nl.acs.device_driver.driver.ItemValue; import org.openscada.opc.lib.da.Group; /** @@ -12,11 +13,13 @@ public interface OpcServerService { void reload(); - Group getServer(String var1) throws Exception; + Group getServer(String var1); + + Group getServerByNewConn(String var1); void writeInteger(String var1, ItemValue... var2); - void clearServer(String var1); + void writeIntegerByNewConn(String var1, ItemValue... var2); - void cleanGroups(String var1); + void clearServer(String var1); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerServiceImpl.java index 142941d..9bd95b0 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerServiceImpl.java @@ -3,7 +3,9 @@ package org.nl.acs.opc; import cn.hutool.core.util.StrUtil; import org.jinterop.dcom.common.JIException; import org.nl.acs.auto.initial.ApplicationAutoInitial; +import org.nl.acs.device_driver.driver.ItemValue; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.exception.WDKException; import org.openscada.opc.lib.common.NotConnectedException; import org.openscada.opc.lib.da.Group; import org.openscada.opc.lib.da.Server; @@ -29,32 +31,33 @@ import java.util.Map; public class OpcServerServiceImpl implements OpcServerService, ApplicationAutoInitial { private static final Logger log = LoggerFactory.getLogger(OpcServerServiceImpl.class); - @Autowired - OpcServerManageService opcServerManageService; + @Autowired OpcServerManageService opcServerManageService; Map opcServerManageDtos = new HashMap(); Map servers = Collections.synchronizedMap(new HashMap()); Map groups = Collections.synchronizedMap(new HashMap()); - public OpcServerServiceImpl() { - } + public OpcServerServiceImpl() {} public void autoInitial() throws Exception { this.reload(); if (OpcConfig.auto_start_opc) { - Thread t = new Thread(() -> { - Iterator var1 = OpcServerServiceImpl.this.opcServerManageDtos.values().iterator(); + Thread t = + new Thread() { + public void run() { + Iterator var1 = OpcServerServiceImpl.this.opcServerManageDtos.values().iterator(); - while (var1.hasNext()) { - OpcServerManageDto dto = (OpcServerManageDto) var1.next(); + while (var1.hasNext()) { + OpcServerManageDto dto = (OpcServerManageDto) var1.next(); - try { - OpcServerServiceImpl.this.getServer(dto.getOpc_code()); - OpcServerServiceImpl.log.info("加载opc server {}", dto.getOpc_code()); - } catch (Exception var4) { - OpcServerServiceImpl.log.warn("启动无法载入servers", var4); - } - } - }); + try { + OpcServerServiceImpl.this.getServer(dto.getOpc_code()); + OpcServerServiceImpl.log.info("加载opc server {}", dto.getOpc_code()); + } catch (Exception var4) { + OpcServerServiceImpl.log.warn("启动无法载入servers", var4); + } + } + } + }; t.start(); } } @@ -64,31 +67,12 @@ public class OpcServerServiceImpl implements OpcServerService, ApplicationAutoIn this.opcServerManageDtos = Collections.synchronizedMap(this.opcServerManageDtos); } - public void cleanGroups(String opcCode) { - Group group = (Group) this.groups.get(opcCode); - if (group != null) { - Server server = group.getServer(); - - try { - group.remove(); - } catch (JIException var5) { - var5.printStackTrace(); - } - - this.groups.remove(opcCode); - server.disconnect(); - this.servers.remove(opcCode); - } - - } - - public Group getServer(String code) throws Exception { - synchronized (this.buildLock(code)) { + public Group getServer(String code) { + synchronized(this.buildLock(code)) { Group group = null; - group = (Group) this.groups.get(code); + group = (Group)this.groups.get(code); if (group != null) { - label68: - { + label68: { Group var10000; try { if (!group.isActive()) { @@ -105,7 +89,7 @@ public class OpcServerServiceImpl implements OpcServerService, ApplicationAutoIn } } - Server server = (Server) this.servers.get(code); + Server server = (Server)this.servers.get(code); boolean needcreate = false; String groupName = code; if (server == null) { @@ -113,17 +97,16 @@ public class OpcServerServiceImpl implements OpcServerService, ApplicationAutoIn } else { try { group = server.findGroup(groupName); - } catch (UnknownHostException | JIException | UnknownGroupException | NotConnectedException | - IllegalArgumentException var13) { + } catch (UnknownHostException | JIException | UnknownGroupException | NotConnectedException | IllegalArgumentException var13) { log.error(code, var13); needcreate = true; } } if (needcreate) { - OpcServerManageDto dto = (OpcServerManageDto) this.opcServerManageDtos.get(code); + OpcServerManageDto dto = (OpcServerManageDto)this.opcServerManageDtos.get(code); if (dto == null) { - throw new RuntimeException(code + "不存在"); + throw new RuntimeException(code+"不存在"); } // if (server!=null){ @@ -132,14 +115,13 @@ public class OpcServerServiceImpl implements OpcServerService, ApplicationAutoIn // } if (server == null) { - server = OpcServerUtl.getServerWithOutException(dto.getOpc_host(), StrUtil.trim(dto.getCls_id()), dto.getUser(), dto.getPassword(), StrUtil.trim(dto.getDomain())); - } + server = OpcServerUtl.getServerWithOutException(dto.getOpc_host(), StrUtil.trim(dto.getCls_id()), dto.getUser(), dto.getPassword(), StrUtil.trim(dto.getDomain())); } try { group = server.addGroup(groupName); } catch (Exception var12) { this.clearServer(code); - ThreadUtl.sleep(5000L); + ThreadUtl.sleep(1000L); log.warn("获取opc出错重新获取", code, var12); server = OpcServerUtl.getServerWithOutException(dto.getOpc_host(), StrUtil.trim(dto.getCls_id()), dto.getUser(), dto.getPassword(), StrUtil.trim(dto.getDomain())); try { @@ -157,10 +139,49 @@ public class OpcServerServiceImpl implements OpcServerService, ApplicationAutoIn } } - public void clearServer(String code) { - synchronized (this.buildLock(code)) { + public Group getServerByNewConn(String code) { + synchronized(this.buildLock(code)) { + + Server server = (Server)this.servers.get(code); + if (server!=null){ + this.clearServer(code); + } + + OpcServerManageDto dto = (OpcServerManageDto)this.opcServerManageDtos.get(code); + if (dto == null) { + throw new RuntimeException(code+"不存在"); + } + +// if (server == null) { + server = OpcServerUtl.getServerWithOutException(dto.getOpc_host(), StrUtil.trim(dto.getCls_id()), dto.getUser(), dto.getPassword(), StrUtil.trim(dto.getDomain())); +// } + String groupName = code; + Group group = null; + try { - Server server = (Server) this.servers.get(code); + group = server.addGroup(groupName); + } catch (Exception var12) { + this.clearServer(code); + ThreadUtl.sleep(1000L); + log.warn("获取opc出错重新获取", code, var12); + server = OpcServerUtl.getServerWithOutException(dto.getOpc_host(), StrUtil.trim(dto.getCls_id()), dto.getUser(), dto.getPassword(), StrUtil.trim(dto.getDomain())); + try { + group = server.addGroup(groupName); + } catch (Exception var11) { + throw new RuntimeException(var12); + } + } + + this.servers.put(code, server); + this.groups.put(code, group); + return group; + } + } + + public void clearServer(String code) { + synchronized(this.buildLock(code)) { + try { + Server server = (Server)this.servers.get(code); server.disconnect(); } catch (Exception var5) { } @@ -170,16 +191,27 @@ public class OpcServerServiceImpl implements OpcServerService, ApplicationAutoIn } } - public void writeInteger(String code, ItemValue... values) { try { Group group = this.getServer(code); OpcUtl.writeValue(group, values); } catch (Exception var4) { this.clearServer(code); - log.warn("写入出错opc server {} 重新加载", code, var4); - ThreadUtl.sleep(5000L); -// throw var4; + log.info("写入出错opc server {} 重新加载", code, var4); + ThreadUtl.sleep(1000L); + throw var4; + } + } + + public void writeIntegerByNewConn(String code, ItemValue... values) { + try { + Group group = this.getServerByNewConn(code); + OpcUtl.writeValue(group, values); + } catch (Exception var4) { + this.clearServer(code); + log.info("写入出错opc server {} 重新加载", code, var4); + ThreadUtl.sleep(1000L); + throw var4; } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerUtl.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerUtl.java index 1cf05b2..8bce071 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerUtl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcServerUtl.java @@ -6,12 +6,13 @@ import org.openscada.opc.lib.da.Server; public class OpcServerUtl { public static synchronized Server getServerWithOutException(String host, String clsid, String user, String password, - String domain) throws Exception { + String domain) { if (!StrUtil.isEmpty(host) && !StrUtil.isEmpty(clsid) && !StrUtil.isEmpty(user)) { if (domain == null) { domain = ""; } return OpcUtl.getServer(host, clsid, user, password, domain); +// return OpcUtl.getAutoServer(host, clsid, user, password, domain); } else { return null; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcUtl.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcUtl.java index 626e99f..26af619 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcUtl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/OpcUtl.java @@ -1,215 +1,49 @@ package org.nl.acs.opc; -import java.net.UnknownHostException; +import cn.hutool.core.util.NumberUtil; +import lombok.extern.slf4j.Slf4j; +import org.jinterop.dcom.common.JIException; +import org.jinterop.dcom.core.*; +import org.nl.acs.device_driver.driver.ItemValue; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.exception.WDKException; +import org.openscada.opc.lib.common.ConnectionInformation; +import org.openscada.opc.lib.da.*; + import java.util.ArrayList; -import java.util.Collection; import java.util.Iterator; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.concurrent.Executors; -import lombok.extern.slf4j.Slf4j; -import org.jinterop.dcom.common.JIException; -import org.jinterop.dcom.core.IJIUnsigned; -import org.jinterop.dcom.core.JIArray; -import org.jinterop.dcom.core.JIString; -import org.jinterop.dcom.core.JIUnsignedByte; -import org.jinterop.dcom.core.JIUnsignedShort; -import org.jinterop.dcom.core.JIVariant; -import org.openscada.opc.dcom.list.ClassDetails; -import org.openscada.opc.lib.common.AlreadyConnectedException; -import org.openscada.opc.lib.common.ConnectionInformation; -import org.openscada.opc.lib.da.AddFailedException; -import org.openscada.opc.lib.da.AutoReconnectController; -import org.openscada.opc.lib.da.Group; -import org.openscada.opc.lib.da.Item; -import org.openscada.opc.lib.da.ItemState; -import org.openscada.opc.lib.da.Server; -import org.openscada.opc.lib.da.WriteRequest; -import org.openscada.opc.lib.list.Categories; -import org.openscada.opc.lib.list.Category; -import org.openscada.opc.lib.list.ServerList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - @Slf4j public class OpcUtl { - private static int timeout = 180000; + private static int timeout = 1*60*1000; private static String key = "rpc.socketTimeout"; + static { + checkTimeout(); + } + public static void checkTimeout() { - if (Integer.getInteger(key, 0) != timeout) { + if (Integer.getInteger(key, 0).intValue() != timeout) { System.setProperty(key, String.valueOf(timeout)); } } - private OpcUtl() { - } - public static List> showAllOpcServer(String host, String user, String password, String domain) throws Exception { + public static void writeValue(Group group, WriteRequest... requests) throws WDKException { try { - List> listResult = new ArrayList(); - ServerList serverList = new ServerList(host, user, password, domain); - Collection classDetails = serverList.listServersWithDetails(new Category[]{Categories.OPCDAServer10, Categories.OPCDAServer20, Categories.OPCDAServer30}, new Category[0]); - Iterator var7 = classDetails.iterator(); - - while(var7.hasNext()) { - ClassDetails details = (ClassDetails)var7.next(); - Map result = new LinkedHashMap(); - result.put("classId", details.getClsId()); - result.put("progId", details.getProgId()); - result.put("description", details.getDescription()); - listResult.add(result); - } - - return listResult; - } catch (UnknownHostException | JIException | IllegalArgumentException var10) { - throw new Exception(var10); - } - } - - public static Server getServer(String host, String clsid, String user, String password, String domain) throws Exception { - checkTimeout(); - Server server = null; - - try { - server = new Server(getConnection(host, clsid, user, password, domain), Executors.newSingleThreadScheduledExecutor()); - server.connect(); - return server; - } catch (UnknownHostException | JIException | AlreadyConnectedException | IllegalArgumentException var7) { - throw new Exception(var7); - } - } - - public static Server getAutoServer(String host, String clsid, String user, String password, String domain) throws Exception { - checkTimeout(); - Server server = null; - server = new Server(getConnection(host, clsid, user, password, domain), Executors.newSingleThreadScheduledExecutor()); - AutoReconnectController autoReconnectController = new AutoReconnectController(server); - autoReconnectController.connect(); - return server; - } - - public static ConnectionInformation getConnection(String host, String clsid, String user, String password, String domain) { - ConnectionInformation connection = new ConnectionInformation(); - connection.setHost(host); - connection.setClsid(clsid); - connection.setUser(user); - connection.setPassword(password); - connection.setDomain(domain); - return connection; - } - - public static Object getValue(Item item, ItemState itemState) throws Exception { - if (!ObjectUtl.isEquals(itemState.getQuality(), QualityTypeValue.OPC_QUALITY_GOOD)) { - if (item != null) { - log.debug("value is not good {} : {}", item.getId(), itemState.getQuality()); - } else { - log.debug("value is not good {}", itemState.getQuality()); - } - - return null; - } else { - JIVariant value = itemState.getValue(); - return getValue(value, item.getId()); - } - } - - public static int getIntegerValue(Item item, ItemState itemState) throws Exception { - return (Integer)getValue(item, itemState); - } - - public static String getStringValue(Item item, ItemState itemState) throws Exception { - return (String)getValue(item, itemState); - } - - public static byte[] getByteArrayValue(Item item, ItemState itemState) throws Exception { - return (byte[])((byte[])getValue(item, itemState)); - } - - public static Object getValue(JIVariant jiVariant, String id) { - try { - Object object = jiVariant.getObject(); - if (object instanceof IJIUnsigned) { - return ((IJIUnsigned)object).getValue().intValue(); - } else if (object instanceof Boolean) { - return jiVariant.getObjectAsBoolean() ? 1 : 0; - } else if (object instanceof JIString) { - return ((JIString)object).getString(); - } else if (!(object instanceof JIArray)) { - if (object instanceof Integer) { - return jiVariant.getObject(); - } else if (object instanceof Short) { - return jiVariant.getObject(); - } else if (object instanceof Float) { - return jiVariant.getObject(); - } else { - System.err.println(id + "不明类型" + object.getClass()); - if (jiVariant.getType() == 0) { - System.err.println("因类型为emtpy 返回 null"); - return null; - } else if (jiVariant.getType() == 1) { - System.err.println("因类型为null 返回 null"); - return null; - } else { - return jiVariant.getObject(); - } - } - } else { - Class clazz = ((JIArray)object).getArrayClass(); - int[] r; - int i; - if (JIUnsignedByte.class.isAssignableFrom(clazz)) { - JIUnsignedByte[] array = (JIUnsignedByte[])((JIUnsignedByte[])((JIArray)object).getArrayInstance()); - r = new int[array.length]; - - for(i = 0; i < array.length; ++i) { - r[i] = array[i].getValue().byteValue(); - } - - return r; - } else if (!JIUnsignedShort.class.isAssignableFrom(clazz)) { - System.err.println(id + "不明类型"); - if (jiVariant.getType() == 0) { - System.err.println("因类型为emtpy 返回 null"); - return null; - } else if (jiVariant.getType() == 1) { - System.err.println("因类型为null 返回 null"); - return null; - } else { - return ((JIArray)object).getArrayInstance(); - } - } else { - JIUnsignedShort[] array = (JIUnsignedShort[])((JIUnsignedShort[])((JIArray)object).getArrayInstance()); - r = new int[array.length]; - - for(i = 0; i < array.length; ++i) { - r[i] = array[i].getValue().intValue(); - } - - return r; - } - } - } catch (JIException var7) { -// throw new Exception(var7); - var7.printStackTrace(); - } - return null; - } - - public static void writeValue(Group group, WriteRequest... requests) throws Exception { - try { - Map write = group.write(requests); + Map e=group.write(requests); boolean is_success = true; StringBuilder message = new StringBuilder(); - Iterator var5 = write.keySet().iterator(); + Iterator arg4 = e.keySet().iterator(); - while(var5.hasNext()) { - Item item = (Item)var5.next(); - Integer integer = (Integer)write.get(item); - if (integer != 0) { + while (arg4.hasNext()) { + Item item = (Item) arg4.next(); + Integer integer = (Integer) e.get(item); + if (integer.intValue() != 0) { if (is_success) { is_success = false; } @@ -222,14 +56,16 @@ public class OpcUtl { } if (!is_success) { - throw new Exception(message.toString()); + log.info("下发信号失败:"+message.toString()); + throw new WDKException(message.toString()); } - } catch (JIException var8) { - throw new Exception(var8); + } catch (JIException arg7) { + log.info("下发信号失败Exception:"+arg7.getMessage()); + throw new WDKException("下发信号失败Exception:"+arg7); } } - public static void writeValue(Group group, ItemValue... values) throws Exception { + public static void writeValue(Group group, ItemValue... values) throws WDKException { try { if (values != null && values.length > 0) { List ws = new ArrayList(); @@ -241,16 +77,15 @@ public class OpcUtl { Item item = group.addItem(value.getItem_code()); ws.add(new WriteRequest(item, getVariant(value.getItem_value()))); } - writeValue(group, (WriteRequest[])ws.toArray(new WriteRequest[0])); } } catch (AddFailedException | JIException var8) { - throw new Exception(var8); + throw new WDKException(var8); } } - public static JIVariant getVariant(Object object) throws Exception { + public static JIVariant getVariant(Object object) { if (object instanceof Integer) { return getIntegerVariant((Integer)object); } else if (object instanceof String) { @@ -270,10 +105,132 @@ public class OpcUtl { } else if (object instanceof JIVariant) { return (JIVariant)object; } else { - throw new Exception("未实现目前支持是int,string,byte[]"); + throw new WDKException("未实现目前支持是int,string,byte[]"); } } + public static Object getValue(Item item, ItemState itemState) throws BadRequestException { + if (NumberUtil.compare(itemState.getQuality(), Short.valueOf(QualityTypeValue.OPC_QUALITY_GOOD)) != 0) { + if (item != null) { + log.debug("value is not good {} : {}", item.getId(), itemState.getQuality()); +// throw new WDKException("值不健康进行重连!"); + } else { + log.debug("value is not good {}", itemState.getQuality()); + } + + return null; + } else { + JIVariant value = itemState.getValue(); + return getValue(value, item.getId()); + } + } + + public static Object getValue(JIVariant jiVariant, String id) throws BadRequestException { + try { + Object e = jiVariant.getObject(); + if (e instanceof IJIUnsigned) { + return Integer.valueOf(((IJIUnsigned) e).getValue().intValue()); + } else if (e instanceof Boolean) { + return jiVariant.getObjectAsBoolean() ? Integer.valueOf(1) : Integer.valueOf(0); + } else if (e instanceof JIString) { + return ((JIString) e).getString(); + } else if (!(e instanceof JIArray)) { + if (e instanceof Integer) { + return jiVariant.getObject(); + } else if (e instanceof Short) { + return jiVariant.getObject(); + } else if (e instanceof Float) { + return jiVariant.getObject(); + } else { + System.err.println(id + "不明类型" + e.getClass()); + if (jiVariant.getType() == 0) { + System.err.println("因类型为emtpy 返回 null"); + return null; + } else if (jiVariant.getType() == 1) { + System.err.println("因类型为null 返回 null"); + return null; + } else { + return jiVariant.getObject(); + } + } + } else { + Class clazz = ((JIArray) e).getArrayClass(); + int[] r; + int i; + if (JIUnsignedByte.class.isAssignableFrom(clazz)) { + JIUnsignedByte[] arg7 = (JIUnsignedByte[]) ((JIUnsignedByte[]) ((JIArray) e).getArrayInstance()); + r = new int[arg7.length]; + + for (i = 0; i < arg7.length; ++i) { + r[i] = arg7[i].getValue().byteValue(); + } + + return r; + } else if (!JIUnsignedShort.class.isAssignableFrom(clazz)) { + System.err.println(id + "不明类型"); + if (jiVariant.getType() == 0) { + System.err.println("因类型为emtpy 返回 null"); + return null; + } else if (jiVariant.getType() == 1) { + System.err.println("因类型为null 返回 null"); + return null; + } else { + return ((JIArray) e).getArrayInstance(); + } + } else { + JIUnsignedShort[] array = (JIUnsignedShort[]) ((JIUnsignedShort[]) ((JIArray) e) + .getArrayInstance()); + r = new int[array.length]; + + for (i = 0; i < array.length; ++i) { + r[i] = array[i].getValue().intValue(); + } + + return r; + } + } + } catch (JIException e) { + throw new BadRequestException(e.getMessage()); + } + } + + + public static Server getServer(String host, String clsid, String user, String password, String domain) + throws WDKException { + checkTimeout(); + Server server = null; + + try { + server = new Server(getConnection(host, clsid, user, password, domain), + Executors.newSingleThreadScheduledExecutor()); + server.connect(); + return server; + } catch (Exception e) { + System.out.println("server error:"+e.getMessage()); + throw new WDKException(e.getMessage()); + } + } + + public static Server getAutoServer(String host, String clsid, String user, String password, String domain) throws WDKException { + checkTimeout(); + Server server = null; + server = new Server(getConnection(host, clsid, user, password, domain), Executors.newSingleThreadScheduledExecutor()); + AutoReconnectController autoReconnectController = new AutoReconnectController(server); + autoReconnectController.connect(); + return server; + } + + public static ConnectionInformation getConnection(String host, String clsid, String user, String password, + String domain) { + ConnectionInformation connection = new ConnectionInformation(); + connection.setHost(host); + connection.setClsid(clsid); + connection.setUser(user); + connection.setPassword(password); + connection.setDomain(domain); + return connection; + } + public static JIVariant getByteArrayVariantxx(int[] bytes) { Integer[] byte_Data = new Integer[bytes.length]; @@ -312,8 +269,6 @@ public class OpcUtl { return value; } - static { - checkTimeout(); - } + } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 9c5a6f9..49c9062 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -6,7 +6,6 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -28,9 +27,7 @@ import org.nl.acs.device_driver.lamp_three_color.LampThreecolorDeviceDriver; import org.nl.acs.device_driver.lnsh.lnsh_fold_disc_site.LnshFoldDiscSiteDeviceDriver; import org.nl.acs.device_driver.lnsh.lnsh_station.LnshStationDeviceDriver; import org.nl.acs.device_driver.standard_emptypallet_site.StandardEmptyPalletSiteDeviceDriver; -import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; import org.nl.acs.ext.wms.data.AcsToWmsData.feedBackTaskStatus.FeedBackTaskStatusRequest; -import org.nl.acs.ext.wms.data.Resp; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; @@ -43,12 +40,10 @@ import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.task.service.TaskFeedbackService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; -import org.nl.acs.task.service.dto.TaskFeedbackDto; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.service.ParamService; -import org.nl.modules.system.service.impl.ParamServiceImpl; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; @@ -499,8 +494,8 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { request.setTask_id(entity.getExt_task_uuid()); request.setTask_code(dto.getTask_code()); request.setTask_status(dto.getTask_status()); - request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); + request.setRequest_method_code(RequestMethodEnum.feedback_task_status.getCode()); + request.setRequest_method_name(RequestMethodEnum.feedback_task_status.getName()); boolean flag = false; String resp = null; try { @@ -547,8 +542,8 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { request.setTask_id(entity.getExt_task_uuid()); request.setTask_code(entity.getTask_code()); request.setTask_status(entity.getTask_status()); - request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); + request.setRequest_method_code(RequestMethodEnum.feedback_task_status.getCode()); + request.setRequest_method_name(RequestMethodEnum.feedback_task_status.getName()); boolean flag = false; String resp = null; try { @@ -601,8 +596,8 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { request.setTask_id(entity.getExt_task_uuid()); request.setTask_code(entity.getTask_code()); request.setTask_status(entity.getTask_status()); - request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode()); - request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName()); + request.setRequest_method_code(RequestMethodEnum.feedback_task_status.getCode()); + request.setRequest_method_name(RequestMethodEnum.feedback_task_status.getName()); boolean flag = false; String resp = null; try { diff --git a/acs/nladmin-system/src/main/resources/logback-spring.xml b/acs/nladmin-system/src/main/resources/logback-spring.xml index a5017fc..df3d92d 100644 --- a/acs/nladmin-system/src/main/resources/logback-spring.xml +++ b/acs/nladmin-system/src/main/resources/logback-spring.xml @@ -28,6 +28,7 @@ https://juejin.cn/post/6844903775631572999 + diff --git a/acs/nladmin-ui/src/api/acs/instruction/instruction.js b/acs/nladmin-ui/src/api/acs/instruction/instruction.js index bd72027..142f144 100644 --- a/acs/nladmin-ui/src/api/acs/instruction/instruction.js +++ b/acs/nladmin-ui/src/api/acs/instruction/instruction.js @@ -1,73 +1,74 @@ import request from '@/utils/request' export function add(data) { - return request({ - url: 'api/instruction', - method: 'post', - data - }) + return request({ + url: 'api/instruction', + method: 'post', + data + }) } export function del(ids) { - return request({ - url: 'api/instruction/', - method: 'delete', - data: ids - }) + return request({ + url: 'api/instruction/', + method: 'delete', + data: ids + }) } export function edit(data) { - return request({ - url: 'api/instruction', - method: 'put', - data - }) + return request({ + url: 'api/instruction', + method: 'put', + data + }) } export function finish(instruction_id) { - return request({ - url: 'api/instruction/finish/' + instruction_id, - method: 'post', - data: instruction_id - }) + return request({ + url: 'api/instruction/finish/' + instruction_id, + method: 'post', + data: instruction_id + }) } export function cancel(instruction_id) { - return request({ - url: 'api/instruction/cancel/' + instruction_id, - method: 'post', - data: instruction_id - }) + return request({ + url: 'api/instruction/cancel/' + instruction_id, + method: 'post', + data: instruction_id + }) } export function queryUnFinish() { - return request({ - url: 'api/instruction/unfinish/', - method: 'get' - }) + return request({ + url: 'api/instruction/unfinish/', + method: 'get' + }) } export function queryByTaskId(task_id) { - return request({ - url: 'api/instruction/queryByTaskId/' + task_id, - method: 'post', - data: task_id - }) + return request({ + url: 'api/instruction/queryByTaskId/' + task_id, + method: 'post', + data: task_id + }) } export function reload() { - return request({ - url: 'api/instruction/reload', - method: 'get' - }) + return request({ + url: 'api/instruction/reload', + method: 'get' + }) } export function sendToAGV(instruction_id) { - return request({ - url: 'api/instruction/sendToAGV', - method: 'post', - data: instruction_id - }) + return request({ + url: 'api/instruction/sendToAGV', + method: 'post', + data: instruction_id + }) } -export default { add, edit, del, finish, cancel, queryUnFinish, queryByTaskId, reload, sendToAGV } + +export default { add, edit, del, finish, cancel, queryUnFinish, queryByTaskId, reload, sendToAGV } \ No newline at end of file diff --git a/acs/nladmin-ui/src/views/acs/device/protocol/index.vue b/acs/nladmin-ui/src/views/acs/device/protocol/index.vue index 163d7a1..b9d5251 100644 --- a/acs/nladmin-ui/src/views/acs/device/protocol/index.vue +++ b/acs/nladmin-ui/src/views/acs/device/protocol/index.vue @@ -80,6 +80,17 @@ > 导出FX5UCSV + + 导出CSVUA + { + downloadFile(result, crud.title + '数据', 'csv') + this.downLoadcsvLoading = false + }).catch(() => { + this.downLoadcsvLoading = false + }) + }, // 钩子:在获取表格数据之前执行,false 则代表不获取数据 [CRUD.HOOK.beforeRefresh]() { return true diff --git a/acs/nladmin-ui/src/views/acs/instruction/index.vue b/acs/nladmin-ui/src/views/acs/instruction/index.vue index 89e8717..441dcd6 100644 --- a/acs/nladmin-ui/src/views/acs/instruction/index.vue +++ b/acs/nladmin-ui/src/views/acs/instruction/index.vue @@ -32,7 +32,6 @@ style="width: 190px" @change="crud.toQuery" > - 失败 - - - - - - + + + + + + - - - - - - + + + + + + + + + - + + - - - - - - 完成 - 取消 - 下发 - + 完成 + 取消 + 强制取消 + 初始化 diff --git a/acs/nladmin-ui/src/views/acs/task/index.vue b/acs/nladmin-ui/src/views/acs/task/index.vue index 293a9e5..ca62d15 100644 --- a/acs/nladmin-ui/src/views/acs/task/index.vue +++ b/acs/nladmin-ui/src/views/acs/task/index.vue @@ -117,6 +117,22 @@ /> + + + + + - + + + + + +