| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alibaba.nacos.common.utils.JacksonUtils; |
| | | import io.swagger.models.auth.In; |
| | | 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.DateUtils; |
| | | import org.springblade.jfpt.parcel.util.HttpClientUtils; |
| | | import org.springblade.jfpt.parcel.util.JacksonUtil; |
| | | import org.springblade.jfpt.parcel.util.PageList; |
| | | import org.springblade.jfpt.parcel.util.*; |
| | | import org.springblade.jfpt.parcel.vo.ConditionVo; |
| | | import org.springblade.jfpt.parcel.vo.ParcelExcel; |
| | | import org.springblade.jfpt.parcel.vo.ParcelKindExcel; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import java.lang.reflect.Array; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | |
| | | @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; |
| | | |
| | |
| | | if (null!=conditionVo.getStartTime() && conditionVo.getStartTime()!="" |
| | | && null != conditionVo.getEndTime() && conditionVo.getEndTime()!=""){ |
| | | startDate = conditionVo.getStartTime().substring(0,10); |
| | | System.out.println("startDate = " + startDate); |
| | | endDate = conditionVo.getEndTime().substring(0,10); |
| | | System.out.println("endDate = " + endDate); |
| | | } |
| | | map.put("startDate", startDate); |
| | | map.put("endDate", endDate); |
| | |
| | | //获取包裹数据 |
| | | List<Object> parcelData = getParcelData(conditionVo, PARCEL_URL, PARCEL_KEY, PARCEL_SECRET); |
| | | if (null!=parcelData) { |
| | | //查询当天的包裹总数 |
| | | Integer dangerCount = null; |
| | | Integer contrabandCount = null; |
| | | conditionVo.setStatus(0); |
| | | if (conditionVo.getStatus() == 0) { |
| | | //声明包裹和物品数量 |
| | | Integer dangerCount = 0; |
| | | Integer contrabandCount = 0; |
| | | if (null!=conditionVo.getStartTime()){ |
| | | for (Object object : parcelData) { |
| | | //取出list里面的值转为map |
| | | Map<String, Object> objectMap = (Map<String, Object>) object; |
| | | dangerCount = Integer.parseInt(objectMap.get("dangerCount").toString()); //违禁包裹数量 |
| | | contrabandCount = Integer.parseInt(objectMap.get("contrabandCount").toString()); //违禁物品数量 |
| | | 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<String, Object> objectMap = (Map<String, Object>) object; |
| | | dangerCount = Integer.parseInt(objectMap.get("dangerCount").toString()); //违禁包裹数量 |
| | | contrabandCount = Integer.parseInt(objectMap.get("contrabandCount").toString()); //违禁物品数量 |
| | | } |
| | | } |
| | | } |
| | | //封装数据 |
| | |
| | | * @return |
| | | */ |
| | | public List<Integer> getKindServenDataList(ConditionVo conditionVo){ |
| | | if (null==conditionVo){ |
| | | if (null==conditionVo.getStartTime()){ |
| | | conditionVo.setStatus(1);//近7天status 为 1 |
| | | } |
| | | //获取数据 |
| | | List<Object> objectList = getParcelData(conditionVo,PARCEL_CONTRABAND_URL,PARCEL_KEY,PARCEL_SECRET); |
| | | List<String> times = new ArrayList<>(); |
| | | if (null!=objectList) { |
| | | //遍历违禁编码map数据 |
| | | List<String> times = DateUtils.pastDay(new SimpleDateFormat("yyyy-MM-dd").format(new Date())); |
| | | //获取时间 |
| | | 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<Integer> list = new ArrayList<>(); |
| | | for (String time : times) { |
| | | Integer count = 0; |
| | |
| | | map.put("imgKey",imgKey); |
| | | //执行http远程调用 |
| | | String s = HttpClientUtils.doGetHeaderPictureBase64(PARCEL_PICTURE_URL, PARCEL_KEY, PARCEL_SECRET, map); |
| | | System.out.println("s = " + s); |
| | | if (null==s || s=="" || s.isEmpty()){ |
| | | return null; |
| | | } |
| | | //获取图片的长宽 |
| | | Map<String, Object> imageMap = ImageUtil.getBase64ImageWidthAndHeight(s); |
| | | //封装数据 |
| | |
| | | public Object getParcelDetailPage(ConditionVo conditionVo) { |
| | | Map<String,Object> result =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET).get("result"); |
| | | if (null!=result) { |
| | | // List<Object> dataList = JSONArray.parseArray(result.get("data").toString()); |
| | | // System.out.println("dataList = " + dataList); |
| | | // //遍历集合 |
| | | // for (Object data:dataList) { |
| | | // Map<String,Object> parcelData =(Map<String,Object>)data; |
| | | // String imgUrl = parcelData.get("imgUrl").toString(); |
| | | // //查询图片 PARCEL_PRE_URL |
| | | // //截取图片imgKey信息 |
| | | // String[] imgKeys = imgUrl.split("=", imgUrl.length()); |
| | | // String imgKey = imgKeys[1]; |
| | | // //封装成map对象 |
| | | // HashMap<String, String> map = new HashMap<>(); |
| | | // map.put("imgKey",imgKey); |
| | | // //执行http远程调用 |
| | | // String s = HttpClientUtils.doGetHeaderPictureBase64(PARCEL_PICTURE_URL, PARCEL_KEY, PARCEL_SECRET, map); |
| | | // //封装数据 |
| | | // if (null!=s && s!="") { |
| | | // parcelData.put("imgUrl", s); |
| | | // } |
| | | // } |
| | | return JSONObject.parse(result.toString()); |
| | | |
| | | } |
| | | return null; |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public Object getParcelkindDetailPage(ConditionVo conditionVo) { |
| | | //获取违禁品数据 |
| | | String result = getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result").toString(); |
| | | if (null!=result) { |
| | | return JSONObject.parse(result); |
| | | if(null!=conditionVo.getTimeDesc() && conditionVo.getTimeDesc()!=""){ |
| | | Map<Object, Object> map = new HashMap<>(); |
| | | List<List<Object>> objectArrayList = new ArrayList<>(); |
| | | List<Object> 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<String,Object> result =(Map<String,Object>) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); |
| | | if (null!=result){ |
| | | List<Object> 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<i;j++) { |
| | | vo.setCurrentPage(j+1); |
| | | //获取数据 |
| | | Map<String,Object> result0 =(Map<String,Object>) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); |
| | | List<Object> dataLists = JSONArray.parseArray(result0.get("data").toString()); |
| | | objectArrayList.add(dataLists); |
| | | } |
| | | } |
| | | //合并集合 |
| | | List<Object> collect = objectArrayList.stream().flatMap(List::stream).collect(Collectors.toList()); |
| | | //选出符合条件的数据 |
| | | list = TimeDisData(conditionVo,collect); |
| | | //分页 |
| | | List<Object> 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<Object> TimeDisData(ConditionVo conditionVo,List<Object> collect) { |
| | | List<Object> list = new ArrayList<>(); |
| | | //遍历集合,选出符合条件的 |
| | | for (Object object:collect) { |
| | | Map<String,Object> objectMap = (Map<String, Object>) 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | //返回数据 |
| | | return list; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 导出包裹数据表格 |
| | | * @param conditionVo 查询条件 |
| | | */ |
| | | @Override |
| | | public List<ParcelExcel> exportParcel(ConditionVo conditionVo) { |
| | | ArrayList<List<ParcelExcel>> parcelExcelList = new ArrayList<>(); |
| | | //设置页码数 |
| | | conditionVo.setCurrentPage(1); |
| | | conditionVo.setPageSize(100); |
| | | //获取数据 |
| | | Map<String,Object> result =(Map<String,Object>)getParcelDataPageList(conditionVo, PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET).get("result"); |
| | | if (null!=result) { |
| | | String data = result.get("data").toString(); |
| | | List<ParcelExcel> dataList = JsonUtils.jsonToList(data, ParcelExcel.class); |
| | | parcelExcelList.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<i;j++) { |
| | | conditionVo.setCurrentPage(j+1); |
| | | //获取数据 |
| | | Map<String,Object> result0 =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET).get("result"); |
| | | String data0 = result0.get("data").toString(); |
| | | List<ParcelExcel> dataLists = JsonUtils.jsonToList(data0, ParcelExcel.class); |
| | | parcelExcelList.add(dataLists); |
| | | } |
| | | } |
| | | //合并集合 |
| | | List<ParcelExcel> parcelExcels = parcelExcelList.stream().flatMap(List::stream).collect(Collectors.toList()); |
| | | System.out.println("parcelExcels = " + parcelExcels); |
| | | return parcelExcels; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 导出违禁品数据表格 |
| | | * @param conditionVo 查询条件 |
| | | */ |
| | | @Override |
| | | public List<ParcelKindExcel> exportParcelKind(ConditionVo conditionVo) { |
| | | System.out.println("conditionVo = " + conditionVo); |
| | | List<List<ParcelKindExcel>> parcelKindExcelList = new ArrayList<>(); |
| | | List<ParcelKindExcel> list = new ArrayList<>(); |
| | | if(null!=conditionVo.getTimeDesc() && conditionVo.getTimeDesc()!="" && !conditionVo.getTimeDesc().equals("undefined") ){ |
| | | //设置页码数 |
| | | ConditionVo vo = new ConditionVo(); |
| | | vo.setCurrentPage(1); |
| | | vo.setPageSize(100); |
| | | vo.setDecisioDiagramResult(conditionVo.getDecisioDiagramResult()); |
| | | vo.setStartTime(conditionVo.getStartTime()); |
| | | vo.setEndTime(conditionVo.getEndTime()); |
| | | Map<String,Object> result =(Map<String,Object>) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); |
| | | if (null!=result){ |
| | | String data = result.get("data").toString(); |
| | | List<ParcelKindExcel> 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<i;j++) { |
| | | vo.setCurrentPage(j+1); |
| | | //获取数据 |
| | | Map<String,Object> result0 =(Map<String,Object>) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); |
| | | String data0 = result0.get("data").toString(); |
| | | List<ParcelKindExcel> kindExcels = JsonUtils.jsonToList(data0, ParcelKindExcel.class); |
| | | parcelKindExcelList.add(kindExcels); |
| | | } |
| | | } |
| | | //合并集合 |
| | | List<ParcelKindExcel> collect = parcelKindExcelList.stream().flatMap(List::stream).collect(Collectors.toList()); |
| | | //选出符合条件的数据 |
| | | list = TimeDisDataExcel(conditionVo,collect); |
| | | //返回数据 |
| | | return list; |
| | | } |
| | | }else { |
| | | conditionVo.setCurrentPage(1); |
| | | conditionVo.setPageSize(100); |
| | | Map<String,Object> result =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); |
| | | //获取违禁品数据 |
| | | if (null!=result) { |
| | | String data = result.get("data").toString(); |
| | | List<ParcelKindExcel> 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<i;j++) { |
| | | conditionVo.setCurrentPage(j+1); |
| | | //获取数据 |
| | | Map<String,Object> result0 =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result"); |
| | | String data0 = result0.get("data").toString(); |
| | | List<ParcelKindExcel> kindExcels = JsonUtils.jsonToList(data0, ParcelKindExcel.class); |
| | | parcelKindExcelList.add(kindExcels); |
| | | } |
| | | } |
| | | //合并集合并返回 |
| | | return parcelKindExcelList.stream().flatMap(List::stream).collect(Collectors.toList()); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 表格导出帅选数据 |
| | | * @param conditionVo |
| | | * @param collect |
| | | * @return |
| | | */ |
| | | private List<ParcelKindExcel> TimeDisDataExcel(ConditionVo conditionVo, List<ParcelKindExcel> collect) { |
| | | List<ParcelKindExcel> 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; |
| | | } |
| | | } |