Przeglądaj źródła

[task-2106]子设备管理看板开发/设备管理看板接口

szjbdgzl 1 rok temu
rodzic
commit
5ca87c799d

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

@@ -178,9 +178,10 @@ public class StatisticServiceImpl implements StatisticService {
         equipDTO.setIntactData(getEquipSituation());
 
         //  各部门设备维护完成情况
-
+        equipDTO.setCompleteData(getEquipMaintenanceByDept());
 
         //  各部门设备检定/校准完成情况
+        equipDTO.setVerificationData(getVerificationData());
 
         //  检验科设备停用/报废列表
         equipDTO.setScrapData(getEquipScrapList());
@@ -189,9 +190,68 @@ public class StatisticServiceImpl implements StatisticService {
         return list;
     }
 
-    private List<EquipMaintenanceDTO> getEquipMaintenanceByDept(){
+    private List<EquipCalibrationByPositionDTO> getVerificationData(){
+        String todoSql = "SELECT id_ from t_mjsbjdxzjh WHERE di_dian_='"+getDiDian()+"' and shi_fou_guo_shen_!='已完成' ";
+        String aldySql = "SELECT id_ from t_mjsbjdxzjh WHERE di_dian_='"+getDiDian()+"' and shi_fou_guo_shen_ ='已完成' ";
+        String sql = "SELECT p.name_,q.bian_zhi_bu_men_,COUNT(bian_zhi_bu_men_)as value from " +
+                " (SELECT name_,id_ from ibps_party_entity WHERE path_ like '%%%s%%' and DEPTH_>=3) p " +
+                " left join " +
+                " (SELECT bian_zhi_bu_men_ from t_mjsbjdxzjhzb WHERE parent_id_ in(%s) or record_parentid_ in(%s) ) q " +
+                " on q.bian_zhi_bu_men_=p.id_ GROUP BY p.id_";
+        todoSql = String.format(sql,getDiDian(),todoSql,todoSql);
+        aldySql = String.format(sql,getDiDian(),aldySql,aldySql);
+        List<Map<String, Object>> aldyList = (List<Map<String, Object>>) commonDao.query(aldySql);
+        List<Map<String, Object>> toDoList = (List<Map<String, Object>>) commonDao.query(todoSql);
+        Map<String, EquipCalibrationByPositionDTO> mergedMap = new HashMap<>();
+        for (Map<String, Object> entry : aldyList) {
+            String org = (String) entry.get("name_");
+            int count = ((Number) entry.get("value")).intValue();
+            EquipCalibrationByPositionDTO dto = mergedMap.getOrDefault(org, new EquipCalibrationByPositionDTO());
+            dto.setOrg(org);
+            dto.setNumW(count);
+            mergedMap.put(org, dto);
+        }
+        for (Map<String, Object> entry : toDoList) {
+            String org = (String) entry.get("name_");
+            int count = ((Number) entry.get("value")).intValue();
+            EquipCalibrationByPositionDTO dto = mergedMap.getOrDefault(org, new EquipCalibrationByPositionDTO());
+            dto.setOrg(org);
+            dto.setNumJ(count);
+            mergedMap.put(org, dto);
+        }
+        List<EquipCalibrationByPositionDTO> mergedList = new ArrayList<>(mergedMap.values());
+        return mergedList;
+    }
 
-        return null;
+    private List<EquipMaintenanceDTO> getEquipMaintenanceByDept(){
+        String sql = "SELECT p.name_,q.bian_zhi_bu_men_,COUNT(bian_zhi_bu_men_)as value from " +
+                "(SELECT name_,id_ from ibps_party_entity WHERE path_ like '%%%s%%' and DEPTH_>=3) p " +
+                "left join " +
+                "(SELECT bian_zhi_bu_men_ from t_mjsbwhbyjlby WHERE shi_fou_guo_shen_='%s' and di_dian_='%s') q  " +
+                " on q.bian_zhi_bu_men_=p.id_ GROUP BY p.id_ ";
+        String finishSql = String.format(sql,getDiDian(),"已完成",getDiDian());
+        String toDoSql = String.format(sql,getDiDian(),"待处理",getDiDian());
+        List<Map<String, Object>> aldyList = (List<Map<String, Object>>) commonDao.query(finishSql);
+        List<Map<String, Object>> toDoList = (List<Map<String, Object>>) commonDao.query(toDoSql);
+        Map<String, EquipMaintenanceDTO> mergedMap = new HashMap<>();
+        for (Map<String, Object> entry : aldyList) {
+            String org = (String) entry.get("name_");
+            int count = ((Number) entry.get("value")).intValue();
+            EquipMaintenanceDTO dto = mergedMap.getOrDefault(org, new EquipMaintenanceDTO());
+            dto.setOrg(org);
+            dto.setNumC(count);
+            mergedMap.put(org, dto);
+        }
+        for (Map<String, Object> entry : toDoList) {
+            String org = (String) entry.get("name_");
+            int count = ((Number) entry.get("value")).intValue();
+            EquipMaintenanceDTO dto = mergedMap.getOrDefault(org, new EquipMaintenanceDTO());
+            dto.setOrg(org);
+            dto.setNumP(count);
+            mergedMap.put(org, dto);
+        }
+        List<EquipMaintenanceDTO> mergedList = new ArrayList<>(mergedMap.values());
+        return mergedList;
     }
 
     private List<List<String>> getEquipScrapList(){