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 | 395 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 355 insertions(+), 40 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 d44455b..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,20 @@
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;
import java.util.*;
@@ -33,18 +35,23 @@
@Value("${PARCEL_SECRET}")
private String PARCEL_SECRET;
+ //查询某期间的违禁物品(违禁小类)统计
@Value("${PARCEL_CONTRABAND_URL}")
private String PARCEL_CONTRABAND_URL;
+ //查询某期间的包裹统计
@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;
+ //查询安检违禁品列表
@Value("${PARCEL_KIND_URL}")
private String PARCEL_KIND_URL;
@@ -210,9 +217,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);
@@ -239,16 +244,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()); //违禁物品数量
+ }
}
}
//封装数据
@@ -276,14 +291,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;
@@ -330,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);
//封装数据
@@ -347,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;
}
@@ -381,12 +387,133 @@
*/
@Override
public Object getParcelkindDetailPage(ConditionVo conditionVo) {
- //获取违禁品数据
- String result = getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result").toString();
- if (null!=result) {
- return JSONObject.parse(result);
+ if(null!=conditionVo.getTimeDesc() && conditionVo.getTimeDesc()!=""){
+ Map<Object, Object> map = new HashMap<>();
+ List<List<Object>> objectArrayList = new ArrayList<>();
+ List<Object> list = new ArrayList<>();
+ //设置页码数
+ 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){
+ 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++) {
+ vo.setCurrentPage(j+1);
+ //获取数据
+ Map<String,Object> result0 =(Map<String,Object>) getParcelDataPageList(vo, 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());
+ //选出符合条件的数据
+ list = TimeDisData(conditionVo,collect);
+ //分页
+ List<Object> listPaging = PageList.getListPaging(list, conditionVo.getCurrentPage(), conditionVo.getPageSize());
+ map.put("currentPage",conditionVo.getCurrentPage());
+ map.put("pageSize",conditionVo.getPageSize());
+ map.put("totalSize",list.size());
+ map.put("data",listPaging);
+ //返回数据
+ return map;
+ }
+ }else {
+ String result = getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result").toString();
+ //获取违禁品数据
+ if (null!=result) {
+ return JSONObject.parse(result);
+ }
}
return null;
+ }
+
+ /**
+ * 获取符合符合时间区间的违禁品明细集合数据
+ * @param collect
+ * @return
+ */
+ private List<Object> TimeDisData(ConditionVo conditionVo,List<Object> collect) {
+ List<Object> list = new ArrayList<>();
+ //遍历集合,选出符合条件的
+ for (Object object:collect) {
+ Map<String,Object> objectMap = (Map<String, Object>) object;
+ try {
+ long time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(objectMap.get("createTime").toString()).getHours();
+ if (conditionVo.getTimeDesc().equals("0-2")){
+ if (time>=0 && time<2){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("2-4")){
+ if (time>=2 && time<4){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("4-6")){
+ if (time>=4 && time<6){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("6-8")){
+ if (time>=6 && time<8){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("8-10")){
+ if (time>=8 && time<10){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("10-12")){
+ if (time>=10 && time<12){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("12-14")){
+ if (time>=12 && time<14){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("14-16")){
+ if (time>=14 && time<16){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("16-18")){
+ if (time>=16 && time<18){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("18-20")){
+ if (time>=18 && time<20){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("20-22")){
+ if (time>=20 && time<22){
+ list.add(objectMap);
+ }
+ }
+ if (conditionVo.getTimeDesc().equals("22-24")){
+ if (time>=22 && time<24){
+ list.add(objectMap);
+ }
+ }
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ return list;
}
/**
@@ -553,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