From 2c2b1ab406d3049a0e69fff01e3daade5cbe90ea Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 08 Apr 2021 19:59:26 +0800
Subject: [PATCH] 预警数量统计接口修改,新增按时间条件查询条件,违禁品统计接口修改

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java |  161 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 149 insertions(+), 12 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 bca65ef..322d7c8 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
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 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;
@@ -14,8 +15,10 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static org.springblade.core.tool.utils.DateUtil.now;
 
@@ -69,7 +72,6 @@
 				//将所有的违禁包裹编码存起来
 				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()) {
@@ -208,9 +210,7 @@
 		if (null!=conditionVo.getStartTime() && conditionVo.getStartTime()!=""
 			&& null != conditionVo.getEndTime() && conditionVo.getEndTime()!=""){
 			startDate = conditionVo.getStartTime().substring(0,10);
-			System.out.println("startDate = " + startDate);
 			endDate = conditionVo.getEndTime().substring(0,10);
-			System.out.println("endDate = " + endDate);
 		}
 		map.put("startDate", startDate);
 		map.put("endDate", endDate);
@@ -237,16 +237,26 @@
 		//获取包裹数据
 		List<Object> parcelData = getParcelData(conditionVo, PARCEL_URL, PARCEL_KEY, PARCEL_SECRET);
 		if (null!=parcelData) {
-			//查询当天的包裹总数
-			Integer dangerCount = null;
-			Integer contrabandCount = null;
-			conditionVo.setStatus(0);
-			if (conditionVo.getStatus() == 0) {
+			//声明包裹和物品数量
+			Integer dangerCount = 0;
+			Integer contrabandCount = 0;
+			if (null!=conditionVo.getStartTime()){
 				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()); //违禁物品数量
+					dangerCount += Integer.parseInt(objectMap.get("dangerCount").toString()); //违禁包裹数量
+					contrabandCount += Integer.parseInt(objectMap.get("contrabandCount").toString()); //违禁物品数量
+				}
+			}else {
+				//查询当天的包裹总数
+				conditionVo.setStatus(0);
+				if (conditionVo.getStatus() == 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()); //违禁物品数量
+					}
 				}
 			}
 			//封装数据
@@ -274,14 +284,22 @@
 	 * @return
 	 */
 	public List<Integer> getKindServenDataList(ConditionVo conditionVo){
-		if (null==conditionVo){
+		if (null==conditionVo.getStartTime()){
 			conditionVo.setStatus(1);//近7天status 为 1
 		}
 		//获取数据
 		List<Object> objectList = getParcelData(conditionVo,PARCEL_CONTRABAND_URL,PARCEL_KEY,PARCEL_SECRET);
+		List<String> times = new ArrayList<>();
 		if (null!=objectList) {
 			//遍历违禁编码map数据
-			List<String> times = DateUtils.pastDay(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+			//获取时间
+			if (null!=conditionVo.getStatus()) {
+				times = DateUtils.pastDay(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+			}
+			if (null!=conditionVo.getStartTime()){
+				times = DateUtils.getTimeOverOneDate(conditionVo.getStartTime(),conditionVo.getEndTime());
+			}
+
 			List<Integer> list = new ArrayList<>();
 			for (String time : times) {
 				Integer count = 0;
@@ -379,8 +397,10 @@
 	 */
 	@Override
 	public Object getParcelkindDetailPage(ConditionVo conditionVo) {
+		System.out.println("conditionVo = " + conditionVo);
 		//获取违禁品数据
 		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);
 		}
@@ -434,4 +454,121 @@
 	public Integer selParcelTimeCount(ConditionVo conditionVo) {
 		return selectParcelCount(conditionVo).get(1);
 	}
+
+	/**
+	 *查询当前时间段区间时间违禁品个数
+	 * @param conditionVo
+	 * @return
+	 */
+	@Override
+	public List<Integer> selParcelTimeDis(ConditionVo conditionVo) {
+		ArrayList<List<Object>> objectArrayList = new ArrayList<>();
+		//设置页码数
+		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) {
+			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++) {
+					conditionVo.setCurrentPage(j+1);
+					//获取数据
+					Map<String,Object> result0 =(Map<String,Object>) getParcelDataPageList(conditionVo, 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());
+			//筛选数据,返回数据
+			return getParcelTimeDis(collect);
+		}
+		return Arrays.asList(0,0,0,0,0,0,0,0,0,0,0,0);
+	}
+
+	/**
+	 * 筛选数据,分类返回
+	 * @param collect 集合数据
+	 * @return
+	 */
+	private List<Integer> getParcelTimeDis(List<Object> collect) {
+		List<Integer> list = new ArrayList<>();
+		int count02 = 0;
+		int count0204 = 0;
+		int count0406 = 0;
+		int count0608 = 0;
+		int count0810 = 0;
+		int count1012 = 0;
+		int count1214 = 0;
+		int count1416 = 0;
+		int count1618 = 0;
+		int count1820 = 0;
+		int count2022 = 0;
+		int count2224 = 0;
+		//遍历集合
+		for (Object data:collect) {
+			Map<String,Object> parcelData =(Map<String,Object>)data;
+			try {
+				long hours = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(parcelData.get("createTime").toString()).getHours();
+				if (hours>0 && hours< AlarmTimeConstant.TWO){
+					count02+=1;
+				}
+				if (hours>=AlarmTimeConstant.TWO && hours<AlarmTimeConstant.FOUR){
+					count0204+=1;
+				}
+				if (hours>=AlarmTimeConstant.FOUR && hours<AlarmTimeConstant.SIX){
+					count0406+=1;
+				}
+				if (hours>=AlarmTimeConstant.SIX && hours<AlarmTimeConstant.EIGHT){
+					count0608+=1;
+				}
+				if (hours>=AlarmTimeConstant.EIGHT && hours<AlarmTimeConstant.TEN){
+					count0810+=1;
+				}
+				if (hours>=AlarmTimeConstant.TEN && hours<AlarmTimeConstant.TWEKVE){
+					count1012+=1;
+				}
+				if (hours>=AlarmTimeConstant.TWEKVE && hours<AlarmTimeConstant.FOURTEEN){
+					count1214+=1;
+				}
+				if (hours>=AlarmTimeConstant.FOURTEEN && hours<AlarmTimeConstant.SIXTEEN){
+					count1416+=1;
+				}
+				if (hours>=AlarmTimeConstant.SIXTEEN && hours<AlarmTimeConstant.EIGHTEEN){
+					count1618+=1;
+				}
+				if (hours>=AlarmTimeConstant.EIGHTEEN && hours<AlarmTimeConstant.TWENTY){
+					count1820+=1;
+				}
+				if (hours>=AlarmTimeConstant.TWENTY && hours<AlarmTimeConstant.TWENTY_TWO){
+					count2022+=1;
+				}
+				if (hours>=AlarmTimeConstant.TWENTY_TWO && hours<AlarmTimeConstant.TWENTY_FOUR){
+					count2224+=1;
+				}
+			} catch (ParseException e) {
+				e.printStackTrace();
+			}
+		}
+		//封装数据
+		list.add(count02);
+		list.add(count0204);
+		list.add(count0406);
+		list.add(count0608);
+		list.add(count0810);
+		list.add(count1012);
+		list.add(count1214);
+		list.add(count1416);
+		list.add(count1618);
+		list.add(count1820);
+		list.add(count2022);
+		list.add(count2224);
+		//返回数据
+		return list;
+	}
 }

--
Gitblit v1.9.3