From 71ca853ee10f712055bd7b9a7eaf2c71c4d9b5c8 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 02 Dec 2021 11:37:05 +0800
Subject: [PATCH] 枪支定位数据查询修改

---
 src/main/java/org/springblade/modules/investigate/Investigate.java                       |   35 +++++++++++
 src/main/java/org/springblade/modules/location/vo/GunLiveLocationVO.java                 |   63 +++++++++++++++++++++
 src/main/java/org/springblade/modules/location/vo/LiveLocationVo.java                    |   10 +++
 src/main/java/org/springblade/modules/location/service/impl/LiveLocationServiceImpl.java |   55 ++++++++++++++++++
 4 files changed, 162 insertions(+), 1 deletions(-)

diff --git a/src/main/java/org/springblade/modules/investigate/Investigate.java b/src/main/java/org/springblade/modules/investigate/Investigate.java
index 455adc8..590ce67 100644
--- a/src/main/java/org/springblade/modules/investigate/Investigate.java
+++ b/src/main/java/org/springblade/modules/investigate/Investigate.java
@@ -1,21 +1,25 @@
 package org.springblade.modules.investigate;
 
 import com.alibaba.druid.support.json.JSONUtils;
+import com.alibaba.fastjson.JSON;
 import lombok.AllArgsConstructor;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.springblade.common.utils.InvestigateUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.modules.location.vo.GunLiveLocationVO;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IUserService;
 import org.springframework.retry.backoff.Sleeper;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 import java.util.function.BiConsumer;
 import java.util.function.Consumer;
+import java.util.stream.Collectors;
 
 /**
  * @author zhongrj
@@ -116,6 +120,7 @@
 				}
 //				System.out.println("cardid = " + user.getCardid());
 				String body = InvestigateUtil.httpGetOne(user.getCardid());
+//				System.out.println("body = " + body);
 				if (null != body && !body.equals("")) {
 					JSONObject jsonObject = new JSONObject(body);
 					Object data = jsonObject.get("data");
@@ -126,9 +131,12 @@
 					if (res.length() == 0) {
 						//没有数据正常
 						user.setExaminationType("0");
+//						System.out.println("审查正常:user.getExaminationType() = " + user.getExaminationType());
 					} else {
 						int count = 0;
 						user.setExaminationType("1");
+//						System.out.println("审查异常:user.getExaminationType() = " + user.getExaminationType());
+
 						for (int i = 0; i < res.length(); i++) {
 							if (res.getJSONObject(i).get("zdrylbjh").toString() != null
 								&& res.getJSONObject(i).get("zdrylbjh").toString() != ""
@@ -169,6 +177,7 @@
 							if (count == res.length()) {
 								//更新用户数据,设为正常
 								user.setExaminationType("0");
+//								System.out.println("审查有数据,数据为空 = user.getExaminationType() " + user.getExaminationType());
 								userService.updateById(user);
 							}
 						}
@@ -241,4 +250,30 @@
 		}
 		return null;
 	}
+
+
+	/**
+	 * 数据反向测试 -- 枪支
+	 * @param body 数据反向测试
+	 * @return
+	 */
+	@PostMapping("/investigate/testBodyGun")
+	public R testBodyGun(@RequestBody String body){
+		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){
+			List<GunLiveLocationVO> gunLiveLocationVOS = JSON.parseArray(resToString, GunLiveLocationVO.class);
+			System.out.println("gunLiveLocationVOS = " + gunLiveLocationVOS);
+			//按时间排序(reversed降序)
+			List<GunLiveLocationVO> gunLiveLocationVOList =
+				gunLiveLocationVOS.stream().sorted(Comparator.comparing(GunLiveLocationVO::getDwsj).reversed()).collect(Collectors.toList());
+			GunLiveLocationVO gunLiveLocationVO = gunLiveLocationVOList.get(0);
+			System.out.println("gunLiveLocationVO = " + gunLiveLocationVO);
+		}
+		return null;
+	}
 }
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 c45b26e..fa83c3a 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,17 +1,27 @@
 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.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.ArrayList;
 import java.util.Arrays;
+import java.util.Comparator;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 实时位置服务实现类
@@ -19,6 +29,9 @@
  */
 @Service
 public class LiveLocationServiceImpl extends ServiceImpl<LiveLocationMapper, LiveLocation> implements LiveLocationService {
+
+	@Autowired
+	private GunService gunService;
 
 	/**
 	 * 实时位置分页信息
@@ -69,7 +82,47 @@
 		}
 		//枪支
 		if (liveLocationVo.getType()==3){
-			return baseMapper.getGunLocusInfoList(liveLocationVo);
+			//获取枪支数据
+			List<Gun> gunList = gunService.list();
+			//创建集合
+			List<LiveLocationVo> list = new ArrayList<>();
+			if (gunList.size()>0){
+				//遍历
+				gunList.forEach(gun -> {
+					//远程调用
+					String body = InvestigateUtil.httpGetGunPosition(gun.getCardNo(),null,null,null,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.setNumber(gunLiveLocationVO.getQzbh());
+							locationVo.setQh(gunLiveLocationVO.getQh());
+							locationVo.setLongitude(gunLiveLocationVO.getDwjd().toString());
+							locationVo.setLatitude(gunLiveLocationVO.getDwwd().toString());
+							locationVo.setCompany(gunLiveLocationVO.getSzdw());
+							//存入集合
+							list.add(locationVo);
+						}
+					}
+				});
+			}
+			return list;
 		}
 		return baseMapper.selectSecurityAndCarAndGunLiveLocationPage(liveLocationVo);
 	}
diff --git a/src/main/java/org/springblade/modules/location/vo/GunLiveLocationVO.java b/src/main/java/org/springblade/modules/location/vo/GunLiveLocationVO.java
new file mode 100644
index 0000000..5c04185
--- /dev/null
+++ b/src/main/java/org/springblade/modules/location/vo/GunLiveLocationVO.java
@@ -0,0 +1,63 @@
+package org.springblade.modules.location.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 枪支实时位置测试vo
+ * @author zhongrj
+ * @since 2021-12-2
+ */
+@Data
+public class GunLiveLocationVO implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 人员编号
+	 */
+	private String lybh;
+
+	/**
+	 * 经度
+	 */
+	private Double dwjd;
+
+	/**
+	 * 定位时间
+	 */
+	private Date dwsj;
+
+
+	private String qh;
+
+	/**
+	 * 枪支编号
+	 */
+	private String qzbh;
+
+
+	/**
+	 * 护卫人
+	 */
+	private String hwy;
+
+	/**
+	 * 枪支型号
+	 */
+	private String qzxh;
+
+	/**
+	 * 护卫人身份证编号
+	 */
+	private String hwysfzh;
+
+	private String szdw;
+
+	/**
+	 * 纬度
+	 */
+	private Double dwwd;
+}
diff --git a/src/main/java/org/springblade/modules/location/vo/LiveLocationVo.java b/src/main/java/org/springblade/modules/location/vo/LiveLocationVo.java
index 4f5e550..ce6e6c7 100644
--- a/src/main/java/org/springblade/modules/location/vo/LiveLocationVo.java
+++ b/src/main/java/org/springblade/modules/location/vo/LiveLocationVo.java
@@ -59,4 +59,14 @@
 	 */
 	private String userIds;
 
+	/**
+	 * 联系人身份证号码
+	 */
+	private String cardNo;
+
+	/**
+	 * 枪号
+	 */
+	private String qh;
+
 }

--
Gitblit v1.9.3