Просмотр исходного кода

设备管理看板增加期间核查的统计,设备校准更新为新表数据

WuYi 1 день назад
Родитель
Сommit
cdd5f96904

+ 33 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/dto/EquipIntermediateDTO.java

@@ -0,0 +1,33 @@
+package com.lc.ibps.business.dto;
+
+public class EquipIntermediateDTO {
+    private String org;
+
+    private int numJ;
+
+    private int numW;
+
+    public String getOrg() {
+        return org;
+    }
+
+    public void setOrg(String org) {
+        this.org = org;
+    }
+
+    public int getNumJ() {
+        return numJ;
+    }
+
+    public void setNumJ(int numJ) {
+        this.numJ = numJ;
+    }
+
+    public int getNumW() {
+        return numW;
+    }
+
+    public void setNumW(int numW) {
+        this.numW = numW;
+    }
+}

+ 10 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/dto/EquipmentDashBoardDTO.java

@@ -20,6 +20,8 @@ public class EquipmentDashBoardDTO {
 
     private List<EquipCalibrationByPositionDTO> verificationData; // 各部门设备检定校准完成情况
 
+    private List<EquipIntermediateDTO> intermediateData;
+
     private List<Map<String,Object>> originalAssets;// 各部门设备资产值统计
 
     public List<Map<String, Object>> getOriginalAssets() {
@@ -46,6 +48,14 @@ public class EquipmentDashBoardDTO {
         this.completeData = completeData;
     }
 
+    public List<EquipIntermediateDTO> getIntermediateData() {
+        return intermediateData;
+    }
+
+    public void setIntermediateData(List<EquipIntermediateDTO> intermediateData) {
+        this.intermediateData = intermediateData;
+    }
+
     public List<List<String>> getScrapData() {
         return scrapData;
     }

+ 56 - 3
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/business/service/impl/StatisticServiceImpl.java

@@ -260,6 +260,10 @@ public class StatisticServiceImpl implements StatisticService {
         //  各部门设备检定/校准完成情况
         equipDTO.setVerificationData(getVerificationData());
 
+        // 各部门设备期间核查完成情况
+        equipDTO.setIntermediateData(getPeriodicVerification());
+
+
         //  所有设备维修次数
         equipDTO.setScrapData(getEquipScrapList());
 
@@ -301,13 +305,13 @@ public class StatisticServiceImpl implements StatisticService {
     private List<EquipCalibrationByPositionDTO> getVerificationData(){
         String planSql = "SELECT  p.name_,p.id_,p.depth_,COALESCE(q.assets, 0) AS assets " +
                 "FROM (SELECT name_,id_,depth_ FROM ibps_party_entity WHERE path_ LIKE '%%%s%%' AND depth_ >= 3) p  " +
-                "LEFT JOIN (SELECT bian_zhi_bu_men_,COUNT(*) AS assets FROM t_mjsbjdxzjhzb WHERE parent_id_!='' and parent_id_ is not null " +
+                "LEFT JOIN (SELECT bian_zhi_bu_men_,COUNT(*) AS assets FROM t_xzjlb WHERE ji_hua_zhu_biao_i <> '' and ji_hua_zhu_biao_i is not null " +
                 "AND di_dian_ = '%s' GROUP BY bian_zhi_bu_men_) q ON p.id_ = q.bian_zhi_bu_men_ ORDER BY p.id_";
 
         String finishSql = "SELECT  p.name_,p.id_,p.depth_,COALESCE(q.assets, 0) AS assets " +
                 "FROM (SELECT name_,id_,depth_ FROM ibps_party_entity WHERE path_ LIKE '%%%s%%' AND depth_ >= 3) p  " +
-                "LEFT JOIN (SELECT bian_zhi_bu_men_,COUNT(*) AS assets FROM t_mjsbjdxzjhzb " +
-                "WHERE shi_fou_guo_shen_ = '已完成' and parent_id_!='' and parent_id_ is not null " +
+                "LEFT JOIN (SELECT bian_zhi_bu_men_,COUNT(*) AS assets FROM t_xzjlb " +
+                "WHERE shi_fou_guo_shen_ = '已完成' and ji_hua_zhu_biao_i <> '' and ji_hua_zhu_biao_i is not null  " +
                 "AND di_dian_ = '%s' GROUP BY bian_zhi_bu_men_) q ON p.id_ = q.bian_zhi_bu_men_ ORDER BY p.id_";
 
         planSql = String.format(planSql,getDiDian(),getDiDian());
@@ -345,6 +349,55 @@ public class StatisticServiceImpl implements StatisticService {
         return mergedList;
     }
 
+
+    private List<EquipIntermediateDTO> getPeriodicVerification(){
+        String planSql = "SELECT  p.name_,p.id_,p.depth_,COALESCE(q.assets, 0) AS assets " +
+                "FROM (SELECT name_,id_,depth_ FROM ibps_party_entity WHERE path_ LIKE '%%%s%%' AND depth_ >= 3) p  " +
+                "LEFT JOIN (SELECT bian_zhi_bu_men_,COUNT(*) AS assets FROM t_yqsbqjhcjlb WHERE ji_hua_zhu_biao_i <> '' and ji_hua_zhu_biao_i is not null " +
+                "AND di_dian_ = '%s' GROUP BY bian_zhi_bu_men_) q ON p.id_ = q.bian_zhi_bu_men_ ORDER BY p.id_";
+
+        String finishSql = "SELECT  p.name_,p.id_,p.depth_,COALESCE(q.assets, 0) AS assets " +
+                "FROM (SELECT name_,id_,depth_ FROM ibps_party_entity WHERE path_ LIKE '%%%s%%' AND depth_ >= 3) p  " +
+                "LEFT JOIN (SELECT bian_zhi_bu_men_,COUNT(*) AS assets FROM t_yqsbqjhcjlb " +
+                "WHERE shi_fou_guo_shen_ = '已完成' and ji_hua_zhu_biao_i <> '' and ji_hua_zhu_biao_i is not null  " +
+                "AND di_dian_ = '%s' GROUP BY bian_zhi_bu_men_) q ON p.id_ = q.bian_zhi_bu_men_ ORDER BY p.id_";
+
+        planSql = String.format(planSql,getDiDian(),getDiDian());
+        finishSql = String.format(finishSql,getDiDian(),getDiDian());
+        String sumPlanSql = "SELECT SUM(s.assets) as total from (%s) s";
+        String sumFinishSql = "SELECT SUM(s.assets) as total from (%s) s";
+        int planTotal = Integer.parseInt(commonDao.queryOne(String.format(sumPlanSql,planSql)).get("total").toString());
+        int finishTotal = Integer.parseInt(commonDao.queryOne(String.format(sumFinishSql,finishSql)).get("total").toString());
+        List<Map<String, Object>> planList = (List<Map<String, Object>>) commonDao.query(planSql);
+        List<Map<String, Object>> finishList = (List<Map<String, Object>>) commonDao.query(finishSql);
+        Map<String, EquipIntermediateDTO> mergedMap = new HashMap<>();
+        for (Map<String, Object> entry : finishList) {
+            String org = (String) entry.get("name_");
+            int count = ((Number) entry.get("assets")).intValue();
+            EquipIntermediateDTO dto = mergedMap.getOrDefault(org, new EquipIntermediateDTO());
+            dto.setOrg(org);
+            dto.setNumW(count);
+            if ("3".equals(entry.get("depth_").toString())){
+                dto.setNumW(finishTotal);
+            }
+            mergedMap.put(org, dto);
+        }
+        for (Map<String, Object> entry : planList) {
+            String org = (String) entry.get("name_");
+            int count = ((Number) entry.get("assets")).intValue();
+            EquipIntermediateDTO dto = mergedMap.getOrDefault(org, new EquipIntermediateDTO());
+            dto.setOrg(org);
+            dto.setNumJ(count);
+            if ("3".equals(entry.get("depth_").toString())){
+                dto.setNumJ(planTotal);
+            }
+            mergedMap.put(org, dto);
+        }
+        List<EquipIntermediateDTO> mergedList = new ArrayList<>(mergedMap.values());
+        return mergedList;
+    }
+
+
     private List<EquipMaintenanceDTO> getEquipMaintenanceByDept(){
         String sql = "SELECT p.name_,p.id_,p.depth_,COUNT(q.bian_zhi_bu_men_) AS value \n" +
                 "FROM ibps_party_entity p LEFT JOIN t_mjsbwhbyjlby q ON p.id_ = q.bian_zhi_bu_men_\n" +