diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/standard_inspect/ReadUtil.java b/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/standard_inspect/ReadUtil.java index 244e493..8d78950 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/standard_inspect/ReadUtil.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/standard_inspect/ReadUtil.java @@ -156,9 +156,13 @@ public class ReadUtil { return server; } - public static void write(Map strings, Server server) { + public static void write(Map strings, Server server, int writeCount) { try { //Group group = this.opcServerService.getServer(opcServiceCode); + if (writeCount == 3) { + server.disconnect(); + return; + } try { server.connect(); } catch (AlreadyConnectedException ignored) { @@ -176,7 +180,7 @@ public class ReadUtil { OpcUtl.writeValue(group, list.toArray(new WriteRequest[0])); } } catch (Exception e) { - write(strings, server); + write(strings, server, ++writeCount); } finally { server.disconnect(); } 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 c259911..8975e3d 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 @@ -1314,7 +1314,7 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial } } Server server = ReadUtil.getServer(opc_id); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); } /** 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..9ab2e56 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 @@ -287,8 +287,7 @@ public class CargoLiftConveyorDeviceDriver extends AbstractOpcDeviceDriver imple Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } @@ -315,7 +314,7 @@ public class CargoLiftConveyorDeviceDriver extends AbstractOpcDeviceDriver imple logServer.deviceExecuteLog(this.device_code, "", "", "to_task 写入 " + command); } - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/empty_vehicle_stacking_position/EmptyVehicleStackingPositionDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/empty_vehicle_stacking_position/EmptyVehicleStackingPositionDeviceDriver.java index 127cc43..cc03724 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/empty_vehicle_stacking_position/EmptyVehicleStackingPositionDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/empty_vehicle_stacking_position/EmptyVehicleStackingPositionDeviceDriver.java @@ -183,8 +183,7 @@ public class EmptyVehicleStackingPositionDeviceDriver extends AbstractOpcDeviceD Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } @@ -196,7 +195,7 @@ public class EmptyVehicleStackingPositionDeviceDriver extends AbstractOpcDeviceD Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", key + " 写入 " + value); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java index 4dbc2bb..02a9add 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control/StandardCoveyorControlDeviceDriver.java @@ -318,13 +318,13 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver Map itemMap = new HashMap(); itemMap.put(to_command, 1); itemMap.put(to_task, instruction_num); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -336,8 +336,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } @@ -356,7 +355,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver itemMap.put(to_command, command); itemMap.put(to_target, target); itemMap.put(to_task, task); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -378,7 +377,7 @@ public class StandardCoveyorControlDeviceDriver extends AbstractOpcDeviceDriver } else if (type == 3) { itemMap.put(to_task, command); } - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control_with_plcscanner/StandardCoveyorControlWithPlcScannerDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control_with_plcscanner/StandardCoveyorControlWithPlcScannerDeviceDriver.java index 34e6f5b..6485cdd 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control_with_plcscanner/StandardCoveyorControlWithPlcScannerDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_conveyor_control_with_plcscanner/StandardCoveyorControlWithPlcScannerDeviceDriver.java @@ -541,13 +541,13 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp Map itemMap = new HashMap(); itemMap.put(to_command, 1); itemMap.put(to_task, instruction_num); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -565,7 +565,7 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp itemMap.put(to_command, 1); itemMap.put(to_target, deviceAppservice.findDeviceByCode(inst.getNext_device_code()).getAddress()); itemMap.put(to_task, inst.getInstruction_code()); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -584,7 +584,7 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp itemMap.put(to_target, target); itemMap.put(to_task, task); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -595,8 +595,7 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } @@ -622,7 +621,7 @@ public class StandardCoveyorControlWithPlcScannerDeviceDriver extends AbstractOp logServer.deviceExecuteLog(this.device_code, "", "", "to_task 写入 " + command); } - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java index 9219904..e04a2cf 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java @@ -251,13 +251,13 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp Map itemMap = new HashMap(); itemMap.put(to_command, 1); itemMap.put(to_task, instruction_num); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -269,8 +269,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } @@ -295,7 +294,7 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp itemMap.put(to_task, command); logServer.deviceExecuteLog(this.device_code, "", "", "to_task 写入 " + command); } - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lamp_three_color/LampThreecolorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lamp_three_color/LampThreecolorDeviceDriver.java index 028173d..5d6e308 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lamp_three_color/LampThreecolorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lamp_three_color/LampThreecolorDeviceDriver.java @@ -143,8 +143,7 @@ public class LampThreecolorDeviceDriver extends AbstractOpcDeviceDriver implemen Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); log.info("下发PLC信号:{},{}", to_command, command); System.out.println("设备:" + devicecode + ",下发PLC信号:" + to_command + ",value:" + command); 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 b5439fb..bf3bff0 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 @@ -179,7 +179,7 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -191,8 +191,7 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap<>(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -215,7 +214,7 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i } else if (type == 3) { itemMap.put(to_task, command); } - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } @@ -229,7 +228,7 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i Map itemMap = new HashMap<>(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_crusher/LnshCrusherDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_crusher/LnshCrusherDeviceDriver.java index aad03b1..2ec50f5 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_crusher/LnshCrusherDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_crusher/LnshCrusherDeviceDriver.java @@ -240,7 +240,7 @@ public class LnshCrusherDeviceDriver extends AbstractOpcDeviceDriver implements } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -253,7 +253,7 @@ public class LnshCrusherDeviceDriver extends AbstractOpcDeviceDriver implements Map itemMap = new HashMap(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } 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 5a8d00d..bcddd4f 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 @@ -194,13 +194,13 @@ public class LnshFoldDiscSiteDeviceDriver extends AbstractOpcDeviceDriver implem Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap<>(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -212,8 +212,7 @@ public class LnshFoldDiscSiteDeviceDriver extends AbstractOpcDeviceDriver implem Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap<>(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_kiln_lane/LnshKilnLaneDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_kiln_lane/LnshKilnLaneDeviceDriver.java index ecef438..5e8d1d5 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_kiln_lane/LnshKilnLaneDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_kiln_lane/LnshKilnLaneDeviceDriver.java @@ -202,13 +202,13 @@ public class LnshKilnLaneDeviceDriver extends AbstractOpcDeviceDriver implements Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap<>(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -220,8 +220,7 @@ public class LnshKilnLaneDeviceDriver extends AbstractOpcDeviceDriver implements Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap<>(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_kiln_truss/LnshKilnTrussDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_kiln_truss/LnshKilnTrussDeviceDriver.java index f66f168..f753053 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_kiln_truss/LnshKilnTrussDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_kiln_truss/LnshKilnTrussDeviceDriver.java @@ -201,8 +201,7 @@ public class LnshKilnTrussDeviceDriver extends AbstractOpcDeviceDriver implement Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap<>(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_labeling_machine/LnshLabelingMachineDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_labeling_machine/LnshLabelingMachineDeviceDriver.java index 2d6ae72..176af92 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_labeling_machine/LnshLabelingMachineDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_labeling_machine/LnshLabelingMachineDeviceDriver.java @@ -172,7 +172,7 @@ public class LnshLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver imp } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -181,7 +181,7 @@ public class LnshLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver imp String opcservcerid = this.getDevice().getOpc_server_id(); Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap<>(); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } @@ -195,7 +195,7 @@ public class LnshLabelingMachineDeviceDriver extends AbstractOpcDeviceDriver imp Map itemMap = new HashMap<>(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } 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 394cb8c..d367eb8 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 @@ -297,7 +297,7 @@ public class LnshMixingMillDeviceDriver extends AbstractOpcDeviceDriver implemen public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -309,8 +309,7 @@ public class LnshMixingMillDeviceDriver extends AbstractOpcDeviceDriver implemen Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } @@ -332,7 +331,7 @@ public class LnshMixingMillDeviceDriver extends AbstractOpcDeviceDriver implemen } else if (type == 2) { itemMap.put(to_material_code, command); } - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -346,7 +345,7 @@ public class LnshMixingMillDeviceDriver extends AbstractOpcDeviceDriver implemen itemMap.put(to_param, value); // itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_out_kiln_truss/LnshOutKilnTrussDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_out_kiln_truss/LnshOutKilnTrussDeviceDriver.java index 80062a4..11f8d72 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_out_kiln_truss/LnshOutKilnTrussDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_out_kiln_truss/LnshOutKilnTrussDeviceDriver.java @@ -164,6 +164,10 @@ public class LnshOutKilnTrussDeviceDriver extends AbstractOpcDeviceDriver implem logServer.deviceItemValue(this.device_code,"outKiln_device" ,String.valueOf(outKiln_device)); logServer.deviceExecuteLog(this.device_code,"","","信号outKiln_device:" + last_outKiln_device + " -> " + outKiln_device); } + if (cool_number != last_cool_number) { + logServer.deviceItemValue(this.device_code,"cool_number" ,String.valueOf(cool_number)); + logServer.deviceExecuteLog(this.device_code,"","","信号cool_number:" + last_cool_number + " -> " + cool_number); + } } catch (Exception var17) { return; @@ -205,13 +209,13 @@ public class LnshOutKilnTrussDeviceDriver extends AbstractOpcDeviceDriver implem break; case 5: - if (!requireSucess && outKiln_move != 0 && outKiln_barcode != 0) { + if (!requireSucess && outKiln_barcode != 0 && cool_number != 0) { outKiln(); } break; case 17: - if (!requireSucess && outKiln_move != 0 && outKiln_barcode != 0 && cool_number != 0) { + if (!requireSucess && outKiln_barcode != 0 && cool_number != 0) { outKilnConfirm(); } break; @@ -259,6 +263,7 @@ public class LnshOutKilnTrussDeviceDriver extends AbstractOpcDeviceDriver implem JSONObject param = new JSONObject(); param.put("vehicle_code", outKiln_barcode); + param.put("cool_number", cool_number); HttpResponse result = acsToWmsService.outKiln(param); if (ObjectUtil.isNotEmpty(result)) { if (result.getStatus() == HttpStatus.OK.value()) { @@ -286,8 +291,7 @@ public class LnshOutKilnTrussDeviceDriver extends AbstractOpcDeviceDriver implem Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); @@ -302,7 +306,7 @@ public class LnshOutKilnTrussDeviceDriver extends AbstractOpcDeviceDriver implem Map itemMap = new HashMap(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_line/LnshPackageLineDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_line/LnshPackageLineDeviceDriver.java index 6f43b97..e5558c3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_line/LnshPackageLineDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_package_line/LnshPackageLineDeviceDriver.java @@ -262,7 +262,7 @@ public class LnshPackageLineDeviceDriver extends AbstractOpcDeviceDriver impleme } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -275,7 +275,7 @@ public class LnshPackageLineDeviceDriver extends AbstractOpcDeviceDriver impleme Map itemMap = new HashMap(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } @@ -287,8 +287,7 @@ public class LnshPackageLineDeviceDriver extends AbstractOpcDeviceDriver impleme Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } 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 9396ad7..2cc1d68 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 @@ -251,7 +251,7 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD return; case 2: break; - case 4: + case 3: //排产单确认 if (!requireSucess && !"0".equals(order_No) && StrUtil.isNotBlank(order_No)) { JSONObject json = new JSONObject(); @@ -285,7 +285,7 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD // applyEmpty(); // } // break; - case 9: + case 4: //工单完成 if (!requireSucess && !"0".equals(order_No) && StrUtil.isNotBlank(order_No)) { JSONObject json = new JSONObject(); @@ -637,7 +637,7 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -665,7 +665,7 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_feedback, feedback); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_feedback 写入 " + feedback); } @@ -679,7 +679,7 @@ public class LnshPackagePalletManipulatorDeviceDriver extends AbstractOpcDeviceD Map itemMap = new HashMap(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } 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 0a543df..3e762a9 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 @@ -218,8 +218,7 @@ public class LnshPackageSiteDeviceDriver extends AbstractOpcDeviceDriver impleme Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } @@ -233,7 +232,7 @@ public class LnshPackageSiteDeviceDriver extends AbstractOpcDeviceDriver impleme Map itemMap = new HashMap<>(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_pallet_storage/LnshPalletStorageDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_pallet_storage/LnshPalletStorageDeviceDriver.java index 38b1769..c52c4c6 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_pallet_storage/LnshPalletStorageDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_pallet_storage/LnshPalletStorageDeviceDriver.java @@ -217,7 +217,7 @@ public class LnshPalletStorageDeviceDriver extends AbstractOpcDeviceDriver imple } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } 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 5ea24a8..d28b92c 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 @@ -471,13 +471,13 @@ public class LnshPalletizingManipulatorDeviceDriver extends AbstractOpcDeviceDri itemMap.put(to_param, value); // itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -490,8 +490,7 @@ public class LnshPalletizingManipulatorDeviceDriver extends AbstractOpcDeviceDri Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } 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 e6058ef..e1227af 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 @@ -14,21 +14,20 @@ import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; 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.ext.wms.service.AcsToWmsService; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; -import org.nl.acs.opc.ItemValue; +import org.nl.acs.opc.DeviceAppService; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; -import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.lucene.service.impl.LuceneExecuteLogServiceImpl; 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.util.Date; @@ -47,7 +46,6 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic protected ItemProtocol itemProtocol = new ItemProtocol(this); - InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl"); DeviceService deviceservice = SpringContextHolder.getBean("deviceServiceImpl"); @@ -63,6 +61,7 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean("produceshiftorderServiceImpl"); LuceneExecuteLogServiceImpl lucene = SpringContextHolder.getBean("luceneExecuteLogServiceImpl"); + DeviceAppService deviceAppService = SpringContextHolder.getBean("deviceAppServiceImpl"); String device_code; int mode = 0; @@ -233,6 +232,7 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic int last_pressLayerX3_offset = 0; int last_pressLayerY3_offset = 0; int last_tool_coordinate = 0; + long vd_id = 0; @Override public Device getDevice() { @@ -663,18 +663,37 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic if (!requireSucess && this.move != 0) { this.toPackage(false); } + break; + case 21: + // 分拣码垛完成 + if (!requireSucess && this.move != 0) { + this.fjPalletizationCompleted("1"); + } + break; + case 22: + // 分拣强制半托 + if (!requireSucess && this.move != 0) { + this.fjPalletizationCompleted("0"); + } + break; + case 23: + // 分拣呼叫空托 + if (!requireSucess && this.move == 0) { + this.fjCallEmpty(); + } + break; + case 25: + // 分拣需要半托回码 + if (!requireSucess && this.move == 0 && this.vd_id != 0) { + this.fjNeed(); + } + break; + case 26: + // 分拣不需要半托回码 + if (!requireSucess && this.move == 0) { + this.fjNoNeed(); + } } - -// switch (flag) { -// //取货完成 -// case 2: -// writing(2); -// return; -// //放货完成 -// case 4: -// writing(3); -// return; -// } } last_mode = mode; @@ -781,11 +800,10 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic * * @param */ - public synchronized boolean palletizing() { + public synchronized void palletizing() { Date date = new Date(); if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) { log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); - return false; } else { this.instruction_require_time = date; JSONObject json = new JSONObject(); @@ -860,7 +878,6 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic } } } - return true; } } @@ -1021,13 +1038,13 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic Map itemMap = new HashMap(); itemMap.put(to_command, 1); itemMap.put(to_task, instruction_num); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -1049,7 +1066,7 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic } else if (type == 3) { itemMap.put(to_task, command); } - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -1061,25 +1078,164 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } - public synchronized void OpenOrClose(String type) { + public String toString() { + return super.toString(); + } - //进入区域 - if ("1".equals(type)) { - writing(5); + public synchronized void fjPalletizationCompleted(String isFull) { + Date date = new Date(); + if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) { + log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); } else { - //离开区域 - writing(6); + this.instruction_require_time = date; + JSONObject json = new JSONObject(); + json.put("device_code", device_code); + json.put("qty", encoder_qty); + json.put("weight", weight); + json.put("is_full", isFull); + json.put("is_package", "1"); + json.put("product_code", product_code); + json.put("AlongSide", AlongSide); + json.put("BshortSide", BshortSide); + json.put("Htrapezoidal", Htrapezoidal); + json.put("Wthickness", Wthickness); + json.put("tray_qty", tray_qty); + json.put("tray_high", tray_high); + json.put("crib_category", crib_category); + json.put("palletX1_line", palletX1_line); + json.put("palletY1_row", palletY1_row); + json.put("palletA1_angle", palletA1_angle); + json.put("palletX2_line", palletX2_line); + json.put("palletY2_row", palletY2_row); + json.put("palletA2_angle", palletA2_angle); + json.put("palletX3_line", palletX3_line); + json.put("palletY3_row", palletY3_row); + json.put("palletA3_angle", palletA3_angle); + json.put("pressCribX1_line", pressCribX1_line); + json.put("pressCribY1_row", pressCribY1_row); + json.put("pressCribA1_angle", pressCribA1_angle); + json.put("pressCribX2_line", pressCribX2_line); + json.put("pressCribY2_row", pressCribY2_row); + json.put("pressCribA2_angle", pressCribA2_angle); + json.put("pressCribX3_line", pressCribX3_line); + json.put("pressCribY3_row", pressCribY3_row); + json.put("pressCribA3_angle", pressCribA3_angle); + json.put("Zoffset", Zoffset); + json.put("pallet_layerQty", pallet_layerQty); + json.put("pressCrib_layerQty", pressCrib_layerQty); + json.put("codeLayerX1_interval", codeLayerX1_interval); + json.put("codeLayerY1_interval", codeLayerY1_interval); + json.put("codeLayerX2_interval", codeLayerX2_interval); + json.put("codeLayerY2_interval", codeLayerY2_interval); + json.put("codeLayerX3_interval", codeLayerX3_interval); + json.put("codeLayerY3_interval", codeLayerY3_interval); + json.put("codeLayerX1_offset", codeLayerX1_offset); + json.put("codeLayerY1_offset", codeLayerY1_offset); + json.put("codeLayerX2_offset", codeLayerX2_offset); + json.put("codeLayerY2_offset", codeLayerY2_offset); + json.put("codeLayerX3_offset", codeLayerX3_offset); + json.put("codeLayerY3_offset", codeLayerY3_offset); + json.put("pressLayerX1_interval", pressLayerX1_interval); + json.put("pressLayerY1_interval", pressLayerY1_interval); + json.put("pressLayerX2_interval", pressLayerX2_interval); + json.put("pressLayerY2_interval", pressLayerY2_interval); + json.put("pressLayerX3_interval", pressLayerX3_interval); + json.put("pressLayerY3_interval", pressLayerY3_interval); + json.put("pressLayerX1_offset", pressLayerX1_offset); + json.put("pressLayerY1_offset", pressLayerY1_offset); + json.put("pressLayerX2_offset", pressLayerX2_offset); + json.put("pressLayerY2_offset", pressLayerY2_offset); + json.put("pressLayerX3_offset", pressLayerX3_offset); + json.put("pressLayerY3_offset", pressLayerY3_offset); + json.put("tool_coordinate", tool_coordinate); + HttpResponse response = acsToWmsService.applyTaskManipulatorToWms(json); + if (ObjectUtil.isNotEmpty(response) && response.getStatus() == HttpStatus.OK.value()) { + JSONObject responseBody = JSONObject.parseObject(response.body()); + if (ObjectUtil.isNotEmpty(responseBody) && "200".equals(responseBody.getString("status"))) { + this.writing(this.mode); + this.setRequireSucess(true); + } + } } } - public String toString() { - return ""; + public synchronized void fjCallEmpty() { + Date date = new Date(); + if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) { + log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + } else { + this.instruction_require_time = date; + + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + HttpResponse response = acsToWmsService.fjCallEmpty(param); + if (ObjectUtil.isNotEmpty(response) && response.getStatus() == HttpStatus.OK.value()) { + JSONObject responseBody = JSONObject.parseObject(response.body()); + if (ObjectUtil.isNotEmpty(responseBody) && "200".equals(responseBody.getString("status"))) { + JSONObject data = responseBody.getJSONObject("data"); + if (ObjectUtil.isEmpty(data)) { + Device fmj = deviceAppService.findDeviceByCode("FMJ01"); + if (fmj.getDeviceDriver() instanceof LnshLaminatingMachineDeviceDriver) { + LnshLaminatingMachineDeviceDriver driver = (LnshLaminatingMachineDeviceDriver) fmj.getDeviceDriver(); + driver.writing(1); + } + this.writing(23); + } else { + JSONObject write = new JSONObject(); + this.vd_id = data.getLongValue("ve_id"); + write.put("to_tray_qty", data.getString("qty")); + write.put("to_command", 24); + this.writing(write); + } + this.setRequireSucess(true); + } + } + } + } + + public synchronized void fjNeed() { + Date date = new Date(); + if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) { + log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + } else { + this.instruction_require_time = date; + + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("vd_id", this.vd_id); + HttpResponse response = acsToWmsService.fjNeed(param); + if (ObjectUtil.isNotEmpty(response) && response.getStatus() == HttpStatus.OK.value()) { + JSONObject responseBody = JSONObject.parseObject(response.body()); + if (ObjectUtil.isNotEmpty(responseBody) && "200".equals(responseBody.getString("status"))) { + this.writing(this.mode); + this.setRequireSucess(true); + this.vd_id = 0; + } + } + + } + } + + public synchronized void fjNoNeed() { + Date date = new Date(); + if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) { + log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); + } else { + this.instruction_require_time = date; + Device fmj = deviceAppService.findDeviceByCode("FMJ01"); + if (fmj.getDeviceDriver() instanceof LnshLaminatingMachineDeviceDriver) { + LnshLaminatingMachineDeviceDriver driver = (LnshLaminatingMachineDeviceDriver) fmj.getDeviceDriver(); + driver.writing(1); + } + this.writing(this.mode); + this.setRequireSucess(true); + this.vd_id = 0; + } } @Override @@ -1359,7 +1515,7 @@ public class LnshPalletizingManipulatorSiteDeviceDriver extends AbstractOpcDevic Map itemMap = new HashMap(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } 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 08cf8ca..9685f6d 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 @@ -368,7 +368,7 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De String opcservcerid = this.getDevice().getOpc_server_id(); Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -382,13 +382,13 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De Map itemMap = new HashMap(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -400,8 +400,7 @@ public class LnshPressDeviceDriver extends AbstractOpcDeviceDriver implements De Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } 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 417ef08..c8666b5 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 @@ -804,7 +804,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi Map itemMap = new HashMap(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } @@ -821,7 +821,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi String opcservcerid = this.getDevice().getOpc_server_id(); Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); } @@ -833,7 +833,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); } public void writing1(int command) { @@ -844,7 +844,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command1, command); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); } @@ -856,7 +856,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command2, command); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); } 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 58c24c7..502a1b3 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 @@ -974,13 +974,13 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im String opcservcerid = this.getDevice().getOpc_server_id(); Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -991,7 +991,7 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_feedback, feedback); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_feedback 写入 " + feedback); } @@ -1000,7 +1000,7 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im String opcservcerid = this.getDevice().getOpc_server_id(); Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -1014,7 +1014,7 @@ public class LnshSplitManipulatorDeviceDriver extends AbstractOpcDeviceDriver im Map itemMap = new HashMap(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } 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 ce83a62..0f1a344 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 @@ -472,13 +472,13 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements Map itemMap = new HashMap(); itemMap.put(to_command, 1); itemMap.put(to_task, instruction_num); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -502,7 +502,7 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements itemMap.put(to_task, command); logServer.deviceExecuteLog(this.device_code, "", "", "to_task 写入 " + command); } - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } @@ -514,8 +514,7 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", "to_command 写入 " + command); } @@ -615,7 +614,7 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements Map itemMap = new HashMap(); itemMap.put(to_param, value); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); logServer.deviceExecuteLog(this.device_code, "", "", param + " 写入 " + value); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_autodoor/StandardAutodoorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_autodoor/StandardAutodoorDeviceDriver.java index b770a87..43bea24 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_autodoor/StandardAutodoorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_autodoor/StandardAutodoorDeviceDriver.java @@ -145,8 +145,7 @@ public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implem Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); itemMap.put(to_command, command); - ReadUtil.write(itemMap, server); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); log.info("下发PLC信号:{},{}", to_command, command); System.out.println("设备:" + devicecode + ",下发PLC信号:" + to_command + ",value:" + command); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_emptypallet_site/StandardEmptyPalletSiteDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_emptypallet_site/StandardEmptyPalletSiteDeviceDriver.java index 8b49362..31befc5 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_emptypallet_site/StandardEmptyPalletSiteDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/standard_emptypallet_site/StandardEmptyPalletSiteDeviceDriver.java @@ -452,13 +452,13 @@ public class StandardEmptyPalletSiteDeviceDriver extends AbstractOpcDeviceDriver Map itemMap = new HashMap(); itemMap.put(to_command, 1); itemMap.put(to_task, instruction_num); - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } public void executing(Server server, Map itemMap) { - ReadUtil.write(itemMap, server); + ReadUtil.write(itemMap, server, 0); server.disconnect(); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java index 09496a1..2f95688 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java @@ -176,4 +176,10 @@ public interface AcsToWmsService { HttpResponse mark(JSONObject param); HttpResponse reportForWork(JSONObject param); + + HttpResponse fjPalletizationCompleted(JSONObject param); + + HttpResponse fjCallEmpty(JSONObject param); + + HttpResponse fjNeed(JSONObject param); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index 8fa318e..40f9550 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -1082,4 +1082,79 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { MDC.remove(log_file_type); } } + + @Override + public HttpResponse fjPalletizationCompleted(JSONObject param) { + try { + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findByCode(AcsConfig.WMSURL).getValue(); + + HttpResponse result = null; + log.info("fjPalletizationCompleted - 请求参数 {}", param); + AddressDto addressDto = addressService.findByCode("fjPalletizationCompleted"); + String methods_url = addressDto.getMethods_url(); + try { + result = HttpRequest + .post(wmsurl + methods_url) + .body(param.toJSONString()) + .execute(); + log.info("fjPalletizationCompleted - 响应参数 {}", result.body()); + } catch (Exception e) { + log.error("fjPalletizationCompleted - 请求错误!", e); + } + return result; + } finally { + MDC.remove(log_file_type); + } + } + + @Override + public HttpResponse fjCallEmpty(JSONObject param) { + try { + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findByCode(AcsConfig.WMSURL).getValue(); + + HttpResponse result = null; + log.info("fjCallEmpty - 请求参数 {}", param); + AddressDto addressDto = addressService.findByCode("fjCallEmpty"); + String methods_url = addressDto.getMethods_url(); + try { + result = HttpRequest + .post(wmsurl + methods_url) + .body(param.toJSONString()) + .execute(); + log.info("fjCallEmpty - 响应参数 {}", result.body()); + } catch (Exception e) { + log.error("fjCallEmpty - 请求错误!", e); + } + return result; + } finally { + MDC.remove(log_file_type); + } + } + + @Override + public HttpResponse fjNeed(JSONObject param) { + try { + MDC.put(log_file_type, log_type); + String wmsurl = acsConfigService.findByCode(AcsConfig.WMSURL).getValue(); + + HttpResponse result = null; + log.info("fjNeed - 请求参数 {}", param); + AddressDto addressDto = addressService.findByCode("fjNeed"); + String methods_url = addressDto.getMethods_url(); + try { + result = HttpRequest + .post(wmsurl + methods_url) + .body(param.toJSONString()) + .execute(); + log.info("fjNeed - 响应参数 {}", result.body()); + } catch (Exception e) { + log.error("fjNeed - 请求错误!", e); + } + return result; + } finally { + MDC.remove(log_file_type); + } + } } 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 c7a6f90..49394ec 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 @@ -342,8 +342,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { map.put("to_BshortSide", BshortSide); map.put("to_Htrapezoidal", Htrapezoidal); map.put("to_Wthickness", Wthickness); - map.put("to_vehicle_type", String.valueOf(json.getIntValue("vehicle_type") - 2)); - map.put("to_command", 1); + map.put("to_feedback", 1); lnshPackagePalletManipulatorDeviceDriver.writing(map); } if (device.getDeviceDriver() instanceof LnshSplitManipulatorDeviceDriver) { diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java b/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java index c6cd796..410c5a2 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java @@ -145,10 +145,8 @@ public class AutoCreateInst { continue; } //普通站点 - StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; StandardEmptyPalletSiteDeviceDriver standardEmptsyPalletSiteDeviceDriver; - LampThreecolorDeviceDriver lampThreecolorDeviceDriver; LnshFoldDiscSiteDeviceDriver lnshFoldDiscSiteDeviceDriver; String createTaskCheck = acsConfigService.findByCode(AcsConfig.CREATETASKCHECK).getValue(); @@ -247,6 +245,39 @@ public class AutoCreateInst { taskserver.updateByCodeFromCache(acsTask); continue; } + int count = instructionService.queryDeviceInstCount(next_device_code); + if (count > 0) { + log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 已被占用,无法生成指令。"); + acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 已被占用,无法生成指令。"); + taskserver.updateByCodeFromCache(acsTask); + continue; + } + } else if (nextdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver + && "true".equals(nextdevice.getExtraValue().get("inspect_in_stocck"))) { + StandardInspectSiteDeviceDriver deviceDriver = (StandardInspectSiteDeviceDriver) nextdevice.getDeviceDriver(); + if (deviceDriver.getMode() == 0) { + log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 未联机,无法生成指令。"); + acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 未联机,无法生成指令。"); + taskserver.updateByCodeFromCache(acsTask); + continue; + } else if (deviceDriver.getMove() != 0) { + log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 有货,无法生成指令。"); + acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 有货,无法生成指令。"); + taskserver.updateByCodeFromCache(acsTask); + continue; + } else if (deviceDriver.getError() != 0) { + log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 异常,无法生成指令。"); + acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 异常,无法生成指令。"); + taskserver.updateByCodeFromCache(acsTask); + continue; + } + int count = instructionService.queryDeviceInstCount(next_device_code); + if (count > 0) { + log.info("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 已被占用,无法生成指令。"); + acsTask.setRemark("任务 [" + taskcode + "] 终点 [" + nextdevice.getDevice_name() + "] 已被占用,无法生成指令。"); + taskserver.updateByCodeFromCache(acsTask); + continue; + } } if (startdevice.getDeviceDriver() instanceof LnshFoldDiscSiteDeviceDriver) { @@ -278,8 +309,6 @@ public class AutoCreateInst { log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 已被占用,无法生成指令。"); acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 已被占用,无法生成指令。"); taskserver.updateByCodeFromCache(acsTask); - //this.execute_log.setResource(nextdevice.getDevice_code(), nextdevice.getDevice_code()); - //this.execute_log.log("存在相同终点的指令,任务号:" + taskcode); continue; } @@ -303,6 +332,41 @@ public class AutoCreateInst { taskserver.updateByCodeFromCache(acsTask); continue; } + + int count = instructionService.queryDeviceInstCount(start_device_code); + if (count > 0) { + log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 已被占用,无法生成指令。"); + acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 已被占用,无法生成指令。"); + taskserver.updateByCodeFromCache(acsTask); + continue; + } + } else if (startdevice.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver + && "true".equals(startdevice.getExtraValue().get("inspect_in_stocck"))) { + StandardInspectSiteDeviceDriver deviceDriver = (StandardInspectSiteDeviceDriver) startdevice.getDeviceDriver(); + if (deviceDriver.getMode() == 0) { + log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 未联机,无法生成指令。"); + acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 未联机,无法生成指令。"); + taskserver.updateByCodeFromCache(acsTask); + continue; + } else if (deviceDriver.getMove() == 0) { + log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 无货,无法生成指令。"); + acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 无货,无法生成指令。"); + taskserver.updateByCodeFromCache(acsTask); + continue; + } else if (deviceDriver.getError() != 0) { + log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 异常,无法生成指令。"); + acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 异常,无法生成指令。"); + taskserver.updateByCodeFromCache(acsTask); + continue; + } + + int count = instructionService.queryDeviceInstCount(start_device_code); + if (count > 0) { + log.info("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 已被占用,无法生成指令。"); + acsTask.setRemark("任务 [" + taskcode + "] 起点 [" + startdevice.getDevice_name() + "] 已被占用,无法生成指令。"); + taskserver.updateByCodeFromCache(acsTask); + continue; + } } Instruction instdto = new Instruction(); diff --git a/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java b/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java index d8b41b4..0f40b46 100644 --- a/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java +++ b/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java @@ -18,68 +18,68 @@ import java.sql.SQLException; @Configuration @Slf4j public class DataBaseConfig { -// -// @Value("${erp.sqlserver.enabled}") -// private boolean sqlserverIsConnect; -// @Value("${erp.sqlserver.jdbcurl}") -// private String sqlserverJdbcUrl; -// @Value("${erp.sqlserver.username}") -// private String sqlserverUserName; -// @Value("${erp.sqlserver.password}") -// private String sqlserverPassword; -// -// @Primary -// @Bean(name = "dataSource") -// @ConfigurationProperties(prefix = "spring.datasource.druid") -// public DataSource dataSource() { -// return new DruidDataSource(); -// } -// -// @Bean("dataSource1") -// @ConditionalOnExpression("${erp.sqlserver.enabled:true}") -// public DataSource dataSource1() { -// log.info("是否连接Sqlserver" + sqlserverIsConnect); -// String jdbcUrl = sqlserverJdbcUrl; -// String userName = sqlserverUserName; -// String password = sqlserverPassword; -// DruidDataSource druidDataSource = new DruidDataSource(); -// String className; -// try { -// className = DriverManager.getDriver(jdbcUrl.trim()).getClass().getName(); -// } catch (SQLException e) { -// throw new RuntimeException("Get class name error: =" + jdbcUrl); -// } -// if (StrUtil.isEmpty(className)) { -// DataTypeEnum dataTypeEnum = DataTypeEnum.urlOf(jdbcUrl); -// if (null == dataTypeEnum) { -// throw new RuntimeException("Not supported data type: jdbcUrl=" + jdbcUrl); -// } -// druidDataSource.setDriverClassName(dataTypeEnum.getDriver()); -// } else { -// druidDataSource.setDriverClassName(className); -// } -// -// -// druidDataSource.setUrl(jdbcUrl); -// druidDataSource.setUsername(userName); -// druidDataSource.setPassword(password); -// // 配置获取连接等待超时的时间 -// druidDataSource.setMaxWait(3000); -// // 配置初始化大小、最小、最大 -// druidDataSource.setInitialSize(5); -// druidDataSource.setMinIdle(5); -// druidDataSource.setMaxActive(10); -// -// // 如果链接出现异常则直接判定为失败而不是一直重试 -// druidDataSource.setBreakAfterAcquireFailure(true); -// try { -// druidDataSource.init(); -// } catch (SQLException e) { -// log.error("Exception during pool initialization", e); -// throw new RuntimeException(e.getMessage()); -// } -// -// return druidDataSource; -// } + + @Value("${erp.sqlserver.enabled}") + private boolean sqlserverIsConnect; + @Value("${erp.sqlserver.jdbcurl}") + private String sqlserverJdbcUrl; + @Value("${erp.sqlserver.username}") + private String sqlserverUserName; + @Value("${erp.sqlserver.password}") + private String sqlserverPassword; + + @Primary + @Bean(name = "dataSource") + @ConfigurationProperties(prefix = "spring.datasource.druid") + public DataSource dataSource() { + return new DruidDataSource(); + } + + @Bean("dataSource1") + @ConditionalOnExpression("${erp.sqlserver.enabled:true}") + public DataSource dataSource1() { + log.info("是否连接Sqlserver" + sqlserverIsConnect); + String jdbcUrl = sqlserverJdbcUrl; + String userName = sqlserverUserName; + String password = sqlserverPassword; + DruidDataSource druidDataSource = new DruidDataSource(); + String className; + try { + className = DriverManager.getDriver(jdbcUrl.trim()).getClass().getName(); + } catch (SQLException e) { + throw new RuntimeException("Get class name error: =" + jdbcUrl); + } + if (StrUtil.isEmpty(className)) { + DataTypeEnum dataTypeEnum = DataTypeEnum.urlOf(jdbcUrl); + if (null == dataTypeEnum) { + throw new RuntimeException("Not supported data type: jdbcUrl=" + jdbcUrl); + } + druidDataSource.setDriverClassName(dataTypeEnum.getDriver()); + } else { + druidDataSource.setDriverClassName(className); + } + + + druidDataSource.setUrl(jdbcUrl); + druidDataSource.setUsername(userName); + druidDataSource.setPassword(password); + // 配置获取连接等待超时的时间 + druidDataSource.setMaxWait(3000); + // 配置初始化大小、最小、最大 + druidDataSource.setInitialSize(5); + druidDataSource.setMinIdle(5); + druidDataSource.setMaxActive(10); + + // 如果链接出现异常则直接判定为失败而不是一直重试 + druidDataSource.setBreakAfterAcquireFailure(true); + try { + druidDataSource.init(); + } catch (SQLException e) { + log.error("Exception during pool initialization", e); + throw new RuntimeException(e.getMessage()); + } + + return druidDataSource; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/rest/MaterialbaseController.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/rest/MaterialbaseController.java index 742a3a9..8ef4263 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/rest/MaterialbaseController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/rest/MaterialbaseController.java @@ -90,8 +90,8 @@ public class MaterialbaseController { @Log("物料同步") @ApiOperation("物料同步") //@SaCheckPermission("materialtype:list") - public ResponseEntity synchronize(@RequestBody Map whereJson) { - materialBaseService.synchronize(whereJson); + public ResponseEntity synchronize() { + materialBaseService.synchronize(); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/MaterialbaseService.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/MaterialbaseService.java index e3dd259..ee79523 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/MaterialbaseService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/MaterialbaseService.java @@ -89,7 +89,7 @@ public interface MaterialbaseService { */ JSONObject getMaterOptType(String materOpt_code); - void synchronize(Map whereJson); + void synchronize(); JSONArray getProductSeries(String parent_class_id); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java index f63d50f..cadb036 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java @@ -22,6 +22,7 @@ import org.nl.wms.basedata.eum.MaterOptTypeEnum; import org.nl.wms.basedata.service.ClassstandardService; import org.nl.wms.basedata.service.MaterialbaseService; import org.nl.wms.basedata.service.dto.MaterialbaseDto; +import org.nl.wms.sch.task.util.TaskUtils; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -150,9 +151,31 @@ public class MaterialbaseServiceImpl implements MaterialbaseService { return MaterOptTypeEnum.getObj(materOpt_code); } + @Transactional(rollbackFor = Exception.class) @Override - public void synchronize(Map whereJson) { + public void synchronize() { + JSONArray data = WQL + .getWO("QMD_ME_MATERIAL") + .setDbname("dataSource1") + .addParam("flag", "2") + .process() + .getResultJSONArray(0); + JSONObject material = new JSONObject(); + TaskUtils.addCurrentCreateColum(material); + WQLObject materialTable = WQLObject.getWQLObject("md_me_materialbase"); + for (int i = 0; i < data.size(); i++) { + JSONObject datum = data.getJSONObject(i); + String cinvcode = datum.getString("cinvcode"); + JSONObject oldMaterial = materialTable.query("material_number = '" + cinvcode + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(oldMaterial)) { + material.put("material_id", IdUtil.getSnowflake().nextId()); + material.put("material_name", datum.getString("cinvname")); + material.put("material_number", cinvcode); + material.put("dd", datum.getString("free3")); + materialTable.insert(material); + } + } } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/QMD_ME_MATERIAL.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/QMD_ME_MATERIAL.wql index 91ce79d..5bb6faf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/QMD_ME_MATERIAL.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/QMD_ME_MATERIAL.wql @@ -70,12 +70,10 @@ SELECT * FROM - dbo.EFV_MO_ORDER + dbo.EFV_BASE_INVENTORY WHERE - STATUS = 3 - AND AuxQty > QualifiedInNum - AND LEFT ( cinvcode, 1 ) <> '1' - AND cInvCode LIKE 'W%' + cstate = '在用' + AND ( LEFT ( cinvcode, 1 ) = 'W' OR LEFT ( cinvcode, 3 ) = '902' ) ENDSELECT ENDQUERY ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index 09cc9a3..ec256f5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -197,4 +197,28 @@ public class AcsToWmsController { public ResponseEntity reportForWork(@RequestBody JSONObject param) { return ResponseEntity.ok(acsToWmsService.reportForWork(param)); } + + @PostMapping("/fjPalletizationCompleted") + @Log("分拣码垛完成") + @ApiOperation("分拣码垛完成") + @SaIgnore + public ResponseEntity fjPalletizationCompleted(@RequestBody JSONObject param) { + return ResponseEntity.ok(acsToWmsService.fjPalletizationCompleted(param)); + } + + @PostMapping("/fjCallEmpty") + @Log("分拣呼叫空托") + @ApiOperation("分拣呼叫空托") + @SaIgnore + public ResponseEntity fjCallEmpty(@RequestBody JSONObject param) { + return ResponseEntity.ok(acsToWmsService.fjCallEmpty(param)); + } + + @PostMapping("/fjNeed") + @Log("分拣需要半托回码") + @ApiOperation("分拣需要半托回码") + @SaIgnore + public ResponseEntity fjNeed(@RequestBody JSONObject param) { + return ResponseEntity.ok(acsToWmsService.fjNeed(param)); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index 7ea841c..8e0f862 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -110,4 +110,10 @@ public interface AcsToWmsService { JSONObject inKiln(JSONObject param); JSONObject reportForWork(JSONObject param); + + JSONObject fjPalletizationCompleted(JSONObject param); + + JSONObject fjCallEmpty(JSONObject param); + + JSONObject fjNeed(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 8b82c53..7480437 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -20,9 +20,14 @@ import org.nl.wms.basedata.service.dto.VehicleDto; import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.pdm.service.WorkordeService; import org.nl.wms.sch.manage.*; +import org.nl.wms.sch.task.call.empty.GTKCallEmptyTask; +import org.nl.wms.sch.task.call.empty.HLCallEmptyTask; import org.nl.wms.sch.task.call.empty.YZCallEmptyTask; import org.nl.wms.sch.task.call.material.FJCallMaterialTask; import org.nl.wms.sch.task.call.material.GZCallMaterialTask; +import org.nl.wms.sch.task.call.material.YZCallMaterialTask; +import org.nl.wms.sch.task.send.empty.FJSendEmptyTask; +import org.nl.wms.sch.task.send.empty.YZSendEmptyTask; import org.nl.wms.sch.task.send.material.GZSendMaterialTask; import org.nl.wms.sch.task.send.material.HLSendMaterialTask; import org.nl.wms.sch.task.send.material.YZSendMaterialTask; @@ -53,6 +58,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { private final HLSendMaterialTask hlSendMaterialTask; + private final HLCallEmptyTask hlCallEmptyTask; + + private final YZCallMaterialTask yzCallMaterialTask; + + private final YZSendEmptyTask yzSendEmptyTask; + + private final FJSendEmptyTask fjSendEmptyTask; + + private final GTKCallEmptyTask gtkCallEmptyTask; + /** * task_id:任务标识 * task_code:任务编码 @@ -233,7 +248,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { vd.put("vehicle_type", VehicleType.CUP.value()); vd.put("vehicle_code", vehicleCode); vd.put("material_id", workOrder.getString("material_id")); - vd.put("weight", Long.parseLong(weight) / 1000.00); + vd.put("weight", Long.parseLong(weight)); vd.put("workorder_id", workOrder.getString("workorder_id")); vd.put("point_code", pointCode); vd.put("create_id", ACSSystem.id); @@ -270,6 +285,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { case "2": // 叫料 switch (region) { + case YZ: + methodParam.put("workorder", TaskUtils.hasWorkOrder(point)); + taskCode = yzCallMaterialTask.createTask(methodParam); + break; case GZ: taskCode = gzCallMaterialTask.createTask(methodParam); break; @@ -283,9 +302,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { break; case "3": // 送空 - break; - case "4": - // 叫空 JSONObject workOrder = WQLObject .getWQLObject("pdm_bd_workorder") .query("is_delete = '0' AND device_code = '" + point.getString("device_code") + "' AND order_status = '3'") @@ -293,9 +309,34 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { methodParam.put("workorder", workOrder); switch (region) { + case YZ: + taskCode = yzSendEmptyTask.createTask(methodParam); + break; + case FJ: + taskCode = fjSendEmptyTask.createTask(methodParam); + break; + default: + throw new BadRequestException("[" + region.label() + "] 不能发起送空任务!"); + } + break; + case "4": + // 叫空 + workOrder = WQLObject + .getWQLObject("pdm_bd_workorder") + .query("is_delete = '0' AND device_code = '" + point.getString("device_code") + "' AND order_status = '3'") + .uniqueResult(0); + methodParam.put("workorder", workOrder); + + switch (region) { + case HL: + taskCode = hlCallEmptyTask.createTask(methodParam); + break; case YZ: taskCode = yzCallEmptyTask.createTask(methodParam); break; + case GTK: + taskCode = gtkCallEmptyTask.createTask(methodParam); + break; default: throw new BadRequestException("[" + region.label() + "] 不能发起叫空任务!"); } @@ -324,12 +365,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (StrUtil.isBlank(point_code)) { throw new BadRequestException("点位不能为空!"); } - String qty = jsonObject.getString("qty"); - if (StrUtil.isBlank(qty)) { + int qty = jsonObject.getIntValue("qty"); + if (qty == 0) { throw new BadRequestException("数量不能为空!"); } - String weight = jsonObject.getString("weight"); - if (StrUtil.isBlank(weight)) { + double weight = jsonObject.getDoubleValue("weight"); + if (weight == 0) { throw new BadRequestException("重量不能为空!"); } String is_full = jsonObject.getString("is_full"); @@ -363,7 +404,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { vd.put("vehicle_code", vehicle_code); vd.put("material_id", workorder.getString("material_id")); vd.put("qty", qty); - vd.put("weight", Long.parseLong(weight) / 1000.00); + vd.put("weight", weight); + vd.put("dz", weight / qty); vd.put("is_full", is_full); vd.put("workorder_id", workorder.getString("workorder_id")); vd.put("point_code", point_code); @@ -522,11 +564,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { int qty = jsonObject.getIntValue("qty"); int qualifiedQty = jsonObject.getIntValue("qualified_qty"); int unqualifiedQty = jsonObject.getIntValue("unqualified_qty"); - int weightG = jsonObject.getIntValue("weight"); - double weightKG = weightG / 1000.00; + int weightKG = jsonObject.getIntValue("weight"); int avgPieceWeightG = jsonObject.getIntValue("avg_piece_weight"); double avgPieceWeightKG = avgPieceWeightG / 1000.00; + JSONObject device = WQLObject.getWQLObject("pdm_bi_device").query("device_id = " + workOrder.getString("device_id")).uniqueResult(0); + if (Region.FJ.value().equals(device.getString("region_code"))) { + JSONObject vd = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("vehicle_code = '2' AND material_id = " + workOrder.getString("material_id"), "create_time DESC").uniqueResult(0); + avgPieceWeightKG = vd.getDoubleValue("dz") * 0.95; + weightKG = (int) avgPieceWeightKG * qty; + } + // 报工 workordeService.reportWorkOrderDaily(workOrderId, qty, qualifiedQty, unqualifiedQty, weightKG, avgPieceWeightKG); @@ -549,8 +597,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { int qty = jsonObject.getIntValue("qty"); int qualifiedQty = jsonObject.getIntValue("qualified_qty"); int unqualifiedQty = jsonObject.getIntValue("unqualified_qty"); - int weightG = jsonObject.getIntValue("weight"); - double weightKG = weightG / 1000.00; + int weightKG = jsonObject.getIntValue("weight"); int avgPieceWeightG = jsonObject.getIntValue("avg_piece_weight"); double avgPieceWeightKG = avgPieceWeightG / 1000.00; @@ -669,17 +716,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { throw new BadRequestException("[" + point_code + "] 已删除或未启用!"); } TaskUtils.isLocked(point); - String vehicle_type = point.getString("vehicle_type"); - String vehicle_code = point.getString("vehicle_code"); - if (StrUtil.isBlank(vehicle_type) || StrUtil.isBlank(vehicle_code)) { - throw new BadRequestException("[" + point_code + "] 上缺少载具类型或载具编码!"); - } + String vdId = point.getString("vd_id"); JSONObject data = null; - if (!"0000".equals(vehicle_code)) { + if (StrUtil.isNotBlank(vdId)) { data = WQLObject .getWQLObject("st_ivt_vehicle_detail") - .query("is_delete = '0' AND vehicle_type = '" + vehicle_type + "' AND vehicle_code = '" + vehicle_code + "'") + .query("vd_id = " + vdId) .uniqueResult(0); } if (ObjectUtil.isNotEmpty(data)) { @@ -758,7 +801,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { public JSONObject outKiln(JSONObject whereJson) { String vehicle_code = TaskUtils.formatVehicleCode(whereJson.getString("vehicle_code")); if ("0000".equals(vehicle_code)) { - throw new BadRequestException("载具编码不能为空!"); + throw new BadRequestException("载具号不能为空!"); + } + String coolNumber = whereJson.getString("cool_number"); + if (StrUtil.isBlank(coolNumber)) { + throw new BadRequestException("冷却道号不能为空!"); } Boolean to_package = null; @@ -772,6 +819,24 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { to_package = TrueOrFalse.trueOrFalse(workorder.getString("is_pri")); vd.put("out_kiln_time", DateUtil.now()); + if (to_package) { + JSONObject point = WQLObject.getWQLObject("sch_base_point").query("point_code = 'YXCY01'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(point)) { + JSONObject methodParam = new JSONObject(); + methodParam.put("point", point); + methodParam.put("vd", vd); + methodParam.put("workorder", workorder); + methodParam.put("create_mode", CreateMode.ACSSQ.value()); + methodParam.put("request_param", whereJson.toJSONString()); + methodParam.put("create_id", ACSSystem.id); + methodParam.put("create_name", ACSSystem.nick_name); + TaskUtils.addACSCreateColum(methodParam); + gzSendMaterialTask.createTask(methodParam); + } + } + if (!to_package) { + vd.put("cool_number", "LQD0" + coolNumber); + } TaskUtils.addACSUpdateColum(vd); vd_table.update(vd); } @@ -836,8 +901,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { int qty = param.getIntValue("qty"); int qualifiedQty = param.getIntValue("qualified_qty"); int unqualifiedQty = param.getIntValue("unqualified_qty"); - int weightG = param.getIntValue("weight"); - double weightKG = weightG / 1000.00; + int weightKG = param.getIntValue("weight"); int avgPieceWeightG = param.getIntValue("avg_piece_weight"); double avgPieceWeightKG = avgPieceWeightG / 1000.00; @@ -881,4 +945,224 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { result.put("message", "反馈成功!"); return result; } + + @Override + public JSONObject fjPalletizationCompleted(JSONObject param) { + String point_code = param.getString("device_code"); // 对接位 + if (StrUtil.isBlank(point_code)) { + throw new BadRequestException("点位不能为空!"); + } + int qty = param.getIntValue("qty"); + if (0 == qty) { + throw new BadRequestException("数量不能为空!"); + } + String is_full = param.getString("is_full"); + if (StrUtil.isBlank(is_full)) { + throw new BadRequestException("是否满垛不能为空!"); + } + + JSONObject point = WQLObject + .getWQLObject("sch_base_point") + .query("is_used = '1' AND point_code = '" + point_code + "'") + .uniqueResult(0); + if (ObjectUtil.isEmpty(point)) { + throw new BadRequestException("[" + point_code + "] 已删除或未启用!"); + } + TaskUtils.isLocked(point); + JSONObject workOrder = TaskUtils.hasWorkOrder(point); + WQLObject vdTable = WQLObject.getWQLObject("st_ivt_vehicle_detail"); + + String vdId = point.getString("vd_id"); + if (StrUtil.isBlank(vdId)) { + // 新托盘 + JSONObject vd = new JSONObject(); + vd.put("vd_id", IdUtil.getSnowflake(1, 1).nextId()); + vd.put("vehicle_type", workOrder.getString("vehicle_type")); + vd.put("vehicle_code", CodeUtil.getNewCode("WOOD_VEHICLE_CODE")); + String materialId = workOrder.getString("material_id"); + vd.put("material_id", materialId); + vd.put("qty", qty); + double dz = vdTable.query("vehicle_type = '2' AND material_id = " + materialId, "create_time DESC").uniqueResult(0).getDoubleValue("dz"); + vd.put("weight", dz * qty); + vd.put("dz", dz); + vd.put("is_full", is_full); + vd.put("workorder_id", workOrder.getString("workorder_id")); + vd.put("point_code", point_code); + vd.put("tray_high", param.get("tray_high")); + vd.put("crib_category", param.get("crib_category")); + vd.put("palletX1_line", param.get("palletX1_line")); + vd.put("palletY1_row", param.get("palletY1_row")); + vd.put("palletA1_angle", param.get("palletA1_angle")); + vd.put("palletX2_line", param.get("palletX2_line")); + vd.put("palletY2_row", param.get("palletY2_row")); + vd.put("palletA2_angle", param.get("palletA2_angle")); + vd.put("palletX3_line", param.get("palletX3_line")); + vd.put("palletY3_row", param.get("palletY3_row")); + vd.put("palletA3_angle", param.get("palletA3_angle")); + vd.put("pressCribX1_line", param.get("pressCribX1_line")); + vd.put("pressCribY1_row", param.get("pressCribY1_row")); + vd.put("pressCribA1_angle", param.get("pressCribA1_angle")); + vd.put("pressCribX2_line", param.get("pressCribX2_line")); + vd.put("pressCribY2_row", param.get("pressCribY2_row")); + vd.put("pressCribA2_angle", param.get("pressCribA2_angle")); + vd.put("pressCribX3_line", param.get("pressCribX3_line")); + vd.put("pressCribY3_row", param.get("pressCribY3_row")); + vd.put("pressCribA3_angle", param.get("pressCribA3_angle")); + vd.put("Zoffset", param.get("Zoffset")); + vd.put("pallet_layerQty", param.get("pallet_layerQty")); + vd.put("pressCrib_layerQty", param.get("pressCrib_layerQty")); + vd.put("codeLayerX1_interval", param.get("codeLayerX1_interval")); + vd.put("codeLayerY1_interval", param.get("codeLayerY1_interval")); + vd.put("codeLayerX2_interval", param.get("codeLayerX2_interval")); + vd.put("codeLayerY2_interval", param.get("codeLayerY2_interval")); + vd.put("codeLayerX3_interval", param.get("codeLayerX3_interval")); + vd.put("codeLayerY3_interval", param.get("codeLayerY3_interval")); + vd.put("codeLayerX1_offset", param.get("codeLayerX1_offset")); + vd.put("codeLayerY1_offset", param.get("codeLayerY1_offset")); + vd.put("codeLayerX2_offset", param.get("codeLayerX2_offset")); + vd.put("codeLayerY2_offset", param.get("codeLayerY2_offset")); + vd.put("codeLayerX3_offset", param.get("codeLayerX3_offset")); + vd.put("codeLayerY3_offset", param.get("codeLayerY3_offset")); + vd.put("pressLayerX1_interval", param.get("pressLayerX1_interval")); + vd.put("pressLayerY1_interval", param.get("pressLayerY1_interval")); + vd.put("pressLayerX2_interval", param.get("pressLayerX2_interval")); + vd.put("pressLayerY2_interval", param.get("pressLayerY2_interval")); + vd.put("pressLayerX3_interval", param.get("pressLayerX3_interval")); + vd.put("pressLayerY3_interval", param.get("pressLayerY3_interval")); + vd.put("pressLayerX1_offset", param.get("pressLayerX1_offset")); + vd.put("pressLayerY1_offset", param.get("pressLayerY1_offset")); + vd.put("pressLayerX2_offset", param.get("pressLayerX2_offset")); + vd.put("pressLayerY2_offset", param.get("pressLayerY2_offset")); + vd.put("pressLayerX3_offset", param.get("pressLayerX3_offset")); + vd.put("pressLayerY3_offset", param.get("pressLayerY3_offset")); + vd.put("tool_coordinate", param.get("tool_coordinate")); + vd.put("create_id", ACSSystem.id); + vd.put("create_name", ACSSystem.nick_name); + vd.put("create_time", DateUtil.now()); + vd.put("is_delete", TrueOrFalse.FALSE.value()); + + vdTable.insert(vd); + // todo 反馈ERP成品入库 + } else { + // 半托 + JSONObject vd = vdTable.query("vd_id = " + vdId).uniqueResult(0); + int qty2 = qty - vd.getIntValue("qty"); + double dz = vd.getDoubleValue("dz"); + vd.put("is_full", is_full); + vd.put("qty2", qty2); + vd.put("weight2", dz * qty2); + vd.put("workorder_id2", workOrder.getString("workorder_id")); + vd.put("point_code", point_code); + vd.put("tray_high", param.get("tray_high")); + vd.put("crib_category", param.get("crib_category")); + vd.put("palletX1_line", param.get("palletX1_line")); + vd.put("palletY1_row", param.get("palletY1_row")); + vd.put("palletA1_angle", param.get("palletA1_angle")); + vd.put("palletX2_line", param.get("palletX2_line")); + vd.put("palletY2_row", param.get("palletY2_row")); + vd.put("palletA2_angle", param.get("palletA2_angle")); + vd.put("palletX3_line", param.get("palletX3_line")); + vd.put("palletY3_row", param.get("palletY3_row")); + vd.put("palletA3_angle", param.get("palletA3_angle")); + vd.put("pressCribX1_line", param.get("pressCribX1_line")); + vd.put("pressCribY1_row", param.get("pressCribY1_row")); + vd.put("pressCribA1_angle", param.get("pressCribA1_angle")); + vd.put("pressCribX2_line", param.get("pressCribX2_line")); + vd.put("pressCribY2_row", param.get("pressCribY2_row")); + vd.put("pressCribA2_angle", param.get("pressCribA2_angle")); + vd.put("pressCribX3_line", param.get("pressCribX3_line")); + vd.put("pressCribY3_row", param.get("pressCribY3_row")); + vd.put("pressCribA3_angle", param.get("pressCribA3_angle")); + vd.put("Zoffset", param.get("Zoffset")); + vd.put("pallet_layerQty", param.get("pallet_layerQty")); + vd.put("pressCrib_layerQty", param.get("pressCrib_layerQty")); + vd.put("codeLayerX1_interval", param.get("codeLayerX1_interval")); + vd.put("codeLayerY1_interval", param.get("codeLayerY1_interval")); + vd.put("codeLayerX2_interval", param.get("codeLayerX2_interval")); + vd.put("codeLayerY2_interval", param.get("codeLayerY2_interval")); + vd.put("codeLayerX3_interval", param.get("codeLayerX3_interval")); + vd.put("codeLayerY3_interval", param.get("codeLayerY3_interval")); + vd.put("codeLayerX1_offset", param.get("codeLayerX1_offset")); + vd.put("codeLayerY1_offset", param.get("codeLayerY1_offset")); + vd.put("codeLayerX2_offset", param.get("codeLayerX2_offset")); + vd.put("codeLayerY2_offset", param.get("codeLayerY2_offset")); + vd.put("codeLayerX3_offset", param.get("codeLayerX3_offset")); + vd.put("codeLayerY3_offset", param.get("codeLayerY3_offset")); + vd.put("pressLayerX1_interval", param.get("pressLayerX1_interval")); + vd.put("pressLayerY1_interval", param.get("pressLayerY1_interval")); + vd.put("pressLayerX2_interval", param.get("pressLayerX2_interval")); + vd.put("pressLayerY2_interval", param.get("pressLayerY2_interval")); + vd.put("pressLayerX3_interval", param.get("pressLayerX3_interval")); + vd.put("pressLayerY3_interval", param.get("pressLayerY3_interval")); + vd.put("pressLayerX1_offset", param.get("pressLayerX1_offset")); + vd.put("pressLayerY1_offset", param.get("pressLayerY1_offset")); + vd.put("pressLayerX2_offset", param.get("pressLayerX2_offset")); + vd.put("pressLayerY2_offset", param.get("pressLayerY2_offset")); + vd.put("pressLayerX3_offset", param.get("pressLayerX3_offset")); + vd.put("pressLayerY3_offset", param.get("pressLayerY3_offset")); + vd.put("tool_coordinate", param.get("tool_coordinate")); + TaskUtils.addACSUpdateColum(vd); + vdTable.update(vd); + } + + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "反馈成功!"); + return result; + } + + @Override + public JSONObject fjCallEmpty(JSONObject param) { + String point_code = param.getString("device_code"); // 对接位 + if (StrUtil.isBlank(point_code)) { + throw new BadRequestException("点位不能为空!"); + } + JSONObject point = WQLObject + .getWQLObject("sch_base_point") + .query("is_used = '1' AND point_code = '" + point_code + "'") + .uniqueResult(0); + if (ObjectUtil.isEmpty(point)) { + throw new BadRequestException("[" + point_code + "] 已删除或未启用!"); + } + TaskUtils.isLocked(point); + JSONObject workOrder = TaskUtils.hasWorkOrder(point); + JSONObject data = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("is_delete = '0' AND if_full = '0' AND vehicle_type = '" + workOrder.getString("vehicle_type") + "' AND material_id = " + workOrder.getString("material_id")).uniqueResult(0); + + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "反馈成功!"); + result.put("data", data); + return result; + } + + @Override + public JSONObject fjNeed(JSONObject param) { + String point_code = param.getString("device_code"); // 对接位 + if (StrUtil.isBlank(point_code)) { + throw new BadRequestException("点位不能为空!"); + } + long vdId = param.getLongValue("vd_id"); + if (vdId == 0) { + throw new BadRequestException("组盘id不能为空!"); + } + WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); + JSONObject point = pointTable + .query("is_used = '1' AND point_code = '" + point_code + "'") + .uniqueResult(0); + if (ObjectUtil.isEmpty(point)) { + throw new BadRequestException("[" + point_code + "] 已删除或未启用!"); + } + JSONObject vd = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("vd_id = " + vdId).uniqueResult(0); + point.put("vehicle_type", vd.getString("vehicle_type")); + point.put("vehicle_code", vd.getString("vehicle_code")); + point.put("vd_id", vdId); + point.put("point_status", PointStatus.HAS_GOODS.value()); + TaskUtils.addACSUpdateColum(point); + pointTable.update(point); + + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "反馈成功!"); + return result; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java index 8f8a0c1..85b406a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -19,7 +19,6 @@ import org.nl.wms.pda.service.PdaService; import org.nl.wms.sch.manage.CreateMode; import org.nl.wms.sch.manage.PointStatus; import org.nl.wms.sch.manage.Region; -import org.nl.wms.sch.task.call.empty.FJCallEmptyTask; import org.nl.wms.sch.task.call.empty.HLCallEmptyTask; import org.nl.wms.sch.task.call.empty.YZCallEmptyTask; import org.nl.wms.sch.task.call.material.FJCallMaterialTask; @@ -57,8 +56,6 @@ public class PdaServiceImpl implements PdaService { private final YZCallEmptyTask yzCallEmptyTask; - private final FJCallEmptyTask fjCallEmptyTask; - private final WmsToAcsService wmsToAcsService; @Override @@ -514,11 +511,6 @@ public class PdaServiceImpl implements PdaService { method_param.put("workorder", workorder); yzCallEmptyTask.createTask(method_param); break; - case FJ: - workorder = TaskUtils.hasWorkOrder(point); - method_param.put("workorder", workorder); - fjCallEmptyTask.createTask(method_param); - break; default: throw new BadRequestException("[" + region.label() + "] 不能发起叫空任务!"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rest/WorkorderController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rest/WorkorderController.java index 2873ed2..f8c2921 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rest/WorkorderController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rest/WorkorderController.java @@ -158,4 +158,13 @@ public class WorkorderController { workordeService.downloadExcel(params, response); } + @PostMapping("/synchronize") + @Log("同步工单") + @ApiOperation("同步工单") + //@SaCheckPermission("materialtype:list") + public ResponseEntity synchronize() { + workordeService.synchronize(); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/WorkordeService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/WorkordeService.java index 118d0de..03f931c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/WorkordeService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/WorkordeService.java @@ -128,4 +128,6 @@ public interface WorkordeService { void downloadExcel(Map params, HttpServletResponse response); void reportWorkOrderDaily(long workOrderId, int qty, int qualifiedQty, int unqualifiedQty, double weight, double avgPieceWeight); + + void synchronize(); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java index 6a5b57d..93e7ab5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java @@ -118,4 +118,8 @@ public class WorkorderDto implements Serializable { private BigDecimal real_weight; private BigDecimal avg_piece_weight; + private BigDecimal dz; + + private String gg; + private String kh; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkorderServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkorderServiceImpl.java index e73c8b1..62d3d07 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkorderServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkorderServiceImpl.java @@ -16,9 +16,12 @@ import org.nl.modules.common.utils.FileUtil; import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.ResultBean; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.basedata.eum.TrueOrFalse; +import org.nl.wms.basedata.eum.VehicleType; +import org.nl.wms.basedata.service.MaterialbaseService; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.pdm.service.WorkordeService; import org.nl.wms.pdm.service.dto.WorkorderDto; @@ -51,6 +54,8 @@ public class WorkorderServiceImpl implements WorkordeService { private final WmsToAcsService wmsToAcsService; + private final MaterialbaseService materialbaseService; + @Override public Map queryAll(Map whereJson, Pageable page) { String produceorder_code = MapUtil.getStr(whereJson, "produceorder_code"); @@ -135,6 +140,9 @@ public class WorkorderServiceImpl implements WorkordeService { work_order.put("is_delete", TrueOrFalse.FALSE.value()); work_order.put("plan_date", dto.getPlan_date()); work_order.put("plan_weight", dto.getPlan_weight()); + work_order.put("dz", dto.getDz()); + work_order.put("gg", dto.getGg()); + work_order.put("kh", dto.getKh()); Long user_id = SecurityUtils.getCurrentUserId(); String nick_name = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); @@ -206,14 +214,6 @@ public class WorkorderServiceImpl implements WorkordeService { if (orderStatus == 5) { throw new BadRequestException("工单已完成!"); } - int product_code = submit_obj.getIntValue("product_code"); - int a = submit_obj.getIntValue("a"); - int b = submit_obj.getIntValue("b"); - int h = submit_obj.getIntValue("h"); - int w = submit_obj.getIntValue("w"); - if (product_code == 0 || a == 0 || b == 0 || h == 0 || w == 0) { - throw new BadRequestException("工单所生产物料的砖型参数未正确配置!"); - } JSONObject workorder = WQLObject .getWQLObject("pdm_bd_workorder") @@ -226,11 +226,20 @@ public class WorkorderServiceImpl implements WorkordeService { if (Region.HL.value().equals(submit_obj.getString("region_code"))) { JSONObject order_update = new JSONObject(); order_update.put("order_status", WorkOrderEnum.ORDER_STATUS_PRODUCING.value()); + order_update.put("realproducestart_date", DateUtil.now()); TaskUtils.addCurrentUpdateColum(order_update); WQLObject .getWQLObject("pdm_bd_workorder") .update(order_update, "workorder_id = " + workorder_id); } else { + int product_code = submit_obj.getIntValue("product_code"); + int a = submit_obj.getIntValue("a"); + int b = submit_obj.getIntValue("b"); + int h = submit_obj.getIntValue("h"); + int w = submit_obj.getIntValue("w"); + if (product_code == 0 || a == 0 || b == 0 || h == 0 || w == 0) { + throw new BadRequestException("工单所生产物料的砖型参数未正确配置!"); + } JSONArray request = new JSONArray(); request.add(submit_obj); @@ -591,4 +600,54 @@ public class WorkorderServiceImpl implements WorkordeService { } } + + @Transactional(rollbackFor = Exception.class) + @Override + public void synchronize() { + materialbaseService.synchronize(); + JSONArray data = WQL + .getWO("MPS_PRODUCEDURE001") + .setDbname("dataSource1") + .addParam("flag", "8") + .process() + .getResultJSONArray(0); + + JSONObject workOrder = new JSONObject(); + TaskUtils.addCurrentCreateColum(workOrder); + WQLObject workOrderTable = WQLObject.getWQLObject("pdm_bd_workorder"); + WQLObject materialTable = WQLObject.getWQLObject("md_me_materialbase"); + WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); + for (int i = 0; i < data.size(); i++) { + JSONObject datum = data.getJSONObject(i); + String plansid = datum.getString("plansid"); + JSONObject oldWorkOrder = workOrderTable.query("ext_code = '" + plansid + "'").uniqueResult(0); + String cinvcode = datum.getString("cinvcode"); + JSONObject material = materialTable.query("material_number = '" + cinvcode + "'").uniqueResult(0); + String sbh = datum.getString("sbh"); + JSONObject device = deviceTable.query("is_workorder = '1' AND device_code = '" + sbh + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(oldWorkOrder) && ObjectUtil.isNotEmpty(material) && ObjectUtil.isNotEmpty(device)) { + if ("HL".equals(device.getString("region_code"))) { + workOrder.put("vehicle_type", VehicleType.CUP.value()); + } else if ("YZ".equals(device.getString("region_code"))) { + workOrder.put("vehicle_type", VehicleType.STEEL_TRAY.value()); + workOrder.put("is_pri", TrueOrFalse.FALSE.value()); + } else { + continue; + } + workOrder.put("workorder_id", IdUtil.getSnowflake().nextId()); + workOrder.put("workorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); + workOrder.put("plan_qty", datum.getDoubleValue("ks")); + workOrder.put("plan_weight", datum.getDoubleValue("ds") * 1000); + workOrder.put("material_id", material.getString("material_id")); + workOrder.put("device_id", device.getString("device_id")); + workOrder.put("device_code", device.getString("device_code")); + workOrder.put("order_status", WorkOrderEnum.ORDER_STATUS_UNPRODUCED.value()); + workOrder.put("ext_code", plansid); + workOrder.put("dz", datum.getDoubleValue("dz") * 1000); + workOrder.put("gg", datum.getString("cinvstd")); + workOrder.put("kh", datum.getString("ccusname")); + workOrderTable.insert(workOrder); + } + } + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/MPS_PRODUCEDURE001.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/MPS_PRODUCEDURE001.wql index ccf1f58..57a9fcf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/MPS_PRODUCEDURE001.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/MPS_PRODUCEDURE001.wql @@ -247,3 +247,15 @@ ENDSELECT ENDQUERY ENDIF + + IF 输入.flag = "8" + QUERY + SELECT + * + FROM + dbo.EFV_MO_ORDERPLAN + WHERE + ( LEFT ( cinvcode, 1 ) = 'W' OR LEFT ( cinvcode, 3 ) = '902' ) + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/FJCallEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/FJCallEmptyTask.java deleted file mode 100644 index 3f9ef75..0000000 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/FJCallEmptyTask.java +++ /dev/null @@ -1,250 +0,0 @@ -package org.nl.wms.sch.task.call.empty; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.wql.WQL; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.wms.basedata.eum.TrueOrFalse; -import org.nl.wms.sch.manage.*; -import org.nl.wms.sch.task.util.TaskUtils; -import org.springframework.stereotype.Component; - -/** - * @author zhangjiangwei - */ -@RequiredArgsConstructor -@Component -public class FJCallEmptyTask extends AbstractAcsTask { - - @Override - public void updateTaskStatus(JSONObject task, String status) { - if (TaskStatus.EXECUTING.value().equals(status)) { - task.put("task_status", TaskStatus.EXECUTING.value()); - TaskUtils.addACSUpdateColum(task); - WQLObject.getWQLObject("sch_base_task").update(task); - } else if (TaskStatus.FINISHED.value().equals(status)) { - this.finishTask(task, OperationType.AUTO); - } else if (TaskStatus.CANCELLED.value().equals(status)) { - this.cancelTask(task, OperationType.AUTO); - } - } - - @Override - public String createTask(JSONObject form) { - JSONObject point = form.getJSONObject("point"); - JSONObject work_order = form.getJSONObject("workorder"); - - JSONObject task = TaskUtils.buildTask( - "分拣区叫空", - TaskType.CALL_EMPTY.value(), - TaskStatus.SURE_END.value(), - null, - point.getString("point_code"), - null, - work_order.getString("material_id"), - work_order.getString("vehicle_type"), - null, - TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 100 : 1, - FJCallEmptyTask.class.getName(), - form.getString("create_mode"), - form.getString("request_param"), - form.getString("create_id"), - form.getString("create_name") - ); - WQLObject.getWQLObject("sch_base_task").insert(task); - - point.put("lock_type", LockType.TASK_LOCKED.value()); - point.put("task_code", task.getString("task_code")); - TaskUtils.addFormUpdateColum(point, form); - WQLObject.getWQLObject("sch_base_point").update(point); - - return task.getString("task_code"); - } - - @Override - public void findStartPoint() { - WQLObject task_table = WQLObject.getWQLObject("sch_base_task"); - JSONArray tasks = task_table - .query("is_delete = '0' AND task_status = '" + TaskStatus.SURE_END.value() + "' AND handle_class = '" + FJCallEmptyTask.class.getName() + "'", "priority DESC, create_time ASC") - .getResultJSONArray(0); - - if (ObjectUtil.isNotEmpty(tasks)) { - WQLObject point_table = WQLObject.getWQLObject("sch_base_point"); - - for (int i = 0; i < tasks.size(); i++) { - JSONObject task = tasks.getJSONObject(i); - - JSONObject bthc_point = WQL - .getWO("CALL_EMPTY_TASK") - .addParam("flag", "6") - .addParam("vehicle_type", task.getString("vehicle_type")) - .addParam("material_id", task.getString("material_id")) - .addParam("point_code", task.getString("point_code2")) - .process() - .uniqueResult(0); - if (ObjectUtil.isNotEmpty(bthc_point)) { - task.put("task_status", TaskStatus.START_AND_END.value()); - task.put("point_code1", bthc_point.getString("device_code")); - task.put("vehicle_code", TaskUtils.formatVehicleCode(bthc_point.getString("vehicle_code"))); - task.put("group_id", bthc_point.getLongValue("vd_id")); - task.put("remark", ""); - TaskUtils.addAutoUpdateColum(task); - task_table.update(task); - - JSONObject update_point = new JSONObject(); - update_point.put("lock_type", LockType.TASK_LOCKED.value()); - update_point.put("task_code", task.getString("task_code")); - TaskUtils.addAutoUpdateColum(update_point); - point_table.update(update_point, "point_code = '" + bthc_point.getString("device_code") + "'"); - } else { - - JSONObject point = WQL - .getWO("CALL_EMPTY_TASK") - .addParam("flag", "4") - .addParam("vehicle_type", task.getString("vehicle_type")) - .process() - .uniqueResult(0); - - if (ObjectUtil.isNotEmpty(point)) { - - task.put("task_status", TaskStatus.START_AND_END.value()); - task.put("point_code1", point.getString("device_code")); - task.put("vehicle_code", TaskUtils.formatVehicleCode(point.getString("vehicle_code"))); - task.put("material_id", ""); - task.put("remark", ""); - TaskUtils.addAutoUpdateColum(task); - task_table.update(task); - - JSONObject update_point = new JSONObject(); - update_point.put("lock_type", LockType.TASK_LOCKED.value()); - update_point.put("task_code", task.getString("task_code")); - TaskUtils.addAutoUpdateColum(update_point); - point_table.update(update_point, "point_code = '" + point.getString("device_code") + "'"); - } - } - } - } - } - - @Override - public void forceFinish(String task_id) { - JSONObject task = WQLObject.getWQLObject("sch_base_task").query("task_id = " + task_id).uniqueResult(0); - if (ObjectUtil.isEmpty(task)) { - throw new BadRequestException("未找到任务!"); - } - this.finishTask(task, OperationType.MANUAL); - } - - - @Override - public void cancel(String task_id) { - JSONObject task = WQLObject.getWQLObject("sch_base_task").query("task_id = " + task_id).uniqueResult(0); - if (ObjectUtil.isEmpty(task)) { - throw new BadRequestException("未找到任务!"); - } - this.cancelTask(task, OperationType.MANUAL); - } - - public void cancelTask(JSONObject task, OperationType operation_type) { - if (task.getIntValue("task_status") < Integer.parseInt(TaskStatus.FINISHED.value())) { - task.put("task_status", TaskStatus.CANCELLED.value()); - if (operation_type == OperationType.AUTO) { - TaskUtils.addACSUpdateColum(task); - } else if (operation_type == OperationType.MANUAL) { - TaskUtils.addCurrentUpdateColum(task); - } - WQLObject.getWQLObject("sch_base_task").update(task); - - WQLObject point_table = WQLObject.getWQLObject("sch_base_point"); - - String point_code1 = task.getString("point_code1"); - if (StrUtil.isNotBlank(point_code1)) { - JSONObject point1 = point_table.query("point_code = '" + point_code1 + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(point1) - && LockType.TASK_LOCKED.value().equals(point1.getString("lock_type")) - && task.getString("task_code").equals(point1.getString("task_code"))) { - point1.put("lock_type", LockType.UNLOCKED.value()); - point1.put("task_code", ""); - if (operation_type == OperationType.AUTO) { - TaskUtils.addACSUpdateColum(point1); - } else if (operation_type == OperationType.MANUAL) { - TaskUtils.addCurrentUpdateColum(point1); - } - point_table.update(point1); - } - } - - String point_code2 = task.getString("point_code2"); - if (StrUtil.isNotBlank(point_code2)) { - JSONObject point2 = new JSONObject(); - point2.put("lock_type", LockType.UNLOCKED.value()); - point2.put("task_code", ""); - if (operation_type == OperationType.AUTO) { - TaskUtils.addACSUpdateColum(point2); - } else if (operation_type == OperationType.MANUAL) { - TaskUtils.addCurrentUpdateColum(point2); - } - point_table.update(point2, "point_code = '" + point_code2 + "'"); - } - } - } - - public void finishTask(JSONObject task, OperationType operation_type) { - int current_task_status = task.getIntValue("task_status"); - if (current_task_status < Integer.parseInt(TaskStatus.FINISHED.value())) { - if (operation_type == OperationType.MANUAL - && current_task_status < Integer.parseInt(TaskStatus.START_AND_END.value())) { - throw new BadRequestException("只能手动完成 [确认起点和终点] 之后的任务!"); - } - - task.put("task_status", TaskStatus.FINISHED.value()); - if (operation_type == OperationType.AUTO) { - TaskUtils.addACSUpdateColum(task); - } else if (operation_type == OperationType.MANUAL) { - TaskUtils.addCurrentUpdateColum(task); - } - WQLObject.getWQLObject("sch_base_task").update(task); - - WQLObject point_table = WQLObject.getWQLObject("sch_base_point"); - - String point_code1 = task.getString("point_code1"); - if (StrUtil.isNotBlank(point_code1)) { - JSONObject point1 = point_table.query("point_code = '" + point_code1 + "'").uniqueResult(0); - if (LockType.TASK_LOCKED.value().equals(point1.getString("lock_type")) - && task.getString("task_code").equals(point1.getString("task_code"))) { - point1.put("lock_type", LockType.UNLOCKED.value()); - point1.put("task_code", ""); - point1.put("vehicle_type", ""); - point1.put("vehicle_code", ""); - point1.put("point_status", PointStatus.EMPTY.value()); - if (operation_type == OperationType.AUTO) { - TaskUtils.addACSUpdateColum(point1); - } else if (operation_type == OperationType.MANUAL) { - TaskUtils.addCurrentUpdateColum(point1); - } - point_table.update(point1); - } - } - - String point_code2 = task.getString("point_code2"); - if (StrUtil.isNotBlank(point_code2)) { - JSONObject point2 = new JSONObject(); - point2.put("lock_type", LockType.UNLOCKED.value()); - point2.put("task_code", ""); - point2.put("vehicle_type", task.getString("vehicle_type")); - point2.put("vehicle_code", task.getString("vehicle_code")); - point2.put("point_status", PointStatus.EMPTY_VEHICLE.value()); - if (operation_type == OperationType.AUTO) { - TaskUtils.addACSUpdateColum(point2); - } else if (operation_type == OperationType.MANUAL) { - TaskUtils.addCurrentUpdateColum(point2); - } - point_table.update(point2, "point_code = '" + point_code2 + "'"); - } - } - } -} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/GTKCallEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/GTKCallEmptyTask.java index ab567ac..589998d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/GTKCallEmptyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/GTKCallEmptyTask.java @@ -76,7 +76,7 @@ public class GTKCallEmptyTask extends AbstractAcsTask { JSONObject point = WQL .getWO("CALL_EMPTY_TASK") - .addParam("flag", "3") + .addParam("flag", "4") .process() .uniqueResult(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/HLCallEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/HLCallEmptyTask.java index d285262..fda87bc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/HLCallEmptyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/HLCallEmptyTask.java @@ -87,7 +87,7 @@ public class HLCallEmptyTask extends AbstractAcsTask { JSONObject point = WQL .getWO("CALL_EMPTY_TASK") - .addParam("flag", "5") + .addParam("flag", "3") .process() .uniqueResult(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/YZCallEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/YZCallEmptyTask.java index 26edb74..513aa31 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/YZCallEmptyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/YZCallEmptyTask.java @@ -88,32 +88,32 @@ public class YZCallEmptyTask extends AbstractAcsTask { JSONObject task = tasks.getJSONObject(i); JSONObject point = null; - String material_id = task.getString("material_id"); - if (StrUtil.isNotBlank(material_id)) { - point = WQL - .getWO("CALL_EMPTY_TASK") - .addParam("flag", "2") - .addParam("point_code", task.getString("point_code2")) - .addParam("material_id", material_id) - .process() - .uniqueResult(0); - - if (ObjectUtil.isNotEmpty(point)) { - task.put("task_status", TaskStatus.START_AND_END.value()); - task.put("point_code1", point.getString("point_code")); - task.put("vehicle_type", VehicleType.STEEL_TRAY.value()); - task.put("vehicle_code", TaskUtils.formatVehicleCode(point.getString("vehicle_code"))); - task.put("group_id", point.getLongValue("vd_id")); - task.put("remark", ""); - TaskUtils.addAutoUpdateColum(task); - task_table.update(task); - - point.put("lock_type", LockType.TASK_LOCKED.value()); - point.put("task_code", task.getString("task_code")); - TaskUtils.addAutoUpdateColum(point); - point_table.update(point); - } - } +// String material_id = task.getString("material_id"); +// if (StrUtil.isNotBlank(material_id)) { +// point = WQL +// .getWO("CALL_EMPTY_TASK") +// .addParam("flag", "2") +// .addParam("point_code", task.getString("point_code2")) +// .addParam("material_id", material_id) +// .process() +// .uniqueResult(0); +// +// if (ObjectUtil.isNotEmpty(point)) { +// task.put("task_status", TaskStatus.START_AND_END.value()); +// task.put("point_code1", point.getString("point_code")); +// task.put("vehicle_type", VehicleType.STEEL_TRAY.value()); +// task.put("vehicle_code", TaskUtils.formatVehicleCode(point.getString("vehicle_code"))); +// task.put("group_id", point.getLongValue("vd_id")); +// task.put("remark", ""); +// TaskUtils.addAutoUpdateColum(task); +// task_table.update(task); +// +// point.put("lock_type", LockType.TASK_LOCKED.value()); +// point.put("task_code", task.getString("task_code")); +// TaskUtils.addAutoUpdateColum(point); +// point_table.update(point); +// } +// } if (ObjectUtil.isEmpty(point)) { point = WQL .getWO("CALL_EMPTY_TASK") @@ -250,8 +250,13 @@ public class YZCallEmptyTask extends AbstractAcsTask { point2.put("task_code", ""); point2.put("vehicle_type", task.getString("vehicle_type")); point2.put("vehicle_code", task.getString("vehicle_code")); - point2.put("vd_id", task.getString("group_id")); - point2.put("point_status", PointStatus.EMPTY_VEHICLE.value()); + String groupId = task.getString("group_id"); + point2.put("vd_id", groupId); + if (StrUtil.isBlank(groupId)) { + point2.put("point_status", PointStatus.EMPTY_VEHICLE.value()); + } else { + point2.put("point_status", PointStatus.HAS_GOODS.value()); + } if (operation_type == OperationType.AUTO) { TaskUtils.addACSUpdateColum(point2); } else if (operation_type == OperationType.MANUAL) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/wql/CALL_EMPTY_TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/wql/CALL_EMPTY_TASK.wql index a2bbeeb..4ea097e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/wql/CALL_EMPTY_TASK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/wql/CALL_EMPTY_TASK.wql @@ -64,6 +64,10 @@ WHERE p.is_used = '1' AND p.lock_type = '1' + AND p.region_code = 'YQHJ' + AND p.point_type = '1' + AND p.point_status = '3' + AND p.vehicle_type = '2' AND vd.is_delete = '0' AND vd.is_full = '0' AND vd.point_code = 输入.point_code @@ -71,3 +75,35 @@ ENDSELECT ENDQUERY ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + p.* + FROM + sch_base_point p + WHERE + p.is_used = '1' + AND p.lock_type = '1' + AND p.region_code = 'KLHJ' + AND p.point_type = '1' + AND p.point_status = '2' + AND p.vehicle_type = '1' + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "4" + QUERY + SELECT + * + FROM + sch_base_point + WHERE + is_used = '1' + AND lock_type = '1' + AND region_code = 'GTK' + AND point_type = '4' + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/FJCallMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/FJCallMaterialTask.java index 78cb158..5c4547f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/FJCallMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/FJCallMaterialTask.java @@ -75,7 +75,6 @@ public class FJCallMaterialTask extends AbstractAcsTask { task.put("task_status", TaskStatus.START_AND_END.value()); task.put("point_code1", point1.getString("point_code")); task.put("vehicle_code", TaskUtils.formatVehicleCode(point1.getString("vehicle_code"))); - task.put("material_id", point1.getString("material_id")); task.put("group_id", point1.getString("vd_id")); task.put("remark", ""); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/GZCallMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/GZCallMaterialTask.java index f4444b2..1e2b829 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/GZCallMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/GZCallMaterialTask.java @@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.wms.basedata.eum.TrueOrFalse; import org.nl.wms.basedata.eum.VehicleType; import org.nl.wms.sch.manage.*; import org.nl.wms.sch.task.util.TaskUtils; @@ -75,6 +76,9 @@ public class GZCallMaterialTask extends AbstractAcsTask { task.put("vehicle_code", TaskUtils.formatVehicleCode(point1.getString("vehicle_code"))); task.put("group_id", point1.getString("vd_id")); task.put("remark", ""); + if (TrueOrFalse.TRUE.value().equals(point1.getString("is_urgent"))) { + task.put("priority", 100); + } JSONObject point_update = new JSONObject(); point_update.put("lock_type", LockType.TASK_LOCKED.value()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/YZCallMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/YZCallMaterialTask.java index 76fd42a..a0b5572 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/YZCallMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/YZCallMaterialTask.java @@ -59,14 +59,48 @@ public class YZCallMaterialTask extends AbstractAcsTask { form.getString("create_id"), form.getString("create_name") ); - WQLObject.getWQLObject("sch_base_task").insert(task); - point.put("lock_type", LockType.TASK_LOCKED.value()); - point.put("task_code", task.getString("task_code")); - TaskUtils.addFormUpdateColum(point, form); - WQLObject.getWQLObject("sch_base_point").update(point); + JSONObject point1 = WQL + .getWO("CALL_MATERIAL_TASK") + .addParam("flag", "3") + .addParam("material_id", task.getString("material_id")) + .addParam("device_code", workorder.getString("device_code")) + .process() + .uniqueResult(0); + if (ObjectUtil.isEmpty(point1)) { + point1 = WQL + .getWO("CALL_MATERIAL_TASK") + .addParam("flag", "4") + .addParam("material_id", task.getString("material_id")) + .process() + .uniqueResult(0); + } - return task.getString("task_code"); + if (ObjectUtil.isNotEmpty(point1)) { + point.put("lock_type", LockType.TASK_LOCKED.value()); + point.put("task_code", task.getString("task_code")); + TaskUtils.addFormUpdateColum(point, form); + WQLObject point_table = WQLObject.getWQLObject("sch_base_point"); + point_table.update(point); + + task.put("task_status", TaskStatus.START_AND_END.value()); + task.put("point_code1", point1.getString("point_code")); + task.put("vehicle_code", TaskUtils.formatVehicleCode(point1.getString("vehicle_code"))); + task.put("group_id", point1.getString("vd_id")); + task.put("remark", ""); + + JSONObject point_update = new JSONObject(); + point_update.put("lock_type", LockType.TASK_LOCKED.value()); + point_update.put("task_code", task.getString("task_code")); + TaskUtils.addFormUpdateColum(point_update, form); + point_table.update(point_update, "point_id = " + point1.getLongValue("point_id")); + + WQLObject.getWQLObject("sch_base_task").insert(task); + + return task.getString("task_code"); + } else { + throw new BadRequestException("[" + point.get("point_code") + "] 的叫料任务未找到起点!"); + } } @@ -82,36 +116,7 @@ public class YZCallMaterialTask extends AbstractAcsTask { for (int i = 0; i < tasks.size(); i++) { JSONObject task = tasks.getJSONObject(i); - WO wo = WQL - .getWO("CALL_MATERIAL_TASK") - .addParam("flag", "4") - .addParam("material_id", task.getString("material_id")); - JSONObject point2 = point_table.query("point_code = '" + task.getString("point_code2") + "'").uniqueResult(0); - if ("2".equals(point2.getString("point_type"))) { - wo.addParam("is_new", TrueOrFalse.TRUE.value()); - } else if ("3".equals(point2.getString("point_type"))) { - wo.addParam("is_new", TrueOrFalse.FALSE.value()); - } - - JSONObject point = wo.process().uniqueResult(0); - - if (ObjectUtil.isNotEmpty(point)) { - task.put("task_status", TaskStatus.START_AND_END.value()); - task.put("point_code1", point.getString("point_code")); - task.put("vehicle_code", TaskUtils.formatVehicleCode(point.getString("vehicle_code"))); - task.put("group_id", point.getString("vd_id")); - task.put("material_id", point.getString("material_id")); - task.put("remark", ""); - TaskUtils.addAutoUpdateColum(task); - task_table.update(task); - - JSONObject point_update = new JSONObject(); - point_update.put("lock_type", LockType.TASK_LOCKED.value()); - point_update.put("task_code", task.getString("task_code")); - TaskUtils.addAutoUpdateColum(point_update); - point_table.update(point_update, "point_id = " + point.getLongValue("point_id")); - } } } } @@ -209,6 +214,7 @@ public class YZCallMaterialTask extends AbstractAcsTask { point1.put("task_code", ""); point1.put("vehicle_type", ""); point1.put("vehicle_code", ""); + point1.put("vd_id", null); point1.put("point_status", PointStatus.EMPTY.value()); if (operation_type == OperationType.AUTO) { TaskUtils.addACSUpdateColum(point1); @@ -226,6 +232,7 @@ public class YZCallMaterialTask extends AbstractAcsTask { point2.put("task_code", ""); point2.put("vehicle_type", task.getString("vehicle_type")); point2.put("vehicle_code", task.getString("vehicle_code")); + point2.put("vd_id", task.getString("group_id")); point2.put("point_status", PointStatus.HAS_GOODS.value()); if (operation_type == OperationType.AUTO) { TaskUtils.addACSUpdateColum(point2); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/wql/CALL_MATERIAL_TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/wql/CALL_MATERIAL_TASK.wql index 7eadb6c..8592671 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/wql/CALL_MATERIAL_TASK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/material/wql/CALL_MATERIAL_TASK.wql @@ -15,7 +15,7 @@ ################################################# 输入.flag TYPEAS s_string 输入.material_id TYPEAS f_string - 输入.is_new TYPEAS s_string + 输入.device_code TYPEAS s_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -81,8 +81,8 @@ AND p.vehicle_type = '2' AND vd.material_id = 输入.material_id ORDER BY - wo.is_pri DESC, wo.is_urgent DESC, + wo.is_pri DESC, vd.create_time ASC ENDSELECT ENDQUERY @@ -91,25 +91,23 @@ IF 输入.flag = "3" QUERY SELECT - point.*, - vd.material_id, - vd.vd_id + p.* FROM - sch_base_point point - JOIN st_ivt_vehicle_detail vd ON point.vehicle_type = vd.vehicle_type - AND point.vehicle_code = vd.vehicle_code - AND vd.is_delete = '0' - LEFT JOIN pdm_bd_workorder workorder ON vd.workorder_id = workorder.workorder_id + sch_base_point p + LEFT JOIN st_ivt_vehicle_detail vd ON p.vd_id = vd.vd_id + LEFT JOIN pdm_bd_workorder wo ON vd.workorder_id = wo.workorder_id WHERE - point.is_used = '1' - AND point.lock_type = '1' - AND point.region_code = 'BCPHJ' - AND point.point_status = '1' - AND point.vehicle_type = '2' - AND vd.is_fire = '1' + p.is_used = '1' + AND p.lock_type = '1' + AND p.region_code = 'KLHJ' + AND p.point_type = '3' + AND p.point_status = '3' + AND p.device_code = 输入.device_code + AND p.vehicle_type = '1' AND vd.material_id = 输入.material_id ORDER BY - workorder.is_urgent DESC, vd.create_time ASC + wo.is_pri DESC, + vd.create_time ASC ENDSELECT ENDQUERY ENDIF @@ -117,30 +115,22 @@ IF 输入.flag = "4" QUERY SELECT - point.*, - mb1.material_id, - vd.vd_id + p.* FROM - sch_base_point point - LEFT JOIN st_ivt_vehicle_detail vd ON point.vehicle_type = vd.vehicle_type - AND point.vehicle_code = vd.vehicle_code - AND vd.is_delete = '0' - LEFT JOIN md_me_materialbase mb1 ON vd.material_id = mb1.material_id - LEFT JOIN pdm_bd_workorder workorder ON vd.workorder_id = workorder.workorder_id + sch_base_point p + LEFT JOIN st_ivt_vehicle_detail vd ON p.vd_id = vd.vd_id + LEFT JOIN pdm_bd_workorder wo ON vd.workorder_id = wo.workorder_id WHERE - point.is_used = '1' - AND point.lock_type = '1' - AND point.region_code = 'KLHJ' - AND point.point_type = '1' - AND point.point_status = '1' - AND point.vehicle_type = '1' - AND mb1.material_id = 输入.material_id - AND vd.stand_status IN ('3', '4') - OPTION 输入.is_new <> "" - workorder.is_new = 输入.is_new - ENDOPTION + p.is_used = '1' + AND p.lock_type = '1' + AND p.region_code = 'KLHJ' + AND p.point_type = '1' + AND p.point_status = '3' + AND p.vehicle_type = '1' + AND vd.material_id = 输入.material_id ORDER BY - vd.create_time ASC + wo.is_pri DESC, + vd.create_time ASC ENDSELECT ENDQUERY ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/FJSendEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/FJSendEmptyTask.java index 0614f3f..dd476b1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/FJSendEmptyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/FJSendEmptyTask.java @@ -54,7 +54,7 @@ public class FJSendEmptyTask extends AbstractAcsTask { null, null, VehicleType.STEEL_TRAY.value(), - form.getString("vehicle_code"), + point.getString("vehicle_code"), priority, FJSendEmptyTask.class.getName(), form.getString("create_mode"), @@ -80,14 +80,12 @@ public class FJSendEmptyTask extends AbstractAcsTask { .query("is_delete = '0' AND task_status = '" + TaskStatus.SURE_START.value() + "' AND handle_class = '" + FJSendEmptyTask.class.getName() + "'", "priority DESC, create_time ASC") .getResultJSONArray(0); if (ObjectUtil.isNotEmpty(tasks)) { - WQLObject point_table = WQLObject.getWQLObject("sch_base_point"); - for (int i = 0; i < tasks.size(); i++) { JSONObject task = tasks.getJSONObject(i); JSONObject point = WQL .getWO("SEND_EMPTY_TASK") - .addParam("flag", "1") + .addParam("flag", "2") .process() .uniqueResult(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/YZSendEmptyTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/YZSendEmptyTask.java index b4cb579..bbbcc94 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/YZSendEmptyTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/YZSendEmptyTask.java @@ -9,6 +9,7 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.basedata.eum.TrueOrFalse; +import org.nl.wms.basedata.eum.VehicleType; import org.nl.wms.sch.manage.*; import org.nl.wms.sch.task.util.TaskUtils; import org.springframework.stereotype.Component; @@ -43,10 +44,8 @@ public class YZSendEmptyTask extends AbstractAcsTask { if (ObjectUtil.isNotEmpty(work_order)) { priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 100 : 1; } - if (Region.KLHJ.value().equals(point.getString("region_code"))) { - priority++; - } + String vehicleCode = TaskUtils.formatVehicleCode(point.getString("vehicle_code")); JSONObject task = TaskUtils.buildTask( "压制区送空", TaskType.SEND_EMPTY.value(), @@ -55,8 +54,8 @@ public class YZSendEmptyTask extends AbstractAcsTask { null, null, null, - point.getString("vehicle_type"), - point.getString("vehicle_code"), + VehicleType.CUP.value(), + vehicleCode, priority, YZSendEmptyTask.class.getName(), form.getString("create_mode"), @@ -68,9 +67,16 @@ public class YZSendEmptyTask extends AbstractAcsTask { point.put("lock_type", LockType.TASK_LOCKED.value()); point.put("task_code", task.getString("task_code")); + point.put("vd_id", null); + point.put("point_status", PointStatus.EMPTY_VEHICLE.value()); TaskUtils.addFormUpdateColum(point, form); WQLObject.getWQLObject("sch_base_point").update(point); + JSONObject vdUpdate = new JSONObject(); + vdUpdate.put("is_delete", TrueOrFalse.TRUE.value()); + TaskUtils.addFormUpdateColum(vdUpdate, form); + WQLObject.getWQLObject("st_ivt_vehicle_detail").update(vdUpdate, "vehicle_type = '1' AND vehicle_code = '" + vehicleCode + "'"); + return task.getString("task_code"); } @@ -89,7 +95,7 @@ public class YZSendEmptyTask extends AbstractAcsTask { JSONObject point = WQL .getWO("SEND_EMPTY_TASK") - .addParam("flag", "2") + .addParam("flag", "1") .process() .uniqueResult(0); @@ -202,6 +208,7 @@ public class YZSendEmptyTask extends AbstractAcsTask { point1.put("task_code", ""); point1.put("vehicle_type", ""); point1.put("vehicle_code", ""); + point1.put("vd_id", null); point1.put("point_status", PointStatus.EMPTY.value()); if (operation_type == OperationType.AUTO) { TaskUtils.addACSUpdateColum(point1); @@ -219,6 +226,7 @@ public class YZSendEmptyTask extends AbstractAcsTask { point2.put("task_code", ""); point2.put("vehicle_type", task.getString("vehicle_type")); point2.put("vehicle_code", task.getString("vehicle_code")); + point2.put("vd_id", null); point2.put("point_status", PointStatus.EMPTY_VEHICLE.value()); if (operation_type == OperationType.AUTO) { TaskUtils.addACSUpdateColum(point2); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/wql/SEND_EMPTY_TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/wql/SEND_EMPTY_TASK.wql index 30bfa1d..a718738 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/wql/SEND_EMPTY_TASK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/empty/wql/SEND_EMPTY_TASK.wql @@ -40,18 +40,15 @@ IF 输入.flag = "1" QUERY SELECT - point.* + * FROM - sch_base_point point - LEFT JOIN sch_base_task task ON point.point_code = task.point_code2 - AND task.task_status <> '7' - AND task_status <> '8' + sch_base_point WHERE - point.is_used = '1' - AND point.lock_type = '1' - AND point.region_code = 'GTK' - AND point.point_type = '1' - AND task.task_id IS NULL + is_used = '1' + AND lock_type = '1' + AND region_code = 'KLHJ' + AND point_type = '1' + AND point_status = '1' ENDSELECT ENDQUERY ENDIF @@ -59,15 +56,14 @@ IF 输入.flag = "2" QUERY SELECT - * + * FROM - sch_base_point + sch_base_point WHERE - is_used = '1' - AND lock_type = '1' - AND point_status = '0' - AND region_code = 'KLHJ' - AND point_type = '1' + is_used = '1' + AND lock_type = '1' + AND region_code = 'GTK' + AND point_type = '4' ENDSELECT ENDQUERY ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/GZSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/GZSendMaterialTask.java index bf7ad85..95d7543 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/GZSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/GZSendMaterialTask.java @@ -196,6 +196,7 @@ public class GZSendMaterialTask extends AbstractAcsTask { point1.put("task_code", ""); point1.put("vehicle_type", ""); point1.put("vehicle_code", ""); + point1.put("vd_id", null); point1.put("point_status", PointStatus.EMPTY.value()); if (operation_type == OperationType.AUTO) { TaskUtils.addACSUpdateColum(point1); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java index 6741d81..997ee94 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/HLSendMaterialTask.java @@ -1,5 +1,7 @@ package org.nl.wms.sch.task.send.material; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -11,6 +13,7 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.basedata.eum.TrueOrFalse; import org.nl.wms.sch.manage.*; import org.nl.wms.sch.task.util.TaskUtils; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; /** @@ -68,6 +71,7 @@ public class HLSendMaterialTask extends AbstractAcsTask { point.put("vehicle_type", vd.getLongValue("vehicle_type")); point.put("vehicle_code", vd.getLongValue("vehicle_code")); point.put("vd_id", vd.getLongValue("vd_id")); + point.put("point_status", PointStatus.HAS_GOODS.value()); TaskUtils.addFormUpdateColum(point, form); WQLObject.getWQLObject("sch_base_point").update(point); @@ -190,17 +194,6 @@ public class HLSendMaterialTask extends AbstractAcsTask { } point_table.update(point2, "point_code = '" + point_code2 + "'"); } - - WQLObject.getWQLObject("das_produce_number").delete("data_id = " + task.getLongValue("table_fk_id")); - - JSONObject workorder = WQL.getWO("SEND_MATERIAL_TASK").addParam("flag", "6").addParam("vd_id", task.getString("vd_id")).process().uniqueResult(0); - workorder.put("real_qty", workorder.getIntValue("real_qty") - workorder.getIntValue("weight")); - if (operation_type == OperationType.AUTO) { - TaskUtils.addACSUpdateColum(workorder); - } else if (operation_type == OperationType.MANUAL) { - TaskUtils.addCurrentUpdateColum(workorder); - } - WQLObject.getWQLObject("pdm_bd_workorder").update(workorder); } } @@ -260,6 +253,27 @@ public class HLSendMaterialTask extends AbstractAcsTask { } point_table.update(point2, "point_code = '" + point_code2 + "'"); } + + JSONObject vd = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("vd_id = " + task.getString("group_id")).uniqueResult(0); + String today = DateUtil.today(); + WQLObject wodTable = WQLObject.getWQLObject("pdm_bd_work_order_daily"); + String workOrderId = vd.getString("workorder_id"); + JSONObject workOrderDaily = wodTable.query("workorder_id = " + workOrderId + " AND date = '" + today + "'").uniqueResult(0); + + if (ObjectUtil.isEmpty(workOrderDaily)) { + workOrderDaily = new JSONObject(); + workOrderDaily.put("id", IdUtil.getSnowflake().nextId()); + workOrderDaily.put("date", today); + workOrderDaily.put("workorder_id", workOrderId); + workOrderDaily.put("weight", vd.getDouble("weight")); + workOrderDaily.put("is_report", TrueOrFalse.TRUE.value()); + TaskUtils.addACSCreateColum(workOrderDaily); + wodTable.insert(workOrderDaily); + } else { + workOrderDaily.put("weight", workOrderDaily.getDouble("weight") + vd.getDouble("weight")); + TaskUtils.addACSUpdateColum(workOrderDaily); + wodTable.update(workOrderDaily); + } } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/YZSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/YZSendMaterialTask.java index caf26c2..ad79ca6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/YZSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/YZSendMaterialTask.java @@ -64,6 +64,7 @@ public class YZSendMaterialTask extends AbstractAcsTask { point.put("lock_type", LockType.TASK_LOCKED.value()); point.put("task_code", task.getString("task_code")); point.put("vd_id", vd.getLongValue("vd_id")); + point.put("point_status", PointStatus.HAS_GOODS.value()); TaskUtils.addFormUpdateColum(point, form); WQLObject.getWQLObject("sch_base_point").update(point); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql index a5d84df..3cc19cf 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/send/material/wql/SEND_MATERIAL_TASK.wql @@ -121,5 +121,5 @@ AND region_code = 'KLHJ' AND point_type = '1' ENDSELECT - ENDQUER + ENDQUERY ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/TaskUtils.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/TaskUtils.java index 53ab5e0..42209aa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/TaskUtils.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/TaskUtils.java @@ -161,4 +161,10 @@ public class TaskUtils { row.put("update_optname", form.getString("create_name")); row.put("update_time", DateUtil.now()); } + + public static void addCurrentCreateColum(JSONObject row) { + row.put("create_id", SecurityUtils.getCurrentUserId()); + row.put("create_name", SecurityUtils.getCurrentNickName()); + row.put("create_time", DateUtil.now()); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls index 27e8d3f..99ce2cd 100644 Binary files a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls and b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls differ diff --git a/lms/nladmin-system/src/main/resources/config/application-prod.yml b/lms/nladmin-system/src/main/resources/config/application-prod.yml index 527a6ba..db058ca 100644 --- a/lms/nladmin-system/src/main/resources/config/application-prod.yml +++ b/lms/nladmin-system/src/main/resources/config/application-prod.yml @@ -163,6 +163,6 @@ sa-token: erp: sqlserver: enabled: true - jdbcurl: jdbc:sqlserver://192.168.0.251:1433;DatabaseName=UFDATA_001_2023; - username: rl - password: SH123 + jdbcurl: jdbc:sqlserver://192.168.0.252:1433;DatabaseName=UFDATA_001_2023; + username: sa + password: tizi@123 diff --git a/lms/nladmin-system/src/main/resources/logback-spring.xml b/lms/nladmin-system/src/main/resources/logback-spring.xml index 12e497b..265f18d 100644 --- a/lms/nladmin-system/src/main/resources/logback-spring.xml +++ b/lms/nladmin-system/src/main/resources/logback-spring.xml @@ -104,7 +104,7 @@ https://juejin.cn/post/6844903775631572999 - + diff --git a/lms/nladmin-system/src/test/java/org/nl/test/PointTest.java b/lms/nladmin-system/src/test/java/org/nl/test/PointTest.java index a0f5cc3..6f1dbd4 100644 --- a/lms/nladmin-system/src/test/java/org/nl/test/PointTest.java +++ b/lms/nladmin-system/src/test/java/org/nl/test/PointTest.java @@ -22,22 +22,18 @@ public class PointTest { JSONObject point = new JSONObject(); WQLObject point_table = WQLObject.getWQLObject("sch_base_point"); String now = DateUtil.now(); - for (int i = 1; i <= 18; i++) { - point.put("point_id", IdUtil.getSnowflake(1L, 1L).nextId()); - point.put("point_code", "KLHW" + String.format("%02d", i)); - if (i <= 6) { - point.put("point_name", "压机" + i + "困料货位"); - point.put("point_type", "3"); - } else if (i <= 10) { - point.put("point_name", "液压机困料货位" + i); - point.put("point_type", "2"); - } else { - point.put("point_name", "公用困料货位" + i); - point.put("point_type", "1"); + for (int i = 1; i <= 9; i++) { + if (i == 7) { + continue; } - point.put("region_id", 1695713307387891712L); - point.put("region_code", "KLHJ"); - point.put("region_name", "困料货架"); + point.put("point_id", IdUtil.getSnowflake(1L, 1L).nextId()); + point.put("point_code", "YJ" + String.format("%02d", i) + "SL01"); + point.put("point_name", "压机" + i + "上料位"); + point.put("point_type", "2"); + point.put("region_id", 1695713335233875968L); + point.put("region_code", "YZ"); + point.put("region_name", "压制区"); + point.put("device_code", "YJ" + String.format("%02d", i)); point.put("lock_type", "1"); point.put("create_id", 1); point.put("create_name", "管理员"); diff --git a/lms/nladmin-system/src/test/java/org/nl/test/TempTest.java b/lms/nladmin-system/src/test/java/org/nl/test/TempTest.java index 9b6dcec..80c7688 100644 --- a/lms/nladmin-system/src/test/java/org/nl/test/TempTest.java +++ b/lms/nladmin-system/src/test/java/org/nl/test/TempTest.java @@ -28,13 +28,12 @@ public class TempTest { @Test public void test01() { - JSONObject info = WQL - .getWO("ACS_TO_WMS") - .addParam("flag", "3") - .addParam("vehicle_type", "3") - .addParam("vehicle_code", "0005") + JSONArray info = WQL + .getWO("MPS_PRODUCEDURE001") + .setDbname("dataSource1") + .addParam("flag", "8") .process() - .uniqueResult(0); - System.out.println(info); + .getResultJSONArray(0); + info.forEach(System.out::println); } } diff --git a/lms/nladmin-ui/src/api/wms/pdm/workorder.js b/lms/nladmin-ui/src/api/wms/pdm/workorder.js index 00a7e76..ae40e36 100644 --- a/lms/nladmin-ui/src/api/wms/pdm/workorder.js +++ b/lms/nladmin-ui/src/api/wms/pdm/workorder.js @@ -103,4 +103,12 @@ export function getMaterial() { }) } -export default { add, edit, del, submits, getDevice, getTable, openStart, saveReport, finish, getReportWork, forceFinish, getDtl, getMaterial } +export function synchronize(data) { + return request({ + url: 'api/workorder/synchronize', + method: 'post', + data + }) +} + +export default { add, edit, del, submits, getDevice, getTable, openStart, saveReport, finish, getReportWork, forceFinish, getDtl, getMaterial, synchronize } diff --git a/lms/nladmin-ui/src/views/wms/pdm/workerorder/fj/index.vue b/lms/nladmin-ui/src/views/wms/pdm/workerorder/fj/index.vue index 34e9b23..71ba09f 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/fj/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/fj/index.vue @@ -129,7 +129,13 @@ - @@ -138,14 +144,68 @@ - - + + >千克 + + + + + + + + + + + + + + + + + 千克 + + + + + + + 千克 + + + + + + + 千克 @@ -198,8 +258,20 @@ label="物料号" :min-width="flexWidth('material_number',crud.data,'物料号')" /> + + + - + + + +