|  |  | 
 |  |  | import com.moral.api.pojo.vo.file.FileVo; | 
 |  |  | import com.moral.api.service.AllocationService; | 
 |  |  | import com.moral.api.service.FileTableService; | 
 |  |  | import com.moral.api.service.ResponsibilityUnitService; | 
 |  |  | import com.moral.api.service.SysAreaService; | 
 |  |  | import com.moral.api.service.SysDictDataService; | 
 |  |  | import com.moral.constant.Constants; | 
 |  |  | 
 |  |  |     private FileTableService fileTableService; | 
 |  |  |     @Autowired | 
 |  |  |     private AllocationExtensionService allocationExtensionService; | 
 |  |  |     @Autowired | 
 |  |  |     private ResponsibilityUnitService responsibilityUnitService; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据字典类型获取字典数据 | 
 |  |  | 
 |  |  |     public Map<String, Object> selectUnitView(Map<String, Object> map) { | 
 |  |  |         QueryWrapper<Allocation> wrapper = new QueryWrapper<>(); | 
 |  |  |         //获取用户信息 | 
 |  |  | //        Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); | 
 |  |  | //        Object unitId = userInfo.get("unitId"); | 
 |  |  |         Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); | 
 |  |  |         Object unitId = userInfo.get("unitId"); | 
 |  |  |         Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); | 
 |  |  |         Integer orgId = (Integer) orgInfo.get("id"); | 
 |  |  | //        Integer unitId= 17; | 
 |  |  |         if (ObjectUtils.isEmpty(unitId)){ | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Integer unitId= 17; | 
 |  |  |         if (!ObjectUtils.isEmpty(unitId)){ | 
 |  |  |             ResponsibilityUnit responsibilityUnit1 = responsibilityUnitMapper.selectById(unitId); | 
 |  |  |             Integer areaCode = responsibilityUnit1.getAreaCode(); | 
 |  |  |             if (areaCode<999999){ | 
 |  |  |                 QueryWrapper<ResponsibilityUnit> wrapper1 = new QueryWrapper<>(); | 
 |  |  |                 wrapper1.eq("parent_code",areaCode); | 
 |  |  |                 List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitMapper.selectList(wrapper1); | 
 |  |  |         if (!ObjectUtils.isEmpty(map.get("unitId"))){ | 
 |  |  |             wrapper.in("unit_id",map.get("unitId").toString()); | 
 |  |  |         }else { | 
 |  |  |             if (orgId!=24){ | 
 |  |  |                 ResponsibilityUnit responsibilityUnit1 = responsibilityUnitMapper.selectById(Integer.parseInt(unitId.toString())); | 
 |  |  |                 Integer areaCode = responsibilityUnit1.getAreaCode(); | 
 |  |  |                 List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitService.selectUnit(areaCode); | 
 |  |  |                 if (ObjectUtils.isEmpty(responsibilityUnits)){ | 
 |  |  |                     return null; | 
 |  |  |                     List<ResponsibilityUnit> responsibilityUnits1 = responsibilityUnitService.selectAreaUnit(areaCode); | 
 |  |  |                     Map<Integer, List<ResponsibilityUnit>> collect = responsibilityUnits1.stream().collect(Collectors.groupingBy(o -> o.getUnitId())); | 
 |  |  |                     List<Integer> collect1 = collect.keySet().stream().collect(Collectors.toList()); | 
 |  |  |                     wrapper.in("unit_id",collect1); | 
 |  |  |                 }else { | 
 |  |  |                     Map<Integer, List<ResponsibilityUnit>> collect = responsibilityUnits.stream().collect(Collectors.groupingBy(o -> o.getUnitId())); | 
 |  |  |                     List<Integer> collect1 = collect.keySet().stream().collect(Collectors.toList()); | 
 |  |  |                     wrapper.in("unit_id",collect1); | 
 |  |  |                 } | 
 |  |  |                 Map<Integer, List<ResponsibilityUnit>> collect = responsibilityUnits.stream().collect(Collectors.groupingBy(o -> o.getUnitId())); | 
 |  |  |                 List<Integer> collect1 = collect.keySet().stream().collect(Collectors.toList()); | 
 |  |  |                 wrapper.in("unit_id",collect1); | 
 |  |  |             }else { | 
 |  |  |                 wrapper.eq("unit_id",unitId); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         HashMap<String, Object> rsMap = new HashMap<>(); | 
 |  |  |         HashMap<String, Object> polluteMap = new HashMap<>(); | 
 |  |  | //        HashMap<String, Object> polluteMap = new HashMap<>(); | 
 |  |  |         ArrayList<Map<String, Object>> polluteArrayList = new ArrayList<>(); | 
 |  |  |         ArrayList<Map<String, Object>> escalationTypeList = new ArrayList<>(); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         ArrayList<AllocationUnitViewDto> allocationUnitViewDtos = new ArrayList<>(); | 
 |  |  |  | 
 |  |  |         Object number1 = map.get("number"); | 
 |  |  | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         if (!ObjectUtils.isEmpty(number1)){ | 
 |  |  |             String s = number1.toString(); | 
 |  |  |             String s = "-"+number1; | 
 |  |  |             //当前时间的 | 
 |  |  |             endTime = DateUtils.getCurDateTime(); | 
 |  |  |             if (s.equals("-1")){ | 
 |  |  | 
 |  |  |                  unComplete++; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         //根据上报类型分类 | 
 |  |  |         Map<Integer, List<Allocation>> escalationTypeMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getEscalationType())); | 
 |  |  |         Set<Integer> escalationTypes = escalationTypeMap.keySet(); | 
 |  |  |         for (Integer escalationType : escalationTypes) { | 
 |  |  |             List<Allocation> allocations1 = escalationTypeMap.get(escalationType); | 
 |  |  |             String value = AllocationEscalationTypeEnum.SELF.value.toString(); | 
 |  |  |             HashMap<String, Object> typeMap = new HashMap<>(); | 
 |  |  |             if (value.equals(escalationType+"")){ | 
 |  |  |                 typeMap.put("name",AllocationEscalationTypeEnum.SELF.name); | 
 |  |  |             }else { | 
 |  |  |                 typeMap.put("name",AllocationEscalationTypeEnum.CHECK.name); | 
 |  |  |             } | 
 |  |  |             typeMap.put("value",allocations1.size()); | 
 |  |  |             escalationTypeList.add(typeMap); | 
 |  |  |         } | 
 |  |  |         //根据污染类型分类 | 
 |  |  |         Map<Integer, List<Allocation>> polluteTypeMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getPolluteType())); | 
 |  |  |         Set<Integer> polluteTypes = polluteTypeMap.keySet(); | 
 |  |  | 
 |  |  |             SysDictData sysDictData = sysDictDataMapper.selectOne(sysDictDataQueryWrapper); | 
 |  |  |             typeMap.put("name",sysDictData.getDataValue()); | 
 |  |  |             typeMap.put("value",allocations1.size()); | 
 |  |  |             polluteMap.put("polluteType",typeMap); | 
 |  |  | //            polluteMap.put("polluteType",typeMap); | 
 |  |  |             polluteArrayList.add(typeMap); | 
 |  |  |         } | 
 |  |  |         //根据责任单位分类 | 
 |  |  |         Map<Integer, List<Allocation>> unitMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getUnitId())); | 
 |  |  | 
 |  |  |             int deduction=0; | 
 |  |  |             int number=0; | 
 |  |  |             for (Allocation allocation : allocations1) { | 
 |  |  |  | 
 |  |  |                 Date dateOfDay = DateUtils.getDateOfDay(allocation.getEscalationTime(), allocation.getChangeDay()); | 
 |  |  |                 Date date = new Date(); | 
 |  |  |                 String state = allocation.getState()+""; | 
 |  |  |                 boolean timeBefor = DateUtils.isTimeBefor(date, dateOfDay); | 
 |  |  |                 if (timeBefor && !state.equals("40") && !state.equals("50")){ | 
 |  |  |                     //逾期次数 | 
 |  |  |                     overdue++; | 
 |  |  |                 Integer changeType = allocation.getChangeType(); | 
 |  |  |                 String value = ChangeEnum.DEADLINE.value.toString(); | 
 |  |  |                 if (value.equals(changeType+"")){ | 
 |  |  |                     Date dateOfDay = DateUtils.getDateOfDay(allocation.getEscalationTime(), allocation.getChangeDay()); | 
 |  |  |                     Date date = new Date(); | 
 |  |  |                     boolean timeBefor = DateUtils.isTimeBefor(date, dateOfDay); | 
 |  |  |                     if (timeBefor && !state.equals("40") && !state.equals("50")){ | 
 |  |  |                         //逾期次数 | 
 |  |  |                         overdue++; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 if (state.equals("40")||state.equals("50")){ | 
 |  |  |                     if (allocation.getCheckScore()>0){ | 
 |  |  | 
 |  |  |             allocationUnitViewDtos.add(allocationUnitViewDto); | 
 |  |  |         } | 
 |  |  |         rsMap.put("unitView",allocationUnitViewDtos); | 
 |  |  |         //总数 | 
 |  |  |         rsMap.put("total",allocations.size()); | 
 |  |  |         //完成数 | 
 |  |  |         rsMap.put("complete",complete); | 
 |  |  |         //未完成数 | 
 |  |  |         rsMap.put("unComplete",unComplete); | 
 |  |  |         //预期 | 
 |  |  |         rsMap.put("overdue",overdue); | 
 |  |  |         rsMap.put("polluteType",polluteMap); | 
 |  |  |         //污染类型 | 
 |  |  |         rsMap.put("polluteType",polluteArrayList); | 
 |  |  |         //上报类型 | 
 |  |  |         rsMap.put("escalationType",escalationTypeList); | 
 |  |  |         return rsMap; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public List<Map<String, Object>> unitExel(Map<String, Object> map) { | 
 |  |  |         return null; | 
 |  |  |         QueryWrapper<Allocation> wrapper = new QueryWrapper<>(); | 
 |  |  |         //获取用户信息 | 
 |  |  |         Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); | 
 |  |  |         Object unitId = userInfo.get("unitId"); | 
 |  |  |         Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); | 
 |  |  |         Integer orgId = (Integer) orgInfo.get("id"); | 
 |  |  |  | 
 |  |  |         if (ObjectUtils.isEmpty(unitId)){ | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         if (orgId!=24){ | 
 |  |  |             ResponsibilityUnit responsibilityUnit1 = responsibilityUnitMapper.selectById(Integer.parseInt(unitId.toString())); | 
 |  |  |             Integer areaCode = responsibilityUnit1.getAreaCode(); | 
 |  |  |             List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitService.selectUnit(areaCode); | 
 |  |  |             if (ObjectUtils.isEmpty(responsibilityUnits)){ | 
 |  |  |                 List<ResponsibilityUnit> responsibilityUnits1 = responsibilityUnitService.selectAreaUnit(areaCode); | 
 |  |  |                 Map<Integer, List<ResponsibilityUnit>> collect = responsibilityUnits1.stream().collect(Collectors.groupingBy(o -> o.getUnitId())); | 
 |  |  |                 List<Integer> collect1 = collect.keySet().stream().collect(Collectors.toList()); | 
 |  |  |                 wrapper.in("unit_id",collect1); | 
 |  |  |             }else { | 
 |  |  |                 Map<Integer, List<ResponsibilityUnit>> collect = responsibilityUnits.stream().collect(Collectors.groupingBy(o -> o.getUnitId())); | 
 |  |  |                 List<Integer> collect1 = collect.keySet().stream().collect(Collectors.toList()); | 
 |  |  |                 wrapper.in("unit_id",collect1); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         ArrayList<Map<String, Object>> rsMap = new ArrayList<>(); | 
 |  |  |         Object number1 = map.get("number"); | 
 |  |  |         String startTime=null; | 
 |  |  |         String endTime=null; | 
 |  |  |         if (!ObjectUtils.isEmpty(map.get("startTime")) || !ObjectUtils.isEmpty(map.get("startTime"))){ | 
 |  |  |             startTime = map.get("startTime").toString(); | 
 |  |  |             endTime = map.get("endTime").toString(); | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         if (!ObjectUtils.isEmpty(number1)){ | 
 |  |  |             String s = "-"+number1; | 
 |  |  |             //当前时间的 | 
 |  |  |             endTime = DateUtils.getCurDateTime(); | 
 |  |  |             if (s.equals("-1")){ | 
 |  |  |                 //当前时间的 | 
 |  |  |  | 
 |  |  |                 startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); | 
 |  |  |             } | 
 |  |  |             if (s.equals("-2")){ | 
 |  |  |                 //当前时间的 | 
 |  |  |                 startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); | 
 |  |  |             } | 
 |  |  |             if (s.equals("-3")){ | 
 |  |  |                 startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); | 
 |  |  |             } | 
 |  |  |             if (s.equals("-6")){ | 
 |  |  |                 startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); | 
 |  |  |             } | 
 |  |  |             if (s.equals("-12")){ | 
 |  |  |                 startTime = DateUtils.getDateStringOfMon(Integer.parseInt(s), DateUtils.yyyy_MM_dd_HH_mm_ss_EN); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         wrapper.between("escalation_time",startTime,endTime); | 
 |  |  |         wrapper.eq("is_del",0); | 
 |  |  |         wrapper.eq("is_invalid",0); | 
 |  |  |         List<Allocation> allocations = allocationMapper.selectList(wrapper); | 
 |  |  |         if (ObjectUtils.isEmpty(allocations)){ | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |         //根据责任单位分类 | 
 |  |  |         Map<Integer, List<Allocation>> unitMap = allocations.stream().collect(Collectors.groupingBy(o -> o.getUnitId())); | 
 |  |  |         Set<Integer> unitList = unitMap.keySet(); | 
 |  |  |         for (Integer integer : unitList) { | 
 |  |  | //            HashMap<String, Object> map1 = new HashMap<>(); | 
 |  |  |             LinkedHashMap<String, Object> map1 = new LinkedHashMap<>(); | 
 |  |  |             //获取城市 | 
 |  |  |             ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(integer); | 
 |  |  |  | 
 |  |  |             SysArea areaByCode = sysAreaService.getAreaByCode(responsibilityUnit.getAreaCode()); | 
 |  |  |  | 
 |  |  |             List<Allocation> allocations1 = unitMap.get(integer); | 
 |  |  |  | 
 |  |  |             //加分 | 
 |  |  |             int marks=0; | 
 |  |  |             //减分 | 
 |  |  |             int deduction=0; | 
 |  |  |             int number=0; | 
 |  |  |             for (Allocation allocation : allocations1) { | 
 |  |  |                 String state = allocation.getState()+""; | 
 |  |  |                 if (state.equals("40")||state.equals("50")){ | 
 |  |  |                     if (allocation.getCheckScore()>0){ | 
 |  |  |                         marks = marks + allocation.getCheckScore(); | 
 |  |  |                     }else { | 
 |  |  |                         deduction = deduction + allocation.getCheckScore(); | 
 |  |  |                     } | 
 |  |  |                     number++; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             int total = allocations1.size(); | 
 |  |  |             String rate = (number * 100 /total)+"%"; | 
 |  |  |  | 
 |  |  |             map1.put("责任单位",areaByCode.getAreaName()); | 
 |  |  |             map1.put("总工单",total); | 
 |  |  |             map1.put("完成数",number); | 
 |  |  |             map1.put("未完成数",total-number); | 
 |  |  |             map1.put("完成率",rate); | 
 |  |  |             map1.put("扣分",deduction); | 
 |  |  |             map1.put("加分",marks); | 
 |  |  |             map1.put("总得分",marks+deduction); | 
 |  |  |             rsMap.add(map1); | 
 |  |  |         } | 
 |  |  |         return rsMap; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override |