From 2eba078ddbc0b342ff3a26547098250bb3c99353 Mon Sep 17 00:00:00 2001 From: "USER-20220102CG\\noblelift" <546428999@qq.com> Date: Tue, 23 May 2023 12:26:30 +0800 Subject: [PATCH 1/4] =?UTF-8?q?add=20=E8=80=81=E8=BD=A6=E9=97=B4=E5=8C=85?= =?UTF-8?q?=E8=A3=85=E7=BA=BF=E9=A9=B1=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ngOldLetteringPackageDeviceDefination.java | 2 +- ...iliangOldLetteringPackageDeviceDriver.java | 32 +--- .../ItemProtocol.java | 135 ++++++++----- ...ldPackageReceivingStationDeviceDriver.java | 34 +--- ...iliangLetteringPackageSsxDeviceDriver.java | 40 +++- .../ItemProtocol.java | 25 ++- .../HailiangOldPalletizingStationDriver.java | 29 +++ .../HailiangOldStackingManipulatorDriver.java | 181 ++++++++++++++---- ...ailiangOldUnboxingMachineDeviceDriver.java | 86 +++------ .../ItemProtocol.java | 23 ++- .../wms/service/impl/AcsToWmsServiceImpl.java | 56 +++--- .../wms/service/impl/WmsToAcsServiceImpl.java | 30 +++ .../service/dto/ProduceshiftorderDto.java | 40 ++++ .../org/nl/acs/order/service/wql/order.xls | Bin 168448 -> 171008 bytes .../lucene/service/dto/LuceneLogDto.java | 9 + ...hailiang_old_package_receiving_machine.vue | 85 +------- .../hailiang_old_package_ssx_station.vue | 91 ++------- .../hailiang_old_unboxing_machine.vue | 104 ++++------ .../src/views/acs/monitor/device/index.vue | 30 +++ 19 files changed, 562 insertions(+), 470 deletions(-) diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDefination.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDefination.java index e1a89032..05dc4824 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDefination.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDefination.java @@ -11,7 +11,7 @@ import java.util.LinkedList; import java.util.List; /** - * 开箱机 + * 刻字包装机 */ @Service public class HailiangOldLetteringPackageDeviceDefination implements OpcDeviceDriverDefination { diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDriver.java index 058f9118..5a265278 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/HailiangOldLetteringPackageDeviceDriver.java @@ -29,7 +29,7 @@ import java.util.List; import java.util.Map; /** - * 老车间-刻字包装输送线 + * 老车间-刻字包装机 */ @Slf4j @Data @@ -76,10 +76,7 @@ public class HailiangOldLetteringPackageDeviceDriver extends AbstractOpcDeviceDr try { device_code = this.getDeviceCode(); mode = this.itemProtocol.getMode(); - move = this.itemProtocol.getMove(); error = this.itemProtocol.getError(); - task = this.itemProtocol.getTask(); - barcode = this.itemProtocol.getBarcode(); if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode + "复位请求标记"); @@ -96,9 +93,6 @@ public class HailiangOldLetteringPackageDeviceDriver extends AbstractOpcDeviceDr logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error + "复位请求标记"); } - if (task != last_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task + "复位请求标记"); - } } catch (Exception var17) { var17.printStackTrace(); @@ -117,12 +111,6 @@ public class HailiangOldLetteringPackageDeviceDriver extends AbstractOpcDeviceDr Instruction instruction = null; List toInstructions; - if(move == 1 && error == 0 && barcode.length() > 0){ - - } - - - } @@ -150,27 +138,27 @@ public class HailiangOldLetteringPackageDeviceDriver extends AbstractOpcDeviceDr } + @Override public void issuedOrderInfo(ProduceshiftorderDto dto) { EalingOrderDto ealingOrderDto = dto.getEalingOrderDto(); if (ealingOrderDto != null) { String is_foreward = ealingOrderDto.getIs_foreward(); Map map = new HashMap<>(); - map.put("to_clear", "1"); - map.put("to_is_foreward", is_foreward); - map.put("to_order_box_num", ealingOrderDto.getOrder_box_num()); - map.put("to_order", ealingOrderDto.getOrder_code()); + map.put("to_qty", dto.getQty()); + map.put("to_order", dto.getOrder_code()); + map.put("item_to_bz_qty", dto.getPackage_qty()); + map.put("item_to_box_qty", dto.getBox_num()); + map.put("to_one_box_qty", dto.getOne_box_package_qty()); + map.put("to_one_bag_qty", dto.getOne_package_qty()); + map.put("to_one_box_qty", dto.getOne_box_package_qty()); this.writing(map); } } @Override public void issuedOrderFinish(String autoFinish) { - if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { - this.writing("to_order_compel_finished", "1"); - } else { - this.writing("to_confirm_finished", "1"); - } + } @Override diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/ItemProtocol.java index d8ca352a..f0e9d9b2 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_lettering_package_device/ItemProtocol.java @@ -13,20 +13,32 @@ public class ItemProtocol { public static String item_heartbeat = "heartbeat"; public static String item_mode = "mode"; - public static String item_move = "move"; - public static String item_action = "action"; + public static String item_kz_mode = "kz_mode"; + public static String item_ds_mode = "ds_mode"; + public static String item_bz_mode = "bz_mode"; + public static String item_kz_status = "kz_status"; + public static String item_ds_status = "ds_status"; + public static String item_bz_status = "bz_status"; public static String item_error = "error"; - public static String item_direction = "direction"; - public static String item_vehicle_type = "vehicle_type"; - public static String item_task = "task"; - public static String item_barcode = "barcode"; - - - public static String item_to_command = "to_command"; - public static String item_to_target = "to_target"; - public static String item_to_vehicle_type = "to_vehicle_type"; - public static String item_to_task = "to_task"; + public static String item_kz_error = "kz_error"; + public static String item_ds_error = "ds_error"; + public static String item_bz_error = "bz_error"; + public static String item_kz_qty = "kz_qty"; + public static String item_ds_qty = "ds_qty"; + public static String item_bz_qty = "bz_qty"; + public static String item_order_finish = "order_finish"; + public static String item_order_compulsion_finish = "order_compulsion_finish"; + public static String item_order = "order"; + public static String item_to_order_qty = "to_order_qty"; + public static String item_to_bz_qty = "to_bz_qty"; + public static String item_to_box_qty = "to_box_qty"; + public static String item_to_one_box_qty = "to_one_box_qty"; + public static String item_to_one_bag_qty = "to_one_bag_qty"; + public static String item_to_finish = "to_finish"; + public static String item_to_compulsion_finish = "to_compulsion_finish"; + public static String item_to_order = "to_order"; + public static String item_to_clear = "to_clear"; private HailiangOldLetteringPackageDeviceDriver driver; @@ -43,45 +55,62 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_mode); } - public int getMove() { - return this.getOpcIntegerValue(item_move); + public int getKz_mode() { + return this.getOpcIntegerValue(item_kz_mode); } - public int getAction() { - return this.getOpcIntegerValue(item_action); + public int getDs_mode() { + return this.getOpcIntegerValue(item_ds_mode); } - public String getBarcode() { - return this.getOpcStringValue(item_barcode); + public int getBz_mode() { + return this.getOpcIntegerValue(item_bz_mode); + } + + public int getKz_status() { + return this.getOpcIntegerValue(item_kz_status); + } + + public int getDs_status() { + return this.getOpcIntegerValue(item_ds_status); + } + + public int getBz_status() { + return this.getOpcIntegerValue(item_bz_status); + } + + public int getKz_qty() { + return this.getOpcIntegerValue(item_kz_qty); + } + + public int getDs_qty() { + return this.getOpcIntegerValue(item_ds_qty); + } + + public int getBz_qty() { + return this.getOpcIntegerValue(item_bz_qty); } public int getError() { return this.getOpcIntegerValue(item_error); } - public int getVehicle_type() { - return this.getOpcIntegerValue(item_vehicle_type); + public int getKz_error() { + return this.getOpcIntegerValue(item_kz_error); } - public int getTask() { - return this.getOpcIntegerValue(item_task); + public int getDs_error() { + return this.getOpcIntegerValue(item_ds_error); } - public int getToCommand() { - return this.getOpcIntegerValue(item_to_command); + public int getBz_error() { + return this.getOpcIntegerValue(item_bz_error); } - public int getToTarget() { - return this.getOpcIntegerValue(item_to_target); + public int getOrder() { + return this.getOpcIntegerValue(item_order); } - public int getToVehicle_type() { - return this.getOpcIntegerValue(item_to_vehicle_type); - } - - public int getToTask() { - return this.getOpcIntegerValue(item_to_task); - } //是否有货 public int hasGoods(int move) { @@ -116,24 +145,38 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_heartbeat, "心跳", "VW0")); - list.add(new ItemDto(item_mode, "工作状态", "VW2", Boolean.valueOf(true))); - list.add(new ItemDto(item_move, "光电开关信号", "VW4")); - list.add(new ItemDto(item_action, "取放信号", "VW6")); - list.add(new ItemDto(item_direction, "电机方向", "VW8")); - list.add(new ItemDto(item_vehicle_type, "托盘类型", "VW10")); - list.add(new ItemDto(item_error, "报警信号", "VW12")); - list.add(new ItemDto(item_task, "任务号", "VD14")); - list.add(new ItemDto(item_barcode, "条码", "VB18.20")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB600.W0")); + list.add(new ItemDto(item_mode, "工作模式", "DB600.W2", Boolean.valueOf(true))); + list.add(new ItemDto(item_kz_mode, "刻字机工作模式", "DB600.W4", Boolean.valueOf(true))); + list.add(new ItemDto(item_ds_mode, "点数机工作模式", "DB600.W6", Boolean.valueOf(true))); + list.add(new ItemDto(item_bz_mode, "包装机工作模式", "DB600.W8", Boolean.valueOf(true))); + list.add(new ItemDto(item_kz_status, "刻字机工作状态", "DB600.W10")); + list.add(new ItemDto(item_ds_status, "点数机工作状态", "DB600.W12")); + list.add(new ItemDto(item_bz_status, "包装机工作状态", "DB600.W14")); + list.add(new ItemDto(item_error, "报警信号", "DB600.W16")); + list.add(new ItemDto(item_kz_error, "刻字机报警信号", "DB600.W18")); + list.add(new ItemDto(item_ds_error, "点数机报警信号", "DB600.W20")); + list.add(new ItemDto(item_bz_error, "包装机报警信号", "DB600.W22")); + list.add(new ItemDto(item_kz_qty, "刻字数量", "DB600.W24")); + list.add(new ItemDto(item_ds_qty, "点数数量", "DB600.W26")); + list.add(new ItemDto(item_bz_qty, "包装数量", "DB600.W28")); + list.add(new ItemDto(item_order_finish, "工单完成", "DB600.W30")); + list.add(new ItemDto(item_order_compulsion_finish, "工单强制完成", "DB600.W32")); + list.add(new ItemDto(item_order, "工单号", "DB600.D34")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command, "下发作业命令", "VW2", Boolean.valueOf(true))); - list.add(new ItemDto(item_to_target, "下发目标站", "VW4")); - list.add(new ItemDto(item_to_vehicle_type, "下发托盘类型", "VW6")); - list.add(new ItemDto(item_to_task, "任务号", "VD8")); + list.add(new ItemDto(item_to_order_qty, "下发工单数量", "DB610.W2", Boolean.valueOf(true))); + list.add(new ItemDto(item_to_bz_qty, "下发包装袋数", "DB610.W4")); + list.add(new ItemDto(item_to_box_qty, "下发箱数", "DB610.W6")); + list.add(new ItemDto(item_to_one_box_qty, "下发每箱袋数", "DB610.W8")); + list.add(new ItemDto(item_to_one_bag_qty, "下发每袋数量", "DB610.W10")); + list.add(new ItemDto(item_to_finish, "下发工单完成反馈", "DB610.W12")); + list.add(new ItemDto(item_to_compulsion_finish, "下发工单强制完成反馈", "DB610.W14")); + list.add(new ItemDto(item_to_order, "下发工单号", "DB610.D16")); + list.add(new ItemDto(item_to_clear, "下发清零", "DB610.W20")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_receiving_station/HailiangOldPackageReceivingStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_receiving_station/HailiangOldPackageReceivingStationDeviceDriver.java index 7507ab25..943ee369 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_receiving_station/HailiangOldPackageReceivingStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_receiving_station/HailiangOldPackageReceivingStationDeviceDriver.java @@ -34,7 +34,7 @@ import java.util.Map; @Slf4j @Data @RequiredArgsConstructor -public class HailiangOldPackageReceivingStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, IssuedDeviceOrderInfo { +public class HailiangOldPackageReceivingStationDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor { protected ItemProtocol itemProtocol = new ItemProtocol(this); DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @@ -162,36 +162,4 @@ public class HailiangOldPackageReceivingStationDeviceDriver extends AbstractOpcD } - @Override - public void issuedOrderInfo(ProduceshiftorderDto dto) { - EalingOrderDto ealingOrderDto = dto.getEalingOrderDto(); - if (ealingOrderDto != null) { - String is_foreward = ealingOrderDto.getIs_foreward(); - Map map = new HashMap<>(); - map.put("to_clear", "1"); - map.put("to_is_foreward", is_foreward); - map.put("to_order_box_num", ealingOrderDto.getOrder_box_num()); - map.put("to_order", ealingOrderDto.getOrder_code()); - this.writing(map); - } - } - - @Override - public void issuedOrderFinish(String autoFinish) { - if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { - this.writing("to_order_compel_finished", "1"); - } else { - this.writing("to_confirm_finished", "1"); - } - } - - @Override - public void toStop() { - - } - - @Override - public void toStart() { - - } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/HailiangLetteringPackageSsxDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/HailiangLetteringPackageSsxDeviceDriver.java index 5fed8a06..4b4ccaa7 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/HailiangLetteringPackageSsxDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/HailiangLetteringPackageSsxDeviceDriver.java @@ -92,8 +92,8 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr this.writing("to_command", "0"); this.writing("to_target", "0"); } + requireSucess =false; } - if (error != last_error) { if (error != 0) { DeviceErrorLogDto dto = new DeviceErrorLogDto(); @@ -104,7 +104,6 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr } logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error + "复位请求标记"); } - if (task != last_task) { logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task + "复位请求标记"); } @@ -126,7 +125,7 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr Instruction instruction = null; List toInstructions; - if(move == 1 && error == 0 && barcode.length() > 0){ + if(move == 1 && error == 0 && barcode.length() > 0 && requireSucess == false ){ //2305281100001 if(barcode.trim().length() == 16){ if(isNumeric(barcode.trim())){ @@ -140,9 +139,10 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr int isFlip = Integer.parseInt(barcode.trim().substring(9,10)); int target = Integer.parseInt(barcode.trim().substring(10,11)); if(isFlip>0 && target>0){ - this.writing("to_command", String.valueOf(isFlip)); + this.writing("to_is_flip",String.valueOf(isFlip)); this.writing("to_target", String.valueOf(target)); - + this.writing("to_command","1"); + requireSucess = true; } else { message = "条码:"+ barcode + ",是否翻转:"+isFlip + "目标巷道:"+target; } @@ -165,6 +165,7 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr last_move = move; last_error = error; last_task = task; + last_barcode = barcode; } @@ -172,8 +173,33 @@ public class HailiangLetteringPackageSsxDeviceDriver extends AbstractOpcDeviceDr public JSONObject getDeviceStatusName() { JSONObject jo = new JSONObject(); jo.put("device_name", this.getDevice().getDevice_name()); - jo.put("mode", mode == 1 ? "联机" : "未联机"); - jo.put("move", move == 1 ? "有货" : "无货"); + String mode = ""; + String action = ""; + String move = ""; + if (this.getMode() == 0) { + mode = "未联机"; + } else if (this.getMode() == 1) { + mode = "单机"; + } else if (this.getMode() == 2) { + mode = "联机"; + } else if (this.getMode() == 3) { + mode = "运行中"; + } + if (this.getMove() == 0) { + move = "无货"; + jo.put("hasGoods", false); + } else if (this.getMove() == 1) { + move = "有货"; + jo.put("hasGoods", true); + } else if (this.getMove() == 2) { + move = "有托盘有货"; + jo.put("move", move); + jo.put("hasGoods", true); + } + jo.put("move", move); + jo.put("mode", mode); + jo.put("isOnline", this.getIsonline()); + jo.put("isError", this.getIserror()); jo.put("error", ErrorUtil.getDictDetail("ssx_error_type", String.valueOf(error))); jo.put("task", task); jo.put("barcode", barcode); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/ItemProtocol.java index 3868dd53..2f0392a3 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_package_ssx/ItemProtocol.java @@ -19,15 +19,17 @@ public class ItemProtocol { public static String item_action = "action"; public static String item_error = "error"; public static String item_direction = "direction"; - public static String item_vehicle_type = "vehicle_type"; + public static String item_is_flip = "is_flip"; public static String item_task = "task"; public static String item_barcode = "barcode"; public static String item_to_command = "to_command"; public static String item_to_target = "to_target"; - public static String item_to_vehicle_type = "to_vehicle_type"; public static String item_to_task = "to_task"; + public static String item_to_is_flip = "to_is_flip"; + public static String item_to_barcode = "to_barcode"; + @@ -61,8 +63,8 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_error); } - public int getVehicle_type() { - return this.getOpcIntegerValue(item_vehicle_type); + public int getIsflip() { + return this.getOpcIntegerValue(item_is_flip); } public int getTask() { @@ -77,10 +79,6 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_to_target); } - public int getToVehicle_type() { - return this.getOpcIntegerValue(item_to_vehicle_type); - } - public int getToTask() { return this.getOpcIntegerValue(item_to_task); } @@ -123,7 +121,7 @@ public class ItemProtocol { list.add(new ItemDto(item_move, "光电开关信号", "DB600.W4")); list.add(new ItemDto(item_action, "取放信号", "DB600.W6")); list.add(new ItemDto(item_direction, "电机方向", "DB600.W8")); - list.add(new ItemDto(item_vehicle_type, "托盘类型", "DB600.W10")); + list.add(new ItemDto(item_is_flip, "是否翻转", "DB600.W10")); list.add(new ItemDto(item_error, "报警信号", "DB600.W12")); list.add(new ItemDto(item_task, "任务号", "DB600.D14")); list.add(new ItemDto(item_barcode, "条码", "DB600.STRING18.20")); @@ -132,10 +130,11 @@ public class ItemProtocol { public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command, "下发作业命令", "DB601.W0", Boolean.valueOf(true))); - list.add(new ItemDto(item_to_target, "下发目标站", "DB601.W2")); - list.add(new ItemDto(item_to_vehicle_type, "下发托盘类型", "DB601.W4")); - list.add(new ItemDto(item_to_task, "任务号", "DB601.D6")); + list.add(new ItemDto(item_to_command, "下发作业命令", "DB610.W2", Boolean.valueOf(true))); + list.add(new ItemDto(item_to_target, "下发目标站", "DB610.W4")); + list.add(new ItemDto(item_to_is_flip, "下发是否翻转", "DB610.W6")); + list.add(new ItemDto(item_to_task, "下发任务号", "DB610.D8")); + list.add(new ItemDto(item_to_barcode, "下发条码", "DB610.STRING12.20")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_palletizing_station/HailiangOldPalletizingStationDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_palletizing_station/HailiangOldPalletizingStationDriver.java index 9bce7be5..7d5a0ea4 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_palletizing_station/HailiangOldPalletizingStationDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_palletizing_station/HailiangOldPalletizingStationDriver.java @@ -12,6 +12,7 @@ import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; +import org.nl.acs.history.ErrorUtil; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; @@ -185,6 +186,34 @@ public class HailiangOldPalletizingStationDriver extends AbstractOpcDeviceDriver @Override public JSONObject getDeviceStatusName() { JSONObject jo = new JSONObject(); + jo.put("device_name", this.getDevice().getDevice_name()); + String mode = ""; + String action = ""; + String move = ""; + if (this.getMode() == 0) { + mode = "未联机"; + } else if (this.getMode() == 1) { + mode = "单机"; + } else if (this.getMode() == 2) { + mode = "联机"; + } else if (this.getMode() == 3) { + mode = "运行中"; + } + if (this.getMove() == 0) { + move = "无货"; + jo.put("hasGoods", false); + } else if (this.getMove() == 1) { + move = "有货"; + jo.put("hasGoods", true); + } else if (this.getMove() == 2) { + move = "有托盘有货"; + jo.put("hasGoods", true); + } + jo.put("isOnline", this.getIsonline()); + jo.put("isError", this.getIserror()); + jo.put("error", ErrorUtil.getDictDetail("ssx_error_type", String.valueOf(error))); + jo.put("isOnline", this.itemProtocol.getIsonline()); + jo.put("message", message); return jo; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_stacking_manipulator/HailiangOldStackingManipulatorDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_stacking_manipulator/HailiangOldStackingManipulatorDriver.java index e7f623ac..8cdd07cb 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_stacking_manipulator/HailiangOldStackingManipulatorDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_stacking_manipulator/HailiangOldStackingManipulatorDriver.java @@ -1,5 +1,8 @@ package org.nl.acs.device_driver.basedriver.hailiang_old.hailiang_old_stacking_manipulator; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -8,18 +11,25 @@ import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_old.hailiang_old_package_ssx.HailiangLetteringPackageSsxDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_old.hailiang_old_palletizing_station.HailiangOldPalletizingStationDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_auto_cache_line.HailiangAutoCacheLineDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; +import org.nl.acs.history.ErrorUtil; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.order.service.ProduceshiftorderService; +import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.task.service.TaskService; +import org.nl.modules.lucene.service.LuceneExecuteLogService; +import org.nl.modules.lucene.service.dto.LuceneLogDto; import org.nl.modules.wql.util.SpringContextHolder; import org.openscada.opc.lib.da.Server; import org.springframework.beans.factory.annotation.Autowired; @@ -52,6 +62,9 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderService.class); @Autowired DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); + @Autowired + LuceneExecuteLogService lucene = SpringContextHolder.getBean(LuceneExecuteLogService.class); + //心跳 int heartbeat = 0; int last_heartbeat = 0; @@ -87,7 +100,7 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive //请求码垛完成标志 Boolean stackingRequireSuccess = false; - + JSONArray barcodeArr = new JSONArray(); //当前设备状态 01代表 关机, 02代表 开机, 03代表 生产中, 04代表 待机, 05代表 异常 int status_type = 0; //上次设备状态 @@ -139,6 +152,9 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive logServer.deviceExecuteLog(this.device_code, "", "", "信号status:" + last_status + "->" + status); } if (action != last_action) { + vehicleInfoRequireSuccess = false; + singlePlacementRequireSuccess =false; + stackingRequireSuccess = false; logServer.deviceItemValue(this.device_code, "action", String.valueOf(action)); logServer.deviceExecuteLog(this.device_code, "", "", "信号action:" + last_action + "->" + action); } @@ -220,28 +236,92 @@ public class HailiangOldStackingManipulatorDriver extends AbstractOpcDeviceDrive //根据kep读取到的抓取工位的值 - 1 得到对应设备的下标,再根据下标获得对应设备的编码 String getDeviceCode = getDeviceCodeList.get(getGetStation() - 1).replace("\"", ""); //根据抓取工位获取托盘信息 - JSONObject map = new JSONObject(); - map.put("getStation", getDeviceCode); - JSONObject resp = acsToWmsService.getVehicle(map); - int code = Integer.parseInt(resp.getString("code")); - String message = resp.getString("message"); - String getStation = resp.getString("getStation"); - String putStation = resp.getString("putStation"); - String encoder_qty = resp.getString("encoder_qty"); - String boxtype = resp.getString("boxtype"); - if (code == 200) { - //根据获取托盘信息返回的结果 得到对应抓取工位/放货工位设备编码所在的索引位置 - int getIndex = getDeviceCodeList.indexOf(getStation); - int putIndex = putDeviceCodeList.indexOf(putStation); - //将的到的索引 + 1 写入kep中 - this.writing("to_getStation", String.valueOf(getIndex + 1)); +// JSONObject map = new JSONObject(); +// map.put("getStation", getDeviceCode); +// JSONObject resp = acsToWmsService.getVehicle(map); +// int code = Integer.parseInt(resp.getString("code")); +// String message = resp.getString("message"); +// String getStation = resp.getString("getStation"); +// String putStation = resp.getString("putStation"); +// String encoder_qty = resp.getString("encoder_qty"); +// String boxtype = resp.getString("boxtype"); +// if (code == 200) { +// //根据获取托盘信息返回的结果 得到对应抓取工位/放货工位设备编码所在的索引位置 +// int getIndex = getDeviceCodeList.indexOf(getStation); +// int putIndex = putDeviceCodeList.indexOf(putStation); +// //将的到的索引 + 1 写入kep中 +// this.writing("to_getStation", String.valueOf(getIndex + 1)); +// this.writing("to_putStation", String.valueOf(putIndex + 1)); +// this.writing("to_boxtype", boxtype); +// this.writing("to_feedback", "1"); +// //获取托盘信息成功后 设为true 防止多次请求 等单次防止完成时设为false +// this.setVehicleInfoRequireSuccess(true); +// } else { +// log.warn("获取托盘信息失败!设备号:{},原因{}", device_code, message); +// } + + int getIndex = 0; + int putIndex = 0; + //获取取货位条码 + Device getDevice = deviceAppservice.findDeviceByCode(getDeviceCode); + HailiangLetteringPackageSsxDeviceDriver hailiangLetteringPackageSsxDeviceDriver; + if(getDevice.getDeviceDriver() instanceof HailiangLetteringPackageSsxDeviceDriver ) { + hailiangLetteringPackageSsxDeviceDriver = (HailiangLetteringPackageSsxDeviceDriver) getDevice.getDeviceDriver(); + String barcode = hailiangLetteringPackageSsxDeviceDriver.getBarcode(); + if (Objects.isNull(barcode)) { + message = "获取托盘信息,取货位:" + getDeviceCode + "条码为空"; + return false; + } + String order = barcode.trim().substring(0,9); + ProduceshiftorderDto dto =produceshiftorderService.findByCodeFromCache(order); + if(Objects.isNull(dto)){ + message = "获取托盘信息,工单号:" + order + "未找到对应工单"; + return false; + } + String boxType = dto.getBox_type(); + String tray_full_num = dto.getTray_full_num(); + String targetStation = null; + for(int i=0;i" + mode + "复位请求标记"); @@ -142,9 +132,19 @@ public class HailiangOldUnboxingMachineDeviceDriver extends AbstractOpcDeviceDri jo.put("device_name", this.getDevice().getDevice_name()); jo.put("mode", mode == 1 ? "联机" : "未联机"); jo.put("error", ErrorUtil.getDictDetail("unbox_error_type", String.valueOf(error))); - jo.put("now_order_num", now_order_num); - jo.put("task", task); - jo.put("order", order); + jo.put("qty", qty); + jo.put("status", this.itemProtocol.getStatus()==1 ? "未知":"工作中"); + jo.put("one_qty", this.itemProtocol.getOne_qty()); + jo.put("two_qty", this.itemProtocol.getTwo_qty()); + jo.put("three_qty", this.itemProtocol.getThree_qty()); + jo.put("four_qty", this.itemProtocol.getFour_qty()); + jo.put("five_qty", this.itemProtocol.getFive_qty()); + jo.put("one_status", this.itemProtocol.getStatus()); + jo.put("two_status", this.itemProtocol.getStatus()); + jo.put("three_status", this.itemProtocol.getStatus()); + jo.put("four_status", this.itemProtocol.getStatus()); + jo.put("five_status", this.itemProtocol.getStatus()); + jo.put("is_disable", this.itemProtocol.getIs_disable()); jo.put("isOnline", this.itemProtocol.getIsonline()); return jo; } @@ -154,36 +154,4 @@ public class HailiangOldUnboxingMachineDeviceDriver extends AbstractOpcDeviceDri } - @Override - public void issuedOrderInfo(ProduceshiftorderDto dto) { - EalingOrderDto ealingOrderDto = dto.getEalingOrderDto(); - if (ealingOrderDto != null) { - String is_foreward = ealingOrderDto.getIs_foreward(); - Map map = new HashMap<>(); - map.put("to_clear", "1"); - map.put("to_is_foreward", is_foreward); - map.put("to_order_box_num", ealingOrderDto.getOrder_box_num()); - map.put("to_order", ealingOrderDto.getOrder_code()); - this.writing(map); - } - } - - @Override - public void issuedOrderFinish(String autoFinish) { - if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { - this.writing("to_order_compel_finished", "1"); - } else { - this.writing("to_confirm_finished", "1"); - } - } - - @Override - public void toStop() { - - } - - @Override - public void toStart() { - - } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_unboxing_machine/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_unboxing_machine/ItemProtocol.java index 0713e327..7b74a467 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_unboxing_machine/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_old/hailiang_old_unboxing_machine/ItemProtocol.java @@ -41,6 +41,8 @@ public class ItemProtocol { public static String item_four_status = "four_status"; //前往5巷道状态 public static String item_five_status = "five_status"; + //是否禁用 + public static String item_is_disable = "is_disable"; //前往1巷道状态 @@ -55,6 +57,9 @@ public class ItemProtocol { public static String item_to_five_status = "to_five_status"; //清零 public static String item_to_clear = "to_clear"; + //禁用 + public static String item_to_is_disable = "to_is_disable"; + private HailiangOldUnboxingMachineDeviceDriver driver; @@ -122,6 +127,9 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_five_status); }; + public int getIs_disable() { + return this.getOpcIntegerValue(item_is_disable); + }; Boolean isonline; @@ -155,17 +163,20 @@ public class ItemProtocol { list.add(new ItemDto(item_three_status, "3号巷道状态", "DB600.W24")); list.add(new ItemDto(item_four_status, "4号巷道状态", "DB600.W26")); list.add(new ItemDto(item_five_status, "5号巷道状态", "DB600.W28")); + list.add(new ItemDto(item_is_disable, "是否禁用", "DB600.W30")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_one_status, "禁用1号巷道状态", "DB601.W2")); - list.add(new ItemDto(item_to_two_status, "禁用2号巷道状态", "DB600.W4")); - list.add(new ItemDto(item_to_three_status, "禁用3号巷道状态", "DB600.W6")); - list.add(new ItemDto(item_to_four_status, "禁用4号巷道状态", "DB600.W8")); - list.add(new ItemDto(item_to_five_status, "禁用5号巷道状态", "DB600.W10")); - list.add(new ItemDto(item_to_clear, "清零", "DB600.W12")); + list.add(new ItemDto(item_to_one_status, "禁用1号巷道状态", "DB610.W2")); + list.add(new ItemDto(item_to_two_status, "禁用2号巷道状态", "DB610.W4")); + list.add(new ItemDto(item_to_three_status, "禁用3号巷道状态", "DB610.W6")); + list.add(new ItemDto(item_to_four_status, "禁用4号巷道状态", "DB610.W8")); + list.add(new ItemDto(item_to_five_status, "禁用5号巷道状态", "DB610.W10")); + list.add(new ItemDto(item_to_clear, "下发清零", "DB610.W12")); + list.add(new ItemDto(item_to_is_disable, "下发禁用", "DB610.W14")); + return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index f5db58d4..fd423fe8 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -572,34 +572,34 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public JSONObject stackingCompleted(JSONObject param) { - a = 20; - JSONObject map = new JSONObject(); - map.put("code", 200); - map.put("message", "成功"); - map.put("data", null); - return map; -// try { -// MDC.put(log_file_type, log_type); -// String wmsurl = paramService.findByCode(AcsConfig.WMSURL).getValue(); -// HttpResponse result = null; -// log.info("stackingCompleted-----码垛完成请求"); -// AddressDto addressDto = addressService.findByCode("stackingCompleted"); -// String methods_url = addressDto.getMethods_url(); -// try { -// result = HttpRequest.get(wmsurl + methods_url) -// .body("") -// .execute(); -// log.info("stackingCompleted-----码垛完成输出参数{}", result.body().toString()); -// } catch (Exception e) { -// String msg = e.getMessage(); -// //网络不通 -// System.out.println(msg); -// } -// JSONObject jo = JSONObject.parseObject(result.body()); -// return jo; -// } finally { -// MDC.remove(log_file_type); -// } +// a = 20; +// JSONObject map = new JSONObject(); +// map.put("code", 200); +// map.put("message", "成功"); +// map.put("data", null); +// return map; + try { + MDC.put(log_file_type, log_type); + String wmsurl = paramService.findByCode(AcsConfig.WMSURL).getValue(); + HttpResponse result = null; + log.info("stackingCompleted-----码垛完成请求"); + AddressDto addressDto = addressService.findByCode("stackingCompleted"); + String methods_url = addressDto.getMethods_url(); + try { + result = HttpRequest.get(wmsurl + methods_url) + .body("") + .execute(); + log.info("stackingCompleted-----码垛完成输出参数{}", result.body().toString()); + } catch (Exception e) { + String msg = e.getMessage(); + //网络不通 + System.out.println(msg); + } + JSONObject jo = JSONObject.parseObject(result.body()); + return jo; + } finally { + MDC.remove(log_file_type); + } } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index c61325d7..dfc68fc7 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -246,6 +246,28 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String is_used_fxx = param.getString("is_used_fxx"); String ealing_device_code = param.getString("ealing_device_code"); String unboxing_device_code = param.getString("unboxing_device_code"); + + Map extra_map = param.getJSONObject("extra_map"); + + //老车间包装工单信息 + //每箱袋数 + String one_box_package_qty = extra_map.get("one_box_package_qty").toString(); + //袋数 + String package_qty = extra_map.get("package_qty").toString(); + //每袋数量 + String one_package_qty = extra_map.get("one_package_qty").toString(); + //箱数 + String box_num = extra_map.get("box_num").toString(); + //箱型 + String box_type = extra_map.get("box_type").toString(); + //目标巷道 + String target_roadway = extra_map.get("target_roadway").toString(); + //是否翻转 + String is_flip = extra_map.get("is_flip").toString(); + //托盘满托数量 + String tray_full_num = extra_map.get("tray_full_num").toString(); + + Map params = param.getJSONObject("params"); EalingOrderDto ealingOrderDto = null; if (ObjectUtil.isNotEmpty(params)) { @@ -317,6 +339,14 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { dto.setIs_used_fxx(is_used_fxx); dto.setEaling_device_code(ealing_device_code); dto.setUnboxing_device_code(unboxing_device_code); + dto.setOne_box_package_qty(one_box_package_qty); + dto.setOne_package_qty(one_package_qty); + dto.setPackage_qty(package_qty); + dto.setBox_num(box_num); + dto.setBox_type(box_type); + dto.setTarget_roadway(target_roadway); + dto.setIs_flip(is_flip); + dto.setTray_full_num(tray_full_num); dto.setEalingOrderDto(ealingOrderDto); dto.setCreate_by("mes"); try { diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderDto.java b/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderDto.java index c92b4eef..3cbfa997 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderDto.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderDto.java @@ -135,4 +135,44 @@ public class ProduceshiftorderDto implements Serializable { */ private EalingOrderDto ealingOrderDto; + /** + * 每箱袋数 + */ + private String one_box_package_qty; + + /** + * 每袋数量 + */ + private String one_package_qty; + + /** + * 箱数 + */ + private String box_num; + + /** + * 箱型 + */ + private String box_type; + + /** + * 目标巷道 + */ + private String target_roadway; + + /** + * 是否翻转 + */ + private String is_flip; + + /** + * 托盘满托数量 + */ + private String tray_full_num; + + /** + * 袋数 + */ + private String package_qty; + } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/wql/order.xls b/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/wql/order.xls index 86ffb1b05bf9f837359c522bc1a223e50840dbec..cb0849618786e39707406263f923ca80a9ca4d3d 100644 GIT binary patch delta 11190 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 diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java index 90e89fd9..57cdcea3 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java +++ b/wcs/nladmin-system/src/main/java/org/nl/modules/lucene/service/dto/LuceneLogDto.java @@ -82,4 +82,13 @@ public class LuceneLogDto { + last_home + " -> " + home; } + + public LuceneLogDto(final String device_code, final String remark) { + super(); + this.device_code = device_code; + this.content = "设备 [" + + device_code + + "] : " + + remark; + } } diff --git a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_receiving_machine.vue b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_receiving_machine.vue index ee900862..a30b7f00 100644 --- a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_receiving_machine.vue +++ b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_receiving_machine.vue @@ -334,61 +334,19 @@ export default { } for (const val in this.data1) { if (this.data1[val].code.indexOf('move') !== -1) { - this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 1) - } - if (this.data1[val].code.indexOf('action') !== -1) { this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 2) } - if (this.data1[val].code.indexOf('ioaction') !== -1) { - this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 3) - } - if (this.data1[val].code.indexOf('error') !== -1) { + if (this.data1[val].code.indexOf('action') !== -1) { this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 4) } + if (this.data1[val].code.indexOf('is_full') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 6) + } + if (this.data1[val].code.indexOf('error') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 8) + } if (this.data1[val].code.indexOf('task') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 5) - } - if (this.data1[val].code.indexOf('weight') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 9) - } - if (this.data1[val].code.indexOf('batch') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 13) - } - if (this.data1[val].code.indexOf('specifications') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 17) + '.50' - } - if (this.data1[val].code.indexOf('material') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 273) + '.50' - } - if (this.data1[val].code.indexOf('barcode') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 529) + '.50' - } - if (this.data1[val].code.indexOf('AlongSide') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 785) - } - if (this.data1[val].code.indexOf('BshortSide') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 787) - } - if (this.data1[val].code.indexOf('Htrapezoidal') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 789) - } - if (this.data1[val].code.indexOf('Wthickness') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 791) - } - if (this.data1[val].code.indexOf('status') !== -1) { - this.data1[val].db = beforeStr + '.' + 'B' + (parseInt(endNumber) + 795) - } - if (this.data1[val].code.indexOf('unqualified_qty') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 795) - } - if (this.data1[val].code.indexOf('encoder_qty') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 799) - } - if (this.data1[val].code.indexOf('order_qty') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 803) - } - if (this.data1[val].code.indexOf('order_No') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 807) + '.50' + this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 10) } } } @@ -414,33 +372,6 @@ export default { if (this.data2[val].code.indexOf('to_task') !== -1) { this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 4) } - if (this.data2[val].code.indexOf('to_barcode') !== -1) { - this.data2[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 8) + '.50' - } - if (this.data2[val].code.indexOf('to_error') !== -1) { - this.data2[val].db = beforeStr + '.' + 'B' + (parseInt(endNumber) + 264) - } - if (this.data2[val].code.indexOf('to_allow_pallet_qty') !== -1) { - this.data2[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 266) - } - if (this.data2[val].code.indexOf('to_material_type') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 268) - } - // if (this.data2[val].code.indexOf('to_material_code') !== -1) { - // this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 272) - // } - if (this.data2[val].code.indexOf('to_order_qty') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 276) - } - if (this.data2[val].code.indexOf('to_product_code') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 280) - } - if (this.data2[val].code.indexOf('to_order_No') !== -1) { - this.data2[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 284) + '.50' - } - if (this.data2[val].code.indexOf('to_material_code') !== -1) { - this.data2[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 540) + '.50' - } } } }, diff --git a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue index e724b65d..f6ab9efc 100644 --- a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue +++ b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue @@ -334,61 +334,25 @@ export default { } for (const val in this.data1) { if (this.data1[val].code.indexOf('move') !== -1) { - this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 1) - } - if (this.data1[val].code.indexOf('action') !== -1) { this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 2) } - if (this.data1[val].code.indexOf('ioaction') !== -1) { - this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 3) - } - if (this.data1[val].code.indexOf('error') !== -1) { + if (this.data1[val].code.indexOf('action') !== -1) { this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 4) } + if (this.data1[val].code.indexOf('direction') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 6) + } + if (this.data1[val].code.indexOf('is_flip') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 8) + } + if (this.data1[val].code.indexOf('error') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 10) + } if (this.data1[val].code.indexOf('task') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 5) - } - if (this.data1[val].code.indexOf('weight') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 9) - } - if (this.data1[val].code.indexOf('batch') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 13) - } - if (this.data1[val].code.indexOf('specifications') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 17) + '.50' - } - if (this.data1[val].code.indexOf('material') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 273) + '.50' + this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 12) } if (this.data1[val].code.indexOf('barcode') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 529) + '.50' - } - if (this.data1[val].code.indexOf('AlongSide') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 785) - } - if (this.data1[val].code.indexOf('BshortSide') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 787) - } - if (this.data1[val].code.indexOf('Htrapezoidal') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 789) - } - if (this.data1[val].code.indexOf('Wthickness') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 791) - } - if (this.data1[val].code.indexOf('status') !== -1) { - this.data1[val].db = beforeStr + '.' + 'B' + (parseInt(endNumber) + 795) - } - if (this.data1[val].code.indexOf('unqualified_qty') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 795) - } - if (this.data1[val].code.indexOf('encoder_qty') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 799) - } - if (this.data1[val].code.indexOf('order_qty') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 803) - } - if (this.data1[val].code.indexOf('order_No') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 807) + '.50' + this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 16) + '.20' } } } @@ -411,35 +375,14 @@ export default { if (this.data2[val].code.indexOf('to_target') !== -1) { this.data2[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 2) } + if (this.data2[val].code.indexOf('to_is_flip') !== -1) { + this.data2[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 4) + } if (this.data2[val].code.indexOf('to_task') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 4) + this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 6) } if (this.data2[val].code.indexOf('to_barcode') !== -1) { - this.data2[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 8) + '.50' - } - if (this.data2[val].code.indexOf('to_error') !== -1) { - this.data2[val].db = beforeStr + '.' + 'B' + (parseInt(endNumber) + 264) - } - if (this.data2[val].code.indexOf('to_allow_pallet_qty') !== -1) { - this.data2[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 266) - } - if (this.data2[val].code.indexOf('to_material_type') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 268) - } - // if (this.data2[val].code.indexOf('to_material_code') !== -1) { - // this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 272) - // } - if (this.data2[val].code.indexOf('to_order_qty') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 276) - } - if (this.data2[val].code.indexOf('to_product_code') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 280) - } - if (this.data2[val].code.indexOf('to_order_No') !== -1) { - this.data2[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 284) + '.50' - } - if (this.data2[val].code.indexOf('to_material_code') !== -1) { - this.data2[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 540) + '.50' + this.data2[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 10) + '.20' } } } diff --git a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_unboxing_machine.vue b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_unboxing_machine.vue index 9b0a681c..1bc5454a 100644 --- a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_unboxing_machine.vue +++ b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_unboxing_machine.vue @@ -333,69 +333,54 @@ export default { return } for (const val in this.data1) { - if (this.data1[val].code.indexOf('move') !== -1) { - this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 1) - } - if (this.data1[val].code.indexOf('action') !== -1) { + if (this.data1[val].code.indexOf('status') !== -1) { this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 2) } - if (this.data1[val].code.indexOf('ioaction') !== -1) { - this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 3) - } if (this.data1[val].code.indexOf('error') !== -1) { this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 4) } - if (this.data1[val].code.indexOf('task') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 5) + if (this.data1[val].code.indexOf('qty') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 6) } - if (this.data1[val].code.indexOf('weight') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 9) + if (this.data1[val].code.indexOf('one_qty') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 6) } - if (this.data1[val].code.indexOf('batch') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 13) + if (this.data1[val].code.indexOf('two_qty') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 8) } - if (this.data1[val].code.indexOf('specifications') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 17) + '.50' + if (this.data1[val].code.indexOf('three_qty') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 10) } - if (this.data1[val].code.indexOf('material') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 273) + '.50' + if (this.data1[val].code.indexOf('four_qty') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 12) } - if (this.data1[val].code.indexOf('barcode') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 529) + '.50' + if (this.data1[val].code.indexOf('five_qty') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 14) } - if (this.data1[val].code.indexOf('AlongSide') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 785) + if (this.data1[val].code.indexOf('one_status') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 16) } - if (this.data1[val].code.indexOf('BshortSide') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 787) + if (this.data1[val].code.indexOf('two_status') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 18) } - if (this.data1[val].code.indexOf('Htrapezoidal') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 789) + if (this.data1[val].code.indexOf('three_status') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 20) } - if (this.data1[val].code.indexOf('Wthickness') !== -1) { - this.data1[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 791) + if (this.data1[val].code.indexOf('four_status') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 22) } - if (this.data1[val].code.indexOf('status') !== -1) { - this.data1[val].db = beforeStr + '.' + 'B' + (parseInt(endNumber) + 795) + if (this.data1[val].code.indexOf('five_status') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 24) } - if (this.data1[val].code.indexOf('unqualified_qty') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 795) - } - if (this.data1[val].code.indexOf('encoder_qty') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 799) - } - if (this.data1[val].code.indexOf('order_qty') !== -1) { - this.data1[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 803) - } - if (this.data1[val].code.indexOf('order_No') !== -1) { - this.data1[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 807) + '.50' + if (this.data1[val].code.indexOf('is_disable') !== -1) { + this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 26) } } } }, finishWriteEdit(data) { // 编辑的是code列,并且值包含mode - if (data.code.indexOf('to_command') !== -1) { + if (data.code.indexOf('to_one_status') !== -1) { const dbValue = data.db // .之前的字符串 const beforeStr = dbValue.match(/(\S*)\./)[1] @@ -408,38 +393,23 @@ export default { return } for (const val in this.data2) { - if (this.data2[val].code.indexOf('to_target') !== -1) { + if (this.data2[val].code.indexOf('to_two_status') !== -1) { this.data2[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 2) } - if (this.data2[val].code.indexOf('to_task') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 4) + if (this.data2[val].code.indexOf('to_three_status') !== -1) { + this.data2[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 4) } - if (this.data2[val].code.indexOf('to_barcode') !== -1) { - this.data2[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 8) + '.50' + if (this.data2[val].code.indexOf('to_four_status') !== -1) { + this.data2[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 6) } - if (this.data2[val].code.indexOf('to_error') !== -1) { - this.data2[val].db = beforeStr + '.' + 'B' + (parseInt(endNumber) + 264) + if (this.data2[val].code.indexOf('to_five_status') !== -1) { + this.data2[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 8) } - if (this.data2[val].code.indexOf('to_allow_pallet_qty') !== -1) { - this.data2[val].db = beforeStr + '.' + 'W' + (parseInt(endNumber) + 266) + if (this.data2[val].code.indexOf('to_clear') !== -1) { + this.data2[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 10) } - if (this.data2[val].code.indexOf('to_material_type') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 268) - } - // if (this.data2[val].code.indexOf('to_material_code') !== -1) { - // this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 272) - // } - if (this.data2[val].code.indexOf('to_order_qty') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 276) - } - if (this.data2[val].code.indexOf('to_product_code') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 280) - } - if (this.data2[val].code.indexOf('to_order_No') !== -1) { - this.data2[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 284) + '.50' - } - if (this.data2[val].code.indexOf('to_material_code') !== -1) { - this.data2[val].db = beforeStr + '.' + 'STRING' + (parseInt(endNumber) + 540) + '.50' + if (this.data2[val].code.indexOf('to_is_disable') !== -1) { + this.data2[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 12) } } } diff --git a/wcs/nladmin-ui/src/views/acs/monitor/device/index.vue b/wcs/nladmin-ui/src/views/acs/monitor/device/index.vue index a3530ae0..14249508 100644 --- a/wcs/nladmin-ui/src/views/acs/monitor/device/index.vue +++ b/wcs/nladmin-ui/src/views/acs/monitor/device/index.vue @@ -440,6 +440,36 @@ export default { } else if (val === 'is_disable') { const obj = { name: '是否禁用', value: data[val] } arr.push(obj) + } else if (val === 'one_qty') { + const obj = { name: '1号口数量', value: data[val] } + arr.push(obj) + } else if (val === 'two_qty') { + const obj = { name: '2号口数量', value: data[val] } + arr.push(obj) + } else if (val === 'three_qty') { + const obj = { name: '3号口数量', value: data[val] } + arr.push(obj) + } else if (val === 'four_qty') { + const obj = { name: '4号口数量', value: data[val] } + arr.push(obj) + } else if (val === 'five_qty') { + const obj = { name: '5号口数量', value: data[val] } + arr.push(obj) + } else if (val === 'one_status') { + const obj = { name: '1号口状态', value: data[val] } + arr.push(obj) + } else if (val === 'two_status') { + const obj = { name: '2号口状态', value: data[val] } + arr.push(obj) + } else if (val === 'three_status') { + const obj = { name: '3号口状态', value: data[val] } + arr.push(obj) + } else if (val === 'four_status') { + const obj = { name: '4号口状态', value: data[val] } + arr.push(obj) + } else if (val === 'five_status') { + const obj = { name: '5号口状态', value: data[val] } + arr.push(obj) } } return arr From 38feec1324d388cb34a4e0502e3356710147fff8 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Tue, 23 May 2023 13:57:20 +0800 Subject: [PATCH 2/4] =?UTF-8?q?rev:=E6=96=B0=E5=A2=9E=E8=80=81=E8=BD=A6?= =?UTF-8?q?=E9=97=B4=E5=B7=A5=E5=8D=95=E4=B8=8B=E5=8F=91=E5=92=8C=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oderExt/MpsSaleOrderIcExtController.java | 48 +++ .../dao/mapper/PdmProduceWorkorderMapper.xml | 3 + .../service/workorder/dto/WorkorderQuery.java | 1 + .../impl/IPdmProduceWorkorderServiceImpl.java | 179 +++++----- .../wms/old_manage/old_package/index.vue | 324 +++++++++++++----- .../wms/product_manage/workorder/orderExt.js | 19 + .../workorder/produceshiftorder.js | 2 +- 7 files changed, 408 insertions(+), 168 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/controller/oderExt/MpsSaleOrderIcExtController.java create mode 100644 mes/qd/src/views/wms/product_manage/workorder/orderExt.js diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/controller/oderExt/MpsSaleOrderIcExtController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/controller/oderExt/MpsSaleOrderIcExtController.java new file mode 100644 index 00000000..15c7e88d --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/controller/oderExt/MpsSaleOrderIcExtController.java @@ -0,0 +1,48 @@ +package org.nl.wms.mps.controller.oderExt; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import io.swagger.annotations.ApiOperation; +import org.nl.common.anno.Log; +import org.nl.wms.mps.service.orderExt.IMpsSaleOrderIcExtService; +import org.nl.wms.mps.service.orderExt.dao.MpsSaleOrderIcExt; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 生产订单扩展表 前端控制器 + *

+ * + * @author generator + * @since 2023-05-22 + */ +@RestController +@RequestMapping("/api/mpsSaleOrderIcExt") +public class MpsSaleOrderIcExtController { + + @Autowired + private IMpsSaleOrderIcExtService extService; + + @PostMapping + @Log("新增订单扩展表") + @ApiOperation("新增订单扩展表") + public ResponseEntity create(@RequestBody JSONObject whereJson) { + extService.create(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/getExtList") + @Log("根据工单获取条码") + @ApiOperation("根据工单获取条码") + public ResponseEntity getExtList(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(extService.list(new QueryWrapper().eq("remark1",whereJson.getString("workorder_code"))),HttpStatus.OK); + } +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml index db100b8a..56ec0f9e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml @@ -27,6 +27,9 @@ and ShiftOrder.shift_type_scode = #{query.shift_type_scode} + + and pro.workprocedure_code = #{query.workprocedure_code} + and ShiftOrder.product_area = #{query.product_area} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java index 4e43b6b5..9a15a8b1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java @@ -20,6 +20,7 @@ public class WorkorderQuery extends BaseQuery { private String workorder_code; private String material; private String workorder_status; + private String workprocedure_code; private String sale_id; private String shift_type_scode; private String product_series; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java index 27a74b13..df9e9713 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java @@ -67,26 +67,26 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize()); + Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); List result = pdmProduceWorkorderMapper.pageQuery(query); TableDataInfo build = TableDataInfo.build(result); build.setTotalElements(page.getTotal()); @@ -95,7 +95,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl().eq("workorder_id", form.getString("workorder_id"))); if (one == null) { throw new BadRequestException("被删除或无权限,操作失败!"); @@ -128,48 +128,48 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl getDtl(JSONObject param) { - return this.baseMapper.getworkOrderDtl(param.getString("workorder_id")); + return this.baseMapper.getworkOrderDtl(param.getString("workorder_id")); } @Override public void down(List ids) { - if (ids == null || ids.size()==0){ + if (ids == null || ids.size() == 0) { return; } this.update(new UpdateWrapper() - .set("workorder_status",WorkerOrderEnum.SEND.getCode()) + .set("workorder_status", WorkerOrderEnum.SEND.getCode()) .set("down_id", SecurityUtils.getCurrentUserId()) - .set("down_name",SecurityUtils.getCurrentNickName()) - .set("down_time",new Date()) + .set("down_name", SecurityUtils.getCurrentNickName()) + .set("down_time", new Date()) .in("workorder_id", ids)); - this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE,ids.toArray(new String[0])); + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, ids.toArray(new String[0])); } @Override public void unDown(List ids) { - if (ids == null || ids.size()==0){ + if (ids == null || ids.size() == 0) { return; } List list = this.list(new QueryWrapper() .ne("workorder_status", WorkerOrderEnum.SEND.getCode()) .in("workorder_id", ids)); - if (list.size()>0){ + if (list.size() > 0) { throw new BadRequestException("只有下发状态的工单才能取消下发"); } this.update(new UpdateWrapper() - .set("workorder_status",WorkerOrderEnum.CREATE.getCode()) + .set("workorder_status", WorkerOrderEnum.CREATE.getCode()) .set("down_id", SecurityUtils.getCurrentUserId()) - .set("down_name",SecurityUtils.getCurrentNickName()) - .set("down_time",new Date()) + .set("down_name", SecurityUtils.getCurrentNickName()) + .set("down_time", new Date()) .in("workorder_id", ids)); - this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE,ids.toArray(new String[0])); + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, ids.toArray(new String[0])); } @Override @@ -178,10 +178,10 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() - .set("workorder_status",WorkerOrderEnum.FORCE_COMPLETE.getCode()) + .set("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode()) .set("update_id", SecurityUtils.getCurrentUserId()) - .set("update_name",SecurityUtils.getCurrentNickName()) - .set("update_time",new Date()) + .set("update_name", SecurityUtils.getCurrentNickName()) + .set("update_time", new Date()) .in("workorder_id", workorder_id)); JSONArray array = new JSONArray(); JSONObject map = new JSONObject(); @@ -190,13 +190,13 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl result = wmsToAcsService.orderStatusUpdate(array); if (!HttpStatus.OK.equals(result.get("status"))) { - throw new BadRequestException((String) result.get("message")); + throw new BadRequestException((String) result.get("message")); } - this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE,workorder_id); + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, workorder_id); } - public void recordWorkOrder(OptionRecord.OptionEnum optionEnum, String...ids) { + public void recordWorkOrder(OptionRecord.OptionEnum optionEnum, String... ids) { List workorders = this.list(new QueryWrapper().in("workorder_id", ids)); for (PdmProduceWorkorder one : workorders) { WorkorderRecord record = WorkorderRecord.builder() @@ -209,7 +209,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl() .eq("device_code", param.getString("device_code")) - .in("workorder_status","2","3","4") - .ne("workorder_id",param.getString("workorder_id"))); - if(ObjectUtil.isNotEmpty(result)) { + .in("workorder_status", "2", "3", "4") + .ne("workorder_id", param.getString("workorder_id"))); + if (ObjectUtil.isNotEmpty(result)) { throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!"); } JSONArray array = new JSONArray(); - result = this.getOne(new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); - JSONObject order = packageForm(result); + + JSONObject order = packageForm(param); array.add(order); //下发acs - result.setWorkorder_status(WorkerOrderEnum.PRODUCTING.getCode()); - Map resp = wmsToAcsService.order(array); - if (((int)resp.get("status")) == (HttpStatus.BAD_REQUEST.value())){ + Map resp = wmsToAcsService.order(array); + PdmProduceWorkorder workOrder = this.getOne(new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); + workOrder.setWorkorder_status(WorkerOrderEnum.PRODUCTING.getCode()); + if (((int) resp.get("status")) == (HttpStatus.BAD_REQUEST.value())) { throw new BadRequestException(String.valueOf(resp.get("message"))); } - this.update(result,new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); - this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE,result.getWorkorder_id()); + this.update(workOrder, new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE, result.getWorkorder_id()); return RestBusinessTemplate.execute(() -> resp); } @NotNull - private JSONObject packageForm(PdmProduceWorkorder workOrder) { + private JSONObject packageForm(JSONObject param) { + PdmProduceWorkorder workOrder = this.getOne(new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); JSONObject form = new JSONObject(); MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper().eq("material_id", workOrder.getMaterial_id())); PdmBiDevice device = deviceService.getOne(new QueryWrapper().eq("device_code", workOrder.getDevice_code())); - form.put("workorder_id",workOrder.getWorkorder_id()); - form.put("workorder_code",workOrder.getWorkorder_code()); + form.put("workorder_id", workOrder.getWorkorder_id()); + form.put("workorder_code", workOrder.getWorkorder_code()); form.put("qty", workOrder.getPlan_qty()); - form.put("outupperlimit_qty",device.getOutupperlimit_qty()); - form.put("material_id",workOrder.getMaterial_id()); - form.put("material_name",material.getMaterial_name()); - form.put("material_code",material.getMaterial_code()); - form.put("material_spec",material.getMaterial_spec()); - form.put("device_code",workOrder.getDevice_code()); - form.put("is_needmove",workOrder.getIs_needmove()); + form.put("outupperlimit_qty", device.getOutupperlimit_qty()); + form.put("material_id", workOrder.getMaterial_id()); + form.put("material_name", material.getMaterial_name()); + form.put("material_code", material.getMaterial_code()); + form.put("material_spec", material.getMaterial_spec()); + form.put("device_code", workOrder.getDevice_code()); + form.put("is_needmove", workOrder.getIs_needmove() ? 1 : 0); + if (param.containsKey("extra_map")) { + form.put("extra_map", param.getJSONObject("extra_map")); + } return form; } @Override @Transactional public Object report(JSONObject param) { - Assert.notNull(new Object[]{param,param.get("report_qty"),param.get("nok_qty"),param.getBigDecimal("repare_qty")},"请求参数不能为空"); + Assert.notNull(new Object[]{param, param.get("report_qty"), param.get("nok_qty"), param.getBigDecimal("repare_qty")}, "请求参数不能为空"); PdmProduceWorkorder workorder = this.getOne(new QueryWrapper().eq("workorder_id", param.getString("workorder_id"))); - if (workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode())||workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())){ - throw new BadRequestException(param.getString("workorder_id")+"当前工单已经完工不允许报工"); + if (workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode()) || workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())) { + throw new BadRequestException(param.getString("workorder_id") + "当前工单已经完工不允许报工"); } PdmProduceWorkorderrecord one = reportRecordService.getOne(new QueryWrapper() .eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportRecordStatus.CREATE.getCode())); - if ( one == null) { - throw new BadRequestException(param.getString("workorder_id")+"当前工单没有生成状态的报工记录"); + if (one == null) { + throw new BadRequestException(param.getString("workorder_id") + "当前工单没有生成状态的报工记录"); } workorder.setReport_qty(workorder.getReport_qty().add(param.getBigDecimal("report_qty"))); workorder.setNok_qty(workorder.getReport_qty().add(param.getBigDecimal("nok_qty"))); workorder.setRepare_qty(workorder.getReport_qty().add(param.getBigDecimal("repare_qty"))); - if (workorder.getPlan_qty().doubleValue() <= workorder.getReport_qty().doubleValue()){ + if (workorder.getPlan_qty().doubleValue() <= workorder.getReport_qty().doubleValue()) { workorder.setWorkorder_status(WorkerOrderEnum.COMPLETE.getCode()); } this.updateById(workorder); reportRecordService.update(new UpdateWrapper() - .set("report_qty",param.getBigDecimal("report_qty")) - .set("nok_qty",param.getBigDecimal("nok_qty")) - .set("repare_qty",param.getBigDecimal("repare_qty")) - .set("needproduct_qty",workorder.getPlan_qty().doubleValue()-workorder.getReport_qty().doubleValue()) - .eq("macoperate_id",one.getMacoperate_id())); + .set("report_qty", param.getBigDecimal("report_qty")) + .set("nok_qty", param.getBigDecimal("nok_qty")) + .set("repare_qty", param.getBigDecimal("repare_qty")) + .set("needproduct_qty", workorder.getPlan_qty().doubleValue() - workorder.getReport_qty().doubleValue()) + .eq("macoperate_id", one.getMacoperate_id())); return one.getMacoperate_id(); } @@ -584,7 +589,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl workreportRecords = param.toJavaList(PdmProduceWorkorderrecord.class); - if (!CollectionUtils.isEmpty(workreportRecords)){ + if (!CollectionUtils.isEmpty(workreportRecords)) { List macoperate_ids = workreportRecords.stream().map(PdmProduceWorkorderrecord::getMacoperate_id).collect(Collectors.toList()); List record = reportRecordService.list(new QueryWrapper() .in("macoperate_id", macoperate_ids)); @@ -598,7 +603,7 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl list = packageWorkorderQty(record, itemRecord); - this.baseMapper.batchUpdateByParam(list,entry.getKey()); + this.baseMapper.batchUpdateByParam(list, entry.getKey()); reportRecordService.updateBatchById(itemRecord); } } @@ -616,19 +621,19 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl list = new ArrayList<>(); Map nok_qty = new HashMap<>(); - nok_qty.put("field","nok_qty"); - nok_qty.put("value",Math.abs(new_nok_qty-old_nok_qty)); - nok_qty.put("add",new_nok_qty>old_nok_qty); + nok_qty.put("field", "nok_qty"); + nok_qty.put("value", Math.abs(new_nok_qty - old_nok_qty)); + nok_qty.put("add", new_nok_qty > old_nok_qty); list.add(nok_qty); Map repare_qty = new HashMap<>(); - repare_qty.put("field","repare_qty"); - repare_qty.put("value",Math.abs(new_repare_qty-old_repare_qty)); - repare_qty.put("add",new_repare_qty>old_repare_qty); + repare_qty.put("field", "repare_qty"); + repare_qty.put("value", Math.abs(new_repare_qty - old_repare_qty)); + repare_qty.put("add", new_repare_qty > old_repare_qty); list.add(repare_qty); Map report_qty = new HashMap<>(); - report_qty.put("field","report_qty"); - report_qty.put("value",Math.abs(new_report_qty-old_report_qty)); - report_qty.put("add",new_report_qty>old_report_qty); + report_qty.put("field", "report_qty"); + report_qty.put("value", Math.abs(new_report_qty - old_report_qty)); + report_qty.put("add", new_report_qty > old_report_qty); list.add(report_qty); return list; } @@ -646,16 +651,16 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl resp = wmsToAcsService.replaceDevice(array); + Map resp = wmsToAcsService.replaceDevice(array); String status = String.valueOf(resp.get("status")); String message = (String) resp.get("message"); - if(!status.equals("200")) { + if (!status.equals("200")) { throw new BadRequestException(message); } } diff --git a/mes/qd/src/views/wms/old_manage/old_package/index.vue b/mes/qd/src/views/wms/old_manage/old_package/index.vue index f5771f1e..f9ae5978 100644 --- a/mes/qd/src/views/wms/old_manage/old_package/index.vue +++ b/mes/qd/src/views/wms/old_manage/old_package/index.vue @@ -6,50 +6,119 @@ :inline="true" class="demo-form-inline" label-position="right" - label-width="80px" + label-width="120px" label-suffix=":" > - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + 开工 + + + 打印 + + - - - - - - - - + + + - - + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + @@ -257,7 +339,9 @@ import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' import crudSectattr from '@/api/wms/basedata/st/sectattr' -/* import checkoutbill from "@/api/wms/st/core/outbill/checkoutbill";*/ +import crudProduceshiftorder from '@/views/wms/product_manage/workorder/produceshiftorder' +import { getLodop } from '@/assets/js/lodop/LodopFuncs' +import orderExt from '@/views/wms/product_manage/workorder/orderExt' const defaultForm = { struct_id: null, @@ -306,14 +390,22 @@ const defaultForm = { } export default { name: 'Structattr', - dicts: ['ST_HEIGHT_TYPE', 'd_lock_type', 'SCH_TASK_TYPE_DTL'], + dicts: ['ST_HEIGHT_TYPE', 'd_lock_type', 'SCH_TASK_TYPE_DTL', 'IS_OR_NOT', 'MPS_BD_ORDERSTATUS', 'WORKORDER_CREATE_TYPE', 'PDM_BI_SHIFTTYPE'], components: { pagination, crudOperation, rrOperation, udOperation }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ title: '仓位', - optShow: { add: true, reset: true }, - url: 'api/structattr', + optShow: { + reset: true + }, + query: { + workorder_status: '2', + product_area: 'A2', + workprocedure_code: 'BZ', + is_error: '0' + }, + url: 'api/produceWorkorder', idField: 'struct_id', crudMethod: { ...crudStructattr } }) @@ -334,7 +426,10 @@ export default { } return { sects: [], + currentRow: null, invtypelist: [], + roadList: ['1', '2', '3', '4', '5', '6', '7'], + confirm_flag: true, permission: {}, rules: { struct_id: [ @@ -382,13 +477,11 @@ export default { crudSectattr.getSect({}).then(res => { this.sects = res.content }) - /* checkoutbill.getInvTypes().then(res => { - this.invtypelist = res - })*/ }, methods: { // 钩子:在获取表格数据之前执行,false 则代表不获取数据 [CRUD.HOOK.beforeRefresh]() { + this.currentRow = {} return true }, [CRUD.HOOK.afterToEdit](crud, form) { @@ -397,6 +490,33 @@ export default { val[1] = form.sect_id form.cascader = val }, + handleSelectionChange(val, row) { + if (val.length > 1) { + this.$refs.table.clearSelection() + this.$refs.table.toggleRowSelection(val.pop()) + this.buttonChange(row) + } else if (val.length === 1) { + this.buttonChange(row) + } else { + this.handleCurrentChange(null) + } + }, + buttonChange(currentRow) { + if (currentRow !== null) { + this.currentRow = currentRow + this.confirm_flag = false + } + }, + onSelectAll() { + this.$refs.table.clearSelection() + this.handleCurrentChange(null) + }, + handleCurrentChange(currentRow) { + if (currentRow === null) { + this.confirm_flag = true + this.currentRow = {} + } + }, sectChange(val) { this.form.sect_id = val[1] }, @@ -410,6 +530,23 @@ export default { taskdtl_typeFormat(row) { return this.dict.label.SCH_TASK_TYPE_DTL[row.taskdtl_type] }, + startWork() { + if (!this.crud.query.one_box_package_qty || !this.crud.query.one_package_qty || !this.crud.query.box_type || + !this.crud.query.target_roadway || !this.crud.query.is_flip || + !this.crud.query.tray_full_num) { + this.crud.notify('缺少开工必要参数,保证输入框内不能为空!', CRUD.NOTIFICATION_TYPE.INFO) + return + } + debugger + this.currentRow.extra_map = this.crud.query + this.currentRow.extra_map.package_qty = Math.ceil(this.currentRow.plan_qty / this.currentRow.extra_map.one_package_qty) + this.currentRow.extra_map.box_num = Math.ceil(this.currentRow.extra_map.package_qty / this.currentRow.extra_map.one_box_package_qty) + orderExt.add(this.currentRow).then(res => { + this.notify('操作成功', 'success') + }) + crudProduceshiftorder.openStart(this.currentRow).then(res => { + }) + }, sectQueryChange(val) { if (val.length === 1) { this.query.stor_id = val[0] @@ -425,6 +562,33 @@ export default { } this.crud.toQuery() }, + print() { + if (!this.currentRow) { + this.crud.notify('请选择一条工单记录进行打印', CRUD.NOTIFICATION_TYPE.INFO) + } + orderExt.getExtList(this.currentRow).then(res => { + debugger + const item = res[0] + // res.forEach((item) => { + const LODOP = getLodop() + LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮 + // 打印纸张大小设置https://www.it610.com/article/2094844.html + LODOP.SET_PRINT_PAGESIZE(1, '80mm', '50mm', '') + // LODOP.ADD_PRINT_RECT('0mm', '0mm', '48mm', '28mm', 0, 1) + LODOP.ADD_PRINT_BARCODE('10mm', '12mm', '60mm', '25mm', '128Auto', item.bar_code) + LODOP.SET_PRINT_STYLEA(0, 'ShowBarText', 0) + LODOP.ADD_PRINT_TEXT('35mm', '22mm', '40mm', '20mm', item.bar_code.substring(0, 9)) + LODOP.SET_PRINT_STYLEA(0, 'FontSize', 20) + LODOP.ADD_PRINT_TEXT('42mm', '25mm', '40mm', '20mm', item.bar_code.substring(9, 16)) + console.log(item.barcode) + LODOP.SET_PRINT_STYLEA(0, 'FontSize', 20) + // LODOP.PRINT()// 打印 + // LODOP.PREVIEW() + }) + // }) + this.crud.notify('打印成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + this.crud.toQuery() + }, // 改变状态 format_is_used(is_used) { return is_used === true diff --git a/mes/qd/src/views/wms/product_manage/workorder/orderExt.js b/mes/qd/src/views/wms/product_manage/workorder/orderExt.js new file mode 100644 index 00000000..5e0f8750 --- /dev/null +++ b/mes/qd/src/views/wms/product_manage/workorder/orderExt.js @@ -0,0 +1,19 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/mpsSaleOrderIcExt', + method: 'post', + data + }) +} + +export function getExtList(data) { + return request({ + url: 'api/mpsSaleOrderIcExt/getExtList', + method: 'post', + data + }) +} + +export default { add, getExtList } diff --git a/mes/qd/src/views/wms/product_manage/workorder/produceshiftorder.js b/mes/qd/src/views/wms/product_manage/workorder/produceshiftorder.js index b35c8ca5..380581d2 100644 --- a/mes/qd/src/views/wms/product_manage/workorder/produceshiftorder.js +++ b/mes/qd/src/views/wms/product_manage/workorder/produceshiftorder.js @@ -65,7 +65,7 @@ export function getTable(data) { export function openStart(data) { return request({ - url: 'api/produceWorkorder/openStart', + url: 'api/produceshiftorder/openStart', method: 'post', data }) From ffdcba0faf327b5d1048cb98601509eb61799adc Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Tue, 23 May 2023 14:01:37 +0800 Subject: [PATCH 3/4] =?UTF-8?q?add:=E6=96=B0=E5=A2=9E=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E4=BF=A1=E6=81=AF=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orderExt/IMpsSaleOrderIcExtService.java | 20 +++ .../orderExt/dao/MpsSaleOrderIcExt.java | 155 ++++++++++++++++++ .../dao/mapper/MpsSaleOrderIcExtMapper.java | 16 ++ .../mapper/xml/MpsSaleOrderIcExtMapper.xml | 5 + .../impl/MpsSaleOrderIcExtServiceImpl.java | 43 +++++ 5 files changed, 239 insertions(+) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/IMpsSaleOrderIcExtService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/MpsSaleOrderIcExt.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/mapper/MpsSaleOrderIcExtMapper.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/mapper/xml/MpsSaleOrderIcExtMapper.xml create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/impl/MpsSaleOrderIcExtServiceImpl.java diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/IMpsSaleOrderIcExtService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/IMpsSaleOrderIcExtService.java new file mode 100644 index 00000000..1cb17175 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/IMpsSaleOrderIcExtService.java @@ -0,0 +1,20 @@ +package org.nl.wms.mps.service.orderExt; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.mps.service.orderExt.dao.MpsSaleOrderIcExt; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 生产订单扩展表 服务类 + *

+ * + * @author generator + * @since 2023-05-22 + */ +public interface IMpsSaleOrderIcExtService extends IService { + + void create(JSONObject jo); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/MpsSaleOrderIcExt.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/MpsSaleOrderIcExt.java new file mode 100644 index 00000000..34720da1 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/MpsSaleOrderIcExt.java @@ -0,0 +1,155 @@ +package org.nl.wms.mps.service.orderExt.dao; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 生产订单扩展表 + *

+ * + * @author generator + * @since 2023-05-22 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("mps_sale_order_ic_ext") +public class MpsSaleOrderIcExt implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 销售单标识 + */ + private String sale_id; + + /** + * 明细序号 + */ + private Integer seq_no; + + /** + * 包装袋类型 + */ + private String bag_type; + + /** + * 包装袋规格 + */ + private String bag_spec; + + /** + * 袋装量 + */ + private BigDecimal bag_qty; + + /** + * 包装箱类型 + */ + private String box_type; + + /** + * 包装箱规格 + */ + private String box_spec; + + /** + * 箱装量 + */ + private BigDecimal box_qty; + + /** + * 载具类型 + */ + private String storagevehicle_type; + + /** + * 载具规格 + */ + private String storagevehicle_spec; + + /** + * 载具装量 + */ + private BigDecimal storagevehicle_qty; + + /** + * 内唛数 + */ + private BigDecimal innermark_num; + + /** + * 外唛数 + */ + private BigDecimal outermark_num; + + /** + * 袋数 + */ + private BigDecimal bag_num; + + /** + * 箱数 + */ + private BigDecimal box_num; + + /** + * 托盘数 + */ + private BigDecimal storagevehicle_num; + + /** + * 条形码 + */ + private String bar_code; + + /** + * 备用1 + */ + private String remark1; + + /** + * 备用2 + */ + private String remark2; + + /** + * 备用3 + */ + private String remark3; + + /** + * 备用4 + */ + private String remark4; + + /** + * 备用5 + */ + private String remark5; + + /** + * 备用6 + */ + private String remark6; + + /** + * 备用7 + */ + private String remark7; + + /** + * 备用8 + */ + private String remark8; + + /** + * 备用9 + */ + private String remark9; + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/mapper/MpsSaleOrderIcExtMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/mapper/MpsSaleOrderIcExtMapper.java new file mode 100644 index 00000000..08dfc802 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/mapper/MpsSaleOrderIcExtMapper.java @@ -0,0 +1,16 @@ +package org.nl.wms.mps.service.orderExt.dao.mapper; + +import org.nl.wms.mps.service.orderExt.dao.MpsSaleOrderIcExt; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 生产订单扩展表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-05-22 + */ +public interface MpsSaleOrderIcExtMapper extends BaseMapper { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/mapper/xml/MpsSaleOrderIcExtMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/mapper/xml/MpsSaleOrderIcExtMapper.xml new file mode 100644 index 00000000..f3ff533a --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/dao/mapper/xml/MpsSaleOrderIcExtMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/impl/MpsSaleOrderIcExtServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/impl/MpsSaleOrderIcExtServiceImpl.java new file mode 100644 index 00000000..942cfe63 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/orderExt/impl/MpsSaleOrderIcExtServiceImpl.java @@ -0,0 +1,43 @@ +package org.nl.wms.mps.service.orderExt.impl; + +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.wms.mps.service.orderExt.dao.MpsSaleOrderIcExt; +import org.nl.wms.mps.service.orderExt.dao.mapper.MpsSaleOrderIcExtMapper; +import org.nl.wms.mps.service.orderExt.IMpsSaleOrderIcExtService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 生产订单扩展表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-22 + */ +@Service +public class MpsSaleOrderIcExtServiceImpl extends ServiceImpl implements IMpsSaleOrderIcExtService { + + @Override + public void create(JSONObject jo) { + this.remove(new QueryWrapper().eq("remark1",jo.getString("workorder_code"))); + String workorder_code = jo.getString("workorder_code"); + int box_num = jo.getJSONObject("extra_map").getIntValue("box_num"); + String is_flip = jo.getJSONObject("extra_map").getString("is_flip"); + String target_roadway = jo.getJSONObject("extra_map").getString("target_roadway"); + + for (int i = 1; i <= box_num; i++) { + MpsSaleOrderIcExt ext = new MpsSaleOrderIcExt(); + ext.setSale_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + ext.setSeq_no(1); + String pre = i < 10 ? "0000" : "000"; + String bar_code = workorder_code + is_flip + target_roadway + pre + i; + ext.setBar_code(bar_code); + ext.setRemark1(workorder_code); + this.save(ext); + } + } +} From 25075b9fcdb0d99885ce0c0db6ffc7b3f67b1b94 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Tue, 23 May 2023 16:21:14 +0800 Subject: [PATCH 4/4] =?UTF-8?q?rev:=E6=96=B0=E5=A2=9E=E5=B7=A5=E5=BA=8F?= =?UTF-8?q?=E8=B0=83=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/config/ConventConfig.java | 7 +- .../org/nl/config/mybatis/CodeGenerator.java | 4 +- .../ext/acs/service/impl/AgvInstService.java | 159 +++++++----- .../pda/rest/CacheLineHandController.java | 9 + .../impl/CacheLineHandServiceImpl.java | 2 +- .../sch/tasks/SpeMachinery/SpeEmpTask.java | 241 ++++++++++++++++++ .../SpeFullTask.java} | 37 +-- .../service/device/IPdmBiDeviceService.java | 9 + .../service/device/dao/PdmBiDevice.java | 2 +- .../device/dao/mapper/PdmBiDeviceMapper.java | 3 + .../device/dao/mapper/PdmBiDeviceMapper.xml | 18 ++ .../device/impl/PdmBiDeviceServiceImpl.java | 5 + .../scheduler/SchedulerController.java | 63 ++++- .../ISchCachelineVehicleService.java | 4 + .../dao/mapper/SchCachelineVehicleMapper.java | 6 + .../mapper/xml/SchCachelineVehicleMapper.xml | 13 + .../impl/SchCachelineVehicleServiceImpl.java | 7 + .../service/point/ISchBasePointService.java | 7 + .../point/dao/mapper/SchBasePointMapper.java | 2 + .../point/dao/mapper/SchBasePointMapper.xml | 7 + .../point/impl/SchBasePointServiceImpl.java | 8 + .../scheduler/ISchProcessRouteService.java | 17 ++ .../service/scheduler/SchedulerService.java | 3 - .../scheduler/dao/SchProcessRoute.java | 38 +++ .../dao/mapper/SchProcessRouteMapper.java | 17 ++ .../dao/mapper/xml/SchProcessRouteMapper.xml | 12 + .../impl/SchProcessRouteServiceImpl.java | 41 +++ .../labelConverter/impl/FlowConverter.java | 4 +- .../labelConverter/impl/FlowElement.java | 7 +- .../service/task/dao/SchBaseTask.java | 3 + .../src/main/resources/scheduler.xml | 8 +- .../wms/scheduler_manage/scheduler/index.vue | 102 ++++++++ .../scheduler/schedulerRoute.js | 34 +++ 33 files changed, 791 insertions(+), 108 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java rename mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/{SpeMachineryTask.java => SpeMachinery/SpeFullTask.java} (88%) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/ISchProcessRouteService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/SchProcessRoute.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/mapper/SchProcessRouteMapper.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/mapper/xml/SchProcessRouteMapper.xml create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java create mode 100644 mes/qd/src/views/wms/scheduler_manage/scheduler/index.vue create mode 100644 mes/qd/src/views/wms/scheduler_manage/scheduler/schedulerRoute.js diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java b/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java index 59b8e0be..f5fd7990 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java @@ -4,7 +4,8 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.enums.AcsTaskEnum; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.ext.acs.service.impl.AcsToWmsServiceImpl; -import org.nl.wms.product_manage.sch.tasks.SpeMachineryTask; +import org.nl.wms.product_manage.sch.tasks.SpeMachinery.SpeEmpTask; +import org.nl.wms.product_manage.sch.tasks.SpeMachinery.SpeFullTask; import org.nl.wms.product_manage.sch.tasks.WashMachineryTask; import org.nl.wms.product_manage.sch.tasks.callMaterial.WrapCallMaterialTask; import org.nl.wms.product_manage.sch.tasks.sendEmpty.WrapSendEmptyTask; @@ -19,8 +20,8 @@ public class ConventConfig implements SmartLifecycle { @Override public void start() { - AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_CALLTYPE_FULL, SpringContextHolder.getBean(SpeMachineryTask.class)); - AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_CALLTYPE_EMP, SpringContextHolder.getBean(SpeMachineryTask.class)); + AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_CALLTYPE_FULL, SpringContextHolder.getBean(SpeFullTask.class)); + AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_CALLTYPE_EMP, SpringContextHolder.getBean(SpeEmpTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_EMP, SpringContextHolder.getBean(WashMachineryTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_SEND_FULL, SpringContextHolder.getBean(PlotterSendMaterialTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_CALL_FULL, SpringContextHolder.getBean(WrapCallMaterialTask.class)); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/config/mybatis/CodeGenerator.java b/mes/hd/nladmin-system/src/main/java/org/nl/config/mybatis/CodeGenerator.java index 1c5522cb..91d8e99a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/config/mybatis/CodeGenerator.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/config/mybatis/CodeGenerator.java @@ -57,10 +57,10 @@ public class CodeGenerator { mpg.setGlobalConfig(gc); // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl("jdbc:mysql://192.168.81.252:3306/hl_one_mes?setUnicode=true&characterEncoding=utf8"); + dsc.setUrl("jdbc:mysql://192.168.46.5:3306/hl_one_mes_test?serverTimezone=GMT&setUnicode=true&characterEncoding=utf8"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); - dsc.setPassword("Root.123456"); + dsc.setPassword("123456"); mpg.setDataSource(dsc); // 包配置 PackageConfig pc = new PackageConfig(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java index b043d2ef..b91a647c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AgvInstService.java @@ -1,25 +1,33 @@ package org.nl.wms.ext.acs.service.impl; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; -import cn.hutool.crypto.digest.MD5; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.nl.common.domain.ConstantParam; import org.nl.common.enums.StatusEnum; import org.nl.common.utils.MapOf; import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.common.utils.PointLockUtils; +import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; +import org.nl.wms.scheduler_manage.service.cacheline.ISchCachelineVehicleService; +import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehicle; import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.scheduler_manage.service.scheduler.ISchProcessRouteService; +import org.nl.wms.scheduler_manage.service.scheduler.SchedulerService; +import org.nl.wms.scheduler_manage.service.scheduler.dao.SchProcessRoute; +import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl.FlowElement; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.util.Date; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /* @@ -33,12 +41,18 @@ public class AgvInstService { @Autowired private ISchBasePointService basePointService; + @Autowired + private SchedulerService schedulerService; + @Autowired + private ISchProcessRouteService schProcessRouteService; + @Autowired + private IPdmBiDeviceService deviceService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchCachelineVehicleService cachelineVehicleService; + - public static void main(String[] args) { - String a = "HCX04JG04_SHCX04"; - MD5 md5 = MD5.create(); - System.out.println(md5.digest(a)); - } //满料请求点位确认 //1.判断当前设备路由表是否配置下一道路由设备,如果不是则说明直接到清洗 @@ -47,59 +61,79 @@ public class AgvInstService { //4.有则创建agv指令, // 没有则创建缓存架任务 public void fullMaster(JSONObject task){ - String point_code = task.getString("point_code1"); String quantity = task.getString("material_qty"); + //获取当前生产工序下一道工序 + Map workprodure = basePointService.findDeviceWorkprodure(task.getString("point_code")); + FlowElement next = getFlowElement(task,workprodure).next(); + String nextPoint = null; + //判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位: + String cacheVehile = ""; + Map query = MapOf.of("workprocedure_id", workprodure.get("workprocedure_id") + , "qty", quantity); + if (next.getName().equals("深坑清洗")){ + query.put("material_id",task.getString("material_id")); + } + List> list = deviceService.workproceduceDevices(query); + + if (!CollectionUtils.isEmpty(list)){ + nextPoint = list.get(0).get("point_code"); + }else { + if (next.getParams().get("cacheLine") == null){ + throw new BadRequestException("当前任务下一道工序无可用设备"); + } + nextPoint = next.getParams().get("cacheLine"); + cacheVehile = getCacheVehile(nextPoint, null); + } + if (StringUtils.isBlank(nextPoint)){ + throw new BadRequestException("逻辑非配错误,请检查代码"); + } + basePointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_ON.getCode()).set("task_id",task.getString("task_id")).eq("point_code",nextPoint)); + + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); + schBaseTask.setVehicle_code(cacheVehile); + schBaseTask.setPoint_code2(nextPoint); + schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); + schBaseTask.setUpdate_time(new Date()); + taskService.updateById(schBaseTask); + }; + + public FlowElement getFlowElement(JSONObject task,Map workprodure){ + if (CollectionUtils.isEmpty(workprodure)){ + throw new BadRequestException("当前点位所属设备无对应工序"); + } + String point_code = task.getString("point_code1"); + String material_id = task.getString("material_id"); SchBasePoint devicePoint = basePointService.getOne(new QueryWrapper() .eq("point_code", point_code) .eq("is_delete", "0") .eq("is_used", "1") ); - String nextPoint; - //判断缓存线是不是去深坑清洗:深坑区域15个点:判断空的物料坑位: - String cacheVehile = ""; - if (devicePoint.getNext_region_code().equals(ConstantParam.SK_REGION)){ - //查询生坑重量是否超限:深坑需要乘以系数 - JSONArray nextPointList = WQL.getWO("sch_point").addParamMap(MapOf.of("flag","7","region_code", devicePoint.getNext_region_code(),"qty",Integer.valueOf(quantity)*ConstantParam.MATERAIL_RATIO)).process().getResultJSONArray(0); - if (nextPointList.size() == 0){ - throw new BadRequestException("深坑清洗储料仓:"+devicePoint.getNext_region_code()+"无可用点位"); - } - nextPoint = nextPointList.getJSONObject(0).getString("point_code"); - }else { - //专机的话:需要判断专机上料口物料是否满足数量 - JSONArray nextPointList = WQL.getWO("sch_point").addParamMap(MapOf.of("flag","3","region_code", devicePoint.getNext_region_code(),"qty",quantity)).process().getResultJSONArray(0); - if (nextPointList.size() == 0){ - JSONObject cacheLine = WQLObject.getWQLObject("SCH_cacheLine_region_relation").query("region_code = '"+devicePoint.getRegion_code()+"'").uniqueResult(0); - nextPoint = cacheLine.getString("cacheline_code"); - //满料请求:查询缓存线空载具列表 - cacheVehile = getCacheVehile(nextPoint, null); - if (StringUtils.isBlank(cacheVehile)) { - throw new BadRequestException("缓存线:"+nextPoint+"没有可用空载具"); - } - }else { - nextPoint = nextPointList.getJSONObject(0).getString("point_code"); - } + SchProcessRoute processRoute = schProcessRouteService.findByMaterialId(material_id,devicePoint.getRegion_code()); + if (processRoute == null){ + throw new BadRequestException("当前没有配置对应工序调度线路:"+material_id+"/"+devicePoint.getRegion_code()); } - if (StringUtils.isBlank(nextPoint)){ - throw new BadRequestException("设备:"+point_code+"没有可用点位"); + //workprocedure_code,r.workprocedure_id + FlowElement flowElement = schedulerService.currentFlow(processRoute.getProcess_id(), workprodure.get("workprocedure_code")); + if (flowElement == null){ + throw new BadRequestException("当前工序调度线路:"+processRoute.getProcess_id()+"没有对应工序配置"+workprodure.get("workprocedure_code")); } - WQLObject.getWQLObject("sch_base_point").update(MapOf.of("task_id",task.getString("task_id"),"lock_type",StatusEnum.LOCK_ON.getCode(),"point_code = '"+nextPoint+"'")); - task.put("vehicle_code",cacheVehile); - task.put("point_code2",nextPoint); - task.put("task_status",StatusEnum.TASK_START_END_P.getCode()); - task.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("sch_base_task").update(task); - }; + return flowElement; + } //缺料请求:上料位 //1.判断当前设备表对应的缓存线是否开放 //2.根据当前设备绑定的物料id,从缓存线中获取相同物料对应载具列表 //3.agv根据对应载具列表行进扫码匹配:匹配到对应物料则创建点对点任务 - public void callMatter(JSONObject task){ + public void empMatter(JSONObject task){ //参数 String targetDevice = task.getString("next_point_code"); String material_id = task.getString("material_id"); - JSONObject devicePoint = WQLObject.getWQLObject("SCH_BASE_Point").query("point_code = '" + targetDevice + "' and is_delete = 0 and is_used = 1").uniqueResult(0); - JSONObject cacheLine = WQLObject.getWQLObject("SCH_cacheLine_region_relation").query("region_code = '"+devicePoint.getString("region_code")+"' and is_active = '"+StatusEnum.STATUS_TRUE.getCode()+"'").uniqueResult(0); - Assert.notNull(cacheLine, String.format("区域%s对应缓存线信息不存在", devicePoint.getString("region_code"))); + SchBasePoint devicePoint = basePointService.getOne(new QueryWrapper() + .eq("point_code", targetDevice) + .eq("is_delete", "0") + .eq("is_used", "1")); + JSONObject cacheLine = WQLObject.getWQLObject("SCH_cacheLine_region_relation").query("region_code = '"+devicePoint.getRegion_code()+"' and is_active = '"+StatusEnum.STATUS_TRUE.getCode()+"'").uniqueResult(0); + Assert.notNull(cacheLine, String.format("区域%s对应缓存线信息不存在", devicePoint.getRegion_code())); //缓存线位置编码 :缺料请求获取缓存线满载具列表 String startPoint = cacheLine.getString("cacheline_code"); String cacheVehile = getCacheVehile(startPoint, material_id); @@ -107,27 +141,28 @@ public class AgvInstService { throw new BadRequestException("缓存线:"+startPoint+"没有物料"+material_id+"对应可用载具"); } //判断当前物料载具已经任务分配数量:如果>物料已经分配任务。说明满了,不允许再分配 - JSONArray allocateTask = WQLObject.getWQLObject("SCH_base_task").query("point_code1 = '" + startPoint + "' and material_id = '" + material_id + "' and task_status <" + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0); + List allocateTask = taskService.list(new QueryWrapper().eq("point_code1", startPoint).eq("material_id", material_id).lt("task_status", StatusEnum.TASK_FINISH.getCode())); if (allocateTask.size()>=cacheVehile.split(",").length){ - log.error("callMatter 缓存线:{}上含有物料:{}的载具分配完,任务id:{}",startPoint,material_id,allocateTask.stream().map(o-> ((JSONObject)o).getString("task_id")).collect(Collectors.joining(","))); + log.error("callMatter 缓存线:{}上含有物料:{}的载具分配完,任务id:{}",startPoint,material_id,allocateTask.stream().map(SchBaseTask::getTask_id).collect(Collectors.joining(","))); throw new BadRequestException(String.format("缓存线%s上含物料%s的载具已分配完",startPoint,material_id)); } - task.put("vehicle_code",cacheVehile); - task.put("start_point_code",startPoint); - task.put("return_point_code",startPoint); - task.put("task_status",StatusEnum.TASK_START_END_P.getCode()); - task.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("SCH_base_task").update(task); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); + schBaseTask.setVehicle_code(cacheVehile); + schBaseTask.setPoint_code1(startPoint); + schBaseTask.setPoint_code3(startPoint); + schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); + schBaseTask.setUpdate_time(new Date()); + taskService.updateById(schBaseTask); } public String getCacheVehile(String cacheLine,String materialId){ - JSONArray runingTask = WQLObject.getWQLObject("sch_base_task").query("point_code2 = '" + cacheLine + "' and task_status < '" + StatusEnum.TASK_FINISH.getCode() + "'").getResultJSONArray(0); + int count = taskService.count(new QueryWrapper().eq("point_code2", cacheLine).lt("task_status", StatusEnum.TASK_FINISH.getCode())); String status = StringUtils.isBlank(materialId) ? StatusEnum.CACHE_VEL_EMT.getCode() : StatusEnum.CACHE_VEL_FULL.getCode(); - JSONArray result = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "6", "vehicle_status", status, "material_id", materialId)).process().getResultJSONArray(0); - if (result.size()>0){ - if (result.size()>runingTask.size()){ - return result.stream().map(a -> ((JSONObject) a).getString("vehicle_code")).collect(Collectors.joining(",")); + List vehicle = cachelineVehicleService.getCachelineVehicle(MapOf.of("vehicle_status", status, "material_id", materialId)); + if (vehicle.size()>0){ + if (vehicle.size()>count){ + return vehicle.stream().map(SchCachelineVehicle::getVehicle_code).collect(Collectors.joining(",")); } } return ""; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java index 2863e6f2..61ee34bf 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java @@ -249,6 +249,15 @@ public class CacheLineHandController { return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/checkEnd") + @Log("修改缓存线盘点状态") + @ApiOperation("修改缓存线盘点状态") + public ResponseEntity checkEnd(@RequestBody JSONObject param) { + log.info("海亮缓存线手持服务 [盘点] 接口被请求, 请求参数-{}", param); + cacheLineHandService.check(param); + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/agvInBoxExceptionQuery") @Log("AGV入箱异常-查询") @ApiOperation("AGV入箱异常-查询") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java index 54547374..a8217424 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java @@ -890,7 +890,7 @@ public class CacheLineHandServiceImpl implements CacheLineHandService { @Override public void check(JSONObject param) { - String option = param.getString("option"); + String option = param.getString("check_option"); if (StrUtil.isEmpty(option)) { throw new BadRequestException("缺少关键参数option"); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java new file mode 100644 index 00000000..8aae9977 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeEmpTask.java @@ -0,0 +1,241 @@ +package org.nl.wms.product_manage.sch.tasks.SpeMachinery; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.enums.InterfaceLogType; +import org.nl.common.enums.StatusEnum; +import org.nl.common.utils.MapOf; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.wms.ext.acs.service.impl.AgvInstService; +import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; +import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.HashMap; +import java.util.Map; + +/** + * 专机任务 + */ +@Slf4j +@Service +public class SpeEmpTask extends AbstractAcsTask { + + @Autowired + AgvInstService agvInstService; + private final Map SpeHandles= new HashMap<>(); + private static String OPT_NAME = "ACS回调# "; + + + public SpeEmpTask() { + SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_MAC.name() ,new Spe2Spe()); + SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_CACHE.name() ,new Spe2Cache()); + SpeHandles.put(AcsTaskEnum.TASK_CACHELINE_OUT.name() ,new Cache2Spe()); + } + + @Override + public void updateTaskStatus(JSONObject param,String status) { + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + log.info(InterfaceLogType.ACS_TO_LMS.getDesc()); + // 指令执行中 + JSONObject task = taskTable.query("task_id = '" + param.getString("task_id") + "'").uniqueResult(0); + AcsTaskEnum taskType = AcsTaskEnum.getType(task.getString("task_type"),"TASK_"); + try { + SpeHandles.get(taskType.name()).handle(param,status,task); + }catch (Exception ex){ + log.error(OPT_NAME+"updateStatus error:{}",ex); + throw ex; + } + } + + @Override + @Transactional + public String createTask(JSONObject param) { + + String point_code = param.getString("device_code"); + String quantity = param.getString("quantity"); + String type = param.getString("type"); + JSONObject order = WQLObject.getWQLObject("PDM_produce_workOrder").query("workorder_code = '" + param.getString("workorder_code") + "' and is_delete = 0 and workorder_status != "+StatusEnum.TASK_FINISH.getCode()).uniqueResult(0); + Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); + JSONArray chectIndDatabase = WQLObject.getWQLObject("SCH_BASE_Task").query((AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type) ? "point_code1" : "point_code2") + "= '" + point_code + "' and task_status < " + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0); + if (ObjectUtil.isNotEmpty(chectIndDatabase)){ + Assert.notNull(order, String.format("设备%s存在未完成任务", param.getString("point_code"))); + + } + JSONObject form = new JSONObject(MapOf.of("start_point_code","", + "next_point_code",point_code,"return_point_code", "","vehicle_code", + "","product_area",order.getString("product_area"),"quantity", quantity,"type",type,"material_id", order.getString("material_id"))); + String taskId = IdUtil.getSnowflake(1, 1).nextId() + ""; + + JSONObject task = packageParam(form, taskId); + WQLObject.getWQLObject("SCH_BASE_Task").insert(task); + try { + pointConfirm(task); + //下发 + }catch (Exception ex){ + task.put("task_status", TaskStatusEnum.SURE_START_ERROR.getCode()); + task.put("remark",ex.getMessage()); + WQLObject.getWQLObject("sch_base_task").update(task); + } + return taskId; + } + + private JSONObject packageParam(JSONObject form, String task_id) { + JSONObject task = new JSONObject(); + 参数封装:{ + AcsTaskEnum taskEnum = AcsTaskEnum.getType(form.getString("type"), "REQUEST_"); + task.put("task_id", task_id); + task.put("task_name", taskEnum.getDesc()); + task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); + task.put("task_type", form.getString("type")); + task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NOBLE_DOUBLE_TASK.getCode()); + task.put("task_status", TaskStatusEnum.CREATED.getCode()); + task.put("point_code1", form.getString("start_point_code")); + task.put("point_code2", form.getString("next_point_code")); + task.put("point_code3", form.getString("return_point_code")); + task.put("vehicle_code2", form.getString("vehicle_code2")); + task.put("vehicle_code", form.getString("vehicle_code")); + task.put("material_id", form.getString("material_id")); + task.put("material_qty", form.getString("quantity")); + task.put("handle_class", this.getClass().getName()); + task.put("finished_type", "1"); + task.put("is_delete", StatusEnum.LOCK_OFF.getCode()); + task.put("create_id", SecurityUtils.getCurrentUserId()); + task.put("create_name", SecurityUtils.getCurrentNickName()); + task.put("update_optid", SecurityUtils.getCurrentUserId()); + task.put("update_optname", SecurityUtils.getCurrentNickName()); + task.put("create_time", DateUtil.now()); + task.put("update_time", DateUtil.now()); + task.put("priority", "1");} + return task; + } + + @Override + public void cancel(String taskId) { + log.info(OPT_NAME+"cancel taskID:{}",taskId); + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + //专机-专机 + //专机-缓存线 + //缓存线出库 + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_CANNEL.getCode()),"task_id = '"+taskId+"'"); + + } + interface SpeStatusHandler{ + void handle(JSONObject param,String status,JSONObject task); + } + class Spe2Spe implements SpeStatusHandler{ + @Override + public void handle(JSONObject param, String sta,JSONObject task) { + AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point"); + WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); + + switch (status){ + case STATUS_START: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + break; + case STATUS_FINISH: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + //到专机:更新设备上料位物料数量 + String point_code2 = task.getString("point_code2"); + JSONObject pointInfo = pointTable.query("point_code = '" + point_code2 + "'").uniqueResult(0); + JSONObject device = deviceTable.query("device_code = '" + pointInfo.getString("device_code") + "'").uniqueResult(0); + task.getDouble("material_qty"); + double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty"); + deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'"); + break; + case STATUS_CANNEL: + cancel(param.getString("task_id")); + break; + default: + log.error(OPT_NAME+"未定义任务状态:{}",sta); + throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); + } + } + } + class Spe2Cache implements SpeStatusHandler{ + @Override + public void handle(JSONObject param, String sta,JSONObject task) { + AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + String workprocedureCode = param.getString("workorder_code"); + String inboxtxm = param.getString("inboxtxm"); + String outboxtxm = param.getString("outboxtxm"); + switch (status){ + case STATUS_START: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + cacheVehTable.delete("vehicle_code = '" + outboxtxm + "'"); + break; + case STATUS_FINISH: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + cacheVehTable.insert(MapOf.of("quantity", task.getString("material_qty"), + "material_id", task.getString("material_id"), + "vehicle_code", inboxtxm, + "vehicle_status", StatusEnum.CACHE_VEL_FULL.getCode(), + //工单,工序? + "workorder_code", workprocedureCode, + "create_time", DateUtil.now(), + "update_time", DateUtil.now() + //物料规格,物料名称 从物料信息表关联查询 + )); + break; + case STATUS_CANNEL: + cancel(param.getString("task_id")); + break; + default: + throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); + } + } + } + class Cache2Spe implements SpeStatusHandler{ + @Override + public void handle(JSONObject param, String sta,JSONObject task) { + AcsTaskEnum status = AcsTaskEnum.getType(sta,"status_"); + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + WQLObject cacheVehTable = WQLObject.getWQLObject("sch_cacheline_vehilematerial"); + WQLObject pointTable = WQLObject.getWQLObject("SCH_BASE_Point"); + WQLObject deviceTable = WQLObject.getWQLObject("pdm_bi_device"); + String outboxtxm = param.getString("outboxtxm"); + + switch (status){ + case STATUS_START: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_RUNNING.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + cacheVehTable.delete("vehicle_code = '" + outboxtxm + "'"); + break; + case STATUS_FINISH: + taskTable.update(MapOf.of("task_status",StatusEnum.TASK_FINISH.getCode(),"update_name","acs","update_time", DateUtil.now()),"task_id = '"+task.getString("task_id")+"'"); + + String point_code2 = task.getString("point_code2"); + JSONObject pointInfo = pointTable.query("point_code = '" + point_code2 + "'").uniqueResult(0); + JSONObject device = deviceTable.query("device_code = '" + pointInfo.getString("device_code") + "'").uniqueResult(0); + task.getDouble("material_qty"); + double currentQty = device.getDouble("deviceinstor_qty") + task.getDouble("material_qty"); + deviceTable.update(MapOf.of("deviceinstor_qty", String.valueOf(currentQty)), "device_code = '" + pointInfo.getString("device_code") + "'"); + break; + case STATUS_CANNEL: + cancel(param.getString("task_id")); + break; + default: + throw new BadRequestException(OPT_NAME+"未定义任务状态:"+sta); + } + } + } + + @Override + public void pointConfirm(JSONObject param) { + agvInstService.empMatter(param); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachineryTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java similarity index 88% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachineryTask.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java index 272d4877..92eee538 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachineryTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/SpeMachinery/SpeFullTask.java @@ -1,4 +1,4 @@ -package org.nl.wms.product_manage.sch.tasks; +package org.nl.wms.product_manage.sch.tasks.SpeMachinery; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; @@ -11,9 +11,9 @@ import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.InterfaceLogType; import org.nl.common.enums.StatusEnum; import org.nl.common.utils.MapOf; +import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; - import org.nl.common.utils.SecurityUtils; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.ext.acs.service.impl.AgvInstService; @@ -23,7 +23,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - import java.util.HashMap; import java.util.Map; @@ -32,7 +31,7 @@ import java.util.Map; */ @Slf4j @Service -public class SpeMachineryTask extends AbstractAcsTask { +public class SpeFullTask extends AbstractAcsTask { @Autowired AgvInstService agvInstService; @@ -40,7 +39,7 @@ public class SpeMachineryTask extends AbstractAcsTask { private static String OPT_NAME = "ACS回调# "; - public SpeMachineryTask() { + public SpeFullTask() { SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_MAC.name() ,new Spe2Spe()); SpeHandles.put(AcsTaskEnum.TASK_PRODUCT_CACHE.name() ,new Spe2Cache()); SpeHandles.put(AcsTaskEnum.TASK_CACHELINE_OUT.name() ,new Cache2Spe()); @@ -73,23 +72,16 @@ public class SpeMachineryTask extends AbstractAcsTask { JSONArray chectIndDatabase = WQLObject.getWQLObject("SCH_BASE_Task").query((AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type) ? "point_code1" : "point_code2") + "= '" + point_code + "' and task_status < " + StatusEnum.TASK_FINISH.getCode()).getResultJSONArray(0); if (ObjectUtil.isNotEmpty(chectIndDatabase)){ Assert.notNull(order, String.format("设备%s存在未完成任务", param.getString("point_code"))); + } + JSONObject empPoint = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "2", "point_code", point_code, "point_type", StatusEnum.POINT_LOCATION_EMP.getCode())).process().uniqueResult(0); + JSONObject form = new JSONObject(MapOf.of("start_point_code",point_code, + "next_point_code","","return_point_code", empPoint.getString("point_code"),"vehicle_code", + "","product_area",order.getString("product_area"),"quantity", quantity,"type",type,"material_id", order.getString("material_id"))); - } - JSONObject form = null; - if (AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type)){ - JSONObject empPoint = WQL.getWO("sch_point").addParamMap(MapOf.of("flag", "2", "point_code", point_code, "point_type", StatusEnum.POINT_LOCATION_EMP.getCode())).process().uniqueResult(0); - form = new JSONObject(MapOf.of("start_point_code",point_code, - "next_point_code","","return_point_code", empPoint.getString("point_code"),"vehicle_code", - "","product_area",order.getString("product_area"),"quantity", quantity,"type",type,"material_id", order.getString("material_id"))); - } - if (AcsTaskEnum.REQUEST_CALLTYPE_EMP.getCode().equals(type)){ - form = new JSONObject(MapOf.of("start_point_code","", - "next_point_code",point_code,"return_point_code", "","vehicle_code", - "","product_area",order.getString("product_area"),"quantity", quantity,"type",type,"material_id", order.getString("material_id"))); - } String taskId = IdUtil.getSnowflake(1, 1).nextId() + ""; JSONObject task = packageParam(form, taskId); WQLObject.getWQLObject("SCH_BASE_Task").insert(task); + try { pointConfirm(task); //下发 @@ -246,12 +238,7 @@ public class SpeMachineryTask extends AbstractAcsTask { @Override public void pointConfirm(JSONObject param) { - String type = param.getString("task_type"); - if (AcsTaskEnum.REQUEST_CALLTYPE_FULL.getCode().equals(type)){ - agvInstService.fullMaster(param); - } - if (AcsTaskEnum.REQUEST_CALLTYPE_EMP.getCode().equals(type)){ - agvInstService.callMatter(param); - } + agvInstService.fullMaster(param); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/IPdmBiDeviceService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/IPdmBiDeviceService.java index 3db7a58e..24dfcd5c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/IPdmBiDeviceService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/IPdmBiDeviceService.java @@ -19,4 +19,13 @@ public interface IPdmBiDeviceService extends IService { List getNotWorkDeviceByWorkproceduceId(JSONObject param); + /** + * 获取生产工序对应可用设备 + * 重量/物料校验 + * @param param + * @return + */ + List workproceduceDevices(Map param); + + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java index 1b0a47c1..43aa1b40 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java @@ -90,7 +90,7 @@ public class PdmBiDevice implements Serializable { private BigDecimal deviceinitinstor_qty; /** - * 设备实时来料仓数 + * 设备实时来料仓数:用于数量校验 */ private BigDecimal deviceinstor_qty; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.java index 5549e533..1f9452da 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.java @@ -1,5 +1,6 @@ package org.nl.wms.product_manage.service.device.dao.mapper; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -17,4 +18,6 @@ import java.util.Map; public interface PdmBiDeviceMapper extends BaseMapper { List getNotWorkDevice(Map query); + + List workproceduceDevices(Map query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml index f8e60447..fa038379 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml @@ -18,4 +18,22 @@ from PDM_produce_workOrder o where '5' > o.workorder_status and o.is_delete = '0' ) + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/impl/PdmBiDeviceServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/impl/PdmBiDeviceServiceImpl.java index ec77959e..7b7009f0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/impl/PdmBiDeviceServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/impl/PdmBiDeviceServiceImpl.java @@ -25,4 +25,9 @@ public class PdmBiDeviceServiceImpl extends ServiceImpl getNotWorkDeviceByWorkproceduceId(JSONObject param) { return this.baseMapper.getNotWorkDevice(param); } + + @Override + public List workproceduceDevices(Map param) { + return this.baseMapper.workproceduceDevices(param); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java index e56eed4f..07b3f1ad 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/scheduler/SchedulerController.java @@ -6,14 +6,23 @@ package org.nl.wms.scheduler_manage.controller.scheduler; */ import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.TableDataInfo; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.scheduler_manage.service.scheduler.ISchProcessRouteService; import org.nl.wms.scheduler_manage.service.scheduler.SchedulerService; +import org.nl.wms.scheduler_manage.service.scheduler.dao.SchProcessRoute; import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl.FlowElement; +import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl.ProcessElement; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; @RestController @RequestMapping("/api/shceduler") @@ -23,6 +32,9 @@ public class SchedulerController { @Autowired SchedulerService schedulerService; + @Autowired + ISchProcessRouteService processRouteService; + @GetMapping("/all") public ResponseEntity allprocess(){ return new ResponseEntity<>(schedulerService.all(), HttpStatus.OK); @@ -36,4 +48,49 @@ public class SchedulerController { FlowElement element = schedulerService.currentFlow(process, flow); return new ResponseEntity<>(element, HttpStatus.OK); } + + + @GetMapping("/route") + public ResponseEntity route(String blurry){ + QueryWrapper query = new QueryWrapper<>(); + if (StringUtils.isNotEmpty(blurry)){ + query.like("process_id", blurry) + .or() + .like("process_name", blurry) + .or() + .like("material_spec", blurry); + } + List list = processRouteService.list(query); + return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); + } + + @PostMapping("/routeDelete") + public ResponseEntity routeDelete(@RequestBody String[] materialSpecs){ + processRouteService.removeByIds(Arrays.asList(materialSpecs)); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/routeCreate") + public ResponseEntity routeCreate(@RequestBody JSONObject form){ + SchProcessRoute route = form.toJavaObject(SchProcessRoute.class); + ProcessElement process = schedulerService.getProcess(route.getProcess_id()); + if (process == null){ + throw new BadRequestException("当前工序路由id"+route.getProcess_id()+"没有对应xml配置文件配置"); + } + route.setProcess_name(process.getName()); + processRouteService.save(route); + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/routeUpdate") + public ResponseEntity routeUpdate(@RequestBody JSONObject form){ + SchProcessRoute route = form.toJavaObject(SchProcessRoute.class); + ProcessElement process = schedulerService.getProcess(route.getProcess_id()); + if (process == null){ + throw new BadRequestException("当前工序路由id"+route.getProcess_id()+"没有对应xml配置文件配置"); + } + route.setProcess_name(process.getName()); + processRouteService.updateById(route); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/ISchCachelineVehicleService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/ISchCachelineVehicleService.java index 0fce2d94..a684e26e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/ISchCachelineVehicleService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/ISchCachelineVehicleService.java @@ -3,6 +3,9 @@ package org.nl.wms.scheduler_manage.service.cacheline; import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehicle; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + /** *

* 缓存线载具条码表 服务类 @@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ISchCachelineVehicleService extends IService { + List getCachelineVehicle(Map query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelineVehicleMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelineVehicleMapper.java index 6029a4a0..c3bd2e02 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelineVehicleMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/SchCachelineVehicleMapper.java @@ -3,6 +3,9 @@ package org.nl.wms.scheduler_manage.service.cacheline.dao.mapper; import org.nl.wms.scheduler_manage.service.cacheline.dao.SchCachelineVehicle; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; +import java.util.Map; + /** *

* 缓存线载具条码表 Mapper 接口 @@ -13,4 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface SchCachelineVehicleMapper extends BaseMapper { + List getCachelineVehicle(Map query); + + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml index 995c0639..c15858b7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/dao/mapper/xml/SchCachelineVehicleMapper.xml @@ -2,4 +2,17 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/impl/SchCachelineVehicleServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/impl/SchCachelineVehicleServiceImpl.java index 04565cc3..887d11e1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/impl/SchCachelineVehicleServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/cacheline/impl/SchCachelineVehicleServiceImpl.java @@ -6,6 +6,9 @@ import org.nl.wms.scheduler_manage.service.cacheline.ISchCachelineVehicleService import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; + /** *

* 缓存线载具条码表 服务实现类 @@ -17,4 +20,8 @@ import org.springframework.stereotype.Service; @Service public class SchCachelineVehicleServiceImpl extends ServiceImpl implements ISchCachelineVehicleService { + @Override + public List getCachelineVehicle(Map query) { + return this.baseMapper.getCachelineVehicle(query); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java index 065fabdd..f0168faa 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java @@ -39,4 +39,11 @@ public interface ISchBasePointService extends IService { */ void changeActive(JSONObject form); + /** + * 根据设备点位查询设备对应工序 + * @param point_code + * @return + */ + Map findDeviceWorkprodure(String point_code); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java index 9b266290..fb07e862 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.java @@ -28,4 +28,6 @@ public interface SchBasePointMapper extends BaseMapper { * @return */ List selectPoint(Map map); + + Map getDeviceWorkprodure(String pointCode); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml index 9ef6d0fd..c4030f11 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/dao/mapper/SchBasePointMapper.xml @@ -89,4 +89,11 @@ AND ruledis.load_series >= #{loadSeries} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java index 72567273..e6fda177 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java @@ -140,4 +140,12 @@ public class SchBasePointServiceImpl extends ServiceImpl + * 物料系列调度线路配置表 服务类 + *

+ * + * @author generator + * @since 2023-05-23 + */ +public interface ISchProcessRouteService extends IService { + + SchProcessRoute findByMaterialId(String materialId,String regionCode); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/SchedulerService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/SchedulerService.java index 21199dd0..1fd04bbe 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/SchedulerService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/SchedulerService.java @@ -10,8 +10,6 @@ import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement; import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl.FlowElement; import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl.ProcessElement; import org.springframework.beans.BeansException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.core.io.FileSystemResourceLoader; import org.springframework.core.io.Resource; @@ -36,7 +34,6 @@ import java.util.function.Function; */ @Service public class SchedulerService implements BeanPostProcessor { - @Value("${schedulerFile}") private static Map converterMap =new HashMap<>(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/SchProcessRoute.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/SchProcessRoute.java new file mode 100644 index 00000000..2b0faad0 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/SchProcessRoute.java @@ -0,0 +1,38 @@ +package org.nl.wms.scheduler_manage.service.scheduler.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 物料系列调度线路配置表 + *

+ * + * @author generator + * @since 2023-05-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("sch_process_route") +public class SchProcessRoute implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 规则(物料系列/区域) + */ + @TableId(value ="rule_code" ) + private String rule_code; + + /** + * 袋唯一标识 + */ + private String process_id; + + private String process_name; + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/mapper/SchProcessRouteMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/mapper/SchProcessRouteMapper.java new file mode 100644 index 00000000..46d7f6e2 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/mapper/SchProcessRouteMapper.java @@ -0,0 +1,17 @@ +package org.nl.wms.scheduler_manage.service.scheduler.dao.mapper; + +import org.nl.wms.scheduler_manage.service.scheduler.dao.SchProcessRoute; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 物料系列调度线路配置表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-05-23 + */ +public interface SchProcessRouteMapper extends BaseMapper { + + SchProcessRoute findByMaterialId(String materialId); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/mapper/xml/SchProcessRouteMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/mapper/xml/SchProcessRouteMapper.xml new file mode 100644 index 00000000..97949c68 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/dao/mapper/xml/SchProcessRouteMapper.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java new file mode 100644 index 00000000..52464bd3 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/impl/SchProcessRouteServiceImpl.java @@ -0,0 +1,41 @@ +package org.nl.wms.scheduler_manage.service.scheduler.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.apache.commons.lang3.StringUtils; +import org.nl.wms.scheduler_manage.service.scheduler.dao.SchProcessRoute; +import org.nl.wms.scheduler_manage.service.scheduler.dao.mapper.SchProcessRouteMapper; +import org.nl.wms.scheduler_manage.service.scheduler.ISchProcessRouteService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.wms.system_manage.service.param.ISysParamService; +import org.nl.wms.system_manage.service.param.dao.Param; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + *

+ * 物料系列调度线路配置表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-23 + */ +@Service +public class SchProcessRouteServiceImpl extends ServiceImpl implements ISchProcessRouteService { + + @Autowired + ISysParamService iSysParamService; + + @Override + public SchProcessRoute findByMaterialId(String materialId, String regionCode) { + Param one = iSysParamService.getOne(new QueryWrapper().eq("code", "process_route")); + String value = one.getValue(); + if (value.equals("1")){ + return this.getOne(new QueryWrapper().eq("rule_code",regionCode)); + }else { + if (StringUtils.isNotEmpty(materialId)){ + return this.baseMapper.findByMaterialId(materialId); + } + } + return null; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowConverter.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowConverter.java index 7b46ef69..e2aacb89 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowConverter.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowConverter.java @@ -36,9 +36,7 @@ public class FlowConverter implements BaseConverter { } if (XMLStreamConstants.START_ELEMENT == xtr.next()){ System.out.println(xtr.getLocalName()); - Map param = new HashMap(); - param.put(xtr.getAttributeValue(null,"id"),xtr.getAttributeValue(null,"value")); - element.getParams().add(param); + element.getParams().put(xtr.getAttributeValue(null,"id"),xtr.getAttributeValue(null,"value")); i++; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowElement.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowElement.java index 2877451d..d07b61b5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowElement.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/labelConverter/impl/FlowElement.java @@ -3,6 +3,7 @@ package org.nl.wms.scheduler_manage.service.scheduler.labelConverter.impl; import org.nl.wms.scheduler_manage.service.scheduler.labelConverter.BaseElement; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -16,7 +17,7 @@ public class FlowElement extends BaseElement { private FlowElement targetRef; private String sourceRefId; private String targetRefId; - private List> params = new ArrayList<>(); + private Map params = new HashMap<>(); @@ -54,11 +55,11 @@ public class FlowElement extends BaseElement { this.targetRefId = targetRefId; } - public List> getParams() { + public Map getParams() { return params; } - public void setParams(List> params) { + public void setParams(Map params) { this.params = params; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java index 47307911..52b2a5ef 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java @@ -1,6 +1,8 @@ package org.nl.wms.scheduler_manage.service.task.dao; import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.util.Date; @@ -26,6 +28,7 @@ public class SchBaseTask implements Serializable { /** * 任务标识 */ + @TableId(value = "task_id") private String task_id; /** diff --git a/mes/hd/nladmin-system/src/main/resources/scheduler.xml b/mes/hd/nladmin-system/src/main/resources/scheduler.xml index c434d833..cde694e2 100644 --- a/mes/hd/nladmin-system/src/main/resources/scheduler.xml +++ b/mes/hd/nladmin-system/src/main/resources/scheduler.xml @@ -2,8 +2,12 @@ - - + + + + + + diff --git a/mes/qd/src/views/wms/scheduler_manage/scheduler/index.vue b/mes/qd/src/views/wms/scheduler_manage/scheduler/index.vue new file mode 100644 index 00000000..655d7b66 --- /dev/null +++ b/mes/qd/src/views/wms/scheduler_manage/scheduler/index.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/mes/qd/src/views/wms/scheduler_manage/scheduler/schedulerRoute.js b/mes/qd/src/views/wms/scheduler_manage/scheduler/schedulerRoute.js new file mode 100644 index 00000000..160ddcfb --- /dev/null +++ b/mes/qd/src/views/wms/scheduler_manage/scheduler/schedulerRoute.js @@ -0,0 +1,34 @@ +import request from '@/utils/request' + +export function getRoutes() { + return request({ + url: '/api/shceduler/route', + method: 'get' + }) +} + +export function add(data) { + return request({ + url: '/api/shceduler/routeCreate', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: '/api/shceduler/routeDelete', + method: 'post', + data: ids + }) +} + +export function edit(data) { + return request({ + url: '/api/shceduler/routeUpdate', + method: 'post', + data + }) +} + +export default { getRoutes, add, edit, del }