From b5960d1968e007b91d4d33dd7cbb74f1b566f2c1 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 24 May 2024 10:20:01 +0800
Subject: [PATCH] 到期时间修改

---
 src/main/java/org/springblade/modules/location/service/impl/LiveLocationServiceImpl.java |  161 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 160 insertions(+), 1 deletions(-)

diff --git a/src/main/java/org/springblade/modules/location/service/impl/LiveLocationServiceImpl.java b/src/main/java/org/springblade/modules/location/service/impl/LiveLocationServiceImpl.java
index 4a3c09c..84132d1 100644
--- a/src/main/java/org/springblade/modules/location/service/impl/LiveLocationServiceImpl.java
+++ b/src/main/java/org/springblade/modules/location/service/impl/LiveLocationServiceImpl.java
@@ -1,15 +1,26 @@
 package org.springblade.modules.location.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.springblade.common.utils.InvestigateUtil;
+import org.springblade.modules.equipage.entity.Gun;
+import org.springblade.modules.equipage.service.GunService;
 import org.springblade.modules.location.entity.LiveLocation;
 import org.springblade.modules.location.mapper.LiveLocationMapper;
 import org.springblade.modules.location.service.LiveLocationService;
+import org.springblade.modules.location.vo.GunLiveLocationVO;
 import org.springblade.modules.location.vo.LiveLocationVo;
 import org.springblade.modules.location.vo.LocusVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 实时位置服务实现类
@@ -17,6 +28,9 @@
  */
 @Service
 public class LiveLocationServiceImpl extends ServiceImpl<LiveLocationMapper, LiveLocation> implements LiveLocationService {
+
+	@Autowired
+	private GunService gunService;
 
 	/**
 	 * 实时位置分页信息
@@ -45,6 +59,151 @@
 	 */
 	@Override
 	public List<LocusVo> getLocusInfoList(LiveLocationVo liveLocationVo) {
+
 		return baseMapper.getLocusInfoList(liveLocationVo);
 	}
+
+
+
+	/**
+	 * 首页实时定位
+	 * @return
+	 */
+	@Override
+	public List<LiveLocationVo> getLiveLocationVoList(LiveLocationVo liveLocationVo) {
+		//保安人员
+		if (liveLocationVo.getType()==1){
+			return baseMapper.getSecurityLocusInfoList(liveLocationVo);
+		}
+		//车辆
+		if (liveLocationVo.getType()==2){
+			return baseMapper.getCarLocusInfoList(liveLocationVo);
+		}
+		//枪支
+		if (liveLocationVo.getType()==3){
+			//获取枪支数据
+			List<Gun> gunList = gunService.list();
+			//创建集合
+			List<LiveLocationVo> list = new ArrayList<>();
+			if (gunList.size()>0){
+				String startTime = "2020-05-25";
+				String endTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+				//遍历
+				for (Gun gun : gunList) {
+					if (!StringUtils.isBlank(gun.getCardNo()) && !gun.getCardNo().equals("null")) {
+						//远程调用
+						String body = InvestigateUtil.httpGetGunPosition(gun.getCardNo(), null, startTime, endTime, null, null);
+						System.out.println("body = " + body);
+						if (null != body && !body.equals("")) {
+							JSONObject jsonObject = new JSONObject(body);
+							Object data = jsonObject.get("data");
+							JSONObject jsonData = new JSONObject(data.toString());
+							JSONArray res = jsonData.getJSONArray("res");
+							//转换string
+							String resToString = res.toString();
+							if (res.length() == 0) {
+							} else {
+								LiveLocationVo locationVo = new LiveLocationVo();
+								List<GunLiveLocationVO> gunLiveLocationVOS = JSON.parseArray(resToString, GunLiveLocationVO.class);
+								//按时间排序(降序)
+								List<GunLiveLocationVO> gunLiveLocationVOList =
+									gunLiveLocationVOS.stream().sorted(Comparator.comparing(GunLiveLocationVO::getDwsj).reversed()).collect(Collectors.toList());
+								GunLiveLocationVO gunLiveLocationVO = gunLiveLocationVOList.get(0);
+								//取出第一个
+								locationVo.setRecordTime(gunLiveLocationVO.getDwsj());
+								locationVo.setLinkman(gunLiveLocationVO.getHwy());
+								locationVo.setCardNo(gunLiveLocationVO.getHwysfzh());
+								locationVo.setGunNum(gunLiveLocationVO.getQzbh());
+								locationVo.setNumber(gunLiveLocationVO.getQzxh());
+								locationVo.setQh(gunLiveLocationVO.getQh());
+								locationVo.setLongitude(gunLiveLocationVO.getDwjd().toString());
+								locationVo.setLatitude(gunLiveLocationVO.getDwwd().toString());
+								locationVo.setCompany(gunLiveLocationVO.getSzdw());
+								if (null != gun.getIssueUnit() && !gun.getIssueUnit().equals("")) {
+									locationVo.setIssueUnit(gun.getIssueUnit());
+								}
+								if (null != gun.getIssueTime() && !gun.getIssueTime().equals("")) {
+									locationVo.setIssueTime(gun.getIssueTime());
+								}
+								if (null != gun.getValidTime() && !gun.getValidTime().equals("")) {
+									locationVo.setValidTime(gun.getValidTime());
+								}
+								//存入集合
+								list.add(locationVo);
+							}
+						}
+					}
+				}
+			}
+			return list;
+		}
+		return baseMapper.selectSecurityAndCarAndGunLiveLocationPage(liveLocationVo);
+	}
+
+	/**
+	 * 获取实时位置信息
+	 * @param liveLocation
+	 * @return
+	 */
+	@Override
+	public LiveLocation getLiveLocationInfo(LiveLocation liveLocation) {
+		return baseMapper.getLiveLocationInfo(liveLocation);
+	}
+
+
+	/**
+	 * 获取指令接收人的定位信息
+	 * @param liveLocationVo 定位数据信息
+	 * @return
+	 */
+	@Override
+	public List<LiveLocationVo> getDirectiveLiveLocationVoList(LiveLocationVo liveLocationVo) {
+		ArrayList<LiveLocationVo> arrayList = new ArrayList<>();
+		//人员
+		if (liveLocationVo.getType()==1){
+			String userIds = liveLocationVo.getUserIds();
+			if (null!=userIds && userIds!=""){
+				List<String> list = Arrays.asList(userIds.split(","));
+				if (list.size()>0){
+					list.forEach(userId->{
+						liveLocationVo.setWorkerId(userId);
+						LiveLocationVo directiveLiveLocationVo = baseMapper.getDirectiveLiveLocationVo(liveLocationVo);
+						//如果存在定位数据
+						if (null!=directiveLiveLocationVo){
+							arrayList.add(directiveLiveLocationVo);
+						}
+					});
+				}
+			}
+		}
+		return arrayList;
+	}
+
+	/**
+	 * 获取指令接收人的轨迹数据
+	 * @param liveLocationVo 实时对象信息
+	 * @return
+	 */
+	@Override
+	public List<List<LocusVo>> getDirectiveLocusInfoList(LiveLocationVo liveLocationVo) {
+		List<List<LocusVo>> arrayList = new ArrayList<>();
+		//人员
+		if (liveLocationVo.getType()==1){
+			String userIds = liveLocationVo.getUserIds();
+			if (null!=userIds && userIds!=""){
+				List<String> list = Arrays.asList(userIds.split(","));
+				if (list.size()>0){
+					list.forEach(userId->{
+						liveLocationVo.setWorkerId(userId);
+						List<LocusVo> directiveLocusInfoList = baseMapper.getDirectiveLocusInfoList(liveLocationVo);
+						//如果存在轨迹数据
+						if (directiveLocusInfoList.size()>0){
+							arrayList.add(directiveLocusInfoList);
+						}
+					});
+				}
+			}
+		}
+		return arrayList;
+	}
 }

--
Gitblit v1.9.3