南昌市物联网技防平台-后台
zengh
2021-04-09 abb5cea60f5a0c8735febd9a5cca5f768114d370
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
@@ -15,6 +15,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.lang.reflect.Array;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -33,18 +34,23 @@
   @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;
@@ -397,17 +403,136 @@
    */
   @Override
   public Object getParcelkindDetailPage(ConditionVo conditionVo) {
      System.out.println("conditionVo = " + conditionVo);
      //获取违禁品数据
      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();
      System.out.println("result = " + result);
         //获取违禁品数据
      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;
   }
   /**
    * 远程调用api 获取违禁品详细数据
    * @param conditionVo 条件
    * @param url 违禁品详细数据Url