From bf5401fcc0befc61318850ca39f023238b91545d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=B1=9F=E7=8E=AE?= Date: Wed, 13 Sep 2023 14:11:07 +0800 Subject: [PATCH] rev --- .../standard_inspect/ReadUtil.java | 8 +- .../service/impl/DeviceServiceImpl.java | 2 +- .../CargoLiftConveyorDeviceDriver.java | 5 +- ...tyVehicleStackingPositionDeviceDriver.java | 5 +- .../StandardCoveyorControlDeviceDriver.java | 11 +- ...eyorControlWithPlcScannerDeviceDriver.java | 13 +- .../StandardInspectSiteDeviceDriver.java | 9 +- .../LampThreecolorDeviceDriver.java | 3 +- .../LnshLaminatingMachineDeviceDriver.java | 9 +- .../lnsh_crusher/LnshCrusherDeviceDriver.java | 4 +- .../LnshFoldDiscSiteDeviceDriver.java | 7 +- .../LnshKilnLaneDeviceDriver.java | 7 +- .../LnshKilnTrussDeviceDriver.java | 3 +- .../LnshLabelingMachineDeviceDriver.java | 6 +- .../LnshMixingMillDeviceDriver.java | 9 +- .../LnshOutKilnTrussDeviceDriver.java | 14 +- .../LnshPackageLineDeviceDriver.java | 7 +- ...hPackagePalletManipulatorDeviceDriver.java | 10 +- .../LnshPackageSiteDeviceDriver.java | 5 +- .../LnshPalletStorageDeviceDriver.java | 2 +- ...nshPalletizingManipulatorDeviceDriver.java | 7 +- ...alletizingManipulatorSiteDeviceDriver.java | 220 ++++++++++-- .../lnsh_press/LnshPressDeviceDriver.java | 9 +- .../lnsh/lnsh_rgv/LnshRGVDeviceDriver.java | 10 +- .../LnshSplitManipulatorDeviceDriver.java | 10 +- .../lnsh_station/LnshStationDeviceDriver.java | 11 +- .../StandardAutodoorDeviceDriver.java | 3 +- .../StandardEmptyPalletSiteDeviceDriver.java | 4 +- .../acs/ext/wms/service/AcsToWmsService.java | 6 + .../wms/service/impl/AcsToWmsServiceImpl.java | 75 ++++ .../wms/service/impl/WmsToAcsServiceImpl.java | 3 +- .../modules/quartz/task/AutoCreateInst.java | 72 +++- .../java/org/nl/config/DataBaseConfig.java | 126 +++---- .../basedata/rest/MaterialbaseController.java | 4 +- .../basedata/service/MaterialbaseService.java | 2 +- .../service/impl/MaterialbaseServiceImpl.java | 25 +- .../nl/wms/basedata/wql/QMD_ME_MATERIAL.wql | 8 +- .../wms/ext/acs/rest/AcsToWmsController.java | 24 ++ .../wms/ext/acs/service/AcsToWmsService.java | 6 + .../acs/service/impl/AcsToWmsServiceImpl.java | 330 ++++++++++++++++-- .../wms/pda/service/impl/PdaServiceImpl.java | 8 - .../nl/wms/pdm/rest/WorkorderController.java | 9 + .../nl/wms/pdm/service/WorkordeService.java | 2 + .../nl/wms/pdm/service/dto/WorkorderDto.java | 4 + .../service/impl/WorkorderServiceImpl.java | 75 +++- .../org/nl/wms/pdm/wql/MPS_PRODUCEDURE001.wql | 12 + .../sch/task/call/empty/FJCallEmptyTask.java | 250 ------------- .../sch/task/call/empty/GTKCallEmptyTask.java | 2 +- .../sch/task/call/empty/HLCallEmptyTask.java | 2 +- .../sch/task/call/empty/YZCallEmptyTask.java | 61 ++-- .../task/call/empty/wql/CALL_EMPTY_TASK.wql | 36 ++ .../call/material/FJCallMaterialTask.java | 1 - .../call/material/GZCallMaterialTask.java | 4 + .../call/material/YZCallMaterialTask.java | 77 ++-- .../call/material/wql/CALL_MATERIAL_TASK.wql | 66 ++-- .../sch/task/send/empty/FJSendEmptyTask.java | 6 +- .../sch/task/send/empty/YZSendEmptyTask.java | 20 +- .../task/send/empty/wql/SEND_EMPTY_TASK.wql | 30 +- .../send/material/GZSendMaterialTask.java | 1 + .../send/material/HLSendMaterialTask.java | 36 +- .../send/material/YZSendMaterialTask.java | 1 + .../send/material/wql/SEND_MATERIAL_TASK.wql | 2 +- .../org/nl/wms/sch/task/util/TaskUtils.java | 6 + .../src/main/java/org/nl/wms/wms.xls | Bin 285184 -> 287744 bytes .../resources/config/application-prod.yml | 6 +- .../src/main/resources/logback-spring.xml | 2 +- .../src/test/java/org/nl/test/PointTest.java | 26 +- .../src/test/java/org/nl/test/TempTest.java | 13 +- lms/nladmin-ui/src/api/wms/pdm/workorder.js | 10 +- .../views/wms/pdm/workerorder/fj/index.vue | 114 ++++-- .../views/wms/pdm/workerorder/hl/index.vue | 99 ++++-- .../src/views/wms/pdm/workerorder/index.vue | 71 ++-- 72 files changed, 1407 insertions(+), 739 deletions(-) delete mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/sch/task/call/empty/FJCallEmptyTask.java 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 27e8d3fe2cf1f380a26262eddff19e36d80a1edb..99ce2cddc965007ca45a32007a510a9326d49b70 100644 GIT binary patch delta 18748 zcmb7M30zcF+kehwW>}O(kX6uOkWIFM0R&lxMcG`z4SG=&6kGrSb8j%MELWtwS(#|1 zrHQ+vX)bAM`l_fcMsJ##OBRWlmX`88=bU@*$m{p}e!tK89qv8r|9PHs?sJ~=zcbeF z>Q;ZU+lm6a+W;_|;2%L8a!b%|uYQrN6jWsLPPH&m&}`e6oTI+cSfhGbm~^u7k!q4d z>dceb>Koq@UbC}C{Wc-$MhELe0*yuo_ox4Qf^s@=WF^Af?KaKkz#OpAvpbApl`A^q|!&9}` zqH()TWG_$?Bh)|zl)x0AlB*CU4iw3WZKv_uK?S{mj!)?Lk)3PHJNGTIrCQ&0q<T68UUx zqNTRv+1g}FE!Coi&0`In*{5}BM_p_zE$P~*VJoDj(bvh+i(0#8XN6Ps>!x7=>}e(B zxpCr4-~^cwG_NABl#MU{W3j^oS~ek$mt7k~X8KNAJd&3E^DkajT~;}M&RkmN0Qohv z%!-sR(#>-nLtFhmkGFa>GIb_x`4T<>hrXa?8uIqw*Ngj)8NQ@oeNo?Ww6WVSym7DT z8wdGL8p&WfV(BxkB34T_6!S7?&`+afYI6Nw%ZnckEgRZcOnc`n3)wFNJD``X(kknT6@U(`+aKUnP>EwztG>%U-saaf$o=_)Z)J7B1uUoX^MB2dn&j1f3d{bx zW#jUl-ljLP0-nqyAB@P&Dk$lm{O2;mGRNaTm)zJqL1p;W*gbnl%cWf1dnfIJ7dfv} zof+!cMfc`#o96Xf=I<~3VCdBi>$h~@Q+_c@FRmJ^z0~r@ypB&N-WZ^H@wbMmC$(oy zm;XG}@m045V`@eByhgiG--TrM+^>7};>~l5;-b_Ko&LCPT4n$3=8}IFW;i71B4U5d zym_kh!Rinjt$Vj$R4vnQ|C;^ggr9fLc>G)VC%e+`WT}7ra$Jb+Ou!(|7t#k6yxC;u zHg4}E^XTKZLKE`B;(zVhwQK5z$H{;BEsGwoa>t8tPGw(Sh+A>Ve}B`&o*Vi!n3A%+37cbdQe;Na;?vfcP>=Tc;g!R z^!h)&vU3WP!{-*Rd}aFTzfX)?-Tn1XuS|G<%XQ_NSV{&}?d;f!-*!c7k!KAF>X#0NjzcZrSs?wz^s4qmg%_CwA3R97eKD zHq?2J|F=;Oweh<~CM8^+Q}pW_v$rgGxO#cWoZ+kcoig5T@%9R7JF%l?;_0cAG~eZ zY;Bg$?37CnXKt`ry7hOby6Glz@9{6m<5RwZo7>Oa+L(e)ZeezFGN`*?Zvg?al5F#~%Ln_4Qi^yG`n7+H-5U z=flK=Y0EqOyvc^Xzh8r z-L!A$%{Kq{PhXm@9iO~)c7tbmlIiTyJuH@@9>EFgXXV`XXM--xbe61<{m#Jjkf+}+`0GTQlCU@E54fCm}gE?Z$Zxyy0g(d#G%`Kd}d$7^b#fkoz0Y; z-HtCOV$~Tj&N8`sQ3VbHkmCdYk09yjq3=w;}lJC0-vsC6QKBPcs9P*vDP&&KO z*zT?xo`0r+-5h&0vAi+$J9lB?M3$#+l;tOvi|0LvyQaGATtgJFd-a(Hyl_f0S{a~m>(}n8X?3%r8pr&2RM5iAkY=y{S&x8@Ot1RfUCO+3%cn!M(FcmGc60aBV>iYvg30h_oUT@=d zz*T@(&_Y>10xUwy47-MH(IV4+0@#igS$ZAdj0?cY8vrI7G)0$N0J&}e`kw)+(Gq%m zhN{s5mA?WsqXnM-4PXyyKIaZv1~p&a4sfm~zz25$u2T#A4sa7K@bf)fGpI4#2k=9U zgCF43p=nC~1XzfgH~fW`L(NY-L_tw;tG{vn15o3>{{R%C#s!Z7W}wFACjhOeX%+6{ zD^a7t7;e{~MwtSEa@5Gvia;W2%icyAb#d6};LtkAMp2_JBQB;PnFs0w+<^V~zxFqNWd>2zaB0KX=2Y zL<{i1nE=WL!QBZ&qNcX41iGQ79eA}?nMeAOH@Z62?+Q5F)4IO({UsOg)!z$^5uMVA zmw0$0(TLu9Vq-TYkieo40vX|Aw~ORs6>V?6tS9j{nj$@c+*n$C*!+DwDYDUMiU^!~ zj+VS*ZcQV9^tN*wL*VjMRCF3^C*GM$Vpr7*D)WVMlJ8;_!Ra1h+UMJ#!b zxVq2|IN{(Zyo@jhF+Ow^uWlm#CY*f~7pIV6xgl~W*{w-D-j}l;4%nhI2Rew`uLszQzRkF-^0pA09yScv zlL0T0fRPly5toWpTZp^wG6~;Pf$?N8bZJoCJjLbB#M2Lb8dJoHjpxP2TP}^~#l~A9 zUfV(<9A%q$G4alezT1dP0{RKoyF2UMgY{l1_3puXH%emkkj(%+m=zkts%B!$_h22p zSx0;(fm+iWJMMrtq>kQ7M{m|qo-=PnFYiuzc{9C=&|@*lycvKG0svVh0r()m6%Zu= z9|Ty>fPD}E$iJ{Bod+KTkjpiACmYU3bodSphfbdXXc<6H1o!~nlmL1nfQGCVPj4kj zWR_^VjTn09Si4@V-CI(-UaZ~Q;>c~-?j7-sZ6t&&5s%=-r4FLu0?dR(7>Y?Bv11#0 zp~`hcLwvcP(J?B9?t+)iF#zDhh_D7+v}Scg^dyi0-@iB3(_ z?Ihu1>{{YrN5qpq^}Hi(HHMbdmRFqHCGxGbPcrO!PIFqqfp2lcYr(egy&8 zlb5TZh1ph%lhnf2IGtiGE+RddrHp0M6&Ef>Cv2f>#a^grg0F-gz|egW{U*FC_3%aX z^RO0k6vbCT_hn1OL5$f&BDyqTHGOb=r3c4PCyf}yM%1wp*GVJl*of=J4|b7!QMZja zoBX8KeOPNh*7|*^wI6H!frRg;;QJx|RgfP&KU_iFQTw6xyV(k&^7^6nk?aZg!zbJf z?@5CCp@&pljTq8QY*TwnLWD9QdZQ2@0)`+!jo2H7xXXx5p0k3t0e5n#P6eC5K*ZMF z#LI_*_D0Yjr8*nzhk*-P#|wIk4I7D1k-r2K&Vc+G5N?pHgFgeBD{1SG+P*E7Q*9q% zPYU3V+KN)S2Jg7T=n4K}gyM0`5+8)Z)A2zl zZqSzaAWX6;j}O97rJJxxvS}EqbRISU0&?05^CT>csYN2t$3siM$tv zp+3Q6Bioh}!X+$Vt00_VeJqV0&ak#f!-b>y!rAj5&S0X&`Jdok$hY(e)=`Ut(Pa|B zIyOrkBb1I2*zqf9P|DS)7;pcyd=cWhPl%^UFGZqcbr4BZJx*xvXM-gZzGL7I2oDn?nE=m80z{$!H({p)6sc$! zi2~eIHj+r30j^(3gxi)peU4sd)FxDgJka-g))e+89o+QZ^S*#APK>v z5(5(=KoZ`-gpj?gfeArvY+y6-NbL40>4DF1PcSftYNAg)^*THNiDqNT4mFyMB|Fq; zWvpnXjO;I>6=kA3DHE+I6U~&lk4V&cM9a#+$EeVnjij3?MiN5D7JUo~VezpsD1^nw z#-I=u9~*;$P#?>!8iRsx#}$KuaK}YGdkhM~{ca2jV)45%vLM{5v62uxPKjkgJisz) zy;vrM?0;jK5WJlG-|YuUc0La=`m&C)%k9fL$}YDrcH}O%FG}8_>`8qU$@?mj(>dx( zU9PWRoFo~KIN}iC1CS%AI0Vp;HR8HM#1%m`H7qdMH7#k1A5OevS2^LPZeL@e zaUcfq&=K}LyFn5=P?(aX0r~!s%m(Z$4UvokW|26GfsaKp+GrI6N@in4E9J;6v3(^O zXKy`=z<7IW2$9Ndu%8**)4(_x&GIvzFn^(+F!)tE+tQ-|)r{{)DJaMq*eeN=f`SYn zeni~+8PVmeVM3%J*jfbO!lmF+>BqoQaH%8^WLOwj3VUYPz#Htd3bDR{H1Ki;7$qzL z(cviR*Nsvrsfg?XKG+MOUMxCFCX@c6FH$cgOS~E;xQM?UC0)f|!vq_W!wxYdmlHI3 zygK<99(rzs2@a%ybrUZiBO~~+s8Edfob<@&+h8i{HGsS&F)yi1FUnC;gQcQ@*D~Ew z(ZCCcY~WN}fCHFrsfy0@ES)Oe`HZ-lC?jD+v8nO+R%b*I%Qj;~5X&}WL=ek1V?-d! zHe*B}zRegB$g<5C(YSn@F`{uTLA;R~SA1h5@k~gQ1mOEz8WTX?V$zrZ@)ncE1fc6R z4Z&$Jy7aiT#iX$PY*;w)xla6C$lY7{LS}a`|E1fAKZ!zhLBI%tJNmmp} zXNuexhn^r|ReUeYKp@LDl7T>$Z6pJMR3sLc2NgU6!7STI27>WzBm==L+eik2@ogjn z!7STI1`ppeB`tNSbjVBwE^i;13|!tmG8s5;#Vr&NaJ}bIp;A$(?Hss^m*zq&d$)m2@Of$)R)gBb14z^OA!)`J!_TJVpFTfEXDs zxD@3|gK@{2%Lc2Ly63XN=3|bo;#{;3XIyh}933$#wu6b1CEMnUE&| zaEF=40PJy&s6crP;A6~DfII~t4*@|;%+N5xOr?mzk$+t+))i=;~kO48_32x zDNa63M)%-OW)N#|RBAAYHTXijLK|==Fqk#?OlmNgH8>^a{~H_dCwmBMa7=12gf%!V zo}dl*6FHPM_)ap~P}bmtm~aLg@TX=NYw)==!Z6lgi?|gVwsVOby%#VCAv&ESHU=KT4QD8_KON3cWPduGp-{Zxh%lWz5_8W<{&cu_ z=PZ(TO*qha9-WO~1If;G1RF?prX!SrMlexj2QdQe!FPobXb;P-FhUW31QY+h=-5KS z;y7nC5`mBhlq@k4fwmKw_ZW#lI}~R+62TbnQQachWu)RbN8-TSiOhS9Oeerp1g{$y)GXWg8RDQsJQeo z&cQp)b?Ae5{GS7ogj5{|2*D4%Cg6u&v(Vjl+$TN6qZdeq-M6O*9Q_{OwB4pJuUz(g zNnR&YCg3Db#8i%{0@EZ+Pw@SJEne|08B}7b!c>iE8YcS9s5(qfFipqwJf<0#{=r1K z*;g>p?+?%gPS28b5t%U6V-k&eB)C7lNYcfg^N2Nl>n1)~L$v0QuStZ~h3@24=qNo)^AOnOIxc$H6~FoK7E;k;l)nAAd?uvG{bSJ9}@AU0qW zNn*rxp%_eF-YRSmH-rkD0C$w)PC#TD%xO`I?kGzNiwv|lV{OC>-_FssObPHd;winW zqXal#s+0i#o>(j8YHY>ZYv4BW`~1ZfCBP|dLN{`69Lq+m3K4w9`gQ`OoOc`PApug( zyN!5D15?hM15(aAleA(_>PvlbDRDqwTx7Qi-&%TNIRzA}Lj>=!x=tvR2X7-j5(?$P z+el9dMW>+XI-%$k6kR72{4Sb=;=$q-N?&&q)}WuK@k(#;O1R)}^2b7F&nw^#R zkd$h6R^CHWs@Yk259yC0I4kcVDc$U>yodBhF`SWl;&bDVVz?;pA^q_=btdv*(4WRD z&dPg8f1FBZ5q@3v+^F29^RXAI(fW8$?ayc zP}=J#x!npcDLIT+T$Okw0Cj36UyIWs1$QBYh_6KoLEb!2p@elad0Fa53F}rc3F6sE zVU+atk21~8k2i4Bp0XCmd6seC-5pxkmZd0*;Bx#d<^ zi#fV}D7Wm&7A)nKn{i!%-o0dbjNXN&pt}eK2lG)T#e(?N1zW* zQY!{eVxd6@l46q(HsS}8EFo;fCUK2HaQBs$bO_EgA0UJcAV*6fOt;>Ywx+uAP=?ah z&18c#9;K~YVVxlMj27Iy=%Y*}r4%(EkkZqwcs39RMWaMK)}btMGr1w@NLk`mxG6S7 zqeLG`MxuN$AAs_~bO3JcFeVXWf~iD0<~Ar3+)RF!#-mJdE3B6WqD(NiHf4gF$uFW$ zjL?G}B*SqH^Cd;8)o@(HbTV8C{o9K7{5^Dpq&yF@D0kdU0RAEX}?wCVS z?ikmcQZDNfAx#fn=+cQ`$`t7(1RiBk^4Nkv$>UZ$hH?Z-9&-dr9ycrBSI{fgqU14M z0Nh%74nWCaswfYzC^_6rHcInH$>CN!v2g%O4s!rX4pT$O<+2Kt9JT;NG62T>QUD%! zQRcUrcwwF{Ny_||5qSwy=65Sw{FL?GsQ^&cw^}Nv0SD#(=|ZBcFMkzAS>I_ShiT@F z<&^auK;8xXn2<`~lVy-J<$)Pxe?KEFlBSgXJxb0?>w>bsToB6s+L2!*Km!WWg$ZIn zO}j8bs2TO71p+t+b8CDbpFp0PK`3vX~3AoCQgP+62mAQC3ag;1`oC!P-3@@xJz)9*!_)o zNN|+c<=RnV*Ahi0E80NR`1VGrUG7gQ9Hn-t&*jFX^e*+m`=8p9kkWO8ADk$sy9nmu z2M-E&Z;|d|eUhM6GkTYkvImod-lDzkQ6=nZX>izT)KNVf|ZLuU-@Ga!qHK%OW$@D-!^e znax$$RLab99LmgYf_jE+Z1wuQo1`7D^pt6!n9Iamp^Wl*5xN~DhQ=@InzpM-8O|VNS6f> z%aR4xq6|q0zU5Q8*CGU^d)tW29Zo+X zJS>c{5>sCiR7C?2q8OllSSmH>093XZdZCs)hcbdc=IE*zfXWw3+r{kb=5!7ywOtIs5&)&PxulfZ zwwNea0ie{j#YDLrfKuCZ4mbd%wu_;+qyeS2i=mGMK&fpGK&fquiSiVHyiNdl48TOW zZaN1AYz`>bT?{hCLb>i@{DwQ9%z+BPz)l(rQ~(At0GVPLh`xx9%y+AS=#Pq#y|R4h z3rKBOXu@ybtB{~uf^Qp1v*0Q&JSr5DMDfZ|A;@762B3%zgYeU(i|BexsItCsNPtNv z*yHrjyzp~ju8r7rs4CiAy_7shR-F~f?43@tpAWCN)(3xBY_2&g2;J29HFVf#o^?f7 zLqs=M)e7^5t3tJvbbDPW*0{ciEf!!}i0LIvFJqc%_WV^iM09`R{a=_KVtRz>Z%mZg zdyLl(OtymgQJb)k=m_K|VtEG@`hUL@o9+m1rc8_$)6iY_$1g~v;cK)o{6>Qw&n+?R zE)&c8;++x8`eLgvY!Qdw;xS^q5liB*WhP#YFc0S72pO27ajY0@6OXOau*QHNI%+JA zK}U_lYczhsu!W&JHi*YT^f-7r4wZ@babkA6;4l8xE(D0Lw+mkE&irM&Fe6(W-_NSM zIHsSKH@{on&q{-?)-3k3T0Voci-9|=B2Ag`Y3coA(@>XaeN;?XG%C?I%&701j?%|P z8e@!oQS8jV#(8sMQQqkOF_H0MD5${@79Fcc3FGw9(P8lhFvdse)6+9EZKC4l*_RHO zQZ;U2$rQ3Uzq({RsnYf@nNnNU^|kbx)UuMgl5ta9dkv|tDJv}-Z<X)KJ0O-oM>5BH7q0IH5i;BZ5&d@7{mO>6@?joFxwSc0;Tn8*;V% zr&o@zgNmw3?ZmRW4E)(i!K~`Cpwe;2>*|ShYN)ofUUOQt%@k~Jrv)(fuUHhgbbz|_ zbeBb4YO5v>>iYQt>x%iBB&|N(DxE;~1g)-gT$JwU;f2Ti3(CtXk7|rsTR5n#0BgOr zplYu+KHge`fwpgw^^Eq4P_2Gp_z~+P7(J)FWczabVvkI_lUd-c)85i)19IFV^W2Wu zFO1eio;LX#HJLLj>aR7A$QCzEAYtpUIm0|r6Z&Ml8`>J2l-I}7U@L#U& z$Sn$eA@#~to3gsAp#JdsR;z39`R4rTMBa6RLuU-YQeCP<0~pEOUq{7 zE->{tLSD+tzCxNRYpP~6^t7s+KD8gQw_96oY$#9C#%cqvP22?+celn~*m-EvJEsnm zbZx}1>)G4IjCPMu`Kqc5jj0o#FB=K?`?+ydRg=RZzr3uht~NYfUp2k5P8by95*dEj zSX!E0SGLWzmsNdTZBRvUcxCE}>5*1}WAjbgx$0|hK^=bR*h+7q(R!Ndck)%Qz_C5A z-tStW4bxu5AM_Y|^g1&7rQX%nU;C`G(@ib&s4X40PKW+&WJdqowdAh7Zdm$!61Y0W zN;h;ZF?7>qtt5{}*%(IJq>ubUbCOgqTS4mW?E+8jyLfbdVCs>U?QQmUpIb++2+yxG z&07D~gsCe5GHR--Gpc4(I^|W=)^*cs1HXZvKRI{k_pf)K$~&Pok_7=@?~YfcksrKE z)2pUTpIT{JF*tSJN&5~p{XA4hJs0P1>E}j=-ExX zTQAh_-}~U-_m3UQb~K!DT7ej8y-k0TsPN5?@aHFnr6f?;S+-(*sWzxFC`21M)F%Bv z*2OO`eYM8kE+i!>T5G8B(%xH7nod7V{j#;C#oq3GN>Zpc`X@3G0`De9w>Y%iOT3%9 zBhlV&WO;bSHtlkQHX*3cIygKvy==;q+8`%QC^>8wKB8pG^fGOGVzO3O5@cGTiQUtp zUOWHIvA$L6Ds_cADtNrQBQ-*;{^_L@b!+BUyA5_J>fgp3ofV;uP}eo>xDe6mi1%X# zuAfRvBGgsMGkm{T?f93Y@$@)#WbhqFSJfbs*L1HKM^{_d6!o9i3msiGuF)xK8&}%= z?`f0mTn!OYE;n5LB({&*%C)+?zWY%4A=Zy9zZW$W-=eqc%PLDt;vO168#u0QNclPU zugX5Meq7xc`Lgxw`X5HsY!0bU9SBoPDofL**VRE)rP+P2)vdmJ+O6E=&GN2Qp=On! zQkksK?{~+f!lcGT_W^56Hkj-%^}^Hz6aDcWeFyJ=$q|zlQ#VY`m|QTqVxl{!n{@TS zt0yKeOg%7pWAee&6O$9B08G9Dp15^*&Rt-_ecyBHDTI+s=<_7hQWlP%hu#JL=EN=X5!X^)rv;*}QsJE*A~H z%admRKIqNO4`OXkHvTD>uUYl^rt|N8nYMKL9_LkdWgp7rXT{r#dRr|{NPXqzH|mD8 z**oQmueVQldmlWXy}TjW-FnbJ4Q8FE%G(WpDM%Z1bf_^fw8Eg#7K1%&3N%|*}@yJQM7@_L!qQ{>($6_d>hZ6id9wtD%_)&x^11l!{cf~3_E1&q^<>E-a zDh@l8KU1-uS5!Px(WX}=V~QuRZrs-LN_F{l!;V%jqmBY8#5GZh;Qs^=W&LnYh1o&D!KUYeO$W@E+vBc6t8 z2VpELcGGAv%Kwo6|2$Z%q5NzdZzXy}tK1r@wc>+lRYpT~wAepd+ zm47yWr#qH;D6hDOYQit^6q!CgQ((-vKil>VUYX`GaO&(;v8taOcxe7DNv(~fA^PvJ zssQ}mtmv7jdMIS{5SJvWbYg6h%3BpW@mE`MS&~XCKA)tbeuvgQw!;7MM{G(|d6_pP zs}2(s9mI-MRk#p3QCv;0Ilkf-^x6#KLn$9@?h)?Vl8^uun` zx4JDTbGS|jnMCnNkYcmM=*{&Fbdey^XIeDED8W{DVDX-^wx$WM?A<@LP>{dj{qPtJG`l%1DmrK1NqAF`HVQQRX}uoC{SJ5?rUgtuhCAco(P;9}CH$5n_Mj6cg+)L3{CJN%`hU-nSN;F4eVp>cJr93g=xF8h;ePq^!?^!$&#UH?92lOiHwty<6XO>hV!~>nL@348_5U68HFM zhIO>^@zE^nD3fA6-^cZAXCIcO9kOVxGuhc#&ritura)KgDyHrAEj6z7Z<)4*yOZp^5kxl z*7ON{ww%LM#bL5$f?)0=0WUQzp1WZm)z&ps^-Pmud_Vmy$J_Q5vjSI9P!Sjv` zblrbVAMEw@_p^3C{eHiTt5*#v?ANJdM$WlvC-30yPwYGY{OzUp7R*>N^@rs1saMl) zKR9>$#+<`La%x;l7CQ_a>`<_Lmp*aL@#Ze$tK9DzuLYTwIDNCO@~@fs&Z+tn$+rrw z-mUt5X{1)?<#sdW=UAwl?v}R282Q!_ZMB~4jQVy>F@pIZiim?S57o6 zUt1P&dFiMrOFlXNY4e#^|6AJqrMLQrU3E+?KU7^ZVQOl`Cp(=h`dl~fK5}RJ_x1nG zfA5JKS=0X6+QX$==+E5(inbc3{CG3}gFEe`S2?B4ndVg4dF}L}Kh|^&YwZ1+$H?Si zrd1!TE&K7zu;crdP20Ss{qnifT?Srx`OK4N4~%U%U6VEG^nexKbA*B%M{i+rZOR|s zE8^#^U%1)3ZO^byQI`{hbZW5u==-JaYwb=v{pIsQW~(me(vj4)C4OJGwn*>)u=%?e z2aK8c_A6-zySA4vUOIQm%RihPI>c5prOvp${Kl=cMmN*6h{gMl_zoPlAT7ae!?z5Huz46VR@4p?p@yjs*M^C)?^f&8{eA&Zm4{MR`-NOwGGn z`!=S0J1MqXzl$5U`@iRWZ2!aqZ;dzg-+5ko1xQn#U$|#?+_#axJr{5^!0v41l$R&H zX=A)`^1=S&hYSUyUtIiPg(_|~4M3{QWNwrKdf$9K*e5E`EQ?bC4|T<$U2Z`{0sRma>aa`)U{ zvd|ik2 ze5dMH|95XxwA|eub94BRpO$*q9PZHM|8gU>sm7eEnE}J$)3V9j*Ll(50Jj-5&l@=|AWtRp?* zCX@;0zXE8PVCo=x8!cI~nGi>;>%N7McTpE^CuA?o%`DUpP>W_lUeFLS74;p|y>}4O zYD-A{PC|aPBgAtTA#=gxN2v9%Wl!uT-JzB>X-gY$S<7;aoS7BD*$}k zgb%JxSg;QZP=AfO#F>yMTM79T^={O0uz?r%6H@LPR;Le*$3CAEDN} z6SDtPLXtfQ*?f?YP)|Z$Jp`qoZa$2;UTA-YHtI=72)XG^h^gRnfcOy7?Ih%{)A+mAY^L*I6VnQyJ74Uv;ht6JWWU!D8JzgLQbL1_>z#Nu>FI-B4h__ ztJ@huYN4r4X9*b%P5pto44QIkgGQjKuy3JVdtxFb@ce6`8qaftOn_>lz9-~$sAfLu zpHRD=CuAHnGYR!+)Zzs~DxsM-P~SiuaS>8MLy?yVnFGxvUM6G_G*b2hv;d9NUm@gJ zXF}Hf2&W89{Ct&=;x2@AzK$_36F%U;)I$UPej;Q8G*Iy~A=@GO(A&@qB%jbu$ce5X zeut1NOapfb0S$8W7n~VLeEC;Gf*`Tu@7Ox1CjSpYW z;vtdFmXhJvYfn2$`a`mzT1u8fvj5mqav6Kv>_EwR?D2+9l>7_<4>(dHVr!e7(2shK zGbIs+A?X?yO0GiE?_4SIhlEGnC~?#g@{Kzs;EgzXP!cDY*M`u=j;;f*-y88ODbf4i zOe_95^x0C$m`;7A(ec#T!8e4Gq;N{^MoKfL(T_wn)f{V}sajk6XiDxGSa+*ACW8*v z+HM_4$>c$-=UsD;0{UyP!-1zMX&gg|a~FeDJ_cDX0;`twMA{&poP6tW{POFs4WdzTh*2=THDl?9f_haM#?%Z#>{wn zm8LzKJJdl3w05ekPH62?TaIY$R$ESJ;b19LoYC5Y)-=I^;205X8EMaE0(ODaVf0nB z<(7cf9JEs9rVTmE7sxFUg9Z#z!4|z5a!grdOO6wqMyRn1=_38Tf%=$mNI440VN1P$ za*DjBpm-4ht=APoUc`p1;e@hl%qKAidjY5zv*6^K*Kx%W|}^5MiRYV(oCfmo2Q!mS6V z=ga9WQt0_|dQDQ|CK_XJVZxU)k&b7cOXBprsNc%TY zW2rx1=#PbjE>RZxW8rxsDGU9va1~*C_h)W`4gn9@rv3updP+yNW}7$44= zjspY$;C=Fz0uTTITe?&M2v9i-0KiwIy8;jZfRh|J04h7l4+3K&fY{+i0sEnhX>nZO zBl%$nz+pIv_A$w8J#`9#jpt10ITKwu6K^XEyK*Mpku+OqCVf}R+d>U~!F*mfK5w!z zuN$AYOj^k1O_5G)p^@}G=>aOg1ag{8CUZ!G`rAkviB@nWI@t&XO2!tLEWO+ck`|&R zEoh<7N=aL(GmVgKl>b&bO2xE<%f{!s`ChDN$VE$0)pyO?P z6Xkw8+}xP9b-4GM$qLM851a1chfRIf0u?ofao|7>yb>$e`all63N1!AknOdjG9Z$R zWS%r}JC5~#FwW=)N-pcEXOLbY7{LkZIYIaazD~~xzAs(gPD@SdgRk-uq%7^hmj+?! z2L$e)FAc)dJLCn0P!M=|hro*}V6W7^cT@$nh56T@+_u^`$TfxL47rQNmmjq?b|^E(?b+u zv7A^4Cx%Fc!-sHUFDb-ARAM1`ggzt*Qu7Y#7r<~rRE|TilXu8(3d13sVd=sSsvQ-_ z0lEX=7cx!ZwmSfRAqadpTz3G7)S|2I06C-TsylS`i!#d=vzQ@Z$lZbbgVL|Xj6bD+ zMhbz_@Euf?>UUCYLOh2J<*;iM*ia68PazS?VVROb0olQnv}vcJq)=(tE+{DsQ<qgu;DExb*if8sHv*nJ&UwtY(2h1ZX`L z7(`-zD5D7SIU=RsNYhVxwm01IWNIZJhz#tN8vjzr{*tCZNgGfAo z*1#YVim?U;k>ugPAQHD9YhVyb9u5p5;UleqK@UZPa$wK{B3&gPDjMtokxr3yXz{?H z2V`2K1_nJK(?#_d^ngsVKkor~qN&Bh^^i<^;18k{6vFo@ilcm_phR($^=Pqk69tfH zZhN9QK!Vz@0cY$mL_Go!1%)NktJWYuwFS`%CSrhCEQ{u#I&?B3(HwMxLOfapjRxpf zWTEuM9%_6>_U|!#;YNkq7`||mvM>eiqldjpz7GrSV+xunkA|Dz+h>8&FBN zk7^Ba0Ak>jEY{P&DOs$iL8WBiQY1)&_bJxXpfYTD#CjTJ>-jDK>h%0XCjh`|Jre+6 zwVnw8uv*UqfLN_(0#qei&jhH-YCRKxEL+b6Aj5h>G0apY$jCifVL;_@C6OcJs>)AH zB1g6u&_s^Rl#~cmZa~MjDoRS^22^SVC4(F?Byma>>zTwUS*&LgD9P3{iBn3D9<$or8q>j>y+o;yFH+aAe0=yF3DsJ&xMX@}$M4r3g zpyirUCSOxx577ZxmK8CSB^h$Cnn@%3vK&Zbbsss9#_B$Dpw@SYKVjrR7C&L+Kun!R>>oFQPajrHpi%Y{n-0SS z${r_|Q?mF8sF4)WUx39u8bi97&^G>J-^as}@w*(>BhD^{HvJjfGn#w|G%4#YL zp)ISaEPT{d7CvGs3lT;O4C!L^u|#dB6UATJ<^L6Dzfz}=2V;%qf^YOe1sOGQmj%b29=NKLWv%u zUcwJV@;yewN@S~5!U^nG2$XOFhZO=PDuEK24TZfDRn8JcPH7$}`pK5#2~P17h2j&O z;%CySW3<9ge&YM^2_GvH`tS)yq=Ms^AV0`Y@(Bl&2~Y9~pG!O01o=Vi%O`xR=&moH za7cx)Q?a2RH4w1PgpOlWE12EgJt&v=|N?}Q+&b($@3(wsFUNVQcSSgzfw#n zrk3nODfD6upG%<|YxrCW-N-hv6uPn6#8TDDl;S)W({^kliwR3*n^>mosvMJ*ad3-G zEaTu7n^?xd+2Jb#@Fa@Z*%#5bBTGJ%agbsvExe4truG!&R0npfHe%J>t(d;uQ7FC|8(}(>CRt35)40 z=S)~kXE|qrX|CL&xm~9f&6RVo&5GunzkufC)XhLn&|*Oca)K5MIuHa0bIu2Hf(cU5 z7qrMEr(`OyFo#;=>Iy9UkSUj{^;S71Go(;X(0#aE#FzYU7 zgMAfNHgYc$2v*#LWssA(W0s?patwm6$xU$P<9dv{t8ctm%GF(cF-!{@HP@zUcoxT|lx^f-X->KiY7(T8+a-+1Y<0q)dn0xWx)^f-a;>KiXTdfe4F zUV3nTED9j2FECaAKFawaCHA@3;p#M<-SQ@yEELQ+n8dwHk zY2Xdi0uZ7Cgm8clF`r2g!U59R3l|0;J9Cx>-ay||09YEhjWjC&EDbCJuoN%=r11#? zj|N^(5W@Ur-^~)b8|XO@WtwFP-8SMyrQ-?0K*f2pEbRvRz5>Crv~6UCWK0xd?0>*A z##$I>EhAiEP4?;GeBEkgT{vI2QeiDzWi6bu<^jY+A*V!k_AHmXf#UlDoTmuBlD+X~ z+Y+I!jNmKRDioPzllMJ>YYj2apd=woi4IumcLT*Y4md@Y`fVetq-9BhR}8*=zzMS~ zuS|etc;$U%mn4?qmCq$h0Y*yMDT0^ubCRGfmE#JQg55wZo|~m$+X%k7z-h7!th@s( z`)WO;Ec+^BvFxk$4E2!p$g-~tQjSYl_SFi&vafBpVaWh2`ziyl?CS>l9g&tN3tj9j zr#?zPGc2{r2+FYr%dBpoYm|*)nbkI2PGo{Cvnms0nN@aX+)@NTq}{uaXim!%qtKGW z43=!Ir_6Y<vt;W#3LPz6MsLtz zIe{4N{(I5o1ivQS-Q{=2%v>{}K3}u@2O-&SZd4 z*7TC$kvo&&kvo&&kvo$CsD805*Jwx?sK?8A_j{O^C~^=@<5lCn=aP+9trT%<4{RR)k@h)up6TIn*q( zDuc4j>SsFWpYuW*&JMD00hVSpuSZz=t@ zX?zPb3Il2C7Nqeluv7ajTac#gyVQ^=B$RmPFd8hae2aQ16j@sNXX>r2WNBqtr|DcI z3q_VvmUWuWMY6Gxeg#F7>{VG-cLQ}(D6*{X2I{U*%mBsRd^cD^cY|u@SVC8JH!PuR zb!{0?5{o+IW0C7d<@5M1O5!pGjgs=6Q%o4uEl=(X*E=%}cQ(ru@ zq_6dwoCzjwaON_>#2PgLn+YZ^DXSm8CbLZN4T?)2|6Na{`dqYT_Z~<_J2?bn+&7ktK&SrM4Wwag-b$=sC7h*gx2XG(12(Of z@EouyA2XK9wO+zmDp$UQvsCUa`ls}SQHTnaLkE_+wSuwK?Ja7#Y_rtu7HOqX@bZ-D z8dbVXzeZ_X9==e3?5$YN6fDONEQ5QCK7i`j4zdjHEo!-Jvkb0$*=8BsbCmfXwu8AU z=eds{e+z!TWsjK?QL;i$O4{60cp$py|CX)n|Jh-0%V!&4iQW1V7@lOfx-w8;R zvpxfQ*{5Xurl6gIos31Dh>=9Be2GluD-GyRgnE)l9A+EP$EZZ%ZyrVpIIW(1Migck zJ@C>Y2}23k{#;CFiw#oIeIdj?rLnL(uGK_r3KadMMfU}N`>i+Jrm9`$)AxlbMO2VV z@@-J5Go>UaBC&sj;ncLZhn5vI2|dg z=vy!>KR2F)#l^<<(8Y)AbjFFgQnI~vl<4Fz+vUlpjCmz57x=n8QCixs`0juWy}sAf&!*bam|~wniP< zs}pL7U97IGPL~>;YG+IBYyvawp0DZgmo9c@^nSbjgm}-gpPlM5*So;sa3S&6>-4%^ z-FtV5E9tV|X=Xy)=OOz|M%#kPH4VC)m}1+Ug4!xw(KCm{KEtagH|S~(*#yx78>G*I z>Lyf<99!LC3Yr!q4n7~WD(!sGibaQlI$rIR9UK@`P4HI}9(+ZAVcf)tu6knC>=7&Vuy*D7#m%(e z9Vh)$c{6BewvGOoe$CY2rY~GX2Wk!3<=VXR&ukCV`gsc=kuLPe&M!Wh5xW1R>*iZd z4xie^MVAIQOfju``##2Re#` z-pNQfdGeQxSMKC&$#8NgA6>Ia*J-{%mmW6AE<8G~y6@Pr6T@6>d$c-4lL3`uCspe* zvi{QPE5jC;Y?HR1)XaEmc;MAKO`WDj6CXZOlM|!S?E7I>wx+FMqr+;4Y|XGwrc8~| z#Aq5;Y&jj%<`SbBw)}}z<5*9OrtbN`&rU3L`P0St`3Oy1xQnOQ=Yh$0l5e7mr@d#k z=E@)!&%bRw6S6g0Pd0u07zfY2h8U$4-CL6sq3N*ktoMlZ=tnLj1<_yP`;n1)+8$e7 zTUD82Ai8OxBX0E_eZuRj>a}+DO>x*yk<)XY7*|PZt8ynbG}P4+v-ig~ z*OJX0_iT_ZlYQp{n>5=c?ZQXqk3_M|eu*H8CIPO{21SG7i(-pnhoVKXM?vPA_@S_W z$im*~Iit9uFxTp))SXd#pm?HmLGeQIM)5)Egc6A2j}m}_EI8?gqC?RO$d{ zln|6qln9hClyH7rHc6&==1M^C273>$$$4t zRyrRjeQaQUI>#t`Y@kgZ=>OP2NCsaq;IV;v zd7%8Uf!!Hm8n_zx*nl=u%)mg!V*};#z@WzlR%eP&FRb^LPG^Z8zB&Zdg*f=FD3+~Y zwetTpEUb6*We?cHLn&Co+Qa4l(qUnJ56L!L%y*ysuX!H`Qs28mSD{^=Cq-w8u}NqD zHEGBQqtE`E>x$ORcqXL2`J^W!%$}>Nzjz_!CwpmLFHt8w*Gu#e=Gm|@MB~!(o}#~b zb)ncwZ91Gfq?+DhG#g#YYC@#Xl=eMV?~athi&2AeMX?xx)iaC5=h(EribZ6Xq_7e( zhRv!dk!QVD0?UBeSLC+Y^9gaeUB7~q0%Om-p2pbNhl}3HA-`{Kram`0H_>Q_P0G!W zGp6Ln<;n%4z49{kDM={_squ-)#)5*> - + 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,'物料号')" /> + + + - + + + +