package com.sercurityControl.proteam.service.impl; import com.google.common.collect.Maps; import com.securityControl.common.core.utils.aes.DateTimeHelper; import com.securityControl.common.core.utils.aes.ListHelper; import com.securityControl.common.core.utils.aes.StringHelper; import com.sercurityControl.proteam.domain.PersonNum; import com.sercurityControl.proteam.domain.dto.LoginDto; import com.sercurityControl.proteam.domain.vo.MapsVo; import com.sercurityControl.proteam.domain.vo.WeekPlanVo; import com.sercurityControl.proteam.dutyTask.domain.ClassMettingCheckVo; import com.sercurityControl.proteam.dutyTask.domain.NoticeVoiVo; import com.sercurityControl.proteam.mapper.SupervisorMapper; import com.sercurityControl.proteam.service.SupervisorService; import com.sercurityControl.proteam.util.ListEntityUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.IntSummaryStatistics; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 值长 页面 业务处理层 * */ @Service @Slf4j public class SupervisorServiceImpl implements SupervisorService { @Autowired private SupervisorMapper mapper; @Override public Map getProMaps(LoginDto loginDto) { Map map= Maps.newHashMap(); try{ List allProCode=mapper.getAllProNum(loginDto);//查询全部工程 List distinctNumbers=allProCode.stream().distinct().collect(Collectors.toList()); map.put("allNum",allProCode.size()); //查询当日 有作业工程 List sgProNum=mapper.getSgProNum(distinctNumbers); map.put("sgNum",sgProNum.size());//有施工的工程数量 loginDto.setType("停工"); List tgNum=mapper.getAllProNum(loginDto);//查询全部工程 int wsgNum=allProCode.size()-sgProNum.size()-tgNum.size(); map.put("wsgNum",wsgNum);//今日未施工的工程数量 map.put("TgNum",tgNum.size());//停工+投产数量 map.put("code","200"); map.put("msg","success"); }catch (Exception e){ map.put("allNum",0); map.put("sgNum",0); map.put("wsgNum",0); map.put("TgNum",0); map.put("msg",e.toString()); map.put("code","201"); log.error(e.toString(),e); } return map; } @Override public Map getWeekMaps(LoginDto loginDto) { switch (loginDto.getType()){ case "1": return weekPlan(loginDto); case "2": return planList(loginDto); case "3": return AllWeekPlan(loginDto); default: return weekPlan(loginDto); } } /** * 值班任务统计查询 * @param loginDto * @return */ @Override public Map getDutyTaskMaps(LoginDto loginDto) { Map map= Maps.newHashMap(); try{ //List list=mapper.getDutyTaskMaps(loginDto); int allNum=mapper.getAllTaskNum(loginDto); loginDto.setType("1"); int xsNum=mapper.getAllTaskNum(loginDto); int wxsNum=allNum-xsNum; // IntSummaryStatistics allData= list.stream().collect(Collectors.summarizingInt(ClassMettingCheckVo::getNum)); // IntSummaryStatistics wxsData= list.stream().filter(vo ->"0".equals(vo.getState())).collect(Collectors.summarizingInt(ClassMettingCheckVo::getNum)); // IntSummaryStatistics xsData= list.stream().filter(vo ->"1".equals(vo.getState())).collect(Collectors.summarizingInt(ClassMettingCheckVo::getNum)); loginDto.setType(null); Integer wzNum=mapper.getAllWzNum(loginDto); loginDto.setType("严重违章"); Integer yzwz=mapper.getAllWzNum(loginDto); loginDto.setType("一般违章"); Integer ybwz=mapper.getAllWzNum(loginDto); // List mapsVos=mapper.getWzList(loginDto); // List yzwz=mapsVos.stream().filter(vo ->"严重违章".equals(vo.getStatus())).collect(Collectors.toList()); // List ybwz=mapsVos.stream().filter(vo ->"一般违章".equals(vo.getStatus())).collect(Collectors.toList()); int num=mapper.getZgNum(loginDto); // int allNum=mapsVos.size(); map.put("YZWZ",yzwz); map.put("YBWZ",ybwz); map.put("XFWZ",wzNum); map.put("YZG",num); map.put("allNum",allNum); map.put("noXs",wxsNum); map.put("xs",xsNum); map.put("code","200"); map.put("msg","success"); }catch (Exception e){ map.put("allNum",0); map.put("noXs",0); map.put("xs",0); map.put("msg",e.toString()); map.put("code","201"); log.error(e.toString()); } return map; } /** * 值班进度 统计查询 * @param loginDto * @return */ @Override public Map getDutySchedule(LoginDto loginDto) { Map map= Maps.newHashMap(); try{ List userList=new ArrayList<>(); List taskList=new ArrayList<>(); List xsList=new ArrayList<>(); List wzList=new ArrayList<>(); List list=mapper.getUserList(loginDto); list.forEach(mapsVo -> { if(StringHelper.isNotEmpty(mapsVo.getName())){ userList.add(mapsVo.getName()); }else{ userList.add(mapsVo.getStatus()); } int nums=mapper.getTaskNum(mapsVo.getUserId()); taskList.add(nums+""); int num=mapper.getWzNumByUser(mapsVo.getUserId()); int xsNum=mapper.getXsNum(mapsVo.getUserId()); xsList.add(xsNum); wzList.add(num); }); map.put("code",200); map.put("msg","success"); map.put("userList",userList); map.put("taskList",taskList); map.put("xsList",xsList); map.put("wzList",wzList); }catch (Exception e){ map.put("msg",e.toString()); map.put("code","201"); log.error(e.toString()); } return map; } /** * * @param loginDto * @return */ @Override public Map getViolationAudit(LoginDto loginDto) { Map map= Maps.newHashMap(); try{ List list=mapper.getViolationAudit(loginDto); map.put("code",200); map.put("data",list); map.put("msg","success"); }catch (Exception e){ map.put("msg",e.toString()); map.put("code","201"); log.error(e.toString()); } return map; } @Override public Map getPeopleMaps(LoginDto dto) { Map map= Maps.newHashMap(); try{ PersonNum person=new PersonNum(); person.setIsSup(dto.getIsSup()); person.setOrgId(dto.getOrgId()); List list = mapper.getClassPeopleNum(person); List bzgg= ListEntityUtil.getPeopleTypeList(1); List tzzy= ListEntityUtil.getPeopleTypeList(2); int allNUM=0;//全部人数; int teamNum = 0;//班组骨干 int tzzyNum = 0;//特种作业 int ptsgNum = 0;//普通施工 for ( PersonNum personNum:list) { if(personNum!=null){ String personType = personNum.getPersonType(); if(bzgg.contains(personType)){//班组骨干 teamNum += personNum.getPersonNum(); }else if(tzzy.contains(personType)){//特种作业 tzzyNum += personNum.getPersonNum(); }else{//其他 ptsgNum += personNum.getPersonNum(); } } } allNUM=teamNum+tzzyNum+ptsgNum; map.put("bzgg",teamNum); map.put("ttzy",tzzyNum); map.put("ptzy",ptsgNum); map.put("allNUM",allNUM); map.put("code",200); map.put("msg","success"); }catch (Exception e){ map.put("bzgg",0); map.put("ttzy",0); map.put("ptzy",0); map.put("allNUM",0); map.put("msg",e.toString()); map.put("code","201"); log.error(e.toString()); log.error(e.toString(),e); } return map; } /** * 日计划统计查询 * @param loginDto * @return */ @Override public Map getDayPlanMaps(LoginDto loginDto) { switch (loginDto.getType()){ case "1": return getDayPlan(loginDto); case "2": return getDayPlanList(loginDto); default: return getDayPlan(loginDto); } } /** * 日计划统计查询 * @param loginDto * @return */ public Map getDayPlan(LoginDto loginDto) { Map map= Maps.newHashMap(); try{ List list=mapper.getTicketNum(loginDto); map.put("allNum",list.get(0));//总数量 map.put("yzxNum",list.get(1));//已执行 map.put("wzxNum",list.get(2));//未执行 map.put("HsNum",list.get(3));//核实 map.put("WhsNum",list.get(4));//未核实 map.put("code",200); map.put("msg","success"); }catch (Exception e){ map.put("allNum",0);//总数量 map.put("yzxNum",0);//已执行 map.put("wzxNum",0);//未执行 map.put("HsNum",0);//核实 map.put("WhsNum",0);//未核实 map.put("msg",e.toString()); map.put("code","201"); log.error(e.toString()); } return map; } /** * 日计划统计查询 * @param loginDto * @return */ public Map getDayPlanList(LoginDto loginDto) { Map map= Maps.newHashMap(); try{ List list=mapper.getDayPlanList(loginDto); List cityList=new ArrayList<>(); List planList=new ArrayList<>(); List dayList=new ArrayList<>(); list.forEach(mapsVo -> { cityList.add(mapsVo.getName()); planList.add(mapsVo.getTotalNum()); dayList.add(mapsVo.getExecutedNum()); }); map.put("cityList",cityList); map.put("planList",planList); map.put("dayList",dayList); map.put("code",200); map.put("msg","success"); }catch (Exception e){ map.put("cityList",new ArrayList<>()); map.put("planList",0); map.put("dayList",0); map.put("msg",e.toString()); map.put("code","201"); } return map; } /** * 周计划统计 * @param loginDto * @return */ private Map weekPlan(LoginDto loginDto) { Map map= Maps.newHashMap(); try{ String time= DateTimeHelper.getNowDay(); String startWeek= DateTimeHelper.getWeekStartOrEndTime(time,true);//本周开始时间 String endWeek= DateTimeHelper.getWeekStartOrEndTime(time,false);//本周结束时间 loginDto.setStartTime(startWeek); loginDto.setEndTime(endWeek); Map maps = mapper.getWeekRiskNumByWeekTime(loginDto); List list=new ArrayList<>(); list.add(maps.get("twoRisk").toString()); list.add(maps.get("threeRisk").toString()); list.add(maps.get("foureRisk").toString()); list.add(maps.get("fiveRisk").toString()); map.put("data",list); map.put("code","200"); map.put("msg","success"); }catch (Exception e){ map.put("data",new Integer[]{0,0,0,0}); map.put("msg",e.toString()); map.put("code","201"); log.error(e.toString(),e); } return map; } /** * 周计划趋势 * @param loginDto * @return */ private Map planList(LoginDto loginDto) { Map map= Maps.newHashMap(); try{ List times=new ArrayList<>(); List twoList=new ArrayList<>(); List threeList=new ArrayList<>(); List timeList=DateTimeHelper.getWeekList(); timeList.forEach(time->{ String startWeek= DateTimeHelper.getWeekStartOrEndTime(time,true);//本周开始时间 String endWeek= DateTimeHelper.getWeekStartOrEndTime(time,false);//本周结束时间 loginDto.setStartTime(startWeek); loginDto.setEndTime(endWeek); List list=mapper.planList(loginDto); Map twoWeek=list.stream().filter(week->"二级".equals(week.getRiskLevel())).collect(Collectors.toMap(WeekPlanVo::getRiskLevel, WeekPlanVo::getNum)); Map three=list.stream().filter(week->"三级".equals(week.getRiskLevel())).collect(Collectors.toMap(WeekPlanVo::getRiskLevel, WeekPlanVo::getNum)); times.add(DateTimeHelper.getWeekTimes(time)); if(StringHelper.isNotEmpty(twoWeek.get("二级"))){ twoList.add(twoWeek.get("二级")); }else{ twoList.add("0"); } if(StringHelper.isNotEmpty(three.get("三级"))){ threeList.add(three.get("三级")); }else{ threeList.add("0"); } }); map.put("times",times); map.put("twoList",twoList); map.put("threeList",threeList); map.put("code","200"); map.put("msg","success"); }catch (Exception e){ map.put("msg",e.toString()); map.put("code","201"); log.error(e.toString(),e); } return map; } /** * 全省周计划 * @param loginDto * @return */ private Map AllWeekPlan(LoginDto loginDto) { Map map= Maps.newHashMap(); try{ List twoList=new ArrayList<>(); List threeList=new ArrayList<>(); String time= DateTimeHelper.getNowDay(); String startWeek= DateTimeHelper.getWeekStartOrEndTime(time,true);//本周开始时间 String endWeek= DateTimeHelper.getWeekStartOrEndTime(time,false);//本周结束时间 loginDto.setStartTime(startWeek); loginDto.setEndTime(endWeek); List list=mapper.AllWeekPlan(loginDto); List cityList = list.stream().map(WeekPlanVo::getCityName).distinct().collect(Collectors.toList()); Map twoWeek=list.stream().filter(week->"二级".equals(week.getRiskLevel())).collect(Collectors.toMap(WeekPlanVo::getCityName, WeekPlanVo::getNum)); Map three=list.stream().filter(week->"三级".equals(week.getRiskLevel())).collect(Collectors.toMap(WeekPlanVo::getCityName, WeekPlanVo::getNum)); cityList.forEach(city ->{ if(StringHelper.isNotEmpty(twoWeek.get(city))){ twoList.add(twoWeek.get(city)); }else{ twoList.add("0"); } if(StringHelper.isNotEmpty(three.get(city))){ threeList.add(three.get(city)); }else{ threeList.add("0"); } }); map.put("city",cityList); map.put("twoList",twoList); map.put("threeList",threeList); map.put("code","200"); map.put("msg","success"); }catch (Exception e){ map.put("msg",e.toString()); map.put("code","201"); log.error(e.toString(),e); } return map; } }