1 年之前
父节点
当前提交
55c0de2b3f

+ 6 - 0
platform-dao/src/main/resources/mapper/sb/SbInfoMapper.xml

@@ -860,6 +860,12 @@ sb.scrap_user_name,sb.repair_dept_id,sb.sort_num
             <if test="typeId!=null">
                 and type_id = #{typeId}
             </if>
+            <if test="typeList!=null and typeList.size>0">
+                and type_id in
+                <foreach collection="typeList" close=")" separator="," open="(" item="item">
+                    #{item}
+                </foreach>
+            </if>
         </where>
 
         GROUP BY type_id

+ 4 - 3
platform-dao/src/main/resources/mapper/sb/SbTypeMapper.xml

@@ -101,9 +101,10 @@
 
     <select id="getSbNums" resultType="com.platform.dao.vo.report.SbInfoTypeReportVO2"
     parameterType="com.platform.dao.dto.sb.SbTypeDTO">
-    select count(1) as totalNum,type2.name as typeName,type.id as id
-    from t_sb_type type inner join t_sb_info info on
-    type.id = info.type_id left join t_sb_type type2 on type.parent_id = type2.id
+    select count(1) as totalNum,type.name as typeName,type.id as id
+    from t_sb_type type inner join t_sb_info info
+    on
+    type.id = info.type_id
     <where>
     <if test="idList!=null and idList.size>0">
         and type.id in

+ 1 - 1
platform-rest/src/main/java/com/platform/rest/controller/report/SbInfoReportController.java

@@ -60,7 +60,7 @@ public class SbInfoReportController {
     @GetMapping("/export")
     @SysLog("类型数量统计报表导出")
     public void export(HttpServletResponse response, SbInfoDTO dto, @RequestParam(required = false) Integer year, @RequestParam(required = false) LocalDate startMonth, @RequestParam(required = false) LocalDate endMonth) {
-        List<SbInfoTypeReportVO> list = sbInfoService.getTypeReport(dto, year, startMonth, endMonth);
+        List<SbInfoTypeReportVO> list = sbInfoService.getTypeReport2(dto, year, startMonth, endMonth);
         String fileName = "类型占比";
         ExcelUtil.exportResponseDict(response, SbInfoTypeReportVO.class, list, fileName);
     }

+ 20 - 6
platform-rest/src/main/java/com/platform/rest/controller/sb/SbInfoController.java

@@ -557,17 +557,31 @@ public class SbInfoController {
     @SysLog("设备基础信息导出")
     @PreAuthorize("@pms.hasPermission('sb-infos-export')")
     public void exportSbDetail(HttpServletResponse response, SbInfoDTO sbInfoDTO) {
-        SbType type= sbTypeMapper.selectById(sbInfoDTO.getTypeId());
-        List<SbInfoVO> list = new ArrayList<>();
-        if (type!=null&&type.getParentId()!=null) {
+        if (sbInfoDTO.getTypeId()!=null&&sbInfoDTO.getTypeId().equals("特种设备")){
+            SbInfoDTO sbInfoDTO1 = new SbInfoDTO();
+            sbInfoDTO1.setUseType(5);
+            List<SbInfoVO> sbInfoVOS = sbInfoMapper.selectVOList(sbInfoDTO1);
+            ExcelUtil.exportResponseDict(response, ExportSbInfoDetailVO.class, BeanConverterUtil.copyListProperties(sbInfoVOS, ExportSbInfoDetailVO.class), "设备基础信息");
+        }else {
+            SbType type = sbTypeMapper.selectById(sbInfoDTO.getTypeId());
+            List<SbInfoVO> list = new ArrayList<>();
+//        if (type!=null&&type.getParentId()!=null) {
             List<String> ids = new ArrayList<>();
-            ids.add(type.getParentId());
+//            ids.add(type.getParentId());
+            ids.add(sbInfoDTO.getTypeId());
             List<String> queryIds = getSbIds(ids);
+            for (int i = 0; i < queryIds.size(); i++) {
+                if (queryIds.get(i) == null || queryIds.get(i).equals("")) {
+                    queryIds.remove(i);
+                    i--;
+                }
+            }
             sbInfoDTO = new SbInfoDTO();
             sbInfoDTO.setTypeList(queryIds);
             list = sbInfoService.selectVOList(sbInfoDTO);
+//        }
+            ExcelUtil.exportResponseDict(response, ExportSbInfoDetailVO.class, BeanConverterUtil.copyListProperties(list, ExportSbInfoDetailVO.class), "设备基础信息");
         }
-        ExcelUtil.exportResponseDict(response, ExportSbInfoDetailVO.class, BeanConverterUtil.copyListProperties(list, ExportSbInfoDetailVO.class), "设备基础信息");
     }
 
     private List<String> getSbIds(List<String> ids){
@@ -578,7 +592,7 @@ public class SbInfoController {
             if (childIds!=null&&childIds.size()>0){
                getSbIds(childIds);
             }else {
-                return null;
+                return ids;
             }
         }
         return ids;

+ 2 - 0
platform-service/src/main/java/com/platform/service/sb/SbInfoService.java

@@ -342,6 +342,8 @@ public interface SbInfoService extends IBaseService<SbInfo, SbInfoDTO> {
 
     List<SbInfoTypeReportVO> getTypeReport(SbInfoDTO dto, Integer year, LocalDate startMonth, LocalDate endMonth);
 
+    List<SbInfoTypeReportVO> getTypeReport2(SbInfoDTO dto, Integer year, LocalDate startMonth, LocalDate endMonth);
+
     /**
      * 获取设备对应的维修专业
      * @param id

+ 79 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

@@ -735,6 +735,15 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
                 reportVO2s.setTypeName(name);
                 sbInfoTypeReportVO2s.add(reportVO2s);
             }
+
+                for (SbTypeVO vo:sbTypeVOS){
+                    for (SbInfoTypeReportVO2 vo2:sbInfoTypeReportVO2s){
+                        if (vo2.getTypeName()!=null&&vo2.getTypeName().equals(vo.getName())){
+                            vo2.setId(vo.getId());
+                            break;
+                        }
+                }
+            }
             //再将特种设备加进来
             model = new SbTypeDTO();
             model.setUseType(5);
@@ -769,6 +778,15 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
                 model = new SbTypeDTO();
                 model.setIdList(typeMap.get(name));
                 SbInfoTypeReportVO2 reportVO2s = sbTypeMapper.getSbNums(model);
+                List<String> ids = result.stream().map(SbTypeVO::getId).collect(Collectors.toList());
+                for (String idStr:typeMap.get(name)){
+                    for (String reId:ids){
+                        if (idStr.equals(reId)){
+                            reportVO2s.setId(idStr);
+                            break;
+                        }
+                    }
+                }
                 reportVO2s.setTypeName(name);
                 sbInfoTypeReportVO2s.add(reportVO2s);
             }
@@ -3045,6 +3063,67 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
         }
         return result;
     }
+    private List<String> getSbIds(List<String> ids){
+
+        if (ids!=null&&ids.size()>0) {
+            List<String> childIds = sbInfoMapper.getChildIds(ids);
+            ids.addAll(childIds);
+            if (childIds!=null&&childIds.size()>0){
+                getSbIds(childIds);
+            }else {
+                return ids;
+            }
+        }
+        return ids;
+    }
+
+    @Override
+    public List<SbInfoTypeReportVO> getTypeReport2(SbInfoDTO dto, Integer year, LocalDate startMonth, LocalDate endMonth) {
+        if (dto.getTypeId()!=null&&"特种设备".equals(dto.getId())){
+            SbInfo info = new SbInfo();
+            info.setUseType(5);
+            int count = mapper.selectCount(info);
+            List<SbInfoTypeReportVO> sbInfoTypeReportVOS = new ArrayList<>();
+            SbInfoTypeReportVO vo = new SbInfoTypeReportVO();
+            vo.setTypeName("特种设备");
+            vo.setTotalNum(count);
+            vo.setRate(BigDecimalUtil.div(count * 100, count, 2));
+            sbInfoTypeReportVOS.add(vo);
+            return sbInfoTypeReportVOS;
+        }
+        List<String> typeIds = new ArrayList<>();
+        typeIds.add(dto.getTypeId());
+        List<String> queryIds = getSbIds(typeIds);
+        dto.setTypeId(null);
+        dto.setTypeList(queryIds);
+        List<Map<String, String>> countMap = mapper.selectCountMap(dto);
+
+        SbTypeDTO sbTypeDTO = new SbTypeDTO();
+        sbTypeDTO.setIdList(queryIds);
+        Weekend<SbType> weekend = new Weekend<>(SbType.class);
+        WeekendCriteria<SbType,Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(SbType::getId,queryIds);
+        List<SbType> typeList = sbTypeMapper.selectByExample(weekend);
+//        List<SbType> typeList =BeanConverterUtil.copyListProperties( sbTypeMapper.selectVOList(sbTypeDTO),SbType.class);
+        List<SbInfoTypeReportVO> result = new ArrayList<>();
+        Integer totalNum = 0;
+        for (Map<String, String> map : countMap) {
+            SbInfoTypeReportVO vo = new SbInfoTypeReportVO();
+            vo.setTotalNum(Integer.valueOf(String.valueOf(map.get("num"))));
+            totalNum = totalNum + vo.getTotalNum();
+            for (SbType sbType : typeList) {
+                if (map.get("typeId")!=null && map.get("typeId").equals(sbType.getId())) {
+                    vo.setTypeName(sbType.getName());
+                    break;
+                }
+            }
+            result.add(vo);
+        }
+        for (SbInfoTypeReportVO sbInfoTypeReportVO : result) {
+            sbInfoTypeReportVO.setRate(BigDecimalUtil.div(sbInfoTypeReportVO.getTotalNum() * 100, totalNum, 2));
+        }
+        return result;
+    }
 
     /**
      * 静设备 1  动设备 2  电气 3  仪表 4