From 26cb3fd3a7a1e79fb33b2d1851418281a05450bc Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 18 Nov 2022 14:46:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DeviceBigScreenServiceImpl.java | 47 ++++--- .../bigscreen/wql/EM_DEVICEBIGSCREEN_01.wql | 52 +++++++- .../bigscreen/wql/EM_DEVICEBIGSCREEN_02.wql | 120 +++++++++++++++++- 3 files changed, 194 insertions(+), 25 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/service/impl/DeviceBigScreenServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/service/impl/DeviceBigScreenServiceImpl.java index 97a5b196..ace0b1b6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/service/impl/DeviceBigScreenServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/service/impl/DeviceBigScreenServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; @@ -285,10 +286,16 @@ public class DeviceBigScreenServiceImpl implements DeviceBigScreenService { JSONObject json = deptArr.getJSONObject(i); JSONObject jsonObject = new JSONObject(); - jsonObject.put("dept_name", json.getString("name")); + if(StrUtil.equals(json.getString("type"), "1")) { + jsonObject.put("dept_name", json.getString("name")+"(保养)"); + } else { + jsonObject.put("dept_name", json.getString("name")+"(维修)"); + } + // 2.根据部门code查询对应的保养台数,未保养台数等 JSONObject map = new JSONObject(); - map.put("flag", "2"); + if(StrUtil.equals(json.getString("type"), "1")) map.put("flag", "2"); + if(StrUtil.equals(json.getString("type"), "2")) map.put("flag", "21"); map.put("dept_code", json.getString("code")); // 需保养台数: 开始日期和计划日期都为空 @@ -296,17 +303,22 @@ public class DeviceBigScreenServiceImpl implements DeviceBigScreenService { jsonObject.put("need_num", need_num.getString("num")); // 已保养台数:开始日期和计划日期都不为空 - map.put("flag", "3"); + if(StrUtil.equals(json.getString("type"), "1")) map.put("flag", "3"); + if(StrUtil.equals(json.getString("type"), "2")) map.put("flag", "31"); JSONObject end_num = WQL.getWO("EM_DEVICEBIGSCREEN_02").addParamMap(map).process().uniqueResult(0); jsonObject.put("end_num", end_num.getString("num")); // 在保养台数:开始日期不能为空,结束日期为空 - map.put("flag", "4"); + if(StrUtil.equals(json.getString("type"), "1")) map.put("flag", "4"); + if(StrUtil.equals(json.getString("type"), "2")) map.put("flag", "41"); JSONObject begin_num = WQL.getWO("EM_DEVICEBIGSCREEN_02").addParamMap(map).process().uniqueResult(0); jsonObject.put("begin_num", begin_num.getString("num")); - // 未保养台数 = 需保养台数 - jsonObject.put("not_num", jsonObject.getString("need_num")); + // 未保养台数 + if(StrUtil.equals(json.getString("type"), "1")) map.put("flag", "5"); + if(StrUtil.equals(json.getString("type"), "2")) map.put("flag", "51"); + JSONObject not_num = WQL.getWO("EM_DEVICEBIGSCREEN_02").addParamMap(map).process().uniqueResult(0); + jsonObject.put("not_num", not_num.getString("num")); // 完成率:已保养台数/需保养台数 try { @@ -316,7 +328,6 @@ public class DeviceBigScreenServiceImpl implements DeviceBigScreenService { jsonObject.put("confirm_rate", "0.0"); } - resultArr.add(jsonObject); } resultData.put("device_year_arr", resultArr); @@ -334,22 +345,14 @@ public class DeviceBigScreenServiceImpl implements DeviceBigScreenService { * 查询保养单明细 */ - WQLObject dtlTab = WQLObject.getWQLObject("em_bi_devicemaintenanceplandtl"); JSONObject resultJson = new JSONObject(); JSONObject resultData = new JSONObject(); + JSONArray resultArr = new JSONArray(); JSONArray arr = WQL.getWO("EM_DEVICEBIGSCREEN_01").addParam("flag", "8").process().getResultJSONArray(0); for (int i = 0; i < arr.size(); i++) { JSONObject json = arr.getJSONObject(i); - // 明细数 - JSONArray jsonDtl = dtlTab.query("maint_plan_id = '" + json.getString("maint_plan_id") + "'").getResultJSONArray(0); - if (ObjectUtil.isEmpty(jsonDtl)) { - json.put("num", "0"); - } else { - json.put("num", String.valueOf(jsonDtl.size())); - } - // 保养倒计时: 计划日期 - 当前日期 Date date1 = DateUtil.parse(DateUtil.today()); // 当前日期 Date date2 = DateUtil.parse(json.getString("plan_time")); // 计划日期 @@ -364,10 +367,20 @@ public class DeviceBigScreenServiceImpl implements DeviceBigScreenService { if (betweenDay2 < 0) { json.put("putoff_time", String.valueOf(betweenDay2)+ "天"); json.put("remark", "延期"); + } else { + json.put("putoff_time", ""); } + } else { + json.put("putoff_time", ""); } + + // 显示倒计时为30天以内的维保计划 + if (json.getIntValue("main_time") <= 30 ) { + resultArr.add(json); + } + } - resultData.put("device_year_arr", arr); + resultData.put("device_year_arr", resultArr); resultJson.put("srb", resultData); resultJson.put("code", "1"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/wql/EM_DEVICEBIGSCREEN_01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/wql/EM_DEVICEBIGSCREEN_01.wql index 6421ccb0..d9f32f3c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/wql/EM_DEVICEBIGSCREEN_01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/wql/EM_DEVICEBIGSCREEN_01.wql @@ -191,13 +191,61 @@ END ) AS maint_object, mst.real_start_date AS impl_time, - mst.remark, mst.real_end_date, - mst.maint_plan_id + mst.maint_plan_id, + dtl.num, + ( + CASE IFNULL(bydMst.STATUS,'') + WHEN '' THEN '未生成' + ELSE '生成' + END + ) AS remark FROM EM_BI_DeviceMaintenancePlanMst mst LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid + LEFT JOIN ( + SELECT COUNT(d.maint_plan_id) AS num,d.maint_plan_id FROM EM_BI_DeviceMaintenancePlanDtl d + group by d.maint_plan_id + ) AS dtl ON mst.maint_plan_id = dtl.maint_plan_id + LEFT JOIN ( + SELECT COUNT(c.source_bill_id) AS status,c.source_bill_id FROM EM_BI_DeviceMaintenanceMst c + group by c.source_bill_id + ) AS bydMst ON mst.maint_plan_id = bydMst.source_bill_id + WHERE + mst.is_delete = '0' + AND mst.maintenancecycle = '01' + + UNION + + SELECT + dept.name AS dept_name, + file.device_name, + file.device_code, + mst.plan_start_date AS plan_time, + '' AS maint_object, + mst.real_start_date AS impl_time, + mst.real_end_date, + mst.repair_plan_id AS maint_plan_id, + dtl.num, + ( + CASE IFNULL(wxdMst.STATUS,'') + WHEN '' THEN '未生成' + ELSE '生成' + END + ) AS remark + FROM + EM_BI_DeviceRepairPlanMst mst + LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id + LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid + LEFT JOIN ( + SELECT COUNT(d.repair_plan_id) AS num,d.repair_plan_id FROM EM_BI_DeviceRepairPlanDtl d + group by d.repair_plan_id + ) AS dtl ON mst.repair_plan_id = dtl.repair_plan_id + LEFT JOIN ( + SELECT COUNT(c.source_bill_id) AS status,c.source_bill_id FROM EM_BI_DeviceRepairMst c + group by c.source_bill_id + ) AS wxdMst ON mst.repair_plan_id = wxdMst.source_bill_id WHERE mst.is_delete = '0' AND mst.maintenancecycle = '01' diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/wql/EM_DEVICEBIGSCREEN_02.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/wql/EM_DEVICEBIGSCREEN_02.wql index 80d54a64..0afe4f07 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/wql/EM_DEVICEBIGSCREEN_02.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sb/bigscreen/wql/EM_DEVICEBIGSCREEN_02.wql @@ -43,7 +43,8 @@ QUERY SELECT dept.code, - dept.name + dept.name, + '1' AS type FROM EM_BI_DeviceMaintenancePlanMst mst LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id @@ -52,6 +53,22 @@ mst.is_delete = '0' AND mst.maintenancecycle = '01' + group by file.use_deptid + + UNION + + SELECT + dept.code, + dept.name, + '2' AS type + FROM + EM_BI_DeviceRepairPlanMst mst + LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id + LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid + WHERE + mst.is_delete = '0' + AND mst.maintenancecycle = '01' + group by file.use_deptid ENDSELECT @@ -70,8 +87,23 @@ mst.is_delete = '0' AND mst.maintenancecycle = '01' AND dept.code = 输入.dept_code - AND IFNULL(mst.real_start_date, '') = '' - AND IFNULL(mst.real_end_date, '') = '' + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "21" + QUERY + SELECT + count(mst.repair_plan_id) AS num + FROM + EM_BI_DeviceRepairPlanMst mst + LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id + LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid + WHERE + mst.is_delete = '0' + AND mst.maintenancecycle = '01' + AND dept.code = 输入.dept_code ENDSELECT ENDQUERY @@ -96,6 +128,25 @@ ENDQUERY ENDIF + IF 输入.flag = "31" + QUERY + SELECT + count(mst.repair_plan_id) AS num + FROM + EM_BI_DeviceRepairPlanMst mst + LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id + LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid + WHERE + mst.is_delete = '0' + AND mst.maintenancecycle = '01' + AND dept.code = 输入.dept_code + AND IFNULL(mst.real_start_date, '') <> '' + AND IFNULL(mst.real_end_date, '') <> '' + + ENDSELECT + ENDQUERY + ENDIF + IF 输入.flag = "4" QUERY SELECT @@ -108,9 +159,66 @@ mst.is_delete = '0' AND mst.maintenancecycle = '01' AND dept.code = 输入.dept_code - AND mst.real_start_date is not null - AND mst.real_end_date is null + AND IFNULL(mst.real_start_date,'') <> '' + AND IFNULL(mst.real_end_date,'') = '' ENDSELECT ENDQUERY - ENDIF \ No newline at end of file + ENDIF + + IF 输入.flag = "41" + QUERY + SELECT + count(mst.repair_plan_id) AS num + FROM + EM_BI_DeviceRepairPlanMst mst + LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id + LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid + WHERE + mst.is_delete = '0' + AND mst.maintenancecycle = '01' + AND dept.code = 输入.dept_code + AND IFNULL(mst.real_start_date,'') <> '' + AND IFNULL(mst.real_end_date,'') = '' + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "5" + QUERY + SELECT + count(mst.maint_plan_id) AS num + FROM + EM_BI_DeviceMaintenancePlanMst mst + LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id + LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid + WHERE + mst.is_delete = '0' + AND mst.maintenancecycle = '01' + AND dept.code = 输入.dept_code + AND IFNULL(mst.real_start_date, '') = '' + AND IFNULL(mst.real_end_date, '') = '' + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "51" + QUERY + SELECT + count(mst.repair_plan_id) AS num + FROM + EM_BI_DeviceRepairPlanMst mst + LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id + LEFT JOIN sys_dept dept ON dept.dept_id = file.use_deptid + WHERE + mst.is_delete = '0' + AND mst.maintenancecycle = '01' + AND dept.code = 输入.dept_code + AND IFNULL(mst.real_start_date, '') = '' + AND IFNULL(mst.real_end_date, '') = '' + + ENDSELECT + ENDQUERY + ENDIF