package org.springblade.jfpt.parcel.service.impl;
|
|
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.*;
|
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.*;
|
import java.util.stream.Collectors;
|
|
import static org.springblade.core.tool.utils.DateUtil.now;
|
|
/**
|
* 包裹服务实现层
|
*/
|
@Service
|
public class ParcelServiceImpl implements ParcelService {
|
@Value("${PARCEL_KEY}")
|
private String PARCEL_KEY;
|
|
@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;
|
|
@Value("${PARCEL_PRE_URL}")
|
private String PARCEL_PRE_URL;
|
|
|
|
/**
|
* 获取违禁包裹统计数据,远程调用接口
|
* @param conditionVo 查询条件对象 status 状态码 0:本天 1:近7天 2:本月 3:本周
|
* @return
|
*/
|
@Override
|
public List<Map<String, Object>> parcelKindStatis(ConditionVo conditionVo) {
|
//1.判空
|
if (null!=conditionVo.getStatus()) {
|
//获取数据
|
List<Object> objectList = getParcelData(conditionVo,PARCEL_CONTRABAND_URL,PARCEL_KEY,PARCEL_SECRET);
|
Map<String,String> mapCode = new HashMap<>();
|
//遍历集合,存储所有的违禁包裹编码
|
for (Object object : objectList) {
|
//取出list里面的值转为map
|
Map<String, Object> objectMap = (Map<String, Object>) object;
|
//将所有的违禁包裹编码存起来
|
mapCode.put(objectMap.get("objCode").toString(),objectMap.get("objCode").toString());
|
}
|
//遍历违禁编码map数据
|
List<Map<String,Object>> list = new ArrayList<>();
|
for (String value:mapCode.values()) {
|
Integer count = 0;
|
HashMap<String, Object> map = new HashMap<>();
|
for (Object object : objectList) {
|
Map<String, Object> objectMap = (Map<String, Object>) object;//取出list里面的值转为map
|
//将所有的违禁包裹编码存起来
|
if (value.equals(objectMap.get("objCode").toString())){
|
count+=Integer.parseInt(objectMap.get("objCount").toString());
|
map.put("name",objectMap.get("objName").toString());
|
map.put("value",count);
|
}
|
}
|
list.add(map);
|
}
|
return list;
|
}
|
return null;
|
}
|
|
/**
|
* 获取包裹统计数据,远程调用接口获取数据
|
* @param conditionVo 查询条件对象 status 状态码 0:本天 1:本周 2:本月
|
* @return
|
*/
|
@Override
|
public Object getParcelStatis(ConditionVo conditionVo) {
|
List<Object> list = new ArrayList<>();//返回
|
//1.判空
|
if (null!=conditionVo.getStatus()) {
|
//2.获取数据
|
List<Object> objectList = getParcelData(conditionVo, PARCEL_URL, PARCEL_KEY, PARCEL_SECRET);
|
if (null != objectList) {
|
//3.创建时间集合,包裹集合数据
|
List<String> listTime = new ArrayList<>();
|
List<Map<String, Object>> parcelList = new ArrayList<>();
|
if (conditionVo.getStatus() == 1) {
|
//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
|
Map<String, Object> objectMap = (Map<String, Object>) object;
|
//5.将远程时间数据存入集合
|
percelTimeList.add(objectMap.get("dateStr").toString());
|
}
|
for (String time : listTime) {
|
//6.创建map,用于存储包裹数据
|
HashMap<String, Object> hashMap = new HashMap<>();
|
//7.如果远程数据哪天数据没有,则为0
|
if (!percelTimeList.contains(time)) {
|
hashMap.put("dateStr", time);
|
hashMap.put("checkCount", 0);
|
hashMap.put("dangerCount", 0);
|
parcelList.add(hashMap);
|
} else {
|
//8.遍历,分别取出数据
|
for (Object object : objectList) {
|
//9.取出list里面的值转为map
|
Map<String, Object> objectMap = (Map<String, Object>) object;
|
String dateStr = objectMap.get("dateStr").toString(); //安检时间
|
Integer checkCount = Integer.parseInt(objectMap.get("checkCount").toString()); //安检包裹数量
|
Integer dangerCount = Integer.parseInt(objectMap.get("dangerCount").toString()); //违禁包裹数量
|
//10.判断,存入数据
|
if (time.equals(dateStr)) {
|
Set<Map.Entry<String, Object>> entries = objectMap.entrySet();
|
for (Map.Entry<String, Object> m : entries) {
|
if (m.getKey().equals("checkCount")) {
|
hashMap.put("checkCount", checkCount);
|
hashMap.put("dateStr", dateStr);
|
}
|
if (m.getKey().equals("dangerCount")) {
|
hashMap.put("dangerCount", dangerCount);
|
}
|
}
|
}
|
}
|
//11.加入到集合中
|
parcelList.add(hashMap);
|
}
|
}
|
}
|
//12.封装数据
|
list.add(listTime);
|
list.add(parcelList);
|
list.add(getKindServenDataList(conditionVo));
|
//13.返回
|
return list;
|
}
|
}
|
return null;
|
}
|
|
|
/**
|
* 数据请求处理
|
* @param conditionVo 条件
|
* @param url url
|
* @param key 请求Key
|
* @param secret 请求 secret
|
* @return
|
*/
|
private List<Object> getParcelData(ConditionVo conditionVo, String url, String key, String secret) {
|
//1.创建map对象,用于存储请求接口的秘钥
|
Map<String, Object> map = new HashMap<>();
|
String startDate = null;
|
String endDate = null;
|
//2.2查询本天的数据
|
if (null!=conditionVo.getStatus()) {
|
if (conditionVo.getStatus() == 0) {
|
//3.获取本天开始时间和结束时间
|
startDate = DateUtils.getToday();
|
endDate = DateUtils.getToday();
|
}
|
//2.2查询过去6天及当天的的数据
|
if (conditionVo.getStatus() == 1) {
|
//3.获取过去6天及当天开始时间和结束时间
|
startDate = DateUtils.getPastDate(6, now());
|
endDate = DateUtils.getToday();
|
}
|
//2.4查询本周的数据
|
if (conditionVo.getStatus() == 3) {
|
//3.获取过去6天及当天开始时间和结束时间
|
startDate = DateUtils.getWeekStart();
|
endDate = DateUtils.getWeekEnd();
|
}
|
//2.2查询本月的数据
|
if (conditionVo.getStatus() == 2) {
|
//3.获取本月开始时间和结束时间
|
startDate = DateUtils.getMonthStart();
|
endDate = DateUtils.getMonthEnd();
|
}
|
}
|
//2.5 按时间条件查询
|
if (null!=conditionVo.getStartTime() && conditionVo.getStartTime()!=""
|
&& null != conditionVo.getEndTime() && conditionVo.getEndTime()!=""){
|
startDate = conditionVo.getStartTime().substring(0,10);
|
endDate = conditionVo.getEndTime().substring(0,10);
|
}
|
map.put("startDate", startDate);
|
map.put("endDate", endDate);
|
//4.远程调用数据
|
String params = HttpClientUtils.httpPost(url, key, secret, map);
|
//5.数据转换
|
Map<String, Object> data = (Map<String, Object>) JSONObject.parse(params);
|
if (data.get("succ").toString().equals("ok")){
|
//6.返回数据
|
return JSON.parseArray(data.get("result").toString());
|
}
|
return null;
|
}
|
|
|
/**
|
* 查询包裹,违禁品总数
|
* @param conditionVo status 状态码 0:本天 1:本周 2:本月
|
* @return
|
*/
|
@Override
|
public List<Integer> selectParcelCount(ConditionVo conditionVo) {
|
List<Integer> list = new ArrayList<>();
|
//获取包裹数据
|
List<Object> parcelData = getParcelData(conditionVo, PARCEL_URL, PARCEL_KEY, PARCEL_SECRET);
|
if (null!=parcelData) {
|
//声明包裹和物品数量
|
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()); //违禁物品数量
|
}
|
}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()); //违禁物品数量
|
}
|
}
|
}
|
//封装数据
|
list.add(dangerCount);
|
list.add(contrabandCount);
|
//返回数据
|
return list;
|
}
|
return null;
|
}
|
|
/**
|
* 查询7天内违禁品每天的数量(需筛选危险品)
|
* @return
|
*/
|
@Override
|
public Map<String, Object> selectParcelData(ConditionVo conditionVo) {
|
HashMap<String, Object> map = new HashMap<>();
|
map.put("parcelData",getKindServenDataList(conditionVo));
|
return map;
|
}
|
|
/**
|
* 获取危险违禁品7天内每天的数量集合
|
* @return
|
*/
|
public List<Integer> getKindServenDataList(ConditionVo 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数据
|
//获取时间
|
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;
|
//遍历集合数据获取每一天的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;
|
}
|
return null;
|
}
|
|
/**
|
* 获取图片地址
|
* @param imgUrl 图片Url
|
* @return
|
*/
|
@Override
|
public Map<String, Object> 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);
|
System.out.println("s = " + s);
|
if (null==s || s=="" || s.isEmpty()){
|
return null;
|
}
|
//获取图片的长宽
|
Map<String, Object> imageMap = ImageUtil.getBase64ImageWidthAndHeight(s);
|
//封装数据
|
imageMap.put("imgBase64",s);
|
//返回
|
return imageMap;
|
}
|
|
/**
|
* 获取包裹明细分页数据,远程调用api获取数据
|
* @param conditionVo 请求参数对象
|
* @return
|
*/
|
@Override
|
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) {
|
return JSONObject.parse(result.toString());
|
}
|
return null;
|
}
|
|
|
/**
|
* 获取包裹违禁品明细分页数据,远程调用api获取数据
|
* @param conditionVo 请求参数对象
|
* @return
|
*/
|
@Override
|
public Object getParcelkindDetailPage(ConditionVo conditionVo) {
|
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;
|
}
|
|
/**
|
* 远程调用api 获取违禁品详细数据
|
* @param conditionVo 条件
|
* @param url 违禁品详细数据Url
|
* @param key key
|
* @param secret 秘钥
|
* @return
|
*/
|
public Map<String,Object> getParcelDataPageList(ConditionVo conditionVo, String url, String key, String secret){
|
//1.创建map对象存储数据
|
HashMap<String, Object> map = new HashMap<>();
|
//2.条件判断
|
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());
|
}
|
//3.远程调用api 获取数据
|
String params = HttpClientUtils.httpPost(url, key, secret, map);
|
Map<String,Object> paramsMap = (Map<String, Object>) JSONObject.parse(params);
|
if (paramsMap.get("succ").toString().equals("ok")){
|
//4返回数据
|
return paramsMap;
|
}
|
//4返回数据
|
return null;
|
}
|
|
/**
|
* 查询当前时间段违禁品总个数
|
* @param conditionVo
|
* @return
|
*/
|
@Override
|
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;
|
}
|
|
|
/**
|
* 导出包裹数据表格
|
* @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;
|
}
|
}
|