From 6e6114a620a2e2ba68f4a4470e0e9a3e1ce746ca Mon Sep 17 00:00:00 2001 From: "USER-20220102CG\\noblelift" <546428999@qq.com> Date: Mon, 23 May 2022 09:57:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=B7=A5=E5=8D=95=20?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/AppRun.java | 1 - .../device/device_driver/DriverTypeEnum.java | 2 +- .../hailiang_feeding_trunk/ItemProtocol.java | 85 ++++++++++++++++-- .../HaiLiangLetteringDefination.java | 26 +++++- .../HaiLiangLetteringDeviceDriver.java | 24 +++-- .../hailiang_lettering/ItemProtocol.java | 5 +- .../service/ProduceshiftorderService.java | 22 +++++ .../impl/ProduceshiftorderServiceImpl.java | 38 +++++++- .../org/nl/acs/order/service/wql/order.xls | Bin 221696 -> 185344 bytes 9 files changed, 174 insertions(+), 29 deletions(-) diff --git a/nladmin-system/src/main/java/org/nl/AppRun.java b/nladmin-system/src/main/java/org/nl/AppRun.java index b2eada2..948a623 100644 --- a/nladmin-system/src/main/java/org/nl/AppRun.java +++ b/nladmin-system/src/main/java/org/nl/AppRun.java @@ -50,7 +50,6 @@ public class AppRun implements CommandLineRunner { @Override public void run(String... args) throws Exception { - System.out.println(111); } @Bean diff --git a/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java b/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java index 30c1e38..e6dabe5 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java +++ b/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java @@ -14,7 +14,7 @@ public enum DriverTypeEnum { HAILIANG_FEEDING(2, "hailiang_feeding", "海亮包装项目-上料线体", "conveyor"), - HAILIANG_LEETERING(3, "hailiang_lettering", "海亮包装项目-刻字线体", "conveyor"), + HAILIANG_LETTERING(3, "hailiang_lettering", "海亮包装项目-刻字线体", "conveyor"), HAILIANG_RISKING(4, "hailiang_risking", "海亮包装项目-套冒线体", "conveyor"), diff --git a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/ItemProtocol.java b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/ItemProtocol.java index 04b54af..845ac5e 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/ItemProtocol.java +++ b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/ItemProtocol.java @@ -12,8 +12,51 @@ public class ItemProtocol { public static String item_mode = "mode"; public static String item_action = "action"; public static String item_error = "error"; - public static String item_to_command = "to_command"; + public static String item_order = "order"; + public static String item_order_detail = "order_detail"; + public static String item_last_order_detail = "last_order_detail"; + //当前工单上料数量 + public static String item_order_feeding_qty = "order_feeding_qty"; + //当前工单明细号上料数量 + public static String item_detail_feeding_qty = "detail_feeding_qty"; + //当前工单明细顺序号刻字数量 + public static String item_detail_lettering_qty = "detail_lettering_qty"; + //当前工单明细顺序号刻字合格数量 + public static String item_detail_lettering_qualified_qty = "detail_lettering_qualified_qty"; + //当前工单明细号套冒合格数 + public static String item_detail_risking_qualified_qty = "detail_risking_qualified_qty"; + //当前工单明细号套冒数 + public static String item_detail_risking_qty = "detail_risking_qty"; + //当前工单明细号捆扎数 + public static String item_detail_strapping_qty = "detail_strapping_qty"; + //当前工单明细号捆扎根数 + public static String item_detail_strapping_oneqty = "detail_strapping_oneqty"; + //当前工单明细号裹膜数 + public static String item_detail_coating_qty = "detail_coating_qty"; + //当前贴标工单明细号 + public static String item_labeling_order = "labeling_order"; + //当前贴标工单明细号贴标合格数 + public static String item_detail_rlabeling_qualified_qty = "detail_rlabeling_qualified_qty"; + //当前贴标工单明细号贴标数 + public static String item_detail_rlabeling_qty = "detail_rlabeling_qty"; + + public static String item_to_command = "to_command"; + public static String item_to_order = "to_order"; + public static String item_to_order_detail = "to_order_detail"; + public static String item_to_order_feeding_qty = "to_order_feeding_qty"; + public static String item_to_detail_feeding_qty = "to_detail_feeding_qty"; + public static String item_to_outer_diameter = "to_outer_diameter"; + public static String item_to_wall_thickness = "to_wall thickness"; + public static String item_to_length = "to_length"; + public static String item_to_is_last = "to_is_last"; + public static String item_to_strapping_qty = "to_strapping_qty"; + public static String item_to_one_strapping_qty = "to_one_strapping_qty"; + public static String item_to_lastone_strapping_qty = "to_lastone_strapping_qty"; + public static String item_to_coating_qty = "to_coating_qty"; + public static String item_to_labeling_qty = "to_labeling_qty"; + public static String item_to_stop = "to_stop"; + public static String item_to_force_complete = "to_force_complete"; private HaiLiangFeedingTrunkDeviceDriver driver; @@ -55,16 +98,46 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_heartbeat, "心跳", "DB51.B0")); - list.add(new ItemDto(item_mode, "工作状态", "DB51.B1", Boolean.valueOf(true))); - list.add(new ItemDto(item_action, "动作信号", "DB51.B2")); - list.add(new ItemDto(item_error, "报警信号", "DB51.B4")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB600.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB600.B2", Boolean.valueOf(true))); + list.add(new ItemDto(item_error, "故障信号", "DB600.B3")); + list.add(new ItemDto(item_order, "当前执行工单号", "DB600.D4")); + list.add(new ItemDto(item_order_detail, "当前工单明细号", "DB600.D8")); + list.add(new ItemDto(item_last_order_detail, "上次完成工单明细号", "DB600.D12")); + list.add(new ItemDto(item_order_feeding_qty, "当前工单上料数量", "DB600.D16")); + list.add(new ItemDto(item_detail_feeding_qty, "当前工单明细号上料数量", "DB600.D20")); + list.add(new ItemDto(item_detail_lettering_qty, "当前工单明细号刻字数量", "DB600.D24")); + list.add(new ItemDto(item_detail_lettering_qualified_qty, "当前工单明细号刻字合格数量", "DB600.D28")); + list.add(new ItemDto(item_detail_risking_qualified_qty, "当前工单明细号套冒合格数", "DB600.D32")); + list.add(new ItemDto(item_detail_risking_qty, "当前工单明细号套冒数", "DB600.D36")); + list.add(new ItemDto(item_detail_strapping_qty, "当前工单明细号捆扎包数", "DB600.D40")); + list.add(new ItemDto(item_detail_strapping_oneqty, "当前工单明细号捆扎根数", "DB600.D44")); + list.add(new ItemDto(item_detail_coating_qty, "当前工单明细号裹膜数", "DB600.D48")); + list.add(new ItemDto(item_labeling_order, "当前贴标工单明细号", "DB600.D52")); + list.add(new ItemDto(item_detail_rlabeling_qualified_qty, "当前工单明细号刻字数量", "DB600.D56")); + list.add(new ItemDto(item_detail_rlabeling_qty, "当前贴标工单明细号贴标数", "DB600.D60")); + return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command, "作业命令", "DB52.W2", Boolean.valueOf(true))); + list.add(new ItemDto(item_to_order, "工单号", "DB600.D2")); + list.add(new ItemDto(item_to_order_detail, "工单明细号", "DB600.D6")); + list.add(new ItemDto(item_to_order_feeding_qty, "工单上料总数量", "DB600.D10")); + list.add(new ItemDto(item_to_detail_feeding_qty, "工单明细号上料数量", "DB600.D14")); + list.add(new ItemDto(item_to_outer_diameter, "外径", "DB600.REAL18")); + list.add(new ItemDto(item_to_wall_thickness, "壁厚", "DB600.REAL22")); + list.add(new ItemDto(item_to_length, "长度", "DB600.REAL26")); + list.add(new ItemDto(item_to_is_last, "是否最后工单明细号", "DB600.D30")); + list.add(new ItemDto(item_to_strapping_qty, "总捆扎包数", "DB600.D34")); + list.add(new ItemDto(item_to_one_strapping_qty, "标准每捆数量", "DB600.D38")); + list.add(new ItemDto(item_to_lastone_strapping_qty, "捆扎尾料数量", "DB600.D42")); + list.add(new ItemDto(item_to_coating_qty, "需要裹膜捆数", "DB600.D42")); + list.add(new ItemDto(item_to_labeling_qty, "需要贴标数量", "DB600.D46")); + list.add(new ItemDto(item_to_stop, "急停", "DB600.D50")); + list.add(new ItemDto(item_to_force_complete, "工单强制完成", "DB600.D54")); + list.add(new ItemDto(item_to_command, "作业命令", "DB52.D62", Boolean.valueOf(true))); return list; } diff --git a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDefination.java b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDefination.java index c37c5fa..74378ec 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDefination.java +++ b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDefination.java @@ -1,19 +1,21 @@ package org.nl.acs.device_driver.hailiang.hailiang_lettering; +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; import org.nl.acs.device_driver.DeviceDriver; -import org.nl.acs.device_driver.DeviceDriverDefination; +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.ArrayList; import java.util.LinkedList; import java.util.List; /** - * 海亮刻字线体 + * 海亮贴标线体 */ @Service -public class HaiLiangLetteringDefination implements DeviceDriverDefination { +public class HaiLiangLetteringDefination implements OpcDeviceDriverDefination { @Override public String getDriverCode() { return "hailiang_lettering"; @@ -47,4 +49,22 @@ public class HaiLiangLetteringDefination implements DeviceDriverDefination { return types; } + @Override + public List getReadableItemDtos() { + return getReadableItemDtos2(); + } + + public static List getReadableItemDtos2() { + List list = new ArrayList(); + list.add(new ItemDto(ItemProtocol.item_mode, "工作状态", "V100.1", true)); + list.add(new ItemDto(ItemProtocol.item_action, "动作信号", "V100.0")); + list.add(new ItemDto(ItemProtocol.item_error, "报警信号", "VB101")); + return list; + } + + @Override + public List getWriteableItemDtos() { + return ItemProtocol.getWriteableItemDtos(); + } + } diff --git a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java index 1eac059..4790af2 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java +++ b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java @@ -4,31 +4,27 @@ 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.driver.AbstractDeviceDriver; +import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; -import org.nl.acs.instruction.service.dto.Instruction; -import org.nl.acs.route.service.RouteLineService; -import org.nl.acs.task.service.TaskService; -import org.nl.utils.SpringContextHolder; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.Date; - +import org.nl.acs.opc.Device; /** - * + * 海亮贴标线体 */ @Slf4j @Data @RequiredArgsConstructor -public class HaiLiangLetteringDeviceDriver extends AbstractDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver { +public class HaiLiangLetteringDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver { + protected ItemProtocol itemProtocol = new ItemProtocol(this); + + @Override + public Device getDevice() { + return this.device; + } @Override public void execute() { } - } - diff --git a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/ItemProtocol.java b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/ItemProtocol.java index b717d6d..75f02b5 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/ItemProtocol.java +++ b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/ItemProtocol.java @@ -2,7 +2,6 @@ package org.nl.acs.device_driver.hailiang.hailiang_lettering; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device.device_driver.standard_inspect.ItemDto; -import org.nl.acs.device_driver.hailiang.hailiang_labeling.HaiLiangLabelingDeviceDriver; import java.util.ArrayList; import java.util.List; @@ -15,9 +14,9 @@ public class ItemProtocol { public static String item_to_command = "to_command"; - private HaiLiangLabelingDeviceDriver driver; + private HaiLiangLetteringDeviceDriver driver; - public ItemProtocol(HaiLiangLabelingDeviceDriver driver) { + public ItemProtocol(HaiLiangLetteringDeviceDriver driver) { this.driver = driver; } diff --git a/nladmin-system/src/main/java/org/nl/acs/order/service/ProduceshiftorderService.java b/nladmin-system/src/main/java/org/nl/acs/order/service/ProduceshiftorderService.java index 251d53b..1cd42e4 100644 --- a/nladmin-system/src/main/java/org/nl/acs/order/service/ProduceshiftorderService.java +++ b/nladmin-system/src/main/java/org/nl/acs/order/service/ProduceshiftorderService.java @@ -3,6 +3,8 @@ package org.nl.acs.order.service; import com.alibaba.fastjson.JSONArray; import org.nl.acs.order.service.dto.ProduceshiftorderDto; +import org.nl.acs.order.service.dto.ProduceshiftorderdetailDto; +import org.nl.acs.task.service.dto.TaskDto; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; @@ -34,6 +36,26 @@ public interface ProduceshiftorderService { */ List queryAll(Map whereJson); + + + + /** + * 查询所有未完成工单 + * + * @param whereJson 条件参数 + * @return List + */ + List queryAllOrder(String whereJson); + + /** + * 查询所有未完成工单明细 + * + * @param whereJson 条件参数 + * @return List + */ + List queryAllOrderDteail(String whereJson); + + /** * 根据ID查询 * diff --git a/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java b/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java index c531aa5..a2fda15 100644 --- a/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java @@ -14,8 +14,10 @@ import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.CustomerbaseDto; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.order.service.dto.ProduceshiftorderdetailDto; +import org.nl.acs.task.service.dto.TaskDto; import org.nl.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; +import org.nl.start.auto.initial.ApplicationAutoInitial; import org.nl.utils.SecurityUtils; import org.nl.wql.WQL; import org.nl.wql.core.bean.ResultBean; @@ -31,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -43,10 +46,24 @@ import java.util.Map; @Service @RequiredArgsConstructor @Slf4j -public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { +public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, ApplicationAutoInitial { + + List order = new ArrayList(); + + List detail = new ArrayList(); private final MongoTemplate mongoTemplate; + @Override + public void autoInitial() throws Exception { + this.reload(); + } + + public synchronized void reload() { + this.order = this.queryAllOrder("order_status <2 and is_delete =0"); + this.detail = this.queryAllOrderDteail("order_detail_status <2 and is_delete =0"); + } + @Override public Map queryAll(Map whereJson, Pageable page) { WQLObject wo = WQLObject.getWQLObject("acs_produceshiftorder"); @@ -96,6 +113,24 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { return null; } + + @Override + public List queryAllOrder(String whereJson) { + WQLObject wo = WQLObject.getWQLObject("acs_produceshiftorder"); + JSONArray arr = wo.query(whereJson).getResultJSONArray(0); + List list = arr.toJavaList(ProduceshiftorderDto.class); + return list; + } + + @Override + public List queryAllOrderDteail(String whereJson) { + WQLObject wo = WQLObject.getWQLObject("acs_produceshiftorderdetail"); + JSONArray arr = wo.query(whereJson).getResultJSONArray(0); + List list = arr.toJavaList(ProduceshiftorderdetailDto.class); + return list; + } + + @Override public ProduceshiftorderDto findById(String order_id) { WQLObject wo = WQLObject.getWQLObject("acs_produceshiftorder"); @@ -231,4 +266,5 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService { JSONArray arr = wo.query("order_id = '"+order_id+"'").getResultJSONArray(0); return arr; } + } \ No newline at end of file diff --git a/nladmin-system/src/main/java/org/nl/acs/order/service/wql/order.xls b/nladmin-system/src/main/java/org/nl/acs/order/service/wql/order.xls index 1c40ed31c0ff004da54f28f3340410cdebfa4c24..7518a0d903943a0d9487d3f77ff871f24f28bbfd 100644 GIT binary patch delta 16183 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 delta 46589 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