package org.springblade.jfpt.parcel.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.springblade.jfpt.alarm.constant.AlarmTimeConstant; import org.springblade.jfpt.animalheat.util.ImageUtil; import org.springblade.jfpt.parcel.service.ParcelService; import org.springblade.jfpt.parcel.util.*; import org.springblade.jfpt.parcel.vo.ConditionVo; import org.springblade.common.entity.ParcelExcel; import org.springblade.common.entity.ParcelKindExcel; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; import static org.springblade.core.tool.utils.DateUtil.now; /** * 包裹服务实现层 */ @Service public class ParcelServiceImpl implements ParcelService{ @Value("${PARCEL_KEY}") private String PARCEL_KEY; @Value("${PARCEL_SECRET}") private String PARCEL_SECRET; //查询某期间的违禁物品(违禁小类)统计 @Value("${PARCEL_CONTRABAND_URL}") private String PARCEL_CONTRABAND_URL; //查询某期间的包裹统计 @Value("${PARCEL_URL}") private String PARCEL_URL; //查询安检图片 @Value("${PARCEL_PICTURE_URL}") private String PARCEL_PICTURE_URL; //查询安检明细列表 @Value("${PARCEL_DETAIL_RUL}") private String PARCEL_DETAIL_RUL; //查询安检违禁品列表 @Value("${PARCEL_KIND_URL}") private String PARCEL_KIND_URL; @Value("${PARCEL_PRE_URL}") private String PARCEL_PRE_URL; /** * 获取违禁包裹统计数据,远程调用接口 * @param conditionVo 查询条件对象 status 状态码 0:本天 1:近7天 2:本月 3:本周 * @return */ @Override public List> parcelKindStatis(ConditionVo conditionVo) { //1.判空 if (null!=conditionVo.getStatus()) { //获取数据 List objectList = getParcelData(conditionVo,PARCEL_CONTRABAND_URL,PARCEL_KEY,PARCEL_SECRET); Map mapCode = new HashMap<>(); //遍历集合,存储所有的违禁包裹编码 for (Object object : objectList) { //取出list里面的值转为map Map objectMap = (Map) object; //将所有的违禁包裹编码存起来 mapCode.put(objectMap.get("objCode").toString(),objectMap.get("objCode").toString()); } //遍历违禁编码map数据 List> list = new ArrayList<>(); for (String value:mapCode.values()) { Integer count = 0; HashMap map = new HashMap<>(); for (Object object : objectList) { Map objectMap = (Map) object;//取出list里面的值转为map //将所有的违禁包裹编码存起来 if (value.equals(objectMap.get("objCode").toString())){ count+=Integer.parseInt(objectMap.get("objCount").toString()); map.put("name",objectMap.get("objName").toString()); map.put("value",count); } } list.add(map); } return list; } return null; } /** * 获取包裹统计数据,远程调用接口获取数据 * @param conditionVo 查询条件对象 status 状态码 0:本天 1:本周 2:本月 * @return */ @Override public Object getParcelStatis(ConditionVo conditionVo) { List list = new ArrayList<>();//返回 //1.判空 if (null!=conditionVo.getStatus()) { //2.获取数据 List objectList = getParcelData(conditionVo, PARCEL_URL, PARCEL_KEY, PARCEL_SECRET); if (null != objectList) { //3.创建时间集合,包裹集合数据 List listTime = new ArrayList<>(); List> parcelList = new ArrayList<>(); if (conditionVo.getStatus() == 1) { //3.获取今天之前的每一天数组 2021-3-12 arsn修改 listTime = DateUtils.pastDay(new SimpleDateFormat("yyyy-MM-dd").format(new Date())); List percelTimeList = new ArrayList<>(); for (Object object : objectList) { //4.取出list里面的值转为map Map objectMap = (Map) object; //5.将远程时间数据存入集合 percelTimeList.add(objectMap.get("dateStr").toString()); } for (String time : listTime) { //6.创建map,用于存储包裹数据 HashMap hashMap = new HashMap<>(); //7.如果远程数据哪天数据没有,则为0 if (!percelTimeList.contains(time)) { hashMap.put("dateStr", time); hashMap.put("checkCount", 0); hashMap.put("dangerCount", 0); parcelList.add(hashMap); } else { //8.遍历,分别取出数据 for (Object object : objectList) { //9.取出list里面的值转为map Map objectMap = (Map) object; String dateStr = objectMap.get("dateStr").toString(); //安检时间 Integer checkCount = Integer.parseInt(objectMap.get("checkCount").toString()); //安检包裹数量 Integer dangerCount = Integer.parseInt(objectMap.get("dangerCount").toString()); //违禁包裹数量 //10.判断,存入数据 if (time.equals(dateStr)) { Set> entries = objectMap.entrySet(); for (Map.Entry m : entries) { if (m.getKey().equals("checkCount")) { hashMap.put("checkCount", checkCount); hashMap.put("dateStr", dateStr); } if (m.getKey().equals("dangerCount")) { hashMap.put("dangerCount", dangerCount); } } } } //11.加入到集合中 parcelList.add(hashMap); } } } //12.封装数据 list.add(listTime); list.add(parcelList); list.add(getKindServenDataList(conditionVo)); //13.返回 return list; } } return null; } /** * 数据请求处理 * @param conditionVo 条件 * @param url url * @param key 请求Key * @param secret 请求 secret * @return */ private List getParcelData(ConditionVo conditionVo, String url, String key, String secret) { //1.创建map对象,用于存储请求接口的秘钥 Map map = new HashMap<>(); String startDate = null; String endDate = null; //2.2查询本天的数据 if (null!=conditionVo.getStatus()) { if (conditionVo.getStatus() == 0) { //3.获取本天开始时间和结束时间 startDate = DateUtils.getToday(); endDate = DateUtils.getToday(); } //2.2查询过去6天及当天的的数据 if (conditionVo.getStatus() == 1) { //3.获取过去6天及当天开始时间和结束时间 startDate = DateUtils.getPastDate(6, now()); endDate = DateUtils.getToday(); } //2.4查询本周的数据 if (conditionVo.getStatus() == 3) { //3.获取过去6天及当天开始时间和结束时间 startDate = DateUtils.getWeekStart(); endDate = DateUtils.getWeekEnd(); } //2.2查询本月的数据 if (conditionVo.getStatus() == 2) { //3.获取本月开始时间和结束时间 startDate = DateUtils.getMonthStart(); endDate = DateUtils.getMonthEnd(); } } //2.5 按时间条件查询 if (null!=conditionVo.getStartTime() && conditionVo.getStartTime()!="" && null != conditionVo.getEndTime() && conditionVo.getEndTime()!=""){ startDate = conditionVo.getStartTime().substring(0,10); endDate = conditionVo.getEndTime().substring(0,10); } map.put("startDate", startDate); map.put("endDate", endDate); //4.远程调用数据 String params = HttpClientUtils.httpPost(url, key, secret, map); //5.数据转换 Map data = (Map) JSONObject.parse(params); if (data.get("succ").toString().equals("ok")){ //6.返回数据 return JSON.parseArray(data.get("result").toString()); } return null; } /** * 查询包裹,违禁品总数 * @param conditionVo status 状态码 0:本天 1:本周 2:本月 * @return */ @Override public List selectParcelCount(ConditionVo conditionVo) { List list = new ArrayList<>(); //获取包裹数据 List parcelData = getParcelData(conditionVo, PARCEL_URL, PARCEL_KEY, PARCEL_SECRET); if (null!=parcelData) { //声明包裹和物品数量 Integer dangerCount = 0; Integer contrabandCount = 0; if (null!=conditionVo.getStartTime()){ for (Object object : parcelData) { //取出list里面的值转为map Map objectMap = (Map) object; dangerCount += Integer.parseInt(objectMap.get("dangerCount").toString()); //违禁包裹数量 contrabandCount += Integer.parseInt(objectMap.get("contrabandCount").toString()); //违禁物品数量 } }else { //查询当天的包裹总数 conditionVo.setStatus(0); if (conditionVo.getStatus() == 0) { for (Object object : parcelData) { //取出list里面的值转为map Map objectMap = (Map) object; dangerCount = Integer.parseInt(objectMap.get("dangerCount").toString()); //违禁包裹数量 contrabandCount = Integer.parseInt(objectMap.get("contrabandCount").toString()); //违禁物品数量 } } } //封装数据 list.add(dangerCount); list.add(contrabandCount); //返回数据 return list; } return null; } /** * 查询7天内违禁品每天的数量(需筛选危险品) * @return */ @Override public Map selectParcelData(ConditionVo conditionVo) { HashMap map = new HashMap<>(); map.put("parcelData",getKindServenDataList(conditionVo)); return map; } /** * 获取危险违禁品7天内每天的数量集合 * @return */ public List getKindServenDataList(ConditionVo conditionVo){ if (null==conditionVo.getStartTime()){ conditionVo.setStatus(1);//近7天status 为 1 } //获取数据 List objectList = getParcelData(conditionVo,PARCEL_CONTRABAND_URL,PARCEL_KEY,PARCEL_SECRET); List times = new ArrayList<>(); if (null!=objectList) { //遍历违禁编码map数据 //获取时间 if (null!=conditionVo.getStatus()) { times = DateUtils.pastDay(new SimpleDateFormat("yyyy-MM-dd").format(new Date())); } if (null!=conditionVo.getStartTime()){ times = DateUtils.getTimeOverOneDate(conditionVo.getStartTime(),conditionVo.getEndTime()); } List list = new ArrayList<>(); for (String time : times) { Integer count = 0; //遍历集合数据获取每一天的count for (Object object : objectList) { Map objectMap = (Map) object;//取出list里面的值转为map //对比时间和objCode,危险品,刀具,枪支等 if (time.equals(objectMap.get("dateStr").toString())) { // //枪支 // if (objectMap.get("objCode").toString().equals("gan")) { // count += Integer.parseInt(objectMap.get("objCount").toString()); // } // //刀具 // if (objectMap.get("objCode").toString().equals("knife")) { // count += Integer.parseInt(objectMap.get("objCount").toString()); // } // //爆炸物 // if (objectMap.get("objCode").toString().equals("boomExplosive")) { // count += Integer.parseInt(objectMap.get("objCount").toString()); // } //3-20 修改不筛选危险品,由第三方筛选好 count += Integer.parseInt(objectMap.get("objCount").toString()); } } list.add(count); } return list; } return null; } /** * 获取图片地址 * @param imgUrl 图片Url * @return */ @Override public Map getParcelPic(String imgUrl) { //截取图片imgKey信息 String[] imgKeys = imgUrl.split("=", imgUrl.length()); String imgKey = imgKeys[1]; //封装成map对象 HashMap map = new HashMap<>(); map.put("imgKey",imgKey); //执行http远程调用 String s = HttpClientUtils.doGetHeaderPictureBase64(PARCEL_PICTURE_URL, PARCEL_KEY, PARCEL_SECRET, map); if (null==s || s=="" || s.isEmpty()){ return null; } //获取图片的长宽 Map imageMap = ImageUtil.getBase64ImageWidthAndHeight(s); //封装数据 imageMap.put("imgBase64",s); //返回 return imageMap; } /** * 获取包裹明细分页数据,远程调用api获取数据 * @param conditionVo 请求参数对象 * @return */ @Override public Object getParcelDetailPage(ConditionVo conditionVo) { Map result =(Map) getParcelDataPageList(conditionVo, PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET).get("result"); if (null!=result) { return JSONObject.parse(result.toString()); } return null; } /** * 获取包裹违禁品明细分页数据,远程调用api获取数据 * @param conditionVo 请求参数对象 * @return */ @Override public Object getParcelkindDetailPage(ConditionVo conditionVo) { if(null!=conditionVo.getTimeDesc() && conditionVo.getTimeDesc()!=""){ Map map = new HashMap<>(); List> objectArrayList = new ArrayList<>(); List list = new ArrayList<>(); //设置页码数 ConditionVo vo = new ConditionVo(); vo.setCurrentPage(1); vo.setPageSize(100); vo.setDecisioDiagramResult(conditionVo.getDecisioDiagramResult()); vo.setStartTime(conditionVo.getStartTime()); vo.setEndTime(conditionVo.getEndTime()); Map result =(Map) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); if (null!=result){ List dataList = JSONArray.parseArray(result.get("data").toString()); objectArrayList.add(dataList); //取第一次获取到的数据总数,每次取100条,多于100分批次取 int totalSize = Integer.parseInt(result.get("totalSize").toString()); int i = totalSize/100+1; if (i>1){ for (int j=1;j result0 =(Map) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); List dataLists = JSONArray.parseArray(result0.get("data").toString()); objectArrayList.add(dataLists); } } //合并集合 List collect = objectArrayList.stream().flatMap(List::stream).collect(Collectors.toList()); //选出符合条件的数据 list = TimeDisData(conditionVo,collect); //分页 List listPaging = PageList.getListPaging(list, conditionVo.getCurrentPage(), conditionVo.getPageSize()); map.put("currentPage",conditionVo.getCurrentPage()); map.put("pageSize",conditionVo.getPageSize()); map.put("totalSize",list.size()); map.put("data",listPaging); //返回数据 return map; } }else { String result = getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result").toString(); //获取违禁品数据 if (null!=result) { return JSONObject.parse(result); } } return null; } /** * 获取符合符合时间区间的违禁品明细集合数据 * @param collect * @return */ private List TimeDisData(ConditionVo conditionVo,List collect) { List list = new ArrayList<>(); //遍历集合,选出符合条件的 for (Object object:collect) { Map objectMap = (Map) object; try { long time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(objectMap.get("createTime").toString()).getHours(); if (conditionVo.getTimeDesc().equals("0-2")){ if (time>=0 && time<2){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("2-4")){ if (time>=2 && time<4){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("4-6")){ if (time>=4 && time<6){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("6-8")){ if (time>=6 && time<8){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("8-10")){ if (time>=8 && time<10){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("10-12")){ if (time>=10 && time<12){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("12-14")){ if (time>=12 && time<14){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("14-16")){ if (time>=14 && time<16){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("16-18")){ if (time>=16 && time<18){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("18-20")){ if (time>=18 && time<20){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("20-22")){ if (time>=20 && time<22){ list.add(objectMap); } } if (conditionVo.getTimeDesc().equals("22-24")){ if (time>=22 && time<24){ list.add(objectMap); } } } catch (ParseException e) { e.printStackTrace(); } } return list; } /** * 远程调用api 获取违禁品详细数据 * @param conditionVo 条件 * @param url 违禁品详细数据Url * @param key key * @param secret 秘钥 * @return */ public Map getParcelDataPageList(ConditionVo conditionVo, String url, String key, String secret){ //1.创建map对象存储数据 HashMap map = new HashMap<>(); //2.条件判断 if (null!=conditionVo.getStartTime()){ map.put("startTime", conditionVo.getStartTime()); } if (null!=conditionVo.getEndTime()){ map.put("endTime", conditionVo.getEndTime()); } if (null!=conditionVo.getDecisioDiagramResult()){ map.put("decisioDiagramResult", conditionVo.getDecisioDiagramResult()); } if (null!=conditionVo.getCurrentPage()){ map.put("currentPage", conditionVo.getCurrentPage()); } if (null!=conditionVo.getPageSize()){ map.put("pageSize", conditionVo.getPageSize()); } //3.远程调用api 获取数据 String params = HttpClientUtils.httpPost(url, key, secret, map); Map paramsMap = (Map) JSONObject.parse(params); if (paramsMap.get("succ").toString().equals("ok")){ //4返回数据 return paramsMap; } //4返回数据 return null; } /** * 查询当前时间段违禁品总个数 * @param conditionVo * @return */ @Override public Integer selParcelTimeCount(ConditionVo conditionVo) { return selectParcelCount(conditionVo).get(1); } /** *查询当前时间段区间时间违禁品个数 * @param conditionVo * @return */ @Override public List selParcelTimeDis(ConditionVo conditionVo) { ArrayList> objectArrayList = new ArrayList<>(); //设置页码数 conditionVo.setCurrentPage(1); conditionVo.setPageSize(100); //获取数据 Map result =(Map) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); if (null!=result) { List dataList = JSONArray.parseArray(result.get("data").toString()); objectArrayList.add(dataList); //取第一次获取到的数据总数,每次取100条,多于100分批次取 int totalSize = Integer.parseInt(result.get("totalSize").toString()); int i = totalSize/100+1; if (i>1){ for (int j=1;j result0 =(Map) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); List dataLists = JSONArray.parseArray(result0.get("data").toString()); objectArrayList.add(dataLists); } } //合并集合 List collect = objectArrayList.stream().flatMap(List::stream).collect(Collectors.toList()); //筛选数据,返回数据 return getParcelTimeDis(collect); } return Arrays.asList(0,0,0,0,0,0,0,0,0,0,0,0); } /** * 筛选数据,分类返回 * @param collect 集合数据 * @return */ private List getParcelTimeDis(List collect) { List list = new ArrayList<>(); int count02 = 0; int count0204 = 0; int count0406 = 0; int count0608 = 0; int count0810 = 0; int count1012 = 0; int count1214 = 0; int count1416 = 0; int count1618 = 0; int count1820 = 0; int count2022 = 0; int count2224 = 0; //遍历集合 for (Object data:collect) { Map parcelData =(Map)data; try { long hours = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(parcelData.get("createTime").toString()).getHours(); if (hours>0 && hours< AlarmTimeConstant.TWO){ count02+=1; } if (hours>=AlarmTimeConstant.TWO && hours=AlarmTimeConstant.FOUR && hours=AlarmTimeConstant.SIX && hours=AlarmTimeConstant.EIGHT && hours=AlarmTimeConstant.TEN && hours=AlarmTimeConstant.TWEKVE && hours=AlarmTimeConstant.FOURTEEN && hours=AlarmTimeConstant.SIXTEEN && hours=AlarmTimeConstant.EIGHTEEN && hours=AlarmTimeConstant.TWENTY && hours=AlarmTimeConstant.TWENTY_TWO && hours exportParcel(ConditionVo conditionVo) { List> parcelExcelList = new ArrayList<>(); //设置页码数 conditionVo.setCurrentPage(1); conditionVo.setPageSize(1000); if(null==conditionVo.getDecisioDiagramResult() || conditionVo.getDecisioDiagramResult()=="" || conditionVo.getDecisioDiagramResult().equals("undefined") ){ conditionVo.setDecisioDiagramResult(null); } if(null==conditionVo.getStartTime() || conditionVo.getStartTime()==""|| conditionVo.getStartTime().equals("undefined") ){ conditionVo.setStartTime(null); } if(null==conditionVo.getEndTime() || conditionVo.getEndTime()=="" || conditionVo.getEndTime().equals("undefined") ){ conditionVo.setEndTime(null); } System.out.println("conditionVo 后 = " + conditionVo); //获取数据 Map result =(Map)getParcelDataPageList(conditionVo, PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET).get("result"); if (null!=result) { String data = result.get("data").toString(); List dataList = JsonUtils.jsonToList(data, ParcelExcel.class); parcelExcelList.add(dataList); //取第一次获取到的数据总数,每次取1000条,多于1000分批次取 int totalSize = Integer.parseInt(result.get("totalSize").toString()); int i = totalSize/1000+1; if (i>1){ for (int j=1;j result0 =(Map) getParcelDataPageList(conditionVo, PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET).get("result"); String data0 = result0.get("data").toString(); List dataLists = JsonUtils.jsonToList(data0, ParcelExcel.class); parcelExcelList.add(dataLists); } } //合并集合 List parcelExcels = parcelExcelList.stream().flatMap(List::stream).collect(Collectors.toList()); return parcelExcels; } return null; } /** * 导出违禁品数据表格 * @param conditionVo 查询条件 */ @Override public List exportParcelKind(ConditionVo conditionVo) { List> parcelKindExcelList = new ArrayList<>(); List list = new ArrayList<>(); if(null!=conditionVo.getTimeDesc() && conditionVo.getTimeDesc()!="" && !conditionVo.getTimeDesc().equals("undefined") ){ //设置页码数 ConditionVo vo = new ConditionVo(); vo.setCurrentPage(1); vo.setPageSize(100); if(null!=conditionVo.getDecisioDiagramResult() && conditionVo.getDecisioDiagramResult()!="" && !conditionVo.getDecisioDiagramResult().equals("undefined") ){ vo.setDecisioDiagramResult(conditionVo.getDecisioDiagramResult()); } if(null!=conditionVo.getStartTime() && conditionVo.getStartTime()!="" && !conditionVo.getStartTime().equals("undefined") ) { vo.setStartTime(conditionVo.getStartTime()); } if(null!=conditionVo.getEndTime() && conditionVo.getEndTime()!="" && !conditionVo.getEndTime().equals("undefined") ) { vo.setEndTime(conditionVo.getEndTime()); } Map result =(Map) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); if (null!=result){ String data = result.get("data").toString(); List dataList = JsonUtils.jsonToList(data, ParcelKindExcel.class); parcelKindExcelList.add(dataList); //取第一次获取到的数据总数,每次取100条,多于100分批次取 int totalSize = Integer.parseInt(result.get("totalSize").toString()); int i = totalSize/100+1; if (i>1){ for (int j=1;j result0 =(Map) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); String data0 = result0.get("data").toString(); List kindExcels = JsonUtils.jsonToList(data0, ParcelKindExcel.class); parcelKindExcelList.add(kindExcels); } } //合并集合 List collect = parcelKindExcelList.stream().flatMap(List::stream).collect(Collectors.toList()); //选出符合条件的数据 list = TimeDisDataExcel(conditionVo,collect); //返回数据 return list; } }else { conditionVo.setCurrentPage(1); conditionVo.setPageSize(100); if(null==conditionVo.getDecisioDiagramResult() || conditionVo.getDecisioDiagramResult()=="" || conditionVo.getDecisioDiagramResult().equals("undefined") ){ conditionVo.setDecisioDiagramResult(null); } if(null==conditionVo.getStartTime() || conditionVo.getStartTime()=="" || conditionVo.getStartTime().equals("undefined") ){ conditionVo.setStartTime(null); } if(null==conditionVo.getEndTime() || conditionVo.getEndTime()=="" || conditionVo.getEndTime().equals("undefined") ){ conditionVo.setEndTime(null); } Map result =(Map) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); //获取违禁品数据 if (null!=result) { String data = result.get("data").toString(); List dataList = JsonUtils.jsonToList(data, ParcelKindExcel.class); parcelKindExcelList.add(dataList); //取第一次获取到的数据总数,每次取100条,多于100分批次取 int totalSize = Integer.parseInt(result.get("totalSize").toString()); int i = totalSize/100+1; if (i>1){ for (int j=1;j result0 =(Map) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); String data0 = result0.get("data").toString(); List kindExcels = JsonUtils.jsonToList(data0, ParcelKindExcel.class); parcelKindExcelList.add(kindExcels); } } //合并集合并返回 List parcelKindExcels = parcelKindExcelList.stream().flatMap(List::stream).collect(Collectors.toList()); return parcelKindExcels; } } return null; } /** * 表格导出帅选数据 * @param conditionVo * @param collect * @return */ private List TimeDisDataExcel(ConditionVo conditionVo, List collect) { List list = new ArrayList<>(); //遍历集合,选出符合条件的 for (ParcelKindExcel parcelKindExcel:collect) { try { long time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(parcelKindExcel.getCreateTime()).getHours(); if (conditionVo.getTimeDesc().equals("0-2")){ if (time>=0 && time<2){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("2-4")){ if (time>=2 && time<4){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("4-6")){ if (time>=4 && time<6){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("6-8")){ if (time>=6 && time<8){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("8-10")){ if (time>=8 && time<10){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("10-12")){ if (time>=10 && time<12){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("12-14")){ if (time>=12 && time<14){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("14-16")){ if (time>=14 && time<16){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("16-18")){ if (time>=16 && time<18){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("18-20")){ if (time>=18 && time<20){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("20-22")){ if (time>=20 && time<22){ list.add(parcelKindExcel); } } if (conditionVo.getTimeDesc().equals("22-24")){ if (time>=22 && time<24){ list.add(parcelKindExcel); } } } catch (ParseException e) { e.printStackTrace(); } } return list; } }