From e5563d727384f85dfff16d4b305a710f4e28e271 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 22 Mar 2021 19:40:50 +0800
Subject: [PATCH] 包裹详情接口调用,在线设备接口修改

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java |  163 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 156 insertions(+), 7 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 14bd180..ead9ef1 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
@@ -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,17 @@
 	@Value("${PARCEL_URL}")
 	private String PARCEL_URL;
 
+	@Value("${PARCEL_PICTURE_URL}")
+	private String PARCEL_PICTURE_URL;
+
+	@Value("${PARCEL_DETAIL_RUL}")
+	private String PARCEL_DETAIL_RUL;
+
 
 
 	/**
 	 * 获取违禁包裹统计数据,远程调用接口
-	 * @param conditionVo 查询条件对象  status 状态码 0:本天    1:本周   2:本月
+	 * @param conditionVo 查询条件对象  status 状态码 0:本天    1:近7天   2:本月  3:本周
 	 * @return
 	 */
 	@Override
@@ -48,6 +58,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 +70,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 +97,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 +145,7 @@
 			//12.封装数据
 			list.add(listTime);
 			list.add(parcelList);
+			list.add(getKindServenDataList());
 			//13.返回
 			return list;
 		}
@@ -151,7 +163,7 @@
 	 */
 	private List<Object> getParcelData(ConditionVo conditionVo, String url, String key, String secret) {
 		//1.创建map对象,用于存储请求接口的秘钥
-		Map<String, String> map = new HashMap<>();
+		Map<String, Object> map = new HashMap<>();
 		String startDate = null;
 		String endDate = null;
 		//2.2查询本天的数据
@@ -160,9 +172,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 +196,137 @@
 		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;
+	}
+
+	/**
+	 * 获取包裹明细分页数据,远程调用api获取数据
+	 * @param conditionVo  请求参数对象
+	 * @return
+	 */
+	@Override
+	public Object getParcelDetailPage(ConditionVo conditionVo) {
+		HashMap<String, Object> map = new HashMap<>();
+		if (null!=conditionVo.getStartTime()){
+			map.put("startTime", conditionVo.getStartTime());
+		}
+		if (null!=conditionVo.getEndTime()){
+			map.put("endTime", conditionVo.getEndTime());
+		}
+		if (null!=conditionVo.getDecisioDiagramResult()){
+			map.put("decisioDiagramResult", conditionVo.getDecisioDiagramResult());
+		}
+		if (null!=conditionVo.getCurrentPage()){
+			map.put("currentPage", conditionVo.getCurrentPage());
+		}
+		if (null!=conditionVo.getPageSize()){
+			map.put("pageSize", conditionVo.getPageSize());
+		}
+		String params = HttpClientUtils.httpPost(PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET, map);
+		Map<String, Object> data = (Map<String, Object>) JSONObject.parse(params);
+		//4.远程调用数据
+		return JSONObject.parse(data.get("result").toString());
+	}
 }

--
Gitblit v1.9.3