|
@@ -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
|