From 38985187dc9ca7973772b9ef1d3bdc6783d83cc4 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Mon, 26 Jun 2023 17:42:31 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E6=B7=BB=E5=8A=A0=E6=95=85=E9=9A=9C?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E8=A1=A8=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=A4=A7?= =?UTF-8?q?=E5=B1=8F=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cockpit/service/enums/ErrorInfoEnum.java | 48 ++++++++ .../service/impl/BigScreenServiceImpl.java | 106 +++++++----------- .../org/nl/wms/cockpit/wql/COCKPIT_DEVICE.wql | 30 +++++ .../wms/cockpit/wql/COCKPIT_FIR_AND_DRY.wql | 35 +++++- .../wms/ext/acs/rest/AcsToWmsController.java | 8 ++ .../wms/ext/acs/service/AcsToWmsService.java | 2 + .../acs/service/impl/AcsToWmsServiceImpl.java | 26 +++++ .../src/main/java/org/nl/wms/wms.xls | Bin 280576 -> 326656 bytes 8 files changed, 191 insertions(+), 64 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/enums/ErrorInfoEnum.java diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/enums/ErrorInfoEnum.java b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/enums/ErrorInfoEnum.java new file mode 100644 index 0000000..893b33f --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/enums/ErrorInfoEnum.java @@ -0,0 +1,48 @@ +package org.nl.wms.cockpit.service.enums; + +/** + * @Author: lyd + * @Description: 故障信息枚举 + * @Date: 2023/6/26 + */ +public enum ErrorInfoEnum { + scram("1", "急停中"), + LIGHT_CURTAIN_ALARM("2", "光幕报警"), + BODY_ALARM("3", "本体报警"), + NO_SCHEDULED_PRODUCTION_ALARM("4", "未排产报警"), + SCANNING_FAULT("5", "扫码故障"); + + /** + * 1.急停中 + * 2.光幕报警 + * 3.本体报警 + * 4.未排产报警 + * 5.扫码故障 + */ + + private final String code; + private final String name; + + ErrorInfoEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public static ErrorInfoEnum getErrorInfoEnumByCode(String code) { + ErrorInfoEnum[] enums = ErrorInfoEnum.values(); + for (ErrorInfoEnum errorInfoEnum : enums) { + if (errorInfoEnum.getCode().equals(code)) { + return errorInfoEnum; + } + } + return null; // 如果没有找到对应的枚举常量,可以根据需要返回null或者抛出异常 + } + + public String getCode() { + return code; + } + + public String getName() { + return name; + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/BigScreenServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/BigScreenServiceImpl.java index da76e72..ec8939d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/BigScreenServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/BigScreenServiceImpl.java @@ -127,8 +127,8 @@ public class BigScreenServiceImpl implements BigScreenService { .process() .getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(result); - JSONArray data = ObjectUtil.isNotEmpty( - devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : result; +// JSONObject devicesStatus = null; + JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getJSONArray("data") : result; // 初始化数据 数组下标:0关机 1待机 2生产中 3故障 JSONObject total = new JSONObject(); DeviceEnum[] values = DeviceEnum.values(); @@ -138,8 +138,8 @@ public class BigScreenServiceImpl implements BigScreenService { // 遍历判断 for (int i = 0; i < data.size(); i++) { JSONObject device = data.getJSONObject(i); - Integer devicesStatus1 = ObjectUtil.isNotEmpty(device.getInteger("devices_status")) - ? device.getInteger("devices_status") + Integer devicesStatus1 = ObjectUtil.isNotEmpty(device.getInteger("status")) + ? device.getInteger("status") : 0; String regionCode = device.getString("region_code"); DeviceEnum deviceEnumByCode = DeviceEnum.getDeviceEnumByCode(regionCode); // 获取属于哪种设备 @@ -168,16 +168,13 @@ public class BigScreenServiceImpl implements BigScreenService { return null; }); // TODO: 5、近一个月故障次数前5台设备 - CompletableFuture> lastMonthFailureTask = CompletableFuture.supplyAsync(() -> { - List res = new ArrayList<>(); - Random random = new Random(); - for (int i = 0; i < 5; i++) { - OperationConditionDto dto = new OperationConditionDto(); - dto.setDevice_name("机器" + (i + 1)); - dto.setFailure(random.nextInt(30 - 10 + 1) + 10); - res.add(dto); - } - return res; + CompletableFuture lastMonthFailureTask = CompletableFuture.supplyAsync(() -> { + // 获取所有设备 + JSONArray result = WQL.getWO("COCKPIT_DEVICE") + .addParam("flag", "6") + .process() + .getResultJSONArray(0); + return result; }, pool); lastMonthFailureTask.thenAccept(result -> { map.put("LastMonthFailureList", result); @@ -187,18 +184,12 @@ public class BigScreenServiceImpl implements BigScreenService { return null; }); // TODO: 6、最近10次设备故障 - CompletableFuture> lastTenFailureTask = CompletableFuture.supplyAsync(() -> { - List res = new CopyOnWriteArrayList<>(); - for (int i = 0; i < 5; i++) { - FailureDeviceInfoDto dto = new FailureDeviceInfoDto(); - dto.setDevice_code("hl01"); - dto.setDevice_name("混料01"); - dto.setFailure_time("05-30 09:50:12"); - dto.setFailure_info("机器故障"); - dto.setDevice_status_name("待机"); - res.add(dto); - } - return res; + CompletableFuture lastTenFailureTask = CompletableFuture.supplyAsync(() -> { + JSONArray result = WQL.getWO("COCKPIT_DEVICE") + .addParam("flag", "5") + .process() + .getResultJSONArray(0); + return result; }, pool); lastTenFailureTask.thenAccept(result -> { map.put("LastTenFailureList", result); @@ -214,6 +205,7 @@ public class BigScreenServiceImpl implements BigScreenService { .process() .getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); +// JSONObject devicesStatus = null; JSONArray data = ObjectUtil.isNotEmpty( devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; for (int i = 0; i < data.size(); i++) { @@ -251,8 +243,8 @@ public class BigScreenServiceImpl implements BigScreenService { .process() .getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); - JSONArray data = ObjectUtil.isNotEmpty( - devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// JSONObject devicesStatus = null; + JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getJSONArray("data") : res; return data; }, pool); pressMachineTask.thenAccept(result -> { @@ -269,8 +261,8 @@ public class BigScreenServiceImpl implements BigScreenService { .process() .getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); - JSONArray data = ObjectUtil.isNotEmpty( - devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// JSONObject devicesStatus = null; + JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getJSONArray("data") : res; for (int i = 0; i < data.size(); i++) { JSONObject jsonObject = data.getJSONObject(i); jsonObject.put("device_status", DeviceStatusEnum.STANDBY.getCode()); @@ -353,8 +345,8 @@ public class BigScreenServiceImpl implements BigScreenService { .process() .getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); - JSONArray data = ObjectUtil.isNotEmpty( - devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// JSONObject devicesStatus = null; + JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getJSONArray("data") : res; for (int i = 0; i < data.size(); i++) { JSONObject jsonObject = data.getJSONObject(i); if (jsonObject.getInteger("move") == 1 @@ -390,8 +382,8 @@ public class BigScreenServiceImpl implements BigScreenService { .process() .getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); - JSONArray data = ObjectUtil.isNotEmpty( - devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// JSONObject devicesStatus = null; + JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getJSONArray("data") : res; return data; }, pool); manipulatorInfoTask.thenAccept(result -> { @@ -824,8 +816,8 @@ public class BigScreenServiceImpl implements BigScreenService { JSONArray res = WQL.getWO("COCKPIT_MIX_AND_TRAP").addParamMap(MapOf.of("flag", "2")) .process().getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); - JSONArray data = ObjectUtil.isNotEmpty( - devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// JSONObject devicesStatus = null; + JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getJSONArray("data") : res; for (int i = 0; i < data.size(); i++) { JSONObject device = data.getJSONObject(i); Integer devicesStatus1 = ObjectUtil.isNotEmpty(device.getInteger("devices_status")) @@ -950,8 +942,8 @@ public class BigScreenServiceImpl implements BigScreenService { JSONArray res = WQL.getWO("COCKPIT_MOLDING_INFO").addParamMap(MapOf.of("flag", "4")) .process().getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); - JSONArray data = ObjectUtil.isNotEmpty( - devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// JSONObject devicesStatus = null; + JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getJSONArray("data") : res; for (int i = 0; i < data.size(); i++) { JSONObject device = data.getJSONObject(i); Integer devicesStatus1 = ObjectUtil.isNotEmpty(device.getInteger("devices_status")) @@ -974,8 +966,8 @@ public class BigScreenServiceImpl implements BigScreenService { JSONArray res = WQL.getWO("COCKPIT_MOLDING_INFO").addParamMap(MapOf.of("flag", "5")) .process().getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); - JSONArray data = ObjectUtil.isNotEmpty( - devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// JSONObject devicesStatus = null; + JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getJSONArray("data") : res; return data; }, pool); trayStationPopoverTask.thenAccept(result -> { @@ -990,8 +982,8 @@ public class BigScreenServiceImpl implements BigScreenService { JSONArray res = WQL.getWO("COCKPIT_MOLDING_INFO").addParamMap(MapOf.of("flag", "6")) .process().getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); - JSONArray data = ObjectUtil.isNotEmpty( - devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// JSONObject devicesStatus = null; + JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getJSONArray("data") : res; for (int i = 0; i < data.size(); i++) { JSONObject device = data.getJSONObject(i); Integer devicesStatus1 = ObjectUtil.isNotEmpty(device.getInteger("devices_status")) @@ -1061,7 +1053,7 @@ public class BigScreenServiceImpl implements BigScreenService { moldingIOStoringTask.thenAccept(result -> { map.put("MoldingIOStoringList", result); }).exceptionally((e) -> { - log.error("获取半成品货架信息: {}", e.getMessage(), e); + log.error("获取成型出入库信息: {}", e.getMessage(), e); map.put("MoldingIOStoringList", null); return null; }); @@ -1108,16 +1100,10 @@ public class BigScreenServiceImpl implements BigScreenService { map.put("SemiFinishedIOList", null); return null; }); - // todo: 3、烧制窑内物料 + // 3、烧制窑内物料 CompletableFuture fireInTheKilnTask = CompletableFuture.supplyAsync(() -> { - JSONArray res = new JSONArray(); - Random random = new Random(); - for (int i = 1; i <= 5; i++) { - JSONObject r = new JSONObject(); - r.put("qty", random.nextInt(2000 - 100 + 1) + 100); - r.put("material_code", "物料" + i); - res.add(r); - } + JSONArray res = WQL.getWO("COCKPIT_FIR_AND_DRY").addParamMap(MapOf.of("flag", "4")) + .process().getResultJSONArray(0); return res; }, pool); fireInTheKilnTask.thenAccept(result -> { @@ -1127,16 +1113,10 @@ public class BigScreenServiceImpl implements BigScreenService { map.put("FireInTheKilnList", null); return null; }); - // todo: 4、冷却窑内物料 + // 4、冷却窑内物料 CompletableFuture coolingInTheKilnTask = CompletableFuture.supplyAsync(() -> { - JSONArray res = new JSONArray(); - Random random = new Random(); - for (int i = 1; i <= 5; i++) { - JSONObject r = new JSONObject(); - r.put("qty", random.nextInt(2000 - 100 + 1) + 100); - r.put("material_code", "物料" + i); - res.add(r); - } + JSONArray res = WQL.getWO("COCKPIT_FIR_AND_DRY").addParamMap(MapOf.of("flag", "5")) + .process().getResultJSONArray(0); return res; }, pool); coolingInTheKilnTask.thenAccept(result -> { @@ -1292,8 +1272,8 @@ public class BigScreenServiceImpl implements BigScreenService { JSONArray res = WQL.getWO("COCKPIT_SORTE_AND_PACKAGE").addParamMap(MapOf.of("flag", "5")) .process().getResultJSONArray(0); JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); - JSONArray data = ObjectUtil.isNotEmpty( - devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// JSONObject devicesStatus = null; + JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getJSONArray("data") : res; for (int i = 0; i < data.size(); i++) { JSONObject device = data.getJSONObject(i); Integer devicesStatus1 = ObjectUtil.isNotEmpty(device.getInteger("devices_status")) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_DEVICE.wql b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_DEVICE.wql index 60505b6..8d6d5ee 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_DEVICE.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_DEVICE.wql @@ -102,3 +102,33 @@ ENDSELECT ENDPAGEQUERY ENDIF + + IF 输入.flag = "5" + PAGEQUERY + SELECT + das.*, + d.device_name + FROM + `das_device_number` das + LEFT JOIN pdm_bi_device d ON d.device_code = das.device_code + ORDER BY das.failure_time DESC + LIMIT 10 + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "6" + PAGEQUERY + SELECT + COUNT(*) AS failure, + d.device_name + FROM + `das_device_number` das + LEFT JOIN pdm_bi_device d ON d.device_code = das.device_code + WHERE das.failure_time >= DATE_SUB(NOW(), INTERVAL 1 MONTH) + GROUP BY d.device_name + ORDER BY failure DESC + LIMIT 5 + ENDSELECT + ENDPAGEQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_FIR_AND_DRY.wql b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_FIR_AND_DRY.wql index 3a63f15..7144ede 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_FIR_AND_DRY.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_FIR_AND_DRY.wql @@ -45,7 +45,7 @@ p.point_name, IF(LENGTH(p.vehicle_code)>0,p.vehicle_code,'-') AS vehicle_code, IF(LENGTH(LEFT(m.material_code, 11))>0,LEFT(m.material_code, 11),'-') AS material_code, - IF(LENGTH(vd.qty)>0,vd.qty,0) AS qty, + IF(LENGTH(vd.qty)>0,vd.qty,'-') AS qty, IF(LENGTH(mix_num)>0,CONCAT(DATE_FORMAT(CURRENT_DATE(), '%Y%m%d'),LPAD(mix_num, 3, '0')),'-') AS mix_num, IF(LENGTH(vd.create_time),vd.create_time,'-') AS create_time FROM @@ -122,3 +122,36 @@ ENDSELECT ENDPAGEQUERY ENDIF + + IF 输入.flag = "4" + PAGEQUERY + SELECT + SUM(vd.qty) AS qty, + LEFT(m.material_code, 11) AS material_code + FROM + `sch_base_task` t + LEFT JOIN st_ivt_vehicle_detail vd ON vd.vd_id = t.group_id + LEFT JOIN md_me_materialbase m ON m.material_id = vd.material_id + WHERE t.handle_class = 'org.nl.wms.sch.task.call.material.SZCallMaterialTask' + AND vd.vd_id IS NOT NULL AND vd.is_fire = 0 AND vd.vehicle_type = '2' + GROUP BY m.material_code + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "5" + PAGEQUERY + SELECT + SUM(vd.qty) AS qty, + LEFT(m.material_code, 11) AS material_code + FROM + `st_ivt_vehicle_detail` vd + LEFT JOIN md_me_materialbase m ON m.material_id = vd.material_id + WHERE vd.is_fire = 1 AND vd.vehicle_type = '2' + AND vd_id NOT IN ( + SELECT t.group_id FROM sch_base_task t WHERE t.handle_class = 'org.nl.wms.sch.task.send.material.SZSendMaterialTask' + ) + GROUP BY m.material_code + ENDSELECT + ENDPAGEQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index dd8e7fa..a56815c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -209,4 +209,12 @@ public class AcsToWmsController { public ResponseEntity mark(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(acsToWmsService.mark(whereJson), HttpStatus.OK); } + + @PostMapping("/errorDeviceRecord") + @Log("设备异常记录") + @ApiOperation("设备异常记录") + @SaIgnore + public ResponseEntity errorDeviceRecord(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(acsToWmsService.errorDeviceRecord(whereJson), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index ac9cea8..1d1179e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -118,4 +118,6 @@ public interface AcsToWmsService { JSONObject mark(JSONObject whereJson); + + JSONObject errorDeviceRecord(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index a9c148a..28c817b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -18,6 +18,7 @@ import org.nl.wms.basedata.eum.StandStatus; import org.nl.wms.basedata.eum.TrueOrFalse; import org.nl.wms.basedata.eum.VehicleType; import org.nl.wms.basedata.service.dto.VehicleDto; +import org.nl.wms.cockpit.service.enums.ErrorInfoEnum; import org.nl.wms.common.PickType; import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.ext.acs.service.WmsToAcsService; @@ -1024,4 +1025,29 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { throw new BadRequestException("[" + VehicleType.get(String.valueOf(vehicle_type)).label() + "] [" + vehicle_code + "] 无信息!"); } } + + @Override + @Transactional + public JSONObject errorDeviceRecord(JSONObject device) { + /** + * 1.急停中 + * 2.光幕报警 + * 3.本体报警 + * 4.未排产报警 + * 5.扫码故障 + */ + WQLObject dasDeviceNumber = WQLObject.getWQLObject("DAS_device_number"); + String deviceCode = device.getString("device_code"); + String errorInfo = device.getString("error"); + JSONObject res = new JSONObject(); + res.put("data_id", IdUtil.getSnowflake(1,1).nextIdStr()); + res.put("device_code", deviceCode); + res.put("failure_info", ErrorInfoEnum.getErrorInfoEnumByCode(errorInfo).getName()); + res.put("failure_time", DateUtil.now()); + dasDeviceNumber.insert(res); + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "故障上报完成!"); + return result; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls index 0633b6f54490965ca17d1322f69fb4192a56fde8..3167e97f4df6c0d0b53fd3527a5173b55f2480a9 100644 GIT binary patch delta 90918 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 W6b}MwFu{@gEEb_n^PCgv;Qs+V&#&45 delta 51121 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