From 36afc3a1f1437b8a3283dc0bf6475e96fded05a7 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 12 Apr 2021 22:35:36 +0800
Subject: [PATCH] 新增主动报警alarm,健康码,体温,包裹,违禁品导出数据接口

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java |  222 +++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 197 insertions(+), 25 deletions(-)

diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
index 77a8d84..4be1cbe 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
+++ b/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;
+	}
 }

--
Gitblit v1.9.3