南昌市物联网技防平台-后台
Administrator
2021-03-20 d5b43ef0da42eaf50a08ce17e5fd3351eeb26a5e
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;
/**
 * 包裹服务实现层
@@ -31,7 +35,7 @@
   /**
    * 获取违禁包裹统计数据,远程调用接口
    * @param conditionVo 查询条件对象  status 状态码 0:本天    1:本周   2:本月
    * @param conditionVo 查询条件对象  status 状态码 0:本天    1:近7天   2:本月  3:本周
    * @return
    */
   @Override
@@ -48,6 +52,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 +64,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 +91,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 +139,7 @@
         //12.封装数据
         list.add(listTime);
         list.add(parcelList);
         list.add(getKindServenDataList());
         //13.返回
         return list;
      }
@@ -160,9 +166,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 +190,89 @@
      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;
   }
}