|  |  | 
 |  |  |  | 
 |  |  | import com.javaweb.common.core.domain.AjaxResult; | 
 |  |  | import com.javaweb.common.exception.BusinessException; | 
 |  |  | import com.javaweb.common.json.JSON; | 
 |  |  | import com.javaweb.common.utils.NumberUtils; | 
 |  |  | import com.javaweb.common.utils.StringUtils; | 
 |  |  | import com.javaweb.geo.domain.*; | 
 |  |  | 
 |  |  | import com.javaweb.geo.service.IProjectWorkService; | 
 |  |  | import com.javaweb.geo.vo.ProjectWorkVo; | 
 |  |  | import com.javaweb.geo.vo.YanTuVo; | 
 |  |  | import com.javaweb.geotdp.domain.ResponseResult; | 
 |  |  | import com.javaweb.geotdp.enums.RecordType; | 
 |  |  | import com.javaweb.platform.domain.*; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  |  | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ProjectMapper projectMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private HoleMapper holeMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private HoleHuiciMapper holeHuiciMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private HoleYantuMapper holeYantuMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private HoleQutuMapper holeQutuMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private HoleBiaoguanMapper holeBiaoguanMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private HoleShuiweiMapper holeShuiweiMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private HolePersonMapper holePersonMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private HoleMediaMapper holeMediaMapper; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 工作量统计 | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public AjaxResult workloadAccount(String projectId) { | 
 |  |  |         ProjectWorkVo projectWorkVo; | 
 |  |  |         try { | 
 |  |  |             projectWorkVo = getProjectWork(projectId); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |             return AjaxResult.error("获取工作量统计失败"); | 
 |  |  |         } | 
 |  |  |         return AjaxResult.success("获取工作量统计成功", projectWorkVo); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取钻孔数据 | 
 |  |  |      * @param holeId | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public AjaxResult holeRecordList(String holeId){ | 
 |  |  |  | 
 |  |  |         AjaxResult ajaxResult = AjaxResult.success("获取钻孔数据成功"); | 
 |  |  |         try{ | 
 |  |  |  | 
 |  |  |             Hole hole = holeMapper.selectHoleById(holeId); | 
 |  |  |             ajaxResult.put("hole",hole); | 
 |  |  |  | 
 |  |  |             HoleYantu holeYantu = new HoleYantu(); | 
 |  |  |             holeYantu.setHoleId(holeId); | 
 |  |  |             holeYantu.setIsDelete(false); | 
 |  |  |             holeYantuMapper.selectHoleYantuList(holeYantu); | 
 |  |  |             List<HoleYantu> yantus = holeYantuMapper.selectHoleYantuList(holeYantu); | 
 |  |  |  | 
 |  |  |             ajaxResult.put("yantuList",yantus); | 
 |  |  |  | 
 |  |  |         }catch (Exception e){ | 
 |  |  |             e.printStackTrace(); | 
 |  |  |             return AjaxResult.error("取钻孔数据失败"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return ajaxResult; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 地质钻孔柱状图 | 
 |  |  |      * @param holeId | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public List<Map<Object, Object>> histogramJson(String holeId) { | 
 |  |  |         List<Map<Object,Object>> mapList=new ArrayList<>(); | 
 |  |  |         //====================岩土================== | 
 |  |  |         HoleYantu holeYantu = new HoleYantu(); | 
 |  |  |         holeYantu.setHoleId(holeId); | 
 |  |  |         holeYantu.setIsDelete(false); | 
 |  |  |  | 
 |  |  |         List<HoleYantu>  holeYantuList =holeYantuMapper.selectHoleYantuList(holeYantu); | 
 |  |  |  | 
 |  |  |         holeYantuList= holeYantuList.stream().filter(v->v.getBeginDepth() !=null && v.getEndDepth() !=null).collect(Collectors.toList()); | 
 |  |  |         holeYantuList = holeYantuList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(HoleYantu:: getEndDepth))), ArrayList::new)); | 
 |  |  |  | 
 |  |  |         try { | 
 |  |  |             holeYantuList.sort((x, y) -> Double.compare(x.getEndDepth(), y.getEndDepth())); | 
 |  |  |         } | 
 |  |  |         catch(Exception e) { | 
 |  |  |             throw new BusinessException("岩土数据排序异常:"+e.toString()); | 
 |  |  |         } | 
 |  |  |         for(HoleYantu yantu:holeYantuList) { | 
 |  |  |             Map<Object,Object> map=new HashMap<Object,Object>(); | 
 |  |  |             map.put("id", yantu.getIds()); | 
 |  |  |             map.put("type", "岩土"); | 
 |  |  |             map.put("code", yantu.getCode()); | 
 |  |  |             map.put("typeName", yantu.getFrequencyType()); | 
 |  |  |             map.put("layerName", yantu.getLayerName()); | 
 |  |  |             map.put("begin", yantu.getBeginDepth()); | 
 |  |  |             map.put("end", yantu.getEndDepth()); | 
 |  |  |             map.put("medias",new String[0]); | 
 |  |  |  | 
 |  |  |             String title=""; | 
 |  |  |  | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getFrequencyType())){ | 
 |  |  |                 title+="岩土类型:"+yantu.getFrequencyType()+";"; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getLayerName())){ | 
 |  |  |                 title+="岩土定名:"+yantu.getLayerName()+";"; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getYs())) { | 
 |  |  |                 title+="颜色:"+yantu.getYs()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getMsd())) { | 
 |  |  |                 title+="密实度:"+yantu.getMsd()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getSd())) { | 
 |  |  |                 title+="湿度:"+yantu.getSd()+";"; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getYbljx())) { | 
 |  |  |                 title+="一般粒径小:"+yantu.getYbljx()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getYbljd())) { | 
 |  |  |                 title+="一般粒径大:"+yantu.getYbljd()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getZdlj())) { | 
 |  |  |                 title+="最大粒径:"+yantu.getZdlj()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getZt())) { | 
 |  |  |                 title+="状态:"+yantu.getZt()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getBhw())) { | 
 |  |  |                 title+="包含物:"+yantu.getBhw()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getKlxz())) { | 
 |  |  |                 title+="颗粒形状:"+yantu.getKlxz()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getKlpl())) { | 
 |  |  |                 title+="颗粒排列:"+yantu.getKlpl()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(yantu.getKljp())) { | 
 |  |  |                 title+="颗粒级配:"+yantu.getKljp()+";"; | 
 |  |  |             } | 
 |  |  |             map.put("title", title); | 
 |  |  |             mapList.add(map); | 
 |  |  |         } | 
 |  |  |         //=========================水位================================== | 
 |  |  |         HoleShuiwei holeShuiwei = new HoleShuiwei(); | 
 |  |  |         holeShuiwei.setHoleId(holeId); | 
 |  |  |         holeShuiwei.setIsDelete(false); | 
 |  |  |  | 
 |  |  |         List<HoleShuiwei> shuiweiList = holeShuiweiMapper.selectHoleShuiweiList(holeShuiwei); | 
 |  |  |  | 
 |  |  |         shuiweiList=shuiweiList.stream().filter(v->v.getShownWaterLevel()!=null&&v.getStillWaterLevel()!=null).collect(Collectors.toList()); | 
 |  |  |         try { | 
 |  |  |             shuiweiList.sort((x, y) -> Double.compare(x.getShownWaterLevel(),y.getShownWaterLevel())); | 
 |  |  |         } | 
 |  |  |         catch(Exception e) { | 
 |  |  |             throw new BusinessException("水位数据排序异常:"+e.toString()); | 
 |  |  |         } | 
 |  |  |         for(HoleShuiwei shuiwei:shuiweiList) { | 
 |  |  |             Map<Object,Object> map=new HashMap<Object,Object>(); | 
 |  |  |             map.put("id", shuiwei.getIds()); | 
 |  |  |             map.put("type", "水位"); | 
 |  |  |             map.put("code", shuiwei.getCode()); | 
 |  |  |             map.put("typeName", "地下水"); | 
 |  |  |             map.put("begin", shuiwei.getShownTime()); | 
 |  |  |             map.put("end", shuiwei.getStillWaterLevel()); | 
 |  |  |             map.put("medias",new String[0]); | 
 |  |  |             String title=""; | 
 |  |  |             if(shuiwei.getShownWaterLevel() !=null){ | 
 |  |  |                 title+="初见水位:"+shuiwei.getShownWaterLevel()+";"; | 
 |  |  |             } | 
 |  |  |             if(shuiwei.getStillWaterLevel() !=null){ | 
 |  |  |                 title+="稳定水位:"+shuiwei.getStillWaterLevel()+";"; | 
 |  |  |             } | 
 |  |  |             map.put("title", title); | 
 |  |  |             mapList.add(map); | 
 |  |  |         } | 
 |  |  |         try { | 
 |  |  |             mapList.sort((x, y) -> Double.compare(Double.parseDouble(x.get("begin").toString()),Double.parseDouble(y.get("begin").toString()))); | 
 |  |  |         } | 
 |  |  |         catch(Exception e) { | 
 |  |  |             System.out.print(e); | 
 |  |  |         } | 
 |  |  |         //==========================回次========================== | 
 |  |  |         HoleHuici holeHuici = new HoleHuici(); | 
 |  |  |         holeHuici.setHoleId(holeId); | 
 |  |  |         holeHuici.setIsDelete(false); | 
 |  |  |         List<HoleHuici> huiciList = holeHuiciMapper.selectHoleHuiciList(holeHuici); | 
 |  |  |  | 
 |  |  |         huiciList=huiciList.stream().filter(v->v.getBeginDepth()!=null&&v.getEndDepth()!=null).collect(Collectors.toList()); | 
 |  |  |         try { | 
 |  |  |             huiciList.sort((x, y) -> Double.compare(x.getEndDepth(),y.getEndDepth())); | 
 |  |  |         } | 
 |  |  |         catch(Exception e) { | 
 |  |  |             System.out.print(e); | 
 |  |  |         } | 
 |  |  |         for(HoleHuici huici:huiciList) { | 
 |  |  |             Map<Object,Object> map=new HashMap<Object,Object>(); | 
 |  |  |             map.put("id", huici.getIds()); | 
 |  |  |             map.put("type", "回次"); | 
 |  |  |             map.put("code", huici.getCode()); | 
 |  |  |             map.put("typeName", huici.getFrequencyType()+'-'+huici.getFrequencyMode()); | 
 |  |  |             map.put("begin", huici.getBeginDepth()); | 
 |  |  |             map.put("end", huici.getEndDepth()); | 
 |  |  |             map.put("medias",new String[0]); | 
 |  |  |             String title=""; | 
 |  |  |             if(!StringUtils.isEmpty(huici.getFrequencyType())) { | 
 |  |  |                 title+="钻进方法:"+huici.getFrequencyType()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(huici.getFrequencyMode())) { | 
 |  |  |                 title+="护壁方法:"+huici.getFrequencyMode()+";"; | 
 |  |  |             } | 
 |  |  |             if(huici.getAperture() !=null ) { | 
 |  |  |                 title+="钻孔孔径:"+huici.getAperture()+";"; | 
 |  |  |             } | 
 |  |  |             if(huici.getBeginDepth() != null ) { | 
 |  |  |                 title+="起始深度:"+huici.getBeginDepth()+";"; | 
 |  |  |             } | 
 |  |  |             if(huici.getEndDepth() !=null) { | 
 |  |  |                 title+="终止深度:"+huici.getEndDepth()+";"; | 
 |  |  |             } | 
 |  |  |             map.put("title", title); | 
 |  |  |             mapList.add(map); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //=======================取样 / 取土========================== | 
 |  |  |  | 
 |  |  |         HoleQutu holeQutu = new HoleQutu(); | 
 |  |  |         holeQutu.setHoleId(holeId); | 
 |  |  |         holeQutu.setIsDelete(false); | 
 |  |  |  | 
 |  |  |         List<HoleQutu> qutuList = holeQutuMapper.selectHoleQutuList(holeQutu); | 
 |  |  |  | 
 |  |  |         qutuList=qutuList.stream().filter(v->v.getBeginDepth()!=null&&v.getEndDepth()!=null).collect(Collectors.toList()); | 
 |  |  |         try { | 
 |  |  |             qutuList.sort((x, y) -> Double.compare(x.getEndDepth(),y.getEndDepth())); | 
 |  |  |         } | 
 |  |  |         catch(Exception e) { | 
 |  |  |             System.out.print(e); | 
 |  |  |         } | 
 |  |  |         for(HoleQutu qutu:qutuList) { | 
 |  |  |             Map<Object,Object> map=new HashMap<Object,Object>(); | 
 |  |  |             map.put("id", qutu.getIds()); | 
 |  |  |             map.put("type", "取土"); | 
 |  |  |             map.put("code",qutu.getCode()); | 
 |  |  |             map.put("typeName", "取土"); | 
 |  |  |             map.put("begin", qutu.getBeginDepth()); | 
 |  |  |             map.put("end", qutu.getEndDepth()); | 
 |  |  |             map.put("medias",new String[0]); | 
 |  |  |             String title=""; | 
 |  |  |             if(!StringUtils.isEmpty(qutu.getEarthType())) { | 
 |  |  |                 title+="土样质量等级:"+qutu.getEarthType()+";"; | 
 |  |  |             } | 
 |  |  |             if(!StringUtils.isEmpty(qutu.getGetMode())) { | 
 |  |  |                 title+="取样工具和方法:"+qutu.getGetMode()+";"; | 
 |  |  |             } | 
 |  |  |             map.put("title", title); | 
 |  |  |             mapList.add(map); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //==================动探/标贯=========================== | 
 |  |  |         HoleBiaoguan holeBiaoguan = new HoleBiaoguan(); | 
 |  |  |         holeBiaoguan.setHoleId(holeId); | 
 |  |  |         holeBiaoguan.setIsDelete(false); | 
 |  |  |  | 
 |  |  |         List<HoleBiaoguan> biaoguanList = holeBiaoguanMapper.selectHoleBiaoguanList(holeBiaoguan); | 
 |  |  |         try { | 
 |  |  |             biaoguanList.sort((x, y) -> Double.compare(x.getBegin1(),y.getBegin1())); | 
 |  |  |         } | 
 |  |  |         catch(Exception e) { | 
 |  |  |             System.out.print(e); | 
 |  |  |         } | 
 |  |  |         for(HoleBiaoguan biaogaun:biaoguanList) { | 
 |  |  |             if(biaogaun.getBegin1() != null && biaogaun.getBegin1() !=0 ) { | 
 |  |  |                 Map<Object,Object> map=new HashMap<Object,Object>(); | 
 |  |  |                 map.put("id", biaogaun.getIds()); | 
 |  |  |                 if(biaogaun.getType().equals(RecordType.dt.getId())) { | 
 |  |  |                     map.put("type", "动探"); | 
 |  |  |                     map.put("typeName", "动探"); | 
 |  |  |                 } | 
 |  |  |                 else if(biaogaun.getType().equals(RecordType.bg.getId())) { | 
 |  |  |                     map.put("type", "标贯"); | 
 |  |  |                     map.put("typeName", "标贯"); | 
 |  |  |                 } | 
 |  |  |                 map.put("code", biaogaun.getCode()); | 
 |  |  |                 map.put("begin", biaogaun.getBegin1()); | 
 |  |  | //                Double endDepth=0.0; | 
 |  |  |                 //此处end 有疑问 | 
 |  |  |                 map.put("end", biaogaun.getEnd1()); | 
 |  |  |                 map.put("medias",new String[0]); | 
 |  |  |                 String title=""; | 
 |  |  |  | 
 |  |  |                 if(biaogaun.getDrillLength()!=null) { | 
 |  |  |                     title+="钻杆长度:"+biaogaun.getDrillLength()+";"; | 
 |  |  |                 } | 
 |  |  |                 if(biaogaun.getBegin1()!=null && biaogaun.getBlow1() !=null) { | 
 |  |  |                     title+="<br/>预:"+biaogaun.getBegin1()+"m~"+biaogaun.getEnd1()+"m="+biaogaun.getBlow1()+";"; | 
 |  |  |                 } | 
 |  |  |                 if(biaogaun.getBegin2()!=null && biaogaun.getBlow2() !=null) { | 
 |  |  |                     title+="<br/>1:"+biaogaun.getBegin2()+"m~"+biaogaun.getEnd2()+"m="+biaogaun.getBlow2()+";"; | 
 |  |  |                 } | 
 |  |  |                 if(biaogaun.getBegin3()!=null&&biaogaun.getBlow3() !=null) { | 
 |  |  |                     title+="<br/>2:"+biaogaun.getBegin3()+"m~"+biaogaun.getEnd3()+"m="+biaogaun.getBlow3()+";"; | 
 |  |  |                 } | 
 |  |  |                 if(biaogaun.getBegin4()!=null&&biaogaun.getBlow4() !=null) { | 
 |  |  |                     title+="<br/>3:"+biaogaun.getBegin4()+"m~"+biaogaun.getEnd4()+"m="+biaogaun.getBlow4()+";"; | 
 |  |  |                 } | 
 |  |  |                 map.put("title", title); | 
 |  |  |                 mapList.add(map); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return mapList; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 工作量统计 | 
 |  |  |      * @param projectId | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     private ProjectWorkVo getProjectWork(String projectId){ | 
 |  |  |  | 
 |  |  |         // 水位 + 取水 | 
 |  |  |         Long shuiWeiCount = holeShuiweiMapper.countNumberByProjectId(projectId, RecordType.sw.getName()); | 
 |  |  |         Long quShuiCount = holeShuiweiMapper.countNumberByProjectId(projectId, RecordType.qs.getName()); | 
 |  |  |  | 
 |  |  |         // 标贯 + 动探 | 
 |  |  |         Long biaoGuanCount = holeBiaoguanMapper.countNumberByProjectId(projectId, RecordType.bg.getName()); | 
 |  |  |         Long dongKanCount = holeBiaoguanMapper.countNumberByProjectId(projectId, RecordType.dt.getName()); | 
 |  |  |  | 
 |  |  |         // 照片 | 
 |  |  |         Long zhaoPianCount = holeMediaMapper.countNumberByProjectId(projectId); | 
 |  |  |  | 
 |  |  |         //取样(回次) | 
 |  |  |         Long huiCiCount = holeHuiciMapper.countNumberByProjectId(projectId); | 
 |  |  |  | 
 |  |  |         //TODO 回次总进尺、总次数 | 
 |  |  |  | 
 |  |  |         //TODO 岩土对象 | 
 |  |  |  | 
 |  |  |         ProjectWorkVo projectWorkVo = new ProjectWorkVo(); | 
 |  |  |         projectWorkVo.setHuiciCount(-1d); | 
 |  |  |         projectWorkVo.setHuiciNumber(huiCiCount); | 
 |  |  |  | 
 |  |  |         projectWorkVo.setShuiWeiNumber(shuiWeiCount); | 
 |  |  |         projectWorkVo.setQuYangNumber(huiCiCount); | 
 |  |  |         projectWorkVo.setQuShuiNumber(quShuiCount); | 
 |  |  |         projectWorkVo.setDongTanNumber(dongKanCount); | 
 |  |  |         projectWorkVo.setBiaoGuanNumber(biaoGuanCount); | 
 |  |  |         projectWorkVo.setZhaoPianNumber(zhaoPianCount); | 
 |  |  |  | 
 |  |  |         //获取岩土的对象集合 | 
 |  |  |         List<YanTuVo> yantuList = YanTuVoList(projectId); | 
 |  |  |         projectWorkVo.setYanTuList(yantuList); | 
 |  |  |  | 
 |  |  |         return projectWorkVo; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取岩土工作量表格 | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     private List<YanTuVo> YanTuVoList(String projectId){ | 
 |  |  |         HoleYantu holeYantu = new HoleYantu(); | 
 |  |  |         holeYantu.setProjectId(projectId); | 
 |  |  |         holeYantu.setIsDelete(false); | 
 |  |  |  | 
 |  |  |         //List<HoleYantu> yantus = holeYantuMapper.selectHoleYantuList(holeYantu); | 
 |  |  |         List<HoleYantu> yantus = holeYantuMapper.selectTongjiHoleYantuList(holeYantu); | 
 |  |  |         Map <String,Integer>  cishuMap= new HashMap<>(); | 
 |  |  |         Map<String,Double> jinchiMap = new HashMap<>(); | 
 |  |  |  | 
 |  |  |         for(HoleYantu tu : yantus){ | 
 |  |  |             String ftype = tu.getFrequencyType(); | 
 |  |  |             if(StringUtils.isEmpty(ftype)){ | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             Double begin = tu.getBeginDepth(); | 
 |  |  |             Double end = tu.getEndDepth(); | 
 |  |  |             if(begin==null || end ==null){ | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             Double total = end-begin; | 
 |  |  |             if(cishuMap.containsKey(ftype)){ | 
 |  |  |                 cishuMap.put(ftype,cishuMap.get(ftype)+1); | 
 |  |  |                 jinchiMap.put(ftype,jinchiMap.get(ftype)+total); | 
 |  |  |             }else{ | 
 |  |  |                 cishuMap.put(ftype,1); | 
 |  |  |                 jinchiMap.put(ftype,total); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         Integer CISHU = 0; | 
 |  |  |         Double JINCHI=0d; | 
 |  |  |         List<YanTuVo> list = new ArrayList<>(); | 
 |  |  |         for(Map.Entry<String,Integer> entry : cishuMap.entrySet() ){ | 
 |  |  |             CISHU +=entry.getValue(); | 
 |  |  |             JINCHI += jinchiMap.get(entry.getKey()); | 
 |  |  |  | 
 |  |  |             //设置vo对象 | 
 |  |  |             YanTuVo yanTuVo = new YanTuVo(); | 
 |  |  |             yanTuVo.setFrequencyType(entry.getKey()); | 
 |  |  |             yanTuVo.setCishuNumber(entry.getValue().longValue()); | 
 |  |  |             yanTuVo.setJinchiCount(NumberUtils.div(jinchiMap.get(entry.getKey()),1,2)); | 
 |  |  |             list.add(yanTuVo); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         YanTuVo  yan = new YanTuVo(); | 
 |  |  |         yan.setFrequencyType("总计"); | 
 |  |  |         yan.setJinchiCount(NumberUtils.div(JINCHI,1,2)); | 
 |  |  |         yan.setCishuNumber(CISHU.longValue()); | 
 |  |  |  | 
 |  |  |         List<YanTuVo> result  = new ArrayList<>(); | 
 |  |  |         result.add(yan); | 
 |  |  |         result.addAll(list); | 
 |  |  |         return result; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |