From e3031c5267c5de0eb9cefa7a352276e1d7ddb29c Mon Sep 17 00:00:00 2001 From: gengby <858962040@qq.com> Date: Mon, 8 May 2023 11:04:52 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=B0=81=E7=AE=B1=E6=8B=86=E7=AE=B1?= =?UTF-8?q?=E7=BA=BF,=20rev=20=E6=B5=8B=E8=AF=95=E8=AF=BB=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/acs/acsEnum/StatusEnum.java | 4 + .../device/device_driver/DriverTypeEnum.java | 8 +- .../service/impl/DeviceServiceImpl.java | 33 +- .../hailiang_one/IssuedDeviceOrderInfo.java | 2 +- .../HailiangCleaningFeedingLineDriver.java | 10 +- .../EalingMachineDefination.java | 6 +- .../EalingMachineDeviceDriver.java | 69 ++- .../hailiang_ealing_machine/ItemProtocol.java | 12 +- .../HailiangEngravingMachineDeviceDriver.java | 22 +- .../HailiangOldSpecialDeviceDriver.java | 18 +- ...iangOldSpecialFullStationDeviceDriver.java | 7 +- ...iangOldSpecialPourStationDeviceDriver.java | 7 +- .../HailiangPackerStationDeviceDriver.java | 172 ++++-- .../hailiang_packer_station/ItemProtocol.java | 235 +++++--- .../ItemProtocol.java | 59 ++ .../SealingMachineDefination.java | 63 +++ .../SealingMachineDeviceDriver.java | 110 ++++ .../HailiangSpecialDeviceDriver.java | 16 +- ...iliangSpecialEmptyStationDeviceDriver.java | 4 +- ...ailiangSpecialFullStationDeviceDriver.java | 7 +- ...ailiangSpecialPourStationDeviceDriver.java | 7 +- .../HailiangStackingStationDriver.java | 12 +- .../ItemProtocol.java | 14 +- .../ItemProtocol.java | 4 +- .../UnboxingMachineDefination.java | 6 +- .../UnboxingMachineDeviceDriver.java | 49 +- .../wms/service/impl/AcsToWmsServiceImpl.java | 6 +- .../wms/service/impl/WmsToAcsServiceImpl.java | 16 +- .../service/impl/InstructionServiceImpl.java | 9 +- .../acs/order/service/dto/EalingOrderDto.java | 91 +++ .../service/dto/ProduceshiftorderDto.java | 34 +- .../impl/ProduceshiftorderServiceImpl.java | 70 ++- .../org/nl/acs/order/service/wql/order.xls | Bin 167936 -> 168448 bytes .../task/service/impl/TaskServiceImpl.java | 3 +- .../modules/quartz/task/AutoCreateInst.java | 15 +- .../quartz/task/AutoFeedDeviceNum.java | 5 +- .../modules/quartz/task/AutoFeedOrderNum.java | 5 +- .../resources/config/application-prod.yml | 2 +- .../src/views/acs/device/config.vue | 7 + .../hailiang_one/hailiang_auto_cache_line.vue | 17 + .../hailiang_cleaning_feeding_line.vue | 17 + .../hailiang_cleaning_machine.vue | 17 + ...liang_cleaning_machine_storage_station.vue | 17 + .../hailiang_one/hailiang_ealing_machine.vue | 521 ++++++++++++++++++ .../hailiang_one/hailiang_elevator_wiring.vue | 17 + .../hailiang_one/hailiang_engraving_cache.vue | 17 + .../hailiang_engraving_machine.vue | 17 + .../hailiang_foldingDisc_smart.vue | 17 + .../hailiang_old_palletizing_station.vue | 17 + .../hailiang_old_special_device.vue | 17 + .../hailiang_old_special_empty_station.vue | 17 + .../hailiang_old_special_full_station.vue | 17 + .../hailiang_old_special_pick_station.vue | 17 + .../hailiang_old_special_pour_station.vue | 17 + .../hailiang_old_stacking_manipulator.vue | 17 + .../hailiang_one/hailiang_packer_station.vue | 17 + .../hailiang_one/hailiang_paint_line.vue | 17 + .../hailiang_one/hailiang_sealing_machine.vue | 521 ++++++++++++++++++ .../hailiang_one/hailiang_smart_plc_test.vue | 17 + .../hailiang_one/hailiang_special_device.vue | 17 + .../hailiang_special_empty_station.vue | 17 + .../hailiang_special_full_station.vue | 17 + .../hailiang_special_pick_station.vue | 17 + .../hailiang_special_pour_station.vue | 17 + .../hailiang_stacking_station.vue | 17 + .../hailiang_threestation_smart.vue | 17 + .../hailiang_unboxing_machine.vue | 521 ++++++++++++++++++ .../hailiang_one/hailiang_xj_plc_test.vue | 49 +- .../src/views/acs/instruction/index.vue | 10 +- wcs/nladmin-ui/src/views/acs/order/index.vue | 68 ++- .../src/views/system/monitor/device/index.vue | 47 +- 71 files changed, 3043 insertions(+), 338 deletions(-) create mode 100644 wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/ItemProtocol.java create mode 100644 wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDefination.java create mode 100644 wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDeviceDriver.java create mode 100644 wcs/nladmin-system/src/main/java/org/nl/acs/order/service/dto/EalingOrderDto.java create mode 100644 wcs/nladmin-ui/src/views/acs/device/driver/hailiang_one/hailiang_ealing_machine.vue create mode 100644 wcs/nladmin-ui/src/views/acs/device/driver/hailiang_one/hailiang_sealing_machine.vue create mode 100644 wcs/nladmin-ui/src/views/acs/device/driver/hailiang_one/hailiang_unboxing_machine.vue diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/acsEnum/StatusEnum.java b/wcs/nladmin-system/src/main/java/org/nl/acs/acsEnum/StatusEnum.java index a3f71fd0..caa1e6e0 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/acsEnum/StatusEnum.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/acsEnum/StatusEnum.java @@ -31,6 +31,10 @@ public enum StatusEnum { SEND("1", "立即下发", ""), + //是否 + NO("0", "否", ""), + YES("1", "是", ""), + //暂停或恢复缓存线 PAUSE_TYPE("1", "暂停", ""), RESUME_TYPE("2", "恢复", ""), diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java index b57461aa..c0abb625 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java @@ -83,7 +83,13 @@ public enum DriverTypeEnum { HAILIANG_OLD_SPECIAL_PICK_STATION_DRIVER(37, "hailiang_old_special_pick_station", "海亮-smart专机收料位", "conveyor"), - HAILIANG_OLD_SPECIAL_EMPTY_POUR_DRIVER(38, "hailiang_old_special_pour_station", "海亮-smart专机倒料位", "conveyor"); + HAILIANG_OLD_SPECIAL_EMPTY_POUR_DRIVER(38, "hailiang_old_special_pour_station", "海亮-smart专机倒料位", "conveyor"), + + HAILIANG_EALING_MACHINE_DRIVER(39, "hailiang_ealing_machine", "海亮-装箱机", "conveyor"), + + HAILIANG_SEALING_MACHINE_DRIVER(40, "hailiang_sealing_machine", "海亮-封箱机", "conveyor"), + + HAILIANG_UNBOXING_MACHINE_DRIVER(41, "hailiang_unboxing_machine", "海亮-开箱机", "conveyor"); //驱动索引 diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java index bd25c7d4..51b9310e 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java @@ -27,6 +27,7 @@ import org.nl.acs.device_driver.basedriver.standard_inspect_site.StandardInspect import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_scanner.StandardScannerDeviceDriver; import org.nl.acs.device_driver.defination.OpcDeviceDriverDefination; +import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.*; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.FileUtil; @@ -328,7 +329,7 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial @Override public JSONArray selectList() { //设备基础信息表【acs_device】 - JSONArray arr = WQLObject.getWQLObject("acs_device").query("is_delete= '0' AND is_active= '1' AND is_config = 'true'","device_code").getResultJSONArray(0); + JSONArray arr = WQLObject.getWQLObject("acs_device").query("is_delete= '0' AND is_active= '1' AND is_config = 'true'", "device_code").getResultJSONArray(0); JSONArray result = new JSONArray(); for (int i = 0; i < arr.size(); i++) { JSONObject obj = arr.getJSONObject(i); @@ -689,9 +690,6 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial // } - - - // deviceAppService.reload(); } @@ -702,19 +700,6 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial String[] point = device_code.split("-"); device_code = point[0]; } - //需要数量 - String hasGoodStatus = form.getString("hasGoodStatus"); - if (StrUtil.isEmpty(hasGoodStatus)) { - hasGoodStatus = "0"; - } - String batch = form.getString("batch"); - String material_type = form.getString("material_type"); - String quantity = form.getString("quantity"); - String remark = form.getString("remark"); - String vehicle_code = form.getString("vehicle_code"); - String islock = form.getString("islock"); - String requireSucess = form.getString("requireSucess"); - String fullrequireSucess = form.getString("fullrequireSucess"); if (device_code.indexOf(".") != -1) { device_code = device_code.substring(0, device_code.indexOf(".")); } @@ -722,6 +707,10 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial if (ObjectUtil.isEmpty(device)) { throw new BadRequestException("未找到对应设备:" + device_code); } + if (device.getDeviceDriver() instanceof DeviceStageMonitor) { + DeviceStageMonitor deviceStageMonitor = (DeviceStageMonitor) device.getDeviceDriver(); + deviceStageMonitor.setDeviceStatus(form); + } } @@ -1335,12 +1324,12 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial @Override - public void updateDeviceCodeByAddress(StorageCellDto dto){ + public void updateDeviceCodeByAddress(StorageCellDto dto) { Iterator iterator = storageCells.iterator(); StorageCellDto dto1 = null; while (iterator.hasNext()) { StorageCellDto storageCellDto = (StorageCellDto) iterator.next(); - if(StrUtil.equals(storageCellDto.getStorage_code(),dto.getStorage_code())){ + if (StrUtil.equals(storageCellDto.getStorage_code(), dto.getStorage_code())) { storageCells.remove(storageCellDto); storageCells.add(dto); } @@ -1348,16 +1337,16 @@ public class DeviceServiceImpl implements DeviceService, ApplicationAutoInitial } @Override - public void addDeviceCodeByAddress(StorageCellDto dto){ + public void addDeviceCodeByAddress(StorageCellDto dto) { Iterator iterator = storageCells.iterator(); StorageCellDto dto1 = null; while (iterator.hasNext()) { StorageCellDto storageCellDto = (StorageCellDto) iterator.next(); - if(StrUtil.equals(storageCellDto.getStorage_code(),dto.getStorage_code())){ + if (StrUtil.equals(storageCellDto.getStorage_code(), dto.getStorage_code())) { dto1 = storageCellDto; } } - if(ObjectUtil.isEmpty(dto1)){ + if (ObjectUtil.isEmpty(dto1)) { storageCells.add(dto); } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/IssuedDeviceOrderInfo.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/IssuedDeviceOrderInfo.java index c88d386f..41cccd95 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/IssuedDeviceOrderInfo.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/IssuedDeviceOrderInfo.java @@ -12,7 +12,7 @@ public interface IssuedDeviceOrderInfo { void issuedOrderInfo(ProduceshiftorderDto dto); //下发工单完成信息 - void issuedOrderFinish(); + void issuedOrderFinish(String autoFinish); //工单暂停 void toStop(); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java index 22d66ce9..dd9221d0 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java @@ -1,7 +1,6 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_feeding_line; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import lombok.Data; @@ -300,6 +299,7 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i jo.put("in_ready", in_ready == 1 ? "是" : "否"); jo.put("task_finish", task_finish == 1 ? "是" : "否"); jo.put("allowed_in", allowed_in == 1 ? "是" : "否"); + jo.put("requireSucess", requireSucess.toString()); jo.put("in_pcsn", in_pcsn); jo.put("isOnline", this.getIsonline()); jo.put("error", ErrorUtil.getDictDetail("clean_up_error_type", String.valueOf(this.getError()))); @@ -320,9 +320,9 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i */ @Override public void setDeviceStatus(JSONObject data) { - String requestSucess = data.getString("requireSucess"); - if (StrUtil.isNotEmpty(requestSucess)) - this.requireSucess = requestSucess.equals("0") ? false : true; + Boolean requireSucess = data.getBoolean("requireSucess"); + if (ObjectUtil.isNotEmpty(requireSucess)) + this.requireSucess = requireSucess; } /** @@ -362,7 +362,7 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i * 下发工单完成信息 */ @Override - public void issuedOrderFinish() { + public void issuedOrderFinish(String autoFinish) { } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDefination.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDefination.java index 3ac48589..c49a5d1e 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDefination.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDefination.java @@ -11,7 +11,7 @@ import java.util.LinkedList; import java.util.List; /** - * 海亮封箱机 + * 海亮装箱机 */ @Service public class EalingMachineDefination implements OpcDeviceDriverDefination { @@ -22,12 +22,12 @@ public class EalingMachineDefination implements OpcDeviceDriverDefination { @Override public String getDriverName() { - return "海亮-封箱机"; + return "海亮-装箱机"; } @Override public String getDriverDescription() { - return "海亮-拆箱机"; + return "海亮-装箱机"; } @Override diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDeviceDriver.java index 66e6471c..80b36f80 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/EalingMachineDeviceDriver.java @@ -1,12 +1,15 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_ealing_machine; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.acs.acsEnum.WorkerOrderEnum; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.history.service.DeviceErrorLogService; @@ -15,6 +18,8 @@ import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; +import org.nl.acs.order.service.dto.EalingOrderDto; +import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -24,12 +29,12 @@ import java.util.List; import java.util.Map; /** - * 封箱机 + * 装箱机 */ @Slf4j @Data @RequiredArgsConstructor -public class EalingMachineDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor { +public class EalingMachineDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, IssuedDeviceOrderInfo { protected ItemProtocol itemProtocol = new ItemProtocol(this); DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @@ -251,13 +256,59 @@ public class EalingMachineDeviceDriver extends AbstractOpcDeviceDriver implement } - public void writing(String param, String value) { - String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + param; - Map itemMap = new HashMap(); - itemMap.put(to_param, Integer.parseInt(value)); - this.control(itemMap); - logServer.deviceExecuteLog(device_code, "", "", "下发电气信号设备号:" + device_code + ",下发电气:" + to_param + ",下发电气值:" + value); + @Override + public void issuedOrderInfo(ProduceshiftorderDto dto) { + EalingOrderDto ealingOrderDto = dto.getEalingOrderDto(); + if (ObjectUtil.isNotEmpty(ealingOrderDto)) { + String x = "0"; + String y = "0"; + String[] xys = ealingOrderDto.getX_y().split(","); + if (xys.length == 2) { + x = xys[0]; + y = xys[1]; + } + Map map = new HashMap<>(); + map.put("to_clear", "1"); + map.put("to_order", ealingOrderDto.getOrder_code()); + map.put("to_order_box_num", ealingOrderDto.getOrder_box_num()); + map.put("to_order_bag_num", ealingOrderDto.getOrder_bag_num()); + map.put("to_template_no", ealingOrderDto.getTemplate_no()); + map.put("to_x" + x, x); + map.put("to_y" + y, y); + //模板号大于100 再下发这些信息 + if (StrUtil.isNotEmpty(ealingOrderDto.getTemplate_no()) && Integer.parseInt(ealingOrderDto.getTemplate_no()) > 100) { + map.put("to_bag_length", ealingOrderDto.getBag_length()); + map.put("to_bag_width", ealingOrderDto.getBag_width()); + map.put("to_bag_num_of_one_floor_box", ealingOrderDto.getBag_num_of_one_floor_box()); + map.put("to_bag_num_of_box", ealingOrderDto.getBag_num_of_box()); + map.put("to_one_box_weight", ealingOrderDto.getOne_box_weight()); + map.put("to_one_bag_weight", ealingOrderDto.getOne_bag_weight()); + map.put("to_empty_box_weight", ealingOrderDto.getEmpty_box_weight()); + map.put("to_one_bag_up_weight", ealingOrderDto.getOne_bag_up_weight()); + map.put("to_one_bag_down_weight", ealingOrderDto.getOne_bag_down_weight()); + map.put("to_one_box_up_weight", ealingOrderDto.getOne_box_up_weight()); + map.put("to_one_box_down_weight", ealingOrderDto.getOne_box_down_weight()); + } + this.writing(map); + } + } + + @Override + public void issuedOrderFinish(String autoFinish) { + if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())){ + this.writing("to_order_compel_finished", "1"); + } + 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_one/hailiang_ealing_machine/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/ItemProtocol.java index 3435de8e..3c8b198b 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_ealing_machine/ItemProtocol.java @@ -144,10 +144,10 @@ public class ItemProtocol { public static String item_to_empty_box_weight = "to_empty_box_weight"; //工单号 public static String item_to_order = "to_order"; - //是否自动确认 - public static String item_to_is_auto_confirm = "to_is_auto_confirm"; - //封箱确认时间秒数 - public static String item_to_time = "to_time"; + //是否自动确认 封箱机驱动 + //public static String item_to_is_auto_confirm = "to_is_auto_confirm"; + //封箱确认时间秒数 封箱机驱动 + //public static String item_to_time = "to_time"; private EalingMachineDeviceDriver driver; @@ -365,8 +365,8 @@ public class ItemProtocol { list.add(new ItemDto(item_to_one_box_down_weight, "每箱重量下限重量", "DB2.D156")); list.add(new ItemDto(item_to_empty_box_weight, "空纸箱重量", "DB2.D160")); list.add(new ItemDto(item_to_order, "工单号", "DB2.D200")); - list.add(new ItemDto(item_to_is_auto_confirm, "是否自动确认", "DB2.W24")); - list.add(new ItemDto(item_to_time, "封箱确认时间秒数", "DB2.W26")); +// list.add(new ItemDto(item_to_is_auto_confirm, "是否自动确认", "DB2.W24")); +// list.add(new ItemDto(item_to_time, "封箱确认时间秒数", "DB2.W26")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java index c79d8c59..431657a5 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java @@ -353,12 +353,6 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive produceshiftorderService.finished(pdto); } } - Map map = new HashMap<>(); - map.put("to_confirm_finished", "1"); - map.put("to_order", "0"); - map.put("to_clear", "1"); - map.put("to_pause", "1"); - this.writing(map); } } catch (Exception var17) { var17.printStackTrace(); @@ -622,10 +616,13 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive * 下发工单完成信息 */ @Override - public void issuedOrderFinish() { + public void issuedOrderFinish(String autoFinish) { Map map = new HashMap<>(); - map.put("to_order_compel_finished", "1"); - map.put("to_confirm_finished", "1"); + if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())){ + map.put("to_order_compel_finished", "1"); + } else { + map.put("to_confirm_finished", "1"); + } map.put("to_order", "0"); map.put("to_clear", "1"); this.writing(map); @@ -663,7 +660,7 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive jo.put("full_req", full_req == 1 ? "是" : "否"); jo.put("full_finish", full_finish == 1 ? "是" : "否"); jo.put("order_finish", order_finish == 1 ? "是" : "否"); - jo.put("requireSucess", requireSucess); + jo.put("requireSucess", requireSucess.toString()); jo.put("order_now", order_now); jo.put("one_now", one_now); jo.put("task", task); @@ -688,7 +685,8 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive */ @Override public void setDeviceStatus(JSONObject data) { - String requireSucess = data.getString("requireSucess"); - this.requireSucess = requireSucess.equals("0") ? false : true; + Boolean requireSucess = data.getBoolean("requireSucess"); + if (ObjectUtil.isNotEmpty(requireSucess)) + this.requireSucess = requireSucess; } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java index f5ff1f4a..6e7310ab 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java @@ -2,6 +2,7 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_old_special_de import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -118,7 +119,7 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl dto.setError_info(ErrorUtil.getDictDetail("error_type", String.valueOf(error))); deviceErrorLogService.create(dto); } - if (error == 1 || error == 51 || error == 0) { + if (error == 1 || error == 51 || error == 0) { feedDeviceStatusFlag = false; } logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); @@ -227,12 +228,6 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl produceshiftorderService.finished(pdto); } } - Map map = new HashMap<>(); - map.put("to_confirm_finished", "1"); - map.put("to_order", "0"); - map.put("to_clear", "1"); - map.put("to_pause", "1"); - this.writing(map); } } catch (Exception var17) { @@ -325,10 +320,13 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl * 下发工单完成信息 */ @Override - public void issuedOrderFinish() { + public void issuedOrderFinish(String autoFinish) { Map map = new HashMap<>(); - map.put("to_order_compel_finished", "1"); - map.put("to_confirm_finished", "1"); + if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { + map.put("to_order_compel_finished", "1"); + } else { + map.put("to_confirm_finished", "1"); + } map.put("to_order", "0"); map.put("to_clear", "1"); this.writing(map); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java index 6864d207..de1a82de 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java @@ -304,7 +304,7 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice jo.put("move", move == 1 ? "有货" : "无货"); jo.put("order", order); jo.put("full_number", full_number); - jo.put("requireSucess", requireSucess); + jo.put("requireSucess", requireSucess.toString()); jo.put("error", ErrorUtil.getDictDetail("full_error_type", String.valueOf(this.getError()))); jo.put("task", task); jo.put("isOnline", this.getIsonline()); @@ -324,8 +324,9 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice */ @Override public void setDeviceStatus(JSONObject data) { - String requireSucess = data.getString("requireSucess"); - this.requireSucess = requireSucess.equals("0") ? false : true; + Boolean requireSucess = data.getBoolean("requireSucess"); + if (ObjectUtil.isNotEmpty(requireSucess)) + this.requireSucess = requireSucess; } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java index 9d9b3a05..8443e030 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java @@ -273,7 +273,7 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice jo.put("mode", mode == 1 ? "联机" : "单机"); jo.put("order", order); jo.put("storage_stock_num", storage_stock_num); - jo.put("requireSucess", requireSucess); + jo.put("requireSucess", requireSucess.toString()); jo.put("error", ErrorUtil.getDictDetail("pour_error_type", String.valueOf(this.getError()))); jo.put("task", task); jo.put("isOnline", this.getIsonline()); @@ -293,7 +293,8 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice */ @Override public void setDeviceStatus(JSONObject data) { - String requireSucess = data.getString("requireSucess"); - this.requireSucess = requireSucess.equals("0") ? false : true; + Boolean requireSucess = data.getBoolean("requireSucess"); + if (ObjectUtil.isNotEmpty(requireSucess)) + this.requireSucess = requireSucess; } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java index 6d4d8de8..39a154b2 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java @@ -2,6 +2,7 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_packer_station import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import lombok.Data; @@ -66,36 +67,64 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i TaskService taskService = SpringContextHolder.getBean(TaskServiceImpl.class); int heartbeat = 0; - int packer_ready = 0;//包装机就绪 - int mode = 0;//模式 所有设备就绪 - int move = 0;//有货 - int order_finish = 0;//订单完成 - int lack_req = 0;//缺料请求 - int hopper_already = 0;//料斗已就位 - int req_task_empty = 0;//请求取空料斗 - int hopper_removed = 0;//料斗已取走 - int error = 0; //报警信号 - int order_now = 0; //订单实时 - int open_ready_time = 0; //开机准备时间(S) - int device_running_time = 0; //设备运转时间(S) - int await_time = 0; //待机时间(S) - int order = 0; //工单号 + int running = 0; + int packer_error = 0; + int hot_prepare = 0; + int out_num = 0; + int packer_ready = 0; + int all_ready = 0; + int move = 0; + int tap_open_pos = 0; + int tap_close_pos = 0; + int agv_abutment_error = 0; + int order_finish = 0; + int mode = 0; + int lack_req = 0; + int hopper_already = 0; + int req_task_empty = 0; + int hopper_removed = 0; + int error = 0; + int order_now = 0; + int cache_weight = 0; + int open_ready_time = 0; + int device_running_time = 0; + int await_time = 0; + int now_up_box_num = 0; + int now_bag_num_of_box = 0; + int now_bag_num = 0; + int now_seal_box_num = 0; + int order = 0; + int last_heartbeat = 0; - int last_packer_ready = 0;//包装机就绪 - int last_mode = 0;//模式 所有设备就绪 - int last_move = 0;//有货 - int last_order_finish = 0;//订单完成 - int last_lack_req = 0;//缺料请求 - int last_hopper_already = 0;//料斗已就位 - int last_req_task_empty = 0;//请求取空料斗 - int last_hopper_removed = 0;//料斗已取走 - int last_error = 0; //报警信号 - int last_order_now = 0; //订单实时 - int last_open_ready_time = 0; //开机准备时间(S) - int last_device_running_time = 0; //设备运转时间(S) - int last_await_time = 0; //待机时间(S) - int last_order = 0; //工单号 + int last_running = 0; + int last_packer_error = 0; + int last_hot_prepare = 0; + int last_out_num = 0; + int last_packer_ready = 0; + int last_all_ready = 0; + int last_move = 0; + int last_tap_open_pos = 0; + int last_tap_close_pos = 0; + int last_agv_abutment_error = 0; + int last_order_finish = 0; + int last_mode = 0; + int last_lack_req = 0; + int last_hopper_already = 0; + int last_req_task_empty = 0; + int last_hopper_removed = 0; + int last_error = 0; + int last_order_now = 0; + int last_cache_weight = 0; + int last_open_ready_time = 0; + int last_device_running_time = 0; + int last_await_time = 0; + int last_now_up_box_num = 0; + int last_now_bag_num_of_box = 0; + int last_now_bag_num = 0; + int last_now_seal_box_num = 0; + int last_order = 0; + Boolean isonline = true; Boolean last_isonline = true; @@ -138,26 +167,54 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i public synchronized void execute() { try { device_code = this.getDeviceCode(); - packer_ready = this.itemProtocol.getItem_packer_ready();//包装机就绪 - lack_req = this.itemProtocol.getItem_lack_req();//缺料请求 - hopper_already = this.itemProtocol.getItem_hopper_already();//料斗已就位 - req_task_empty = this.itemProtocol.getItem_req_task_empty();//请求取空料斗 - hopper_removed = this.itemProtocol.getItem_hopper_removed();//料斗已取走 - mode = this.itemProtocol.getItem_mode();//模式 所有设备就绪 - move = this.itemProtocol.getItem_move();//有货 - order_finish = this.itemProtocol.getItem_order_finish();//订单完成 - error = this.itemProtocol.getItem_error(); //报警信号 - order_now = this.itemProtocol.getItem_order_now(); //订单实时 - open_ready_time = this.itemProtocol.getItem_open_ready_time(); //开机准备时间(S) - device_running_time = this.itemProtocol.getItem_device_running_time(); //设备运转时间(S) - await_time = this.itemProtocol.getItem_await_time(); //待机时间(S) - order = this.itemProtocol.getItem_order(); //工单号 + packer_error = this.itemProtocol.getItem_packer_error(); + out_num = this.itemProtocol.getItem_out_num(); + agv_abutment_error = this.itemProtocol.getItem_agv_abutment_error(); + cache_weight = this.itemProtocol.getItem_cache_weight(); + now_up_box_num = this.itemProtocol.getItem_now_up_box_num(); + now_bag_num_of_box = this.itemProtocol.getItem_now_bag_num_of_box(); + now_bag_num = this.itemProtocol.getItem_now_bag_num(); + packer_ready = this.itemProtocol.getItem_packer_ready(); + lack_req = this.itemProtocol.getItem_lack_req(); + hopper_already = this.itemProtocol.getItem_hopper_already(); + req_task_empty = this.itemProtocol.getItem_req_task_empty(); + hopper_removed = this.itemProtocol.getItem_hopper_removed(); + mode = this.itemProtocol.getItem_mode(); + move = this.itemProtocol.getItem_move(); + order_finish = this.itemProtocol.getItem_order_finish(); + error = this.itemProtocol.getItem_error(); + order_now = this.itemProtocol.getItem_order_now(); + now_seal_box_num = this.itemProtocol.getItem_now_seal_box_num(); + order = this.itemProtocol.getItem_order(); isonline = this.itemProtocol.getIsonline(); - + if (now_bag_num != last_now_bag_num) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号now_bag_num:" + last_now_bag_num + "->" + now_bag_num); + } + if (now_seal_box_num != last_now_seal_box_num) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号now_seal_box_num:" + last_now_seal_box_num + "->" + now_seal_box_num); + } + if (cache_weight != last_cache_weight) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号cache_weight:" + last_cache_weight + "->" + cache_weight); + } + if (now_up_box_num != last_now_up_box_num) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号now_up_box_num:" + last_now_up_box_num + "->" + now_up_box_num); + } + if (now_bag_num_of_box != last_now_bag_num_of_box) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号now_bag_num_of_box:" + last_now_bag_num_of_box + "->" + now_bag_num_of_box); + } if (mode != last_mode) { feedDeviceStatusFlag = false; logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } + if (agv_abutment_error != last_agv_abutment_error) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号agv_abutment_error:" + last_agv_abutment_error + "->" + agv_abutment_error); + } + if (out_num != last_out_num) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号out_num:" + last_out_num + "->" + out_num); + } + if (packer_error != last_packer_error) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号packer_error:" + last_packer_error + "->" + packer_error); + } if (move != last_move) { logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); } @@ -282,11 +339,6 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i produceshiftorderService.finished(pdto); } } - Map map = new HashMap<>(); - map.put("to_confirm_finished", "1"); - map.put("to_order", "0"); - map.put("to_clear", "1"); - this.writing(map); } } catch (Exception var17) { @@ -429,11 +481,17 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i } } } + last_packer_error = packer_error; + last_out_num = out_num; + last_agv_abutment_error = agv_abutment_error; + last_cache_weight = cache_weight; last_packer_ready = packer_ready; + last_now_up_box_num = now_up_box_num; last_lack_req = lack_req; last_hopper_already = hopper_already; last_req_task_empty = req_task_empty; last_hopper_removed = hopper_removed; + last_now_bag_num_of_box = now_bag_num_of_box; last_move = move; last_order_finish = order_finish; last_mode = mode; @@ -444,6 +502,8 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i last_await_time = await_time; last_order = order; last_isonline = isonline; + last_now_bag_num = now_bag_num; + last_now_seal_box_num = now_seal_box_num; } /** @@ -529,10 +589,13 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i * 下发工单完成信息 */ @Override - public void issuedOrderFinish() { + public void issuedOrderFinish(String autoFinish) { Map map = new HashMap<>(); - map.put("to_order_compel_finished", "1"); - map.put("to_confirm_finished", "1"); + if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { + map.put("to_order_compel_finished", "1"); + } else { + map.put("to_confirm_finished", "1"); + } map.put("to_order", "0"); map.put("to_clear", "1"); this.writing(map); @@ -567,7 +630,7 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i jo.put("mode", mode == 1 ? "联机" : "单机"); jo.put("move", move == 1 ? "有货" : "无货"); jo.put("order", order); - jo.put("requireSucess", requireSucess); + jo.put("requireSucess", requireSucess.toString()); jo.put("order_finish", order_finish == 1 ? "是" : "否"); jo.put("lack_req", lack_req == 1 ? "是" : "否"); jo.put("req_task_empty", req_task_empty == 1 ? "是" : "否"); @@ -592,8 +655,9 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i */ @Override public void setDeviceStatus(JSONObject data) { - String requireSucess = data.getString("requireSucess"); - this.requireSucess = requireSucess.equals("0") ? false : true; + Boolean requireSucess = data.getBoolean("requireSucess"); + if (ObjectUtil.isNotEmpty(requireSucess)) + this.requireSucess = requireSucess; } private String noFeedMessage() { diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/ItemProtocol.java index dcf44f8f..1ce6e654 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/ItemProtocol.java @@ -11,21 +11,63 @@ import java.util.List; @Data public class ItemProtocol { + //心跳 public static String item_heartbeat = "heartbeat"; - public static String item_packer_ready = "packer_ready";//包装机就绪 - public static String item_mode = "mode";//模式 所有设备就绪 - public static String item_move = "move";//有货 - public static String item_order_finish = "order_finish";//订单完成 - public static String item_lack_req = "lack_req";//缺料请求 - public static String item_hopper_already = "hopper_already";//料斗已就位 - public static String item_req_task_empty = "req_task_empty";//请求取空料斗 - public static String item_hopper_removed = "hopper_removed";//料斗已取走 - public static String item_error = "error"; //报警信号 - public static String item_order_now = "order_now"; //订单实时 - public static String item_open_ready_time = "open_ready_time"; //开机准备时间(S) - public static String item_device_running_time = "device_running_time"; //设备运转时间(S) - public static String item_await_time = "await_time"; //待机时间(S) - public static String item_order = "order"; //工单号 + //包装机运行 + public static String item_running = "running"; + //包装机故障 + public static String item_packer_error = "packer_error"; + //热机准备中 + public static String item_hot_prepare = "hot_prepare"; + //出料计数信号 + public static String item_out_num = "out_num"; + //包装机就绪 + public static String item_packer_ready = "packer_ready"; + //所有设备就绪 + public static String item_all_ready = "all_ready"; + //光电信号 + public static String item_move = "move"; + //阀门开定位 + public static String item_tap_open_pos = "tap_open_pos"; + //阀门关定位 + public static String item_tap_close_pos = "tap_close_pos"; + //AGV对接故障 + public static String item_agv_abutment_error = "agv_abutment_error"; + //订单完成 + public static String item_order_finish = "order_finish"; + //联机模式 + public static String item_mode = "mode"; + //请求料 + public static String item_lack_req = "lack_req"; + //料斗已经到位 + public static String item_hopper_already = "hopper_already"; + //请求取空料斗 + public static String item_req_task_empty = "req_task_empty"; + //料斗已取走 + public static String item_hopper_removed = "hopper_removed"; + //故障信息 + public static String item_error = "error"; + //包装机当前包装包数(实时) + public static String item_order_now = "order_now"; + //缓存称重重量 + public static String item_cache_weight = "cache_weight"; + //包装机开机准备时间(S) + public static String item_open_ready_time = "open_ready_time"; + //包装机设备运转时间(S) + public static String item_device_running_time = "device_running_time"; + //包装机待机时间(S) + public static String item_await_time = "await_time"; + //当前装箱数量 + public static String item_now_up_box_num = "now_up_box_num"; + //当前装箱机箱实时袋数量 + public static String item_now_bag_num_of_box = "now_bag_num_of_box"; + //当前装箱机袋装的总数量 + public static String item_now_bag_num = "now_bag_num"; + //当前封箱数量 + public static String item_now_seal_box_num = "now_seal_box_num"; + //包装机工单号 + public static String item_order = "order"; + //开机 public static String item_to_open = "to_open"; @@ -37,13 +79,19 @@ public class ItemProtocol { public static String item_to_clear = "to_clear"; //确认完成(订单完成状态置零) public static String item_to_confirm_finished = "to_confirm_finished"; + //暂停 + public static String item_to_to_pause = "to_pause"; //工单强制完成 public static String item_to_order_compel_finished = "to_order_compel_finished"; - //订单生产总量 + //包装机包装总包数 public static String item_to_order_prod_num = "to_order_prod_num"; + //订单总箱数 + public static String item_to_box_total_num = "to_box_total_num"; + //订单总袋数 + public static String item_to_bag_total_num = "to_bag_total_num"; //工单号 public static String item_to_order = "to_order"; - + private HailiangPackerStationDeviceDriver driver; @@ -56,49 +104,54 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_heartbeat); } + public int getItem_running() { + return this.getOpcIntegerValue(item_running); + } + + public int getItem_packer_error() { + return this.getOpcIntegerValue(item_packer_error); + } + + public int getItem_hot_prepare() { + return this.getOpcIntegerValue(item_hot_prepare); + } + + public int getItem_out_num() { + return this.getOpcIntegerValue(item_out_num); + } + + public int getItem_packer_ready() { + return this.getOpcIntegerValue(item_packer_ready); + } + + public int getItem_all_ready() { + return this.getOpcIntegerValue(item_all_ready); + } + public int getItem_move() { return this.getOpcIntegerValue(item_move); } + public int getItem_tap_open_pos() { + return this.getOpcIntegerValue(item_tap_open_pos); + } + + public int getItem_tap_close_pos() { + return this.getOpcIntegerValue(item_tap_close_pos); + } + + public int getItem_agv_abutment_error() { + return this.getOpcIntegerValue(item_agv_abutment_error); + } public int getItem_order_finish() { return this.getOpcIntegerValue(item_order_finish); } - public int getItem_mode() { return this.getOpcIntegerValue(item_mode); } - public int getItem_error() { - return this.getOpcIntegerValue(item_error); - } - - public int getItem_order_now() { - return this.getOpcIntegerValue(item_order_now); - } - - - public int getItem_open_ready_time() { - return this.getOpcIntegerValue(item_open_ready_time); - } - - public int getItem_device_running_time() { - return this.getOpcIntegerValue(item_device_running_time); - } - - public int getItem_await_time() { - return this.getOpcIntegerValue(item_await_time); - } - - public int getItem_order() { - return this.getOpcIntegerValue(item_order); - } - - public int getItem_packer_ready() { - return this.getOpcIntegerValue(item_packer_ready); - } - public int getItem_lack_req() { return this.getOpcIntegerValue(item_lack_req); } @@ -115,11 +168,51 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_hopper_removed); } - //是否有货 - public int hasGoods(int move) { - return move; + public int getItem_error() { + return this.getOpcIntegerValue(item_error); } + public int getItem_order_now() { + return this.getOpcIntegerValue(item_order_now); + } + + public int getItem_cache_weight() { + return this.getOpcIntegerValue(item_cache_weight); + } + + public int getItem_open_ready_time() { + return this.getOpcIntegerValue(item_open_ready_time); + } + + public int getItem_device_running_time() { + return this.getOpcIntegerValue(item_device_running_time); + } + + public int getItem_await_time() { + return this.getOpcIntegerValue(item_await_time); + } + + public int getItem_now_up_box_num() { + return this.getOpcIntegerValue(item_now_up_box_num); + } + + public int getItem_now_bag_num_of_box() { + return this.getOpcIntegerValue(item_now_bag_num_of_box); + } + + public int getItem_now_bag_num() { + return this.getOpcIntegerValue(item_now_bag_num); + } + + public int getItem_now_seal_box_num() { + return this.getOpcIntegerValue(item_now_seal_box_num); + } + + public int getItem_order() { + return this.getOpcIntegerValue(item_order); + } + + Boolean isonline; public int getOpcIntegerValue(String protocol) { @@ -137,33 +230,49 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); list.add(new ItemDto(item_heartbeat, "心跳", "DB1.W82")); + list.add(new ItemDto(item_running, "包装机运行", "DB1.B0.0")); + list.add(new ItemDto(item_packer_error, "包装机故障", "DB1.B0.1")); + list.add(new ItemDto(item_hot_prepare, "热机准备中", "DB1.B0.2")); + list.add(new ItemDto(item_out_num, "出料计数信号", "DB1.B0.3")); list.add(new ItemDto(item_packer_ready, "包装机就绪", "DB1.B0.5")); - list.add(new ItemDto(item_mode, "模式", "DB1.B0.6")); + list.add(new ItemDto(item_all_ready, "所有设备就绪", "DB1.B0.6")); list.add(new ItemDto(item_move, "光电信号", "DB1.B1.0")); + list.add(new ItemDto(item_tap_open_pos, "阀门开定位", "DB1.B1.1")); + list.add(new ItemDto(item_tap_close_pos, "阀门关定位", "DB1.B1.2")); + list.add(new ItemDto(item_agv_abutment_error, "AGV对接故障", "DB1.B1.3")); list.add(new ItemDto(item_order_finish, "订单完成", "DB1.B1.5")); - list.add(new ItemDto(item_lack_req, "缺料请求", "DB1.B2.0")); - list.add(new ItemDto(item_hopper_already, "料斗已到位", "DB1.B2.1")); + list.add(new ItemDto(item_mode, "工作模式", "DB1.B1.7")); + list.add(new ItemDto(item_lack_req, "请求料", "DB1.B2.0")); + list.add(new ItemDto(item_hopper_already, "料斗已经到位", "DB1.B2.1")); list.add(new ItemDto(item_req_task_empty, "请求取空料斗", "DB1.B2.6")); list.add(new ItemDto(item_hopper_removed, "料斗已取走", "DB1.B2.7")); - list.add(new ItemDto(item_error, "报警信号", "DB1.W4")); - list.add(new ItemDto(item_order_now, "订单实时", "DB1.D84")); - list.add(new ItemDto(item_open_ready_time, "开机准备时间", "DB1.D108")); - list.add(new ItemDto(item_device_running_time, "设备运转时间", "DB1.D112")); - list.add(new ItemDto(item_await_time, "待机时间", "DB1.D116")); - list.add(new ItemDto(item_order, "工单号", "DB1.D160")); + list.add(new ItemDto(item_error, "故障信息", "DB1.W4")); + list.add(new ItemDto(item_order_now, "包装机当前包装包数(实时)", "DB1.D84")); + list.add(new ItemDto(item_cache_weight, "缓存称重重量", "DB1.D92")); + list.add(new ItemDto(item_open_ready_time, "包装机开机准备时间(S)", "DB1.D108")); + list.add(new ItemDto(item_device_running_time, "包装机设备运转时间(S)", "DB1.D112")); + list.add(new ItemDto(item_await_time, "包装机待机时间(S)", "DB1.D116")); + list.add(new ItemDto(item_now_up_box_num, "当前装箱数量", "DB1.D124")); + list.add(new ItemDto(item_now_bag_num_of_box, "当前装箱机箱实时袋数量", "DB1.D128")); + list.add(new ItemDto(item_now_bag_num, "当前装箱机袋装的总数量", "DB1.D132")); + list.add(new ItemDto(item_now_seal_box_num, "当前封箱数量", "DB1.D136")); + list.add(new ItemDto(item_to_order, "工单号", "DB1.D160")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_open, "设备开关", "DB2.W4", Boolean.valueOf(true))); + list.add(new ItemDto(item_to_open, "设备开关", "DB2.W4")); list.add(new ItemDto(item_to_agv_release_finish, "AGV放货完成", "DB2.W6")); list.add(new ItemDto(item_to_agv_take_finish, "AGV取货完成", "DB2.W8")); - list.add(new ItemDto(item_to_clear, "当前产量清零", "DB2.W12")); - list.add(new ItemDto(item_to_confirm_finished, "确认完成", "DB2.W14")); + list.add(new ItemDto(item_to_clear, "产量清零", "DB2.W12")); + list.add(new ItemDto(item_to_confirm_finished, "确认完成(订单完成状态置零)", "DB2.W14")); + list.add(new ItemDto(item_to_to_pause, "暂停", "DB2.W16")); list.add(new ItemDto(item_to_order_compel_finished, "工单强制完成", "DB2.W82")); - list.add(new ItemDto(item_to_order_prod_num, "订单生产总量", "DB2.D84")); - list.add(new ItemDto(item_to_order, "工单号", "DB2.D160")); + list.add(new ItemDto(item_to_order_prod_num, "包装机包装总包数", "DB2.W84")); + list.add(new ItemDto(item_to_box_total_num, "订单总箱数", "DB2.W124")); + list.add(new ItemDto(item_to_bag_total_num, "订单总袋数", "DB2.W128")); + list.add(new ItemDto(item_to_order, "工单号", "DB2.W160")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/ItemProtocol.java new file mode 100644 index 00000000..053a10da --- /dev/null +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/ItemProtocol.java @@ -0,0 +1,59 @@ +package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_sealing_machine; + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Data +public class ItemProtocol { + + + //是否自动确认 封箱机驱动 + public static String item_to_is_auto_confirm = "to_is_auto_confirm"; + //封箱确认时间秒数 封箱机驱动 + public static String item_to_time = "to_time"; + + private SealingMachineDeviceDriver driver; + + public ItemProtocol(SealingMachineDeviceDriver driver) { + this.driver = driver; + } + + //是否有货 + public int hasGoods(int move) { + return move; + } + + Boolean isonline; + + public int getOpcIntegerValue(String protocol) { + Integer value = this.driver.getIntegeregerValue(protocol); + if (value == null) { + // log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!"); + setIsonline(false); + } else { + setIsonline(true); + return value; + } + return 0; + + } + + public static List getReadableItemDtos() { + ArrayList list = new ArrayList(); + return list; + } + + public static List getWriteableItemDtos() { + ArrayList list = new ArrayList(); + list.add(new ItemDto(item_to_is_auto_confirm, "是否自动确认", "DB2.W24")); + list.add(new ItemDto(item_to_time, "封箱确认时间秒数", "DB2.W26")); + return list; + } + +} + diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDefination.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDefination.java new file mode 100644 index 00000000..6535c0a0 --- /dev/null +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDefination.java @@ -0,0 +1,63 @@ +package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_sealing_machine; + +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; +import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.defination.OpcDeviceDriverDefination; +import org.nl.acs.opc.Device; +import org.nl.acs.opc.DeviceType; +import org.springframework.stereotype.Service; + +import java.util.LinkedList; +import java.util.List; + +/** + * 海亮封箱机 + */ +@Service +public class SealingMachineDefination implements OpcDeviceDriverDefination { + @Override + public String getDriverCode() { + return "hailiang_sealing_machine"; + } + + @Override + public String getDriverName() { + return "海亮-封箱机"; + } + + @Override + public String getDriverDescription() { + return "海亮-封箱机"; + } + + @Override + public DeviceDriver getDriverInstance(Device device) { + return (new SealingMachineDeviceDriver()).setDevice(device).setDriverDefination(this); + + } + + @Override + public Class getDeviceDriverType() { + return SealingMachineDeviceDriver.class; + } + + @Override + public List getFitDeviceTypes() { + List types = new LinkedList(); + types.add(DeviceType.conveyor); + return types; + } + + + @Override + public List getReadableItemDtos() { + return ItemProtocol.getReadableItemDtos(); + } + + @Override + public List getWriteableItemDtos() { + return ItemProtocol.getWriteableItemDtos(); + } + + +} diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDeviceDriver.java new file mode 100644 index 00000000..f60ee3bb --- /dev/null +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_sealing_machine/SealingMachineDeviceDriver.java @@ -0,0 +1,110 @@ +package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_sealing_machine; + +import com.alibaba.fastjson.JSONObject; +import lombok.Data; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.device_driver.DeviceDriver; +import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo; +import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; +import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.history.service.DeviceErrorLogService; +import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl; +import org.nl.acs.log.service.DeviceExecuteLogService; +import org.nl.acs.monitor.DeviceStageMonitor; +import org.nl.acs.opc.Device; +import org.nl.acs.order.service.dto.EalingOrderDto; +import org.nl.acs.order.service.dto.ProduceshiftorderDto; +import org.nl.modules.wql.util.SpringContextHolder; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 封箱机 + */ +@Slf4j +@Data +@RequiredArgsConstructor +public class SealingMachineDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, IssuedDeviceOrderInfo { + protected ItemProtocol itemProtocol = new ItemProtocol(this); + + DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); + @Autowired + DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); + + + Boolean isonline = true; + String message = null; + Boolean iserror = false; + + private Date instruction_require_time = new Date(); + private Date instruction_finished_time = new Date(); + + boolean requireSucess = false; + + + String device_code = null; + + @Override + public Device getDevice() { + return this.device; + } + + + @Override + public void execute() { + try { + device_code = this.getDeviceCode(); + } catch (Exception var17) { + var17.printStackTrace(); + logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17); + } + + } + + + @Override + public JSONObject getDeviceStatusName() { + JSONObject jo = new JSONObject(); + jo.put("device_name", this.getDevice().getDevice_name()); + jo.put("isOnline", this.getIsonline()); + return jo; + } + + @Override + public void setDeviceStatus(JSONObject data) { + + } + + @Override + public void issuedOrderInfo(ProduceshiftorderDto dto) { + EalingOrderDto ealingOrderDto = dto.getEalingOrderDto(); + if (ealingOrderDto != null) { + String is_auto_confirm = ealingOrderDto.getIs_auto_confirm(); + String time = ealingOrderDto.getTime(); + Map map = new HashMap<>(); + map.put("to_is_auto_confirm", is_auto_confirm); + map.put("to_time", time); + this.writing(map); + } + } + + @Override + public void issuedOrderFinish(String autoFinish) { + + } + + @Override + public void toStop() { + + } + + @Override + public void toStart() { + + } +} diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java index cfb072a4..4bc67c74 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java @@ -2,6 +2,7 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_device import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -225,12 +226,6 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme produceshiftorderService.finished(pdto); } } - Map map = new HashMap<>(); - map.put("to_confirm_finished", "1"); - map.put("to_order", "0"); - map.put("to_clear", "1"); - map.put("to_pause", "1"); - this.writing(map); } } catch (Exception var17) { @@ -289,10 +284,13 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme * 下发工单完成信息 */ @Override - public void issuedOrderFinish() { + public void issuedOrderFinish(String autoFinish) { Map map = new HashMap<>(); - map.put("to_order_compel_finished", "1"); - map.put("to_confirm_finished", "1"); + if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { + map.put("to_order_compel_finished", "1"); + } else { + map.put("to_confirm_finished", "1"); + } map.put("to_order", "0"); map.put("to_clear", "1"); this.writing(map); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java index 9a5ce93f..41a21849 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java @@ -151,7 +151,7 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr message = ""; //请求放空箱 if (agvphase == 0x13 || agvphase == 0x17) { - if (mode == 1 && move == 1 && ObjectUtil.isNotEmpty(inst)) { + if (mode == 1 /*&& move == 1*/ && ObjectUtil.isNotEmpty(inst)) { writing("to_agv_ready", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_TO_PUT_EMPTY.getCode()); instructionService.update(inst); @@ -177,7 +177,7 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr } //放空箱完成 if (agvphase == 0x15 || agvphase == 0x19) { - if (mode == 1 && move == 0 && ObjectUtil.isNotEmpty(inst)) { + if (mode == 1 /*&& move == 0*/ && ObjectUtil.isNotEmpty(inst)) { // writing("to_agv_finish", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_PUT_EMPTY_FINISH.getCode()); instructionService.update(inst); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java index d02f7fa6..78b33981 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java @@ -307,7 +307,7 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri jo.put("mode", mode == 1 ? "联机" : "单机"); jo.put("move", move == 1 ? "有货" : "无货"); jo.put("order", order); - jo.put("requireSucess", requireSucess); + jo.put("requireSucess", requireSucess.toString()); jo.put("full_number", full_number); jo.put("error", ErrorUtil.getDictDetail("full_error_type", String.valueOf(this.getError()))); jo.put("task", task); @@ -328,7 +328,8 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri */ @Override public void setDeviceStatus(JSONObject data) { - String requireSucess = data.getString("requireSucess"); - this.requireSucess = requireSucess.equals("0") ? false : true; + Boolean requireSucess = data.getBoolean("requireSucess"); + if (ObjectUtil.isNotEmpty(requireSucess)) + this.requireSucess = requireSucess; } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java index a8250bd5..2d547aad 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java @@ -278,7 +278,7 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri jo.put("mode", mode == 1 ? "联机" : "单机"); jo.put("order", order); jo.put("storage_stock_num", storage_stock_num); - jo.put("requireSucess", requireSucess); + jo.put("requireSucess", requireSucess.toString()); jo.put("error", ErrorUtil.getDictDetail("pour_error_type", String.valueOf(this.getError()))); jo.put("task", task); jo.put("isOnline", this.getIsonline()); @@ -298,7 +298,8 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri */ @Override public void setDeviceStatus(JSONObject data) { - String requireSucess = data.getString("requireSucess"); - this.requireSucess = requireSucess.equals("0") ? false : true; + Boolean requireSucess = data.getBoolean("requireSucess"); + if (ObjectUtil.isNotEmpty(requireSucess)) + this.requireSucess = requireSucess; } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java index ef2b22bd..949be561 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.acsEnum.StatusEnum; +import org.nl.acs.acsEnum.WorkerOrderEnum; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo; @@ -300,9 +301,6 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple produceshiftorderService.finished(pdto); } } - this.writing("to_confirm_finished", "1"); - this.writing("to_order", "0"); - this.writing("to_clear", "1"); } } catch (Exception var17) { @@ -377,9 +375,13 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple * 下发工单完成信息 */ @Override - public void issuedOrderFinish() { + public void issuedOrderFinish(String autoFinish) { Map map = new HashMap<>(); - map.put("to_compel_finish", "1"); + if (StrUtil.equals(autoFinish, WorkerOrderEnum.FORCEFINISH.getCode())) { + map.put("to_compel_finish", "1"); + } else { + map.put("to_confirm_finished", "1"); + } map.put("to_order", "0"); this.writing(map); } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java index 15a0fdac..faed7940 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/ItemProtocol.java @@ -198,10 +198,10 @@ public class ItemProtocol { list.add(new ItemDto(item_lane1_tray_current_num, "巷道1号托盘当前码垛箱数", "DB1.W64")); list.add(new ItemDto(item_lane2_tray_current_num, "巷道2号托盘当前码垛箱数", "DB1.W66")); list.add(new ItemDto(item_lane1_tray_template, "巷道1号托盘模板", "DB1.W72")); - list.add(new ItemDto(item_lane2_tray_template, "巷道2号托盘模板", "DB1.DW74")); - list.add(new ItemDto(item_order_now, "订单实时", "DB1.DW84")); - list.add(new ItemDto(item_tray_now, "托盘实时", "DB1.DW88")); - list.add(new ItemDto(item_order, "工单号", "DB1.DW156")); + list.add(new ItemDto(item_lane2_tray_template, "巷道2号托盘模板", "DB1.D74")); + list.add(new ItemDto(item_order_now, "订单实时", "DB1.D84")); + list.add(new ItemDto(item_tray_now, "托盘实时", "DB1.D88")); + list.add(new ItemDto(item_order, "工单号", "DB1.D156")); return list; } @@ -218,9 +218,9 @@ public class ItemProtocol { list.add(new ItemDto(item_to_lane2_tray_compel_full, "巷道2号托盘强制满托", "DB2.W42")); list.add(new ItemDto(item_to_lane_off, "巷道禁用", "DB2.W48")); list.add(new ItemDto(item_to_compel_finish, "工单强制完成", "DB2.W80")); - list.add(new ItemDto(item_to_order_prod_num, "订单生产总量", "DB2.DW84")); - list.add(new ItemDto(item_to_tray_num, "托盘总量", "DB2.DW88")); - list.add(new ItemDto(item_to_order, "工单号", "DB2.DW156")); + list.add(new ItemDto(item_to_order_prod_num, "订单生产总量", "DB2.D84")); + list.add(new ItemDto(item_to_tray_num, "托盘总量", "DB2.D88")); + list.add(new ItemDto(item_to_order, "工单号", "DB2.D156")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/ItemProtocol.java index 931c9ee5..2831e08a 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/ItemProtocol.java @@ -164,9 +164,9 @@ public class ItemProtocol { list.add(new ItemDto(item_to_clear, "当前产量清零", "DB2.W6")); list.add(new ItemDto(item_to_confirm_finished, "订单确认完成", "DB2.W8")); list.add(new ItemDto(item_to_pause, "专机暂停", "DB2.W10")); - list.add(new ItemDto(item_to_order_compel_finished, "工单强制完成", "DB2.W10")); + list.add(new ItemDto(item_to_order_compel_finished, "工单强制完成", "DB2.W80")); list.add(new ItemDto(item_to_order_box_num, "订单总箱数", "DB2.D84")); - list.add(new ItemDto(item_task, "任务号", "DB2.D84")); + list.add(new ItemDto(item_task, "任务号", "DB2.D92")); list.add(new ItemDto(item_to_order, "工单号", "DB2.D156")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDefination.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDefination.java index 934fdc26..b1d19dc4 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDefination.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDefination.java @@ -11,7 +11,7 @@ import java.util.LinkedList; import java.util.List; /** - * 拆箱机 + * 开箱机 */ @Service public class UnboxingMachineDefination implements OpcDeviceDriverDefination { @@ -22,12 +22,12 @@ public class UnboxingMachineDefination implements OpcDeviceDriverDefination { @Override public String getDriverName() { - return "海亮-拆箱机"; + return "海亮-开箱机"; } @Override public String getDriverDescription() { - return "海亮-拆箱机"; + return "海亮-开箱机"; } @Override diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDeviceDriver.java index b1312d48..e3fa8a50 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_unboxing_machine/UnboxingMachineDeviceDriver.java @@ -1,11 +1,14 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_unboxing_machine; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.acs.acsEnum.WorkerOrderEnum; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.history.service.DeviceErrorLogService; @@ -14,6 +17,8 @@ import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; +import org.nl.acs.order.service.dto.EalingOrderDto; +import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -22,12 +27,12 @@ import java.util.List; import java.util.Map; /** - * 拆箱机 + * 开箱机 */ @Slf4j @Data @RequiredArgsConstructor -public class UnboxingMachineDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor { +public class UnboxingMachineDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, IssuedDeviceOrderInfo { protected ItemProtocol itemProtocol = new ItemProtocol(this); DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); @@ -160,9 +165,6 @@ public class UnboxingMachineDeviceDriver extends AbstractOpcDeviceDriver impleme @Override public JSONObject getDeviceStatusName() { JSONObject jo = new JSONObject(); - String mode = ""; - String action = ""; - String move = ""; jo.put("device_name", this.getDevice().getDevice_name()); return jo; } @@ -172,13 +174,36 @@ public class UnboxingMachineDeviceDriver extends AbstractOpcDeviceDriver impleme } - public void writing(String param, String value) { - String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + param; - Map itemMap = new HashMap(); - itemMap.put(to_param, Integer.parseInt(value)); + @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() { - this.control(itemMap); - logServer.deviceExecuteLog(device_code, "", "", "下发电气信号设备号:" + device_code + ",下发电气:" + to_param + ",下发电气值:" + value); } } 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 6efc5c19..055e5df6 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 @@ -119,7 +119,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public HttpResponse feedDeviceStatusType(JSONObject param) { - // log.info("acs开始向mes反馈设备状态,请求参数:{}", JSON.toJSONString(param)); + log.info("acs开始向mes反馈设备状态,请求参数:{}", JSON.toJSONString(param)); try { MDC.put(log_file_type, log_type); if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1")) { @@ -132,9 +132,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { result = HttpRequest.post(url) .body(JSON.toJSONString(param)) .execute(); - // log.info("acs向mes反馈设备状态成功,请求参数:{},请求路径:{},响应参数:{}", JSON.toJSONString(param), url, JSON.toJSONString(result)); + log.info("acs向mes反馈设备状态成功,请求参数:{},请求路径:{},响应参数:{}", JSON.toJSONString(param), url, JSON.toJSONString(result)); } catch (Exception e) { - //log.error("acs向mes反馈设备状态失败,请求参数:{},请求路径:{},失败原因:{}", JSON.toJSONString(param), url, e.getMessage()); + log.error("acs向mes反馈设备状态失败,请求参数:{},请求路径:{},失败原因:{}", JSON.toJSONString(param), url, e.getMessage()); } return result; } 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 1d805e3f..c61325d7 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 @@ -31,6 +31,7 @@ import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceExtraManageDto; import org.nl.acs.order.service.ProduceshiftorderService; +import org.nl.acs.order.service.dto.EalingOrderDto; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; @@ -242,6 +243,15 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String device_code = param.getString("device_code"); String is_needmove = param.getString("is_needmove"); String in_devices = param.getString("in_devices"); + 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 params = param.getJSONObject("params"); + EalingOrderDto ealingOrderDto = null; + if (ObjectUtil.isNotEmpty(params)) { + ealingOrderDto = JSONObject.toJavaObject(JSON.parseObject(JSON.toJSONString(params)), EalingOrderDto.class); + ealingOrderDto.setOrder_code(workorder_code); + } if (StrUtil.isEmpty(workorder_id)) { JSONObject json = new JSONObject(); json.put("workorder_id", workorder_id); @@ -304,6 +314,10 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { dto.setIs_needmove(is_needmove); dto.setExt_order_id(workorder_id); dto.setIn_devices(in_devices); + dto.setIs_used_fxx(is_used_fxx); + dto.setEaling_device_code(ealing_device_code); + dto.setUnboxing_device_code(unboxing_device_code); + dto.setEalingOrderDto(ealingOrderDto); dto.setCreate_by("mes"); try { produceshiftorderService.create(dto); @@ -430,7 +444,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String ext_order_id = jsonObject.getString("workorder_id"); String type = jsonObject.getString("type"); ProduceshiftorderDto pd = produceshiftorderService.findOrderByExtOrderId(ext_order_id); - if (pd == null){ + if (pd == null) { throw new BadRequestException("工单信息不存在!"); } Device device = deviceAppService.findDeviceByCode(pd.getDevice_code()); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index 21c75959..8c4dec32 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -83,7 +83,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu @Override public synchronized void reload() { - List list = this.queryAll("instruction_status < 2 and is_delete =0"); + List list = this.queryAll("instruction_status < 2 and is_delete = 0"); this.instructions = list == null ? new CopyOnWriteArrayList<>() : new CopyOnWriteArrayList<>(list); } @@ -400,7 +400,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu dto.setCompound_inst_data(task.getCompound_task_data()); } } - + dto.setAgv_system_type(task.getAgv_system_type()); dto.setCreate_by(currentUsername); dto.setUpdate_by(currentUsername); dto.setUpdate_time(now); @@ -449,7 +449,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu dto2.setCompound_inst_data(task2.getCompound_task_data()); } } - + dto2.setAgv_system_type(task2.getAgv_system_type()); dto2.setCreate_by(currentUsername2); dto2.setUpdate_by(currentUsername2); dto2.setUpdate_time(now2); @@ -1266,8 +1266,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu @Override public boolean removeByCodeFromCache(String code) { - CopyOnWriteArrayList instructions = (CopyOnWriteArrayList) this.instructions; - return instructions.removeIf(inst -> inst.getInstruction_code().equals(code)); + return this.instructions.removeIf(inst -> inst.getInstruction_code().equals(code)); } /* diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/dto/EalingOrderDto.java b/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/dto/EalingOrderDto.java new file mode 100644 index 00000000..343cae10 --- /dev/null +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/dto/EalingOrderDto.java @@ -0,0 +1,91 @@ +package org.nl.acs.order.service.dto; + +import lombok.Data; + +/** + * @author: geng by + * @createDate: 2023/5/5 + */ +@Data +public class EalingOrderDto { + + /** + * 工单编号 + */ + private String order_code; + /** + * 订单总箱数 + */ + private String order_box_num; + /** + * 订单总袋数 + */ + private String order_bag_num; + /** + * 模板号 + */ + private String template_no; + /** + * 袋长 + */ + private String bag_length; + /** + * 袋宽 + */ + private String bag_width; + /** + * 每层码袋数量 + */ + private String bag_num_of_one_floor_box; + /** + * 每箱袋数 + */ + private String bag_num_of_box; + /** + * 每箱重量 + */ + private String one_box_weight; + /** + * 每袋重量 + */ + private String one_bag_weight; + /** + * 空纸箱重量 + */ + private String empty_box_weight; + /** + * 袋上限重量 + */ + private String one_bag_up_weight; + /** + * 袋下限重量 + */ + private String one_bag_down_weight; + /** + * 箱上限重量 + */ + private String one_box_up_weight; + /** + * 箱下限重量 + */ + private String one_box_down_weight; + /** + * 模板坐标 + */ + private String x_y; + + /** + * 封箱机是否自动确认 + */ + private String is_auto_confirm; + + /** + * 封箱确认时间秒数 + */ + private String time; + + /** + * 是否正转 + */ + private String is_foreward; +} 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 608744b9..c92b4eef 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 @@ -4,6 +4,7 @@ import lombok.Data; import java.math.BigDecimal; import java.io.Serializable; +import java.util.Map; /** * @author geng by @@ -98,13 +99,40 @@ public class ProduceshiftorderDto implements Serializable { */ private String is_needmove; - //托盘模板 + /** + * 托盘模板 + */ private String lane_tray_template; - //托盘总量 + /** + * 托盘总量 + */ private String tray_num; - //清洗上料储料仓设备号,多台设备以,分割 + /* + *清洗上料储料仓设备号,多台设备以,分割 + */ private String in_devices; + /** + * 是否启用封箱线 + */ + private String is_used_fxx; + + /** + * 装箱机编号 + */ + private String ealing_device_code; + + /** + * 开箱机编号 + */ + private String unboxing_device_code; + + + /** + * 装箱机订单信息 + */ + private EalingOrderDto ealingOrderDto; + } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java index 52a685f6..95e77367 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java @@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; import org.nl.acs.AcsConfig; +import org.nl.acs.acsEnum.StatusEnum; import org.nl.acs.auto.initial.ApplicationAutoInitial; import org.nl.acs.device_driver.basedriver.hailiang_one.IssuedDeviceOrderInfo; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_engraving_machine.HailiangEngravingMachineDeviceDriver; @@ -201,15 +202,47 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A dto.setCreate_by(currentUsername); } dto.setCreate_time(now); + IssuedDeviceOrderInfo issuedDeviceOrderInfo; //驱动类中有工单的设备 下发电气工单信息的方法 if (device.getDeviceDriver() instanceof IssuedDeviceOrderInfo) { - IssuedDeviceOrderInfo issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) device.getDeviceDriver(); + issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) device.getDeviceDriver(); try { issuedDeviceOrderInfo.issuedOrderInfo(dto); } catch (Exception e) { e.printStackTrace(); } } + //判断是否启用装箱线 + if (StrUtil.equals(dto.getIs_used_fxx(), StatusEnum.YES.getCode())) { + //装箱设备不能为空 + if (StrUtil.isNotEmpty(dto.getEaling_device_code())) { + Device ealiDevice = deviceAppService.findDeviceByCode(dto.getEaling_device_code()); + //下发装箱设备工单信息 + if (ealiDevice != null && ealiDevice.getDeviceDriver() instanceof IssuedDeviceOrderInfo) { + issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) ealiDevice.getDeviceDriver(); + issuedDeviceOrderInfo.issuedOrderInfo(dto); + //获取装箱设备关联的封箱设备 并下发封箱机是否自动确认和封箱确认时间秒数 + String fx_device_code = ObjectUtil.isNotEmpty(ealiDevice.getExtraValue().get("link_device_code")) ? ealiDevice.getExtraValue().get("link_device_code").toString() : ""; + if (StrUtil.isNotEmpty(fx_device_code)) { + Device fx_device = deviceAppService.findDeviceByCode(fx_device_code); + if (fx_device != null && fx_device.getDeviceDriver() instanceof IssuedDeviceOrderInfo) { + issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) fx_device.getDeviceDriver(); + issuedDeviceOrderInfo.issuedOrderInfo(dto); + } + } + } + } + if (StrUtil.isNotEmpty(dto.getUnboxing_device_code())) { + String[] udcs = dto.getUnboxing_device_code().split(","); + for (String udc : udcs) { + Device unbox_device = deviceAppService.findDeviceByCode(udc); + if (unbox_device != null && unbox_device.getDeviceDriver() instanceof IssuedDeviceOrderInfo) { + issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) unbox_device.getDeviceDriver(); + issuedDeviceOrderInfo.issuedOrderInfo(dto); + } + } + } + } JSONObject json = (JSONObject) JSONObject.toJSON(dto); wo.insert(json); order.add(dto); @@ -312,13 +345,40 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A status = WorkerOrderEnum.FORCEFINISH.getCode(); } Device device = deviceAppService.findDeviceByCode(pdto.getDevice_code()); + IssuedDeviceOrderInfo issuedDeviceOrderInfo; if (device != null && device.getDeviceDriver() instanceof IssuedDeviceOrderInfo) { try { - IssuedDeviceOrderInfo issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) device.getDeviceDriver(); - issuedDeviceOrderInfo.issuedOrderFinish(); + issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) device.getDeviceDriver(); + issuedDeviceOrderInfo.issuedOrderFinish(status); } catch (Exception e) { e.printStackTrace(); } + if (StrUtil.isNotEmpty(pdto.getEaling_device_code())) { + Device eal_device = deviceAppService.findDeviceByCode(pdto.getEaling_device_code()); + if (eal_device != null && eal_device.getDeviceDriver() instanceof IssuedDeviceOrderInfo) { + try { + issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) eal_device.getDeviceDriver(); + issuedDeviceOrderInfo.issuedOrderFinish(status); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + if (StrUtil.isNotEmpty(pdto.getUnboxing_device_code())) { + String unboxing_device_code = pdto.getUnboxing_device_code(); + String[] udcs = unboxing_device_code.split(","); + for (String udc : udcs) { + Device udcDevice = deviceAppService.findDeviceByCode(udc); + if (udcDevice != null && udcDevice.getDeviceDriver() instanceof IssuedDeviceOrderInfo) { + try { + issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) udcDevice.getDeviceDriver(); + issuedDeviceOrderInfo.issuedOrderFinish(status); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } } pdto.setOrder_status(status); this.update(pdto); @@ -343,7 +403,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A if (device != null && device.getDeviceDriver() instanceof IssuedDeviceOrderInfo) { try { IssuedDeviceOrderInfo issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) device.getDeviceDriver(); - issuedDeviceOrderInfo.issuedOrderFinish(); + issuedDeviceOrderInfo.issuedOrderFinish(WorkerOrderEnum.FORCEFINISH.getCode()); } catch (Exception e) { e.printStackTrace(); } @@ -389,6 +449,8 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A this.reload(); } + + @Override public void addDeviceIsOnline(String device_code, ProduceshiftorderDto dto) { WQLObject wo = WQLObject.getWQLObject("acs_deviceisonline"); 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 7f35ca49669fef9a04e219092fbae3582862ad1c..86ffb1b05bf9f837359c522bc1a223e50840dbec 100644 GIT binary patch delta 8561 zcmcgyd010d)1Pw_5rz&i`0fx%c?TzW;6P|Fu8E(~GF7ldFV8(vLj5dq<(Wyzk38 zb~JP_bO50z?_D&#?_zdtvJ%83VbmkkTTVE4GdWF}g%9p+|%K zXraQLelPFAObuYB0uZoA)h(vlSxmhsm7r-u17`BBF%4!tO##f!P=&@jpV5v^o8`pJC-7#ezB;e+lvo3+xu=n-!rD+9x@+|HL510~)` zXyF6SyN!j877NWDI?%d65spYiFB9p|Ad7XhB8cg13TU<55)q7o7gYv_^IrJU&w|}q z%!19a_>*%*B!py-$Q+9lS{>Y~#jFvdiP~92!svZ(R<8Au(5#RiR2tI5SQXNV)1{&Y zeiamSbip-XT?Ja?6KLy@oqV>fJIuCam@SVzIb5}UfU#%iU@1*VcOf_FfJARvk|3s2 z(p@-PLI)&y(WZD2U7IfF>047%bGH_X!gQkjQ8+sGw*6YQV{Si<2gauWyTYb>@r2MN9H_mfRlIV_7USc zH;Kl#v6cg8fcl#vCM>Eyf;AZ-fZvfiV@%30ifF$K2l{ZVkN6`o6P#~!8y6^W3kt`DLCLJxg2Q_$w=e?x(NcLgXT?7VtmaKF_@<~L2R9dSt}{HYm^AfLZQ_!0eY zBq#XP*C4OGAlp?!M{)(>z`tUJ0W>FTJl8ym|$ zQg6%>&O3d$;%r!XdG=DdZmuqM?&^02|B~GQ_R|G-JoniCq0>!%f9Z$sA1bRHvW+`g z(GWfP^Z!)WRnHtBst_*jUcI+=O;J-_(UV(cN3xP9+V?Tqzm>C5F*Bq5)QLeq==}DI zpFzX*6^>`Sy5AdJUef)V{^+W2hDkdQ+HnW{_^gsMO&o*EsuCQ&t8*oyi37+ zy!ZXJmv;M{&WbJ@?o5rZl=xkfYC5f)_pxk6(A24MyYC&Zt!+B5s6Dw@*RV5Fd+5;T zn+%$xjVC@m)ze}5vfhK!H;=qAY~8T~v!9N;u7C9L-nytS-f{L>n6r%@e{`znuEoS7 z*~3Nr$sEtpEi&;Z~O%d+?1WeZr|&ceXvQ>CHRkV zr2}vO;`feNUzFv){0BkxGQU5zCB`)s4Zpj5R@J|stz6xuXvoT_&5Mp5-0^F3MVG7U z=%TAzRbi<&&X$clSf+iLyK2miQ#m_+-qz#o_?&F6*Js*kd3%2TcI4iz@uHHAv#wuA zdsufEMb6C#kGa!>T(kSFT-fW@kUDXkthP^mA5HJ&-D_fC^ELg8GsTA&YD9Vd!#V$j zlbi~UeIxb~4Vr)Yq(K({RpfDkC z{Le?zi0N76Q1q1KgSg z@Dl5bMQE@Gz@FIvKY9ZER*ZcTG`<9l@&Y)3j{b_5;-ON!HSpD`W)AXw5mWVVfHWyU z>Rf;!{s6x7077K|+W7!+V4S{Wxr56cqoV)y{mBKrzbYMbGG)#ps@x%WWk-7$=Jm?~ zzF7%SxQ1r#_*}?jjV~(V1#b6&iBy9t_+slmOSISeG%?@8_KG&`E3Iu~=!VgxRcK@D zfGcg+Z*8xTn0ox2%{tMNwE(4?(5)IGrt&YMjNw~)ary^%bDRBQ;~%t1 zB51^SJ$7k6VplfrJ3;zUn?;#&mjRPba6Bp>2hX5Qnv zeRUA^-5TZiiW-`+RojkJ^*2uA-$o^EYp-X{wkZ88nk|OoT7T6B3!m+_*U7V)dmW#J z_H}#~P77aeX_zC%V)D8HxJO>g$M?_I^4oCZiA75<01Ul^i+qi--=V{bp3i~u!=yaxb*g5yA?RF34iBUM>B3q0&tr_CFU-; zb=G6O0rN)8osr&*^)9;nw%W#stxfdk?Hq^W*gAok|D{BCXTNd9-Fzn^?OB-6wb9VFPS-xz-pzC(&_zz5Nz5t z6p~f$B*-+|n|x1*ryFsASgXi6+>QH!J|22w+EoEgC!-0I$Il&%zrJXyx0WKJ#cEQE%;Nf%HU3vswnp zwkU&)<{>3KBwK?_g@lI;v1pK3AtkRsN}vT&f;+O+NeM7Sy;%{1WNH~C+hq(ghKKax zAv;+hy?DrfSs=X-@)&Q5*DH`-2>GLh-xksfAzS1bB5Kw1VtD)GY&xS_Hn%ZvQlC^ zdG=Zz=a2pA;1NYSO8=^ zfR_b8h5*}nOYuiQ*n!bAdnQAGFD!f!?1bx9z8EPM7a8usOW=xn*x4<^U#|~hbPus) z4?p0Poq<${H=KHdL=4CWmLf6Y1uz|xE$0Gq)aVScI36E7zZfszH9U5XIYTxtS3^v^ zT%f_H3-R@J=iQT|duQ;i$~?_-bnh}eGW73)2Ui1Ajq@Z&Z_e;mol)KTdcm`WQ00lJzS>$vCGxX(<0!m-@pISex=g$%nRFqu$gMO_~IPMm?CCyO9|} z@`-6i5-B65Mjeq5lY1(;$#DaTsYyq^veidJ6lft9QXn04*j7Rsgk!D2RwP8@mvtnz zG}xEM^U_gHg%T>HV{lX|)>{1GyBLa4nrYHuia-e+j$<0bkLRhpQY@;~LX4?rKhmR5uYtHFGVq1!a~Q{$96T2Gz(Am9f8#Gf{_Es_=lP~{tH`%D zN_K&x%SM_`V_ti&9KneoFdwF>Ka!;h83SJMrfT`{L%PQaXqISF$z=2XmSn6;R7 znA0&cHQiZVKKkmO4PFKI)Ray)NF-;p$ zTojGb)9E6@bxI6dc(gJyB}xlQO>C-8sn$ZeDpIXh$Es|#F{TIZT!%z{st0lh3F&Y8 zZZP*Hu~8#%yrFO?rxy=qA7225FG@KNgZnV9zms{DoF(#j6~9`BaUY9KE}2{$F@%oh z6o!$bIQ#BtI8Q2^p>Td?V{ndAaZ;j@VlxQe4DKh9kya|wo@@hBBe!HHAES9 zjN%@93vl7u;0D5wG!wpLt>$JhBxiEI<#`TFVx7uq9ubRT(usd7{sdPX(&&0>3NvJvKnZ?hX2NPb;_jE65zK>llYm zuTq6V*kuEFZ?J{I*%PM?%gxUz9g~}z(;d9zf;R?NI!&yZIgBgJf%nH;hFr)2pZhk^ zs^>PjuIictlU=u8I+NoXuxpH5Gg+>YyKE7>jWskojt>9%v7_qrJxA3oM-`UMj$=Xx z-#OOc8$ITpWArV@=)PDrJ6>^on19F7Zh^d8%3CQ5BD#a?x8y`=To&Yq?2Z8EpM>*O zr-Wf$bAG~w-fdZxf1pdJWcN_MPCaTyus?eF0^YqT3$5-^=wS~@{%a>w$;-u1$ zlEn=pU|5;ODacsU{w(fGo9=93u*JakYAQ}P+rla~;r#MQ$DRm&d1$be%D0$g6fO~V zFhpTu$BEXoJBNEj{=XMnP%alPj)Jkw4#V(Vu75`h0a@rob8`&mWoQn?ccas}oYE?2 zm&fU>#Nf8Xx;(CzwWq!)p@_^Eqqq@ zM;}VrxdXGwOc0UZ<4sZ1xeB51y&HG!3{Hid-0)Wc=WbY9zy%pX3%PT+!2An1KU2so z{Lcd}?uMaj5x0-~ZHnPm5f{o00E72ztnnP{X{ifY?K8*lnT0+(n`>hIXN%49b|qYA z0pP%>5;G$UYXYWaCEPUu2{aYH&#AfIu~D%xnh15QCPtU8No|`Ij`q6#sR;^ItSUvV zRi~?U=8XLA+609*RjbjZ$E3xoW71iU(VAY&<>nC@E)<$d=X0kxI}p^nu>XY+&=bNy LQ|Sj>spx+If5k|! delta 7797 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 O(bM9f%Hk5PSo*)*g1+nk diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index b0933ca6..cd1da4c3 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -654,8 +654,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { @Override public boolean removeByCodeFromCache(String code) { - CopyOnWriteArrayList taskDtos = this.tasks; - return taskDtos.removeIf(task -> task.getTask_code().equals(code)); + return this.tasks.removeIf(task -> task.getTask_code().equals(code)); } @Override diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java b/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java index 3f7d0aa1..50627abf 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java +++ b/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCreateInst.java @@ -2,6 +2,7 @@ package org.nl.modules.quartz.task; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; +import org.nl.acs.acsEnum.AgvTypeEnum; import org.nl.acs.acsEnum.StatusEnum; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; @@ -62,18 +63,24 @@ public class AutoCreateInst { .stream() .sorted((t1, t2) -> t1.getIs_send().compareTo(t2.getIs_send())) .collect(Collectors.toList()); - //生产指令关联编号 - String link_no = CodeUtil.getNewCode("LINK_NO"); + //如果分组后任务数量为1 下发单任务,分组后任务数量为2 下发双任务 if (tasks.size() == TASK_SIZE_1) { TaskDto taskDto = tasks.get(0); - + //如果任务类型是双工任务 但是任务个数是1 则不下发 + if (StrUtil.equals(taskDto.getTask_type(), AgvTypeEnum.NB_TYPE_1.getTaskType()) || + StrUtil.equals(taskDto.getTask_type(), AgvTypeEnum.NB_TYPE_4.getTaskType())) { + continue; + } //判断任务是否需要立即下发AGV 不需要则是双任务,等待系统下发第二条任务后,走下发双任务的逻辑 if (StrUtil.equals(taskDto.getIs_send(), StatusEnum.NO_SEND.getCode())) { continue; } + //生产指令关联编号 + String link_no = CodeUtil.getNewCode("LINK_NO"); + Instruction instDto = instructionService.createInstDtoByTask(taskDto, link_no); try { @@ -90,6 +97,8 @@ public class AutoCreateInst { } else if (tasks.size() == TASK_SIZE_2) { + //生产指令关联编号 + String link_no = CodeUtil.getNewCode("LINK_NO"); TaskDto taskDto1 = tasks.get(0); TaskDto taskDto2 = tasks.get(1); diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoFeedDeviceNum.java b/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoFeedDeviceNum.java index e4823d78..1bb0c8db 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoFeedDeviceNum.java +++ b/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoFeedDeviceNum.java @@ -1,5 +1,6 @@ package org.nl.modules.quartz.task; +import cn.hutool.core.util.ObjectUtil; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device_driver.basedriver.hailiang_one.MonitoringLargeScreenData; import org.nl.acs.ext.wms.service.AcsToWmsService; @@ -21,6 +22,8 @@ public class AutoFeedDeviceNum { private AcsToWmsService acsToWmsService; public void run() throws Exception { - acsToWmsService.feedDeviceNum(MonitoringLargeScreenData.deviceNumData); + if (ObjectUtil.isNotEmpty(MonitoringLargeScreenData.deviceNumData)) { + acsToWmsService.feedDeviceNum(MonitoringLargeScreenData.deviceNumData); + } } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoFeedOrderNum.java b/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoFeedOrderNum.java index 267226f8..9c63709c 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoFeedOrderNum.java +++ b/wcs/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoFeedOrderNum.java @@ -1,5 +1,6 @@ package org.nl.modules.quartz.task; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; @@ -36,6 +37,8 @@ public class AutoFeedOrderNum { .collect(Collectors.toList()); MonitoringLargeScreenData.orderData.values().removeAll(collect); JSONObject param = JSONObject.parseObject(JSON.toJSONString(MonitoringLargeScreenData.orderData)); - acsToWmsService.feedOrderRealQty(param); + if (ObjectUtil.isNotEmpty(param)) { + acsToWmsService.feedOrderRealQty(param); + } } } diff --git a/wcs/nladmin-system/src/main/resources/config/application-prod.yml b/wcs/nladmin-system/src/main/resources/config/application-prod.yml index 1c45b802..0c65d2b3 100644 --- a/wcs/nladmin-system/src/main/resources/config/application-prod.yml +++ b/wcs/nladmin-system/src/main/resources/config/application-prod.yml @@ -58,7 +58,7 @@ spring: multi-statement-allow: true redis: #数据库索引 - database: ${REDIS_DB:9} + database: ${REDIS_DB:12} host: ${REDIS_HOST:127.0.0.1} port: ${REDIS_PORT:6379} password: ${REDIS_PWD:} diff --git a/wcs/nladmin-ui/src/views/acs/device/config.vue b/wcs/nladmin-ui/src/views/acs/device/config.vue index 0be5ec77..139eba69 100644 --- a/wcs/nladmin-ui/src/views/acs/device/config.vue +++ b/wcs/nladmin-ui/src/views/acs/device/config.vue @@ -125,9 +125,16 @@ import hailiang_old_special_full_station from '@/views/acs/device/driver/hailian import hailiang_old_special_pick_station from '@/views/acs/device/driver/hailiang_one/hailiang_old_special_pick_station' import hailiang_old_special_pour_station from '@/views/acs/device/driver/hailiang_one/hailiang_old_special_pour_station' +import hailiang_ealing_machine from '@/views/acs/device/driver/hailiang_one/hailiang_ealing_machine' +import hailiang_sealing_machine from '@/views/acs/device/driver/hailiang_one/hailiang_sealing_machine' +import hailiang_unboxing_machine from '@/views/acs/device/driver/hailiang_one/hailiang_unboxing_machine' + export default { name: 'DeviceConfig', components: { + hailiang_ealing_machine, + hailiang_sealing_machine, + hailiang_unboxing_machine, hailiang_old_special_device, hailiang_old_special_empty_station, hailiang_old_special_full_station, diff --git a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_one/hailiang_auto_cache_line.vue b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_one/hailiang_auto_cache_line.vue index c8922f9e..b8f2f78a 100644 --- a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_one/hailiang_auto_cache_line.vue +++ b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_one/hailiang_auto_cache_line.vue @@ -222,6 +222,14 @@ /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + diff --git a/wcs/nladmin-ui/src/views/acs/order/index.vue b/wcs/nladmin-ui/src/views/acs/order/index.vue index ebaa58c9..573232ab 100644 --- a/wcs/nladmin-ui/src/views/acs/order/index.vue +++ b/wcs/nladmin-ui/src/views/acs/order/index.vue @@ -41,9 +41,9 @@ style="width: 190px" @change="crud.toQuery" > - + - + @@ -79,22 +79,22 @@ > - + - + - + - + - + - + - - + + @@ -123,6 +123,18 @@ + + + + + + + + + + + + @@ -196,7 +211,10 @@ const defaultForm = { is_needmove: '1', lane_tray_template: null, tray_num: '', - in_devices: '' + in_devices: '', + is_used_fxx: '0', + ealing_device_code: '', + unboxing_device_code: '' } export default { name: 'Produceshiftorder', diff --git a/wcs/nladmin-ui/src/views/system/monitor/device/index.vue b/wcs/nladmin-ui/src/views/system/monitor/device/index.vue index 0795709e..a38a8230 100644 --- a/wcs/nladmin-ui/src/views/system/monitor/device/index.vue +++ b/wcs/nladmin-ui/src/views/system/monitor/device/index.vue @@ -1,7 +1,7 @@