南昌市物联网技防平台-后台
Administrator
2021-03-21 48707050fa3f5a9870e6af09adb66ea8f8a8c3e8
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
@@ -8,7 +8,11 @@
import org.springblade.jfpt.parcel.vo.ConditionVo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import static org.springblade.core.tool.utils.DateUtil.now;
/**
 * 包裹服务实现层
@@ -27,11 +31,14 @@
   @Value("${PARCEL_URL}")
   private String PARCEL_URL;
   @Value("${PARCEL_PICTURE_URL}")
   private String PARCEL_PICTURE_URL;
   /**
    * 获取违禁包裹统计数据,远程调用接口
    * @param conditionVo 查询条件对象  status 状态码 0:本天    1:本周   2:本月
    * @param conditionVo 查询条件对象  status 状态码 0:本天    1:近7天   2:本月  3:本周
    * @return
    */
   @Override
@@ -48,6 +55,7 @@
            //将所有的违禁包裹编码存起来
            mapCode.put(objectMap.get("objCode").toString(),objectMap.get("objCode").toString());
         }
         System.out.println("mapCode = " + mapCode);
         //遍历违禁编码map数据
         List<Map<String,Object>> list = new ArrayList<>();
         for (String value:mapCode.values()) {
@@ -59,7 +67,7 @@
               if (value.equals(objectMap.get("objCode").toString())){
                  count+=Integer.parseInt(objectMap.get("objCount").toString());
                  map.put("name",objectMap.get("objName").toString());
                  map.put("value",objectMap.get("objCount").toString());
                  map.put("value",count);
               }
            }
            list.add(map);
@@ -86,8 +94,8 @@
         List<String> listTime = new ArrayList<>();
         List<Map<String,Object>> parcelList = new ArrayList<>();
         if (conditionVo.getStatus() == 1) {
            //3.获取本周开始时间和结束时间的每一天数组
            listTime = DateUtils.pastDay(DateUtils.getWeekEnd());
            //3.获取今天之前的每一天数组   2021-3-12 arsn修改
            listTime = DateUtils.pastDay(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
            List<String> percelTimeList = new ArrayList<>();
            for (Object object:objectList) {
               //4.取出list里面的值转为map
@@ -134,6 +142,7 @@
         //12.封装数据
         list.add(listTime);
         list.add(parcelList);
         list.add(getKindServenDataList());
         //13.返回
         return list;
      }
@@ -160,9 +169,15 @@
         startDate = DateUtils.getToday();
         endDate = DateUtils.getToday();
      }
      //2.2查询本周内每天的数据
      //2.2查询过去6天及当天的的数据
      if (conditionVo.getStatus() == 1) {
         //3.获取本周开始时间和结束时间
         //3.获取过去6天及当天开始时间和结束时间
         startDate = DateUtils.getPastDate(6,now());
         endDate = DateUtils.getToday();
      }
      //2.4查询本周的数据
      if (conditionVo.getStatus() == 3) {
         //3.获取过去6天及当天开始时间和结束时间
         startDate = DateUtils.getWeekStart();
         endDate = DateUtils.getWeekEnd();
      }
@@ -178,6 +193,108 @@
      String params = HttpClientUtils.httpPost(url, key, secret, map);
      //5.数据转换
      Map<String, Object> data = (Map<String, Object>) JSONObject.parse(params);
      //System.out.println("data = " + data);
      return JSON.parseArray(data.get("result").toString());
   }
   /**
    * 查询包裹,违禁品总数
    * @param status 状态码 0:本天    1:本周   2:本月
    * @return
    */
   @Override
   public List<Integer> selectParcelCount(Integer status) {
      List<Integer> list = new ArrayList<>();
      ConditionVo conditionVo = new ConditionVo();
      conditionVo.setStatus(status);
      //获取包裹数据
      List<Object> parcelData = getParcelData(conditionVo, PARCEL_URL, PARCEL_KEY, PARCEL_SECRET);
      //查询当天的包裹总数
      Integer dangerCount = null;
      Integer contrabandCount = null;
      if (status == 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()); //违禁物品数量
         }
      }
      //封装数据
      list.add(dangerCount);
      list.add(contrabandCount);
      //返回数据
      return list;
   }
   /**
    * 查询7天内违禁品每天的数量(需筛选危险品)
    * @return
    */
   @Override
   public Map<String, Object> selectParcelData() {
      HashMap<String, Object> map = new HashMap<>();
      map.put("parcelData",getKindServenDataList());
      return map;
   }
   /**
    * 获取危险违禁品7天内每天的数量集合
    * @return
    */
   public List<Integer> getKindServenDataList(){
      ConditionVo conditionVo = new ConditionVo();
      conditionVo.setStatus(1);//近7天status 为 1
      //获取数据
      List<Object> objectList = getParcelData(conditionVo,PARCEL_CONTRABAND_URL,PARCEL_KEY,PARCEL_SECRET);
      //遍历违禁编码map数据
      List<String> times = DateUtils.pastDay(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
      List<Integer> list = new ArrayList<>();
      for (String time:times) {
         Integer count = 0;
         //遍历集合数据获取每一天的count
         for (Object object : objectList) {
            Map<String, Object> objectMap = (Map<String, Object>) 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;
   }
   /**
    * 获取图片地址
    * @param imgUrl 图片Url
    * @return
    */
   @Override
   public Map<String, String> getParcelPic(String imgUrl) {
      //截取图片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);
      map.put("imgBase64",s);
      return map;
   }
}