From 3a1263e72b389baaa378891074eff69d1ee9a69c Mon Sep 17 00:00:00 2001 From: "USER-20220102CG\\noblelift" <546428999@qq.com> Date: Wed, 1 Jun 2022 14:25:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HaiLiangFeedingDeviceDriver.java | 97 +----------------- .../HaiLiangFeedingTrunkDeviceDriver.java | 95 ++++++++++++++++- .../hailiang_feeding_trunk/ItemProtocol.java | 7 ++ .../ProduceshiftorderdetailService.java | 2 + .../dto/ProduceshiftorderdetailDto.java | 29 +++++- .../impl/ProduceshiftorderServiceImpl.java | 15 ++- .../ProduceshiftorderdetailServiceImpl.java | 23 +++-- .../org/nl/acs/order/service/impl/Test.java | 29 ++++++ .../org/nl/acs/order/service/wql/order.xls | Bin 191488 -> 231424 bytes 9 files changed, 186 insertions(+), 111 deletions(-) create mode 100644 nladmin-system/src/main/java/org/nl/acs/order/service/impl/Test.java diff --git a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java index 31aeada..3f7792d 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java +++ b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java @@ -33,101 +33,8 @@ public class HaiLiangFeedingDeviceDriver extends AbstractOpcDeviceDriver impleme @Override public void execute() { -// String message = null; -// try { -// device_code = this.getDeviceCode(); -// mode = this.itemProtocol.getMode(); -// error = this.itemProtocol.getError(); -// move = this.itemProtocol.getMove(); -// task = this.itemProtocol.getTask(); -// action = this.itemProtocol.getAction(); -// ioaction = this.itemProtocol.getIoAction(); -// height = this.itemProtocol.getHeight(); -// operation_type = this.itemProtocol.getOperation_type(); -// direction = this.itemProtocol.getDirection(); -// hasGoods = this.itemProtocol.getMove(); -// -// if (mode != last_mode) { -// this.setRequireSucess(false); -// } -// if (move != last_move) { -// if (move == 0) { -// thingToNothing(); -// } -// } -// if (error != last_error) { -// } -// if (mode == 2 && move != 0 && task > 0) { -// //inst_message -// inst = instructionService.findByCodeFromCache(String.valueOf(task)); -// if (inst != null) { -// inst_message = "指令号:" + inst.getInstruction_code() + " " + inst.getStart_point_code() + "->" + inst.getNext_point_code() + " 载具号:" + inst.getVehicle_code(); -// if (StrUtil.equals(inst.getInstruction_status(), "0") && StrUtil.equals(this.getDeviceCode(), inst.getStart_device_code())) { -// inst.setInstruction_status("1"); -// instructionService.update(inst); -// } -// if (StrUtil.equals(inst.getInstruction_status(), "1") && StrUtil.equals(this.getDeviceCode(), inst.getNext_device_code())) { -// finish_instruction(); -// } -// } -// } -// -// if (getBarcode() != null) { -// -// } -// } catch (Exception var17) { -// return; -// } -// if (!this.itemProtocol.getIsonline()) { -// this.setIsonline(false); -// this.setIserror(true); -// message = "信号量同步异常"; -// //未联机 -// } else if (mode == 0) { -// this.setIsonline(false); -// this.setIserror(true); -// message = "未联机"; -// //有报警 -// } else if (error != 0) { -// this.setIsonline(false); -// this.setIserror(true); -// message = "有报警"; -// //无报警 -// } else { -// this.setIsonline(true); -// this.setIserror(false); -// message = ""; -// Instruction instruction = null; -// List toInstructions; -// switch (mode) { -// case 1: -// log.debug("设备运转模式:等待工作"); -// break; -// case 2: -// //申请任务 -// if (hasGoods > 0 && !StrUtil.isEmpty(barcode()) && height > 0 && !requireSucess) { -// instruction_require(barcode()); -// } -// if (hasGoods > 0 && !StrUtil.isEmpty(barcode()) && height > 0 && !applySucess) { -// instruction_apply(barcode()); -// } -// } -// switch (flag) { -// //取货完成 -// case 1: -// writing(2); -// break; -// //放货完成 -// case 2: -// writing(3); -// break; -// -// } -// } -// last_mode = mode; -// last_error = error; -// last_move = move; -// last_task = task; + + } diff --git a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java index d06d964..3d4f0ac 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java +++ b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java @@ -18,6 +18,7 @@ import org.nl.utils.SpringContextHolder; import org.openscada.opc.lib.da.Server; import org.springframework.beans.factory.annotation.Autowired; +import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -53,9 +54,27 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im int ready = 0; int pause = 0; int clear = 0; + int order_feeding_qty = 0; + int detail_feeding_qty = 0; + int detail_feeding_qualified_qty = 0; + int detail_lettering_qty = 0; + int detail_lettering_qualified_qty = 0; + int detail_risking_qualified_qty = 0; + int detail_risking_qty = 0; + int detail_strapping_qty = 0; + int detail_strapping_oneqty = 0; + int detail_coating_qty = 0; + int labeling_order = 0; + int detail_labeling_qualified_qty = 0; + int detail_labeling_qty = 0; + + Boolean send_letter_flag_back = false; Boolean send_letter_flag = false; + private Date detail_time = new Date(); + private int detail_time_out = 3000; + @Override public void execute() throws Exception { String message = null; @@ -67,12 +86,44 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im order_detail = this.itemProtocol.getOrder_detail(); ready = this.itemProtocol.getReady(); pause = this.itemProtocol.getPause(); - clear = this.itemProtocol.getPause(); + clear = this.itemProtocol.getClear(); + + //当前工单明细号上料数量 + order_feeding_qty = this.itemProtocol.getDetail_feeding_qty(); + detail_feeding_qty = this.itemProtocol.getDetail_feeding_qty(); + //当前工单明细号上料合格数量 + detail_feeding_qualified_qty = this.itemProtocol.getDetail_feeding_qualified_qty(); + //当前工单明细号刻字数量 + detail_lettering_qty = this.itemProtocol.getDetail_lettering_qty(); + //当前工单明细号刻字合格数量 + detail_lettering_qualified_qty = this.itemProtocol.getDetail_lettering_qualified_qty(); + //当前工单明细号套冒合格数 + detail_risking_qualified_qty = this.itemProtocol.getDetail_risking_qualified_qty(); + //当前工单明细号套冒数 + detail_risking_qty = this.itemProtocol.getDetail_risking_qty(); + //当前工单明细号捆扎包数 + detail_strapping_qty = this.itemProtocol.getDetail_strapping_qty(); + //当前工单明细号捆扎根数 + detail_strapping_oneqty = this.itemProtocol.getDetail_strapping_oneqty(); + //当前工单明细号裹膜数 + detail_coating_qty =this.itemProtocol.getDetail_coating_qty(); + //当前贴标工单明细号 + labeling_order = this.itemProtocol.getLabeling_order(); + //当前贴标工单明细号贴标合格数 + detail_labeling_qualified_qty = this.itemProtocol.getDetail_strapping_qty(); + //当前贴标工单明细号贴标数 + detail_labeling_qty = this.itemProtocol.getDetail_labeling_qty(); + if (mode != last_mode) { this.setRequireSucess(false); } + if(order >0 && order_detail>0){ + update_detail(String.valueOf(order),String.valueOf(order_detail)); + } + + } catch (Exception var17) { return; } @@ -112,6 +163,39 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im last_order = order; } + public synchronized boolean update_detail(String order, String order_detail) throws Exception { + Date date = new Date(); + if (date.getTime() - this.detail_time_out < (long) this.detail_time_out) { + log.trace("触发时间因为小于{}毫秒,而被无视", this.detail_time_out); + return false; + } else { + this.detail_time= date; + ProduceshiftorderdetailDto dto = produceshiftorderdetailService.findOrderDetailFromCache(String.valueOf(order),String.valueOf(order_detail)); + //上料数量 + dto.setPresent_feeding_number(String.valueOf(detail_feeding_qty)); + //上料合格数量 + dto.setFeeding_qualified_qty(String.valueOf(detail_feeding_qualified_qty)); + //当前工单明细号刻字数量 + dto.setPresent_lettering_number(String.valueOf(detail_lettering_qty)); + //当前工单明细号刻字合格数量 + dto.setQualified_lettering_number(String.valueOf(detail_lettering_qualified_qty)); + //当前工单明细号套冒数 + dto.setPresent_sleeveing_number(String.valueOf(detail_risking_qty)); + //当前工单明细号套冒合格数 + dto.setQualified_sleeveing_number(String.valueOf(detail_risking_qualified_qty)); + //当前捆扎包数 + dto.setPresent_strap_pack_number(String.valueOf(detail_strapping_qty)); + //当前捆扎数 + dto.setPresent_strap_number(String.valueOf(detail_strapping_oneqty)); + //当前工单明细号裹膜数 + dto.setPresent_wraping_number(String.valueOf(detail_coating_qty)); + + produceshiftorderdetailService.update(dto); + + return true; + } + } + public boolean apply_order() throws Exception { ProduceshiftorderDto dto = produceshiftorderService.apply_order(); if(ObjectUtil.isEmpty(dto)){ @@ -122,18 +206,21 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im String is_lettering = dto.getIs_lettering(); //是否套冒 String is_risking = dto.getIs_risking(); - //捆扎 + //是否捆扎 String is_strapping = dto.getIs_strapping(); - //裹膜 + //是否裹膜 String is_coating = dto.getIs_coating(); - //贴标 + //是否贴标 String is_labeling = dto.getIs_labeling(); + //选择上料口 + String feeding_mouth = dto.getFeeding_mouth(); String outer_diameter = dto.getOuter_diameter(); String wall_thickness = dto.getWall_thickness(); String length = dto.getLength(); String qty = dto.getQty(); writing(ItemProtocol.item_to_order,order); + writing(ItemProtocol.item_to_feeding_mouth,feeding_mouth); writing(ItemProtocol.item_to_order_feeding_qty,qty); writing(ItemProtocol.item_to_outer_diameter,outer_diameter); writing(ItemProtocol.item_to_wall_thickness,wall_thickness); 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 3d44d48..d179b14 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 @@ -18,6 +18,8 @@ public class ItemProtocol { 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_feeding_qualified_qty = "detail_feeding_qualified_qty"; //当前工单明细顺序号刻字数量 public static String item_detail_lettering_qty = "detail_lettering_qty"; //当前工单明细顺序号刻字合格数量 @@ -126,6 +128,10 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_detail_feeding_qty); } + public int getDetail_feeding_qualified_qty() { + return this.getOpcIntegerValue(item_detail_feeding_qualified_qty); + } + public int getDetail_lettering_qty() { return this.getOpcIntegerValue(item_detail_lettering_qty); } @@ -371,6 +377,7 @@ public class ItemProtocol { 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_feeding_qualified_qty, "当前工单明细号上料合格数量", "DB600.D120")); 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")); diff --git a/nladmin-system/src/main/java/org/nl/acs/order/service/ProduceshiftorderdetailService.java b/nladmin-system/src/main/java/org/nl/acs/order/service/ProduceshiftorderdetailService.java index 8d94490..f3bddc9 100644 --- a/nladmin-system/src/main/java/org/nl/acs/order/service/ProduceshiftorderdetailService.java +++ b/nladmin-system/src/main/java/org/nl/acs/order/service/ProduceshiftorderdetailService.java @@ -76,6 +76,8 @@ public interface ProduceshiftorderdetailService { ProduceshiftorderdetailDto apply_orderDetail(String order); + ProduceshiftorderdetailDto findOrderDetailFromCache(String order,String detail); + List findOrderDetailByOrderIdFromCache(String order_id); List findOrderDetailByOrderCodeFromCache(String order_code); diff --git a/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderdetailDto.java b/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderdetailDto.java index b8cfb6d..590d2da 100644 --- a/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderdetailDto.java +++ b/nladmin-system/src/main/java/org/nl/acs/order/service/dto/ProduceshiftorderdetailDto.java @@ -45,17 +45,33 @@ public class ProduceshiftorderdetailDto implements Serializable { /** 当前捆扎包数 */ private String present_strap_pack_number; + /** 当前捆扎数 */ + private String present_strap_number; + /** 每捆数量 */ private String strap_number; /** 捆扎尾料数量 */ private String strap_tailint_number; - /** 刻字信息 */ + /** 图标前刻字信息 */ private String lettering_message; + /** 刻字图标类型 */ + private String lettering_icon_type; + + /** 图标后刻字信息 */ + private String lettering_message2; + + /** 当前刻字数量 */ - private String present_lettering_numer; + private String present_lettering_number; + + + + /** 贴标模板 */ + private String labeling_template; + /** 贴标信息 */ private String labeling_message; @@ -115,8 +131,11 @@ public class ProduceshiftorderdetailDto implements Serializable { /** 上料数量 */ private String feeding_qty; + /** 当前上料数量 */ + private String present_feeding_number; + /** 上料合格数量 */ - private String lettering_qualified_qty; + private String feeding_qualified_qty; /** 上料开始时间 */ private String feeding_start_time; @@ -125,7 +144,7 @@ public class ProduceshiftorderdetailDto implements Serializable { private String feeding_end_time; /** 刻字合格数量 */ - private String qualified_lettering_numer; + private String qualified_lettering_number; /** 刻字开始时间 */ private String lettering_start_time; @@ -134,7 +153,7 @@ public class ProduceshiftorderdetailDto implements Serializable { private String lettering_finish_time; /** 当前套冒数量 */ - private String present_sleeveing_numer; + private String present_sleeveing_number; /** 套冒合格数量 */ private String qualified_sleeveing_number; 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 25a3392..2b0c89d 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 @@ -303,7 +303,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A iterator.remove(); } } - if (StrUtil.equals(dto.getOrder_id(), "07") || StrUtil.equals(dto.getOrder_id(), "08")) { + if (!StrUtil.equals(dto.getOrder_id(), "07") || !StrUtil.equals(dto.getOrder_id(), "08")) { order.add(dto); } } @@ -622,6 +622,19 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A new_jo.put("qty", orderDteail_jo.getString("order_detail_qty")); new_jo.put("type", "orderDteail"); new_jo.put("is_flag", "0"); + + new_jo.put("feeding_qty", orderDteail_jo.getString("feeding_qty")); + new_jo.put("feeding_qualified_qty", orderDteail_jo.getString("feeding_qualified_qty")); + new_jo.put("present_lettering_number", orderDteail_jo.getString("present_lettering_number")); + new_jo.put("qualified_lettering_number", orderDteail_jo.getString("qualified_lettering_number")); + new_jo.put("present_sleeveing_number", orderDteail_jo.getString("present_sleeveing_number")); + new_jo.put("qualified_sleeveing_number", orderDteail_jo.getString("qualified_sleeveing_number")); + new_jo.put("present_strap_pack_number", orderDteail_jo.getString("present_strap_pack_number")); + new_jo.put("present_strap_number", orderDteail_jo.getString("present_strap_number")); + new_jo.put("present_wraping_number", orderDteail_jo.getString("present_wraping_number")); + new_jo.put("qualified_wraping_number", orderDteail_jo.getString("qualified_wraping_number")); + new_jo.put("present_labeling_number", orderDteail_jo.getString("present_labeling_number")); + children.add(new_jo); } jo.put("children", children); diff --git a/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderdetailServiceImpl.java b/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderdetailServiceImpl.java index 9d89141..b15b8db 100644 --- a/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderdetailServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderdetailServiceImpl.java @@ -121,7 +121,7 @@ public class ProduceshiftorderdetailServiceImpl implements Produceshiftorderdeta iterator.remove(); } } - if (StrUtil.equals(dto.getOrder_detail_status(), "07") || StrUtil.equals(dto.getOrder_detail_status(), "08")) { + if (!StrUtil.equals(dto.getOrder_detail_status(), "07") || !StrUtil.equals(dto.getOrder_detail_status(), "08")) { detail.add(dto); } @@ -154,7 +154,7 @@ public class ProduceshiftorderdetailServiceImpl implements Produceshiftorderdeta map.put("每捆数量", produceshiftorderdetail.getStrap_number()); map.put("捆扎尾料数量", produceshiftorderdetail.getStrap_tailint_number()); map.put("刻字信息", produceshiftorderdetail.getLettering_message()); - map.put("当前刻字数量", produceshiftorderdetail.getPresent_lettering_numer()); + map.put("当前刻字数量", produceshiftorderdetail.getPresent_lettering_number()); map.put("贴标信息", produceshiftorderdetail.getLabeling_message()); map.put("当前贴标数量", produceshiftorderdetail.getPresent_labeling_number()); map.put("创建者", produceshiftorderdetail.getCreate_by()); @@ -173,13 +173,13 @@ public class ProduceshiftorderdetailServiceImpl implements Produceshiftorderdeta map.put("物料长度", produceshiftorderdetail.getLength()); map.put("工单明细状态", produceshiftorderdetail.getOrder_detail_status()); map.put("上料数量", produceshiftorderdetail.getFeeding_qty()); - map.put("上料合格数量", produceshiftorderdetail.getLettering_qualified_qty()); + map.put("上料合格数量", produceshiftorderdetail.getFeeding_qualified_qty()); map.put("上料开始时间", produceshiftorderdetail.getFeeding_start_time()); map.put("上料完成时间", produceshiftorderdetail.getFeeding_end_time()); - map.put("刻字合格数量", produceshiftorderdetail.getQualified_lettering_numer()); + map.put("刻字合格数量", produceshiftorderdetail.getQualified_lettering_number()); map.put("刻字开始时间", produceshiftorderdetail.getLettering_start_time()); map.put("刻字完成时间", produceshiftorderdetail.getLettering_finish_time()); - map.put("当前套冒数量", produceshiftorderdetail.getPresent_sleeveing_numer()); + map.put("当前套冒数量", produceshiftorderdetail.getPresent_sleeveing_number()); map.put("套冒合格数量", produceshiftorderdetail.getQualified_sleeveing_number()); map.put("套冒开始时间", produceshiftorderdetail.getSleeveing_start_time()); map.put("套冒完成时间", produceshiftorderdetail.getSleeveing_finish_time()); @@ -276,10 +276,21 @@ public class ProduceshiftorderdetailServiceImpl implements Produceshiftorderdeta if(ObjectUtil.isEmpty(order_detail)){ throw new BadRequestException("未找到处于就绪状态的工单明细!"); } - return order_detail; } + @Override + public ProduceshiftorderdetailDto findOrderDetailFromCache(String order,String detail) { + Iterator var3 = this.detail.iterator(); + while (var3.hasNext()) { + ProduceshiftorderdetailDto onedetail = (ProduceshiftorderdetailDto) var3.next(); + if (StrUtil.equals(onedetail.getOrder_code(), order) && StrUtil.equals(onedetail.getOrder_detail_code(), detail) ) { + return onedetail; + } + } + return null; + } + @Override public Boolean isLastOrderDetail(String order) { List list = new ArrayList<>(); diff --git a/nladmin-system/src/main/java/org/nl/acs/order/service/impl/Test.java b/nladmin-system/src/main/java/org/nl/acs/order/service/impl/Test.java new file mode 100644 index 0000000..b7718ba --- /dev/null +++ b/nladmin-system/src/main/java/org/nl/acs/order/service/impl/Test.java @@ -0,0 +1,29 @@ +package org.nl.acs.order.service.impl; + +public class Test { + + public static void main(String[] args) { + + Process printProcess; + String printName ="HP LaserJet Pro MFP M225-M226 PCL 6"; + + try + { + printProcess = Runtime + .getRuntime() + .exec(new String[] { + "C:\\Users\\noblelift\\Desktop\\条码标签设计软件和打印程序\\BarcodePrint\\BarcodePrint.exe", + "PrinterName=" + printName, + "LabelName=Label.ct", "Text5="+ "111","Text6="+"222","Text7="+"333","Text8="+"444"}); + } + catch (Exception e) + { + System.out.println("aaa"); + + } + + + } + + +} 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 cc1c2fd128f807d5cb506d12e7f86589ec91f8c0..848ea71897b220ac18ac376d965f66661d7844c6 100644 GIT binary patch delta 53799 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