package com.sercurityControl.proteam.service.impl; import com.alibaba.nacos.common.utils.CollectionUtils; import com.github.pagehelper.PageInfo; import com.google.common.collect.Maps; import com.securityControl.common.core.utils.StringUtils; 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.securityControl.common.redis.service.RedisService; import com.sercurityControl.proteam.domain.*; import com.sercurityControl.proteam.domain.dto.WeathQo; import com.sercurityControl.proteam.domain.vo.StatEntity; import com.sercurityControl.proteam.domain.vo.WeekPlanVo; import com.sercurityControl.proteam.dutyTask.domain.TowerVo; import com.sercurityControl.proteam.mapper.HomeDataMapper; import com.sercurityControl.proteam.service.HomeDataService; import lombok.extern.slf4j.Slf4j; import org.bouncycastle.eac.EACException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.cache.CacheProperties; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; @Service @Slf4j public class HomeDataServiceImpl implements HomeDataService { @Autowired private HomeDataMapper mapper; @Resource private RedisService redisService; @Override public ProDataNum getProNum(String orgId, String protType) { //查询在建工程数量 int buildingNum = mapper.getProNum(orgId, protType, null); //查询在施工工程数量 String workDate = DateTimeHelper.getNowDate(); int workingNum = mapper.getProNumByWork(workDate, orgId, protType); //查询在停工程数量 int stopProNum = mapper.getProNum(orgId, protType, "1"); ProDataNum proDataNum = new ProDataNum(); proDataNum.setBuildingNum(buildingNum); proDataNum.setStopProNum(stopProNum); proDataNum.setWorkingNum(workingNum); return proDataNum; } @Override public PageInfo getProList(ProData proData) { if (StringUtils.isNotBlank(proData.getBuildCode())) { String[] buildCodeArr = proData.getBuildCode().split(","); List buildCodeList = Arrays.asList(buildCodeArr); proData.setBuildCodeList(buildCodeList); } List list = mapper.getProList(proData); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } @Override public DayPlanNum getDayPlan(DayPlanNum dayPlanNum) { return mapper.getDayPlan(dayPlanNum); } @Override public Map getWeekRiskNum(WeekRiskData weekRiskData) { Map map= Maps.newHashMap(); List orgList=new ArrayList<>(); List toList=new ArrayList<>(); List thList=new ArrayList<>(); try{ if(StringHelper.isEmpty(weekRiskData.getCurryDay())){ weekRiskData.setCurryDay(DateTimeHelper.getNowDay()); } List list2 = mapper.getWeekPlanDayNum(weekRiskData); for (StatEntity vo:list2) { orgList.add(vo.getName()); toList.add(vo.getNum()); thList.add(vo.getNum2()); } map.put("data",orgList); map.put("data1",toList); map.put("data2",thList); map.put("msg","周风险统计成功data1是二级风险 data2是三级风险"); }catch (Exception e){ map=null; log.error(e.toString(),e); } return map; } /** * 初始化数据 * * @param list */ private List initListData(List list) { for (int i = 0; i < list.size(); i++) { list.set(i, 0); } return list; } @Override public PageInfo getWeekPlanList(WeekRiskData weekRiskData) { // 地市多选切割 if (StringUtils.isNotBlank(weekRiskData.getBuildUnitCode())) { String[] buildUnitCodeArr = weekRiskData.getBuildUnitCode().split(","); List buildUnitCodeList = Arrays.asList(buildUnitCodeArr); weekRiskData.setBuildUnitCodeList(buildUnitCodeList); } if(StringHelper.isEmpty(weekRiskData.getCurryDay())){ weekRiskData.setCurryDay(DateTimeHelper.getNowDay()); } List list = mapper.getWeekPlanListByTime(weekRiskData); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } @Override public List getRiskMap(RiskMapData riskMapData) { List list = mapper.getRiskMap(riskMapData); return list; } @Override public List getWeatherMap() { String weatherDay = DateTimeHelper.getNowDay(); String currentHour = DateTimeHelper.getNowHours(); return mapper.getWeatherMap(weatherDay, currentHour + "时"); } @Override public List getWeatherAlert(String currentDay, String orgId) { return mapper.getWeatherAlert(currentDay, orgId); } @Override public List> getWeatherAlertPlus(WeathQo weathQo) { return mapper.getWeatherAlertPlus(weathQo); } @Override public Map getTicketNumByType(TicketTypeNum ticketTypeNum) { List list = mapper.getTicketNumByType(ticketTypeNum); Map map = new HashMap<>(16); int ticketNumA = 0;//A票数量 int ticketNumB = 0;//B票数量 map.put("two", 0); map.put("three", 0); map.put("four", 0); map.put("five", 0); for (int i = 0; i < list.size(); i++) { TicketTypeNum num = list.get(i); String ticketType = num.getTicketType(); if ("2".equals(ticketType) || "二级".equals(ticketType) || Objects.equals("2级",ticketType)) { map.put("two", num.getRiskNum()); } else if ("3".equals(ticketType) || "三级".equals(ticketType) || Objects.equals("3级",ticketType)) { map.put("three", num.getRiskNum()); } else if ("4".equals(ticketType) || "四级".equals(ticketType) || Objects.equals("4级",ticketType)) { map.put("four", num.getRiskNum()); } else if ("5".equals(ticketType) || "五级".equals(ticketType) || Objects.equals("5级",ticketType)) { map.put("five", num.getRiskNum()); } if ("2".equals(ticketType) || "3".equals(ticketType) || "二级".equals(ticketType) || "三级".equals(ticketType) || Objects.equals("2级",ticketType) || Objects.equals("3级",ticketType)) { ticketNumB += num.getRiskNum(); } else if ("4".equals(ticketType) || "5".equals(ticketType) || "四级".equals(ticketType) || "五级".equals(ticketType) || Objects.equals("4级",ticketType) || Objects.equals("5级",ticketType)) { ticketNumA += num.getRiskNum(); } } map.put("ticketNumA", ticketNumA); map.put("ticketNumB", ticketNumB); return map; } @Override public Map getTicketNumByCicty(TicketCityNum ticketCityNum) { if (ticketCityNum == null) { return null; } int dayType = ticketCityNum.getDateType(); String format = null;//查询的日期格式 String date = null;//查询的日期 if (dayType == 1) {//上月 String[] monthArr = getLastMonth().split(","); format = monthArr[0]; date = monthArr[1]; } else if (dayType == 2) {//上周 String temp = DateTimeHelper.getPrevWeek(); String[] times = temp.split(","); format = times[0]; date = times[1]; } else if (dayType == 3) {//当日 date = DateTimeHelper.getNowDate(); } else if (dayType == 4) {//本周 String temp = DateTimeHelper.getCurrentWeekTime(); String[] times = temp.split(","); format = times[0]; date = times[1]; } else if (dayType == 5) {//本月 String[] monthArr = getNowMonth().split(","); format = monthArr[0]; date = monthArr[1]; } ticketCityNum.setTicketDate(date); ticketCityNum.setFormat(format); List list = mapper.getTicketNumByCicty(ticketCityNum); Map map = new HashMap<>(16); List cictyList = new ArrayList<>(); List numList = new ArrayList<>(); if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { TicketCityNum num = list.get(i); String cictyName = num.getCictyName(); int ticketNum = num.getTicketNum(); cictyList.add(cictyName); numList.add(ticketNum); } } map.put("cictyName", cictyList); map.put("ticketNum", numList); return map; } @Override public PageInfo getTicketList(TicketData ticketData) { // 地市多选切割 if (StringUtils.isNotBlank(ticketData.getBuildCode())) { String[] buildCodeArr = ticketData.getBuildCode().split(","); List buildCodeArrList = Arrays.asList(buildCodeArr); ticketData.setBuildCodeList(buildCodeArrList); } // 风险等级多选切割 if (StringUtils.isNotBlank(ticketData.getRiskType())) { String[] riskTypeArr = ticketData.getRiskType().split(","); List riskTypeList = Arrays.asList(riskTypeArr); ticketData.setRiskTypeList(riskTypeList); } List list = mapper.getTicketList(ticketData); if(ListHelper.isNotEmpty(list)){ list.forEach(voo->{ WorkInfoVo workInfoVo=getWorkInfo(voo.getId()); voo.setWorkContent(workInfoVo.getWorkContent()); }); } PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } public static String getNowMonth(){ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 String first = format.format(c.getTime()); //获取当前月最后一天 Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); String last = format.format(ca.getTime()); return first + "," + last; } public static String getLastMonth(){ SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd"); Calendar ca=Calendar.getInstance(); ca.add(Calendar.MONTH, -1); ca.set(Calendar.DAY_OF_MONTH, 1); Calendar calendar=Calendar.getInstance(); int month=calendar.get(Calendar.MONTH); calendar.set(Calendar.MONTH, month-1); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); return sf.format(ca.getTime()) + "," + sf.format(calendar.getTime()); } @Override public Map getDayAttendanceNum(String currentDay) { /** * 获取人员数据 */ List list = mapper.getDayAttendanceNum(currentDay); Map map = new HashMap<>(16); int teamNum = 0;//班组骨干 int tzzyNum = 0;//特种作业 int ptsgNum = 0;//普通施工 //循环处理数据 if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { PersonNum personNum = list.get(i); int personTypeId = personNum.getPersonTypeId(); String personType = personNum.getPersonType(); if ("副班长".equals(personType) || "工作负责人".equals(personType) || "班长兼指挥".equals(personType) || "班组安全员".equals(personType)) { teamNum += personNum.getPersonNum(); } else if ("牵张机械操作手".equals(personType) || "其他技术人员".equals(personType) || "班组技术兼质检员".equals(personType) || "特殊工种作业人员".equals(personType) || "班组技术员兼质检员".equals(personType)) { tzzyNum += personNum.getPersonNum(); } else { ptsgNum += personNum.getPersonNum(); } } } map.put("teamNum", teamNum); map.put("tzzyNum", tzzyNum); map.put("ptsgNum", ptsgNum); return map; } @Override public Map getRealTimeNum(String currentDay) { /** * 获取人员数据 */ List list = mapper.getRealTimeNum(currentDay); Map map = new HashMap<>(16); int teamNum = 0;//班组骨干 int tzzyNum = 0;//特种作业 int ptsgNum = 0;//普通施工 //循环处理数据 if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { PersonNum personNum = list.get(i); String personType = personNum.getPersonType(); if ("副班长".equals(personType) || "工作负责人".equals(personType) || "班长兼指挥".equals(personType) || "班组安全员".equals(personType)) { teamNum += personNum.getPersonNum(); } else if ("牵张机械操作手".equals(personType) || "其他技术人员".equals(personType) || "班组技术兼质检员".equals(personType) || "特殊工种作业人员".equals(personType) || "班组技术员兼质检员".equals(personType)) { tzzyNum += personNum.getPersonNum(); } else { ptsgNum += personNum.getPersonNum(); } } } map.put("teamNum", teamNum); map.put("tzzyNum", tzzyNum); map.put("ptsgNum", ptsgNum); return map; } @Override public PageInfo getPersonList(PersonData personData) { if (personData == null) { personData = new PersonData(); personData.setQueryType(1); personData.setCurrentDay(DateTimeHelper.getNowDay()); } if(StringHelper.isEmpty(personData.getCurrentDay())){ personData.setCurrentDay(DateTimeHelper.getNowDay()); } // int queryType = personData.getQueryType(); List list = null; if(StringHelper.isNotEmpty(personData.getPersonType())){ List tyList=getPeopleTypeList(Integer.parseInt(personData.getPersonType())); personData.setTypeList(tyList); } if(DateTimeHelper.getNowDay().equals(personData.getCurrentDay())){ list = mapper.getPersonList(personData); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; }else{ list = mapper.getPersonList(personData); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } } @Override public Map getRiskByDate(String orgId, String dateType) { String date; if ("1".equals(dateType)) {//今日 date = DateTimeHelper.getNowDate(); } else {//昨日 date = DateTimeHelper.getFrontDay(); } List list = mapper.getRiskByDate(orgId, date); Map map = new HashMap<>(16); int twoNum = 0; int threeNum = 0; int fourNum = 0; int fiveNum = 0; if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { RiskDay riskDay = list.get(i); String riskType = riskDay.getRiskType(); if ("2".equals(riskType) || "二级".equals(riskType)) { twoNum += riskDay.getRiskNum(); } else if ("3".equals(riskType) || "三级".equals(riskType)) { threeNum += riskDay.getRiskNum(); } else if ("4".equals(riskType) || "四级".equals(riskType)) { fourNum += riskDay.getRiskNum(); } else if ("5".equals(riskType) || "五级".equals(riskType)) { fiveNum += riskDay.getRiskNum(); } } } map.put("twoNum", twoNum); map.put("threeNum", threeNum); map.put("fourNum", fourNum); map.put("fiveNum", fiveNum); return map; } @Override public Map getDayPlanNum(String proType, String dayType) { Map map = new HashMap<>(16); List list = mapper.getDayPlanNum(proType, dayType); List> listMap = mapper.getDayPlanOrgNum(proType, dayType); map.put("totalDayNum", list.get(0)); map.put("executedDayNum", list.get(1)); map.put("listMap", listMap); return map; } /** * 获取日计划及施工人员数据 * @param proType * @param dayType * @return */ @Override public Map getNewDayPlanNum(String proType, String dayType) { Map map = new HashMap<>(16); try{ List list = mapper.getNewDayPlanNum(proType, dayType); List> listMap = mapper.getNewDayPlanOrgNum(proType, dayType); map.put("totalDayNum", list.get(0)); map.put("executedDayNum", list.get(1)); map.put("listMap", listMap); }catch (Exception e){ log.error(e.toString(),e); } return map; } @Override public Map getWeekRiskNumByWeekTime(String startWeek, String endWeek) { Map map = new HashMap<>(16); try{ map = mapper.getWeekRiskNumByWeekTime(startWeek, endWeek); }catch (Exception e){ log.error(e.toString(),e); } return map; } /** * 查询 * @param startWeek * @param endWeek * @param riskLevel * @return */ @Override public List getWeekRiskByRiskLevel(String startWeek, String endWeek, String riskLevel) { return mapper.getWeekRiskByRiskLevel(startWeek,endWeek,riskLevel); } @Override public List getNexWeekPro(String startWeek, String endWeek, String riskLevel) { return mapper.getNexWeekPro(startWeek,endWeek,riskLevel); } @Override public Map getAllRiskLevelNum(String time) { return mapper.getAllRiskLevelNum(time); } @Override public Integer getWzXx(String orgId) { return mapper.getWzXx(orgId); } /** * h用户是否报岗 * @param orgId * @return */ @Override public Integer getIsBg(String orgId) { try{ return mapper.getIsBg(orgId,DateTimeHelper.getNowDay()); }catch (Exception e){ log.error(e.toString(),e); } return 0; } /** * * @param params * @return */ @Override public List getGtList(TowerVo params) { try{ List list=mapper.getGtList(params); return list; }catch (Exception e){ log.error(e.toString(),e); } return new ArrayList<>(); } @Override public Map getAttendanceNum(String orgId) { HashMap map = new HashMap<>(16); List list = mapper.getAttendanceNum(orgId); if (CollectionUtils.isNotEmpty(list)) { map.put("attendanceNum", list.get(0)); map.put("attendanceNum2", list.get(1)); } else { map.put("attendanceNum", 0); map.put("attendanceNum2", 0); } return map; } @Override public List> getOrgNumAndRateByPro(ProData proData) { List> list = mapper.getOrgNumAndRateByPro(proData); int totalNum = 0; for (Map map : list) { totalNum += Integer.parseInt(String.valueOf(map.get("num"))); } DecimalFormat decimalFormat = new DecimalFormat("0.00%"); for (Map map : list) { if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) { map.put("rate", "0.00%"); } else { map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0)); } } return list; } @Override public List> getOrgNumAndRateByProNew(ProData proData) { List> list = mapper.getOrgNumAndRateByProNew(proData); int totalNum = 0; for (Map map : list) { totalNum += Integer.parseInt(String.valueOf(map.get("num"))); } DecimalFormat decimalFormat = new DecimalFormat("0.00%"); for (Map map : list) { if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) { map.put("rate", "0.00%"); } else { map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0)); } } return list; } @Override public Map getOrgNumAndRateByWeek(WeekRiskData weekRiskData) { if(StringHelper.isEmpty(weekRiskData.getCurryDay())){ weekRiskData.setCurryDay(DateTimeHelper.getNowDay()); } Map map= Maps.newHashMap(); weekRiskData.setWeekType(2); List> list2 = mapper.getOrgNumAndRateByWeek(weekRiskData); weekRiskData.setWeekType(3); List> list3 = mapper.getOrgNumAndRateByWeek(weekRiskData); map.put("data1",list2); map.put("data2",list3); map.put("msg","周风险统计成功data1是二级风险 data2是三级风险"); return map; } @Override public List> getOrgNumAndRateByWeekChild(WeekRiskData weekRiskData) { if(StringHelper.isEmpty(weekRiskData.getCurryDay())){ weekRiskData.setCurryDay(DateTimeHelper.getNowDay()); } List> list = mapper.getOrgNumAndRateByWeekChild(weekRiskData); int totalNum = 0; for (Map map : list) { totalNum += Integer.parseInt(String.valueOf(map.get("num"))); } DecimalFormat decimalFormat = new DecimalFormat("0.00%"); for (Map map : list) { if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) { map.put("rate", "0.00%"); } else { map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0)); } } return list; } @Override public List> getOrgNumAndRateByTicket(TicketData ticketData) { // 风险等级多选切割 if (StringUtils.isNotBlank(ticketData.getRiskType())) { String[] riskTypeArr = ticketData.getRiskType().split(","); List riskTypeList = Arrays.asList(riskTypeArr); ticketData.setRiskTypeList(riskTypeList); } List> list = mapper.getOrgNumAndRateByTicket(ticketData); int totalNum = 0; for (Map map : list) { totalNum += Integer.parseInt(String.valueOf(map.get("num"))); } DecimalFormat decimalFormat = new DecimalFormat("0.00%"); for (Map map : list) { if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) { map.put("rate", "0.00%"); } else { map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0)); } } return list; } @Override public Map getProNumByType(String proType, String orgId) { Map map = new HashMap<>(16); // List list = mapper.getProNumByType(proType,orgId); String year=DateTimeHelper.getNowYear(); List list = mapper.getNewProNumByType(proType,orgId,year); map.put("allZjNum",list.get(0)); map.put("zjNum",list.get(1)); map.put("sgNum",list.get(2)); map.put("tgNum",list.get(3)); map.put("dkgNum",list.get(4)); return map; } @Override public PageInfo getProListByType(ProData proData) { if (StringUtils.isNotBlank(proData.getBuildCode())) { String[] buildCodeArr = proData.getBuildCode().split(","); List buildCodeList = Arrays.asList(buildCodeArr); proData.setBuildCodeList(buildCodeList); } // List list = mapper.getProListByType(proData); List list = mapper.getNewProListByType(proData); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } /** * 站班会统计 * @param vo * @return */ @Override public Map getClassMettingData(ClassMettingStaVo vo) { Map map=Maps.newHashMap(); List nameList=new ArrayList<>(); List values=new ArrayList<>(); try{ if (StringHelper.isEmpty(vo.getCurryDay())){ vo.setCurryDay(DateTimeHelper.getNowDay()); } List list = mapper.getClassMettingData(vo); for (ClassMettingStaVo ent: list) { nameList.add(ent.getName()); values.add(ent.getNum()); } map.put("data",nameList); map.put("value",values); map.put("msg","获取站班会数据成功"); }catch (Exception e){ log.error(e.toString(),e); } return map; } /** * 分页查询站班会数据 * @param vo * @return */ @Override public PageInfo getClassMettingList(ClassMettingStaVo vo) { if (StringUtils.isNotBlank(vo.getBuildCode())) { String[] buildCodeArr = vo.getBuildCode().split(","); List buildCodeList = Arrays.asList(buildCodeArr); vo.setOrgList(buildCodeList); } if(StringHelper.isNotEmpty(vo.getRiskLevel())){ List riskList=Arrays.asList(vo.getRiskLevel().split(",")); vo.setRiskList(riskList); } if(StringHelper.isEmpty(vo.getCurryDay())){ vo.setCurryDay(DateTimeHelper.getNowDay()); } List list = mapper.getClassMettingList(vo); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } @Override public List> getOrgNumAndRateByClass(ClassMettingStaVo vo) { // 风险等级多选切割 if(StringHelper.isNotEmpty(vo.getRiskLevel())){ List riskList=Arrays.asList(vo.getRiskLevel().split(",")); vo.setRiskList(riskList); } List> list = mapper.getOrgNumAndRateByClass(vo); int totalNum = 0; for (Map map : list) { totalNum += Integer.parseInt(String.valueOf(map.get("num"))); } DecimalFormat decimalFormat = new DecimalFormat("0.00%"); for (Map map : list) { if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) { map.put("rate", "0.00%"); } else { map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0)); } } return list; } public List getPeopleTypeList(int type){ List list=new ArrayList<>(); if(type==1){ list.add("班组负责人"); list.add("班组安全员"); list.add("班组技术员"); list.add("副班长"); }else if(type ==2){ list.add("特种作业人员"); }else if(type ==3){ list.add("一般作业人员"); list.add("其他技术人员"); }else{ list.add("班组负责人"); list.add("班组安全员"); list.add("班组技术员"); list.add("特种作业人员"); list.add("副班长"); list.add("一般作业人员"); list.add("其他技术人员"); } return list; } /** * 人员数量统计展示 * @param * @return */ @Override public Map getClassPeopleNum(PersonNum person) { Map map=Maps.newHashMap(); Map maps=Maps.newHashMap(); Map maps1=Maps.newHashMap(); Map maps2=Maps.newHashMap(); List> data=new ArrayList<>(); try{ List bzgg=getPeopleTypeList(1); List tzzy=getPeopleTypeList(2); List list = mapper.getClassPeopleNum(person); 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; maps.put("bzgg",teamNum); maps1.put("ttzy",tzzyNum); maps2.put("ptzy",ptsgNum); data.add(maps); data.add(maps1); data.add(maps2); redisService.set("allPeopleNum",allNUM+""); String allPeopleNum=(String)redisService.get("allPeopleNum"); System.err.println(allPeopleNum); map.put("data",data); map.put("all",allNUM); }catch (Exception e){ maps.put("bzgg",0); maps1.put("ttzy",0); maps2.put("ptzy",0); data.add(maps); data.add(maps1); data.add(maps2); map.put("data",data); map.put("all",0); log.error(e.toString(),e); } return map; } @Override public PageInfo getNewDailPlanList(DailyPlanHome dailyPlanVo) { if (StringUtils.isNotBlank(dailyPlanVo.getOrgId())) { String[] buildCodeArr = dailyPlanVo.getOrgId().split(","); List buildCodeList = Arrays.asList(buildCodeArr); dailyPlanVo.setOrgList(buildCodeList); } if("01".equals(dailyPlanVo.getPlanType())){//01 站班会 List list = mapper.getNewDailPlanList2(dailyPlanVo); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; }else{//02 日计划 List list = mapper.getNewDailPlanList1(dailyPlanVo); if(ListHelper.isNotEmpty(list)){ //依据周计划查询施工信息 list.forEach(vo->{ WorkInfoVo workInfoVo=getWorkInfo(vo.getTicketId()); vo.setJobGx(workInfoVo.getWorkGx()); vo.setJobLx(workInfoVo.getWorkType()); vo.setWorkContent(workInfoVo.getWorkContent()); vo.setJobSite(workInfoVo.getWorkSite()); }); } PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } } /** * 作业票施工内容信息查询 * 作业票统一查询 关联信息接口 * @param ticketId * @return */ public WorkInfoVo getWorkInfo(String ticketId) { WorkInfoVo vo=new WorkInfoVo(); try{ if (StringHelper.isEmpty(ticketId)) { return vo; } List list=mapper.getWorkInfo(ticketId); if(ListHelper.isEmpty(list)){ return vo; } StringBuffer workType=new StringBuffer(); StringBuffer workContent=new StringBuffer(); StringBuffer workGx=new StringBuffer(); StringBuffer workSite=new StringBuffer(); list.forEach(voi->{ getStringBuffer(workType,voi.getWorkType()); getStringBuffer(workContent,voi.getWorkContent()); getStringBuffer(workGx,voi.getWorkGx()); getStringBuffer(workSite,voi.getWorkSite()); }); vo.setWorkContent(workContent.toString()); vo.setWorkType(workType.toString()); vo.setWorkGx(workGx.toString()); vo.setWorkSite(workSite.toString()); }catch (Exception e){ log.error(e.toString(),e); } return vo; } private void getStringBuffer(StringBuffer str,String data){ if(StringHelper.isNotEmpty(data)){ if(StringHelper.isNotEmpty(str.toString())){ str.append(";"); } str.append(data); } } @Override public PageInfo getDailPlanList(DailyPlanVo dailyPlanVo) { if (StringUtils.isNotBlank(dailyPlanVo.getOrgId())) { String[] buildCodeArr = dailyPlanVo.getOrgId().split(","); List buildCodeList = Arrays.asList(buildCodeArr); dailyPlanVo.setOrgList(buildCodeList); } String workDay=DateTimeHelper.getNowDay(); if(StringHelper.isNotEmpty(dailyPlanVo.getDayTypeParam())){ if("2".equals(dailyPlanVo.getDayTypeParam())){ workDay=DateTimeHelper.getYesTodayt();//昨天 }else if("1".equals(dailyPlanVo.getDayTypeParam())){ workDay=DateTimeHelper.getQtDay();//前天 } } dailyPlanVo.setWorkTime(workDay); List list = mapper.getDailPlanList(dailyPlanVo); PageInfo pageInfo = new PageInfo<>(list); return pageInfo; } /** * * @param dailyPlanVo * @return */ public List> getOrgNumAndRateByDailPlan(DailyPlanVo dailyPlanVo) { String workDay=DateTimeHelper.getNowDay(); if(StringHelper.isNotEmpty(dailyPlanVo.getDayTypeParam())){ if("2".equals(dailyPlanVo.getDayTypeParam())){ workDay=DateTimeHelper.getYesTodayt();//昨天 }else if("1".equals(dailyPlanVo.getDayTypeParam())){ workDay=DateTimeHelper.getQtDay();//前天 } } dailyPlanVo.setWorkTime(workDay); List> list = mapper.getOrgNumAndRateByDailPlan(dailyPlanVo); int totalNum = 0; for (Map map : list) { totalNum += Integer.parseInt(String.valueOf(map.get("num"))); } DecimalFormat decimalFormat = new DecimalFormat("0.00%"); for (Map map : list) { if (totalNum == 0 || Integer.parseInt(String.valueOf(map.get("num"))) == 0) { map.put("rate", "0.00%"); } else { map.put("rate", decimalFormat.format(Integer.parseInt(String.valueOf(map.get("num"))) * 1.0 / totalNum * 1.0)); } } return list; } }