南昌市物联网技防平台-后台
Administrator
2021-04-12 36afc3a1f1437b8a3283dc0bf6475e96fded05a7
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
@@ -3,18 +3,19 @@
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;
@@ -352,6 +353,10 @@
      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);
      //封装数据
@@ -369,28 +374,7 @@
   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;
   }
@@ -696,4 +680,192 @@
      //返回数据
      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;
   }
}