| src/main/java/org/springblade/modules/investigate/Investigate.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/location/service/impl/LiveLocationServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/location/vo/GunLiveLocationVO.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/location/vo/LiveLocationVo.java | ●●●●● patch | view | raw | blame | history |
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; } } 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); } src/main/java/org/springblade/modules/location/vo/GunLiveLocationVO.java
New file @@ -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; } src/main/java/org/springblade/modules/location/vo/LiveLocationVo.java
@@ -59,4 +59,14 @@ */ private String userIds; /** * 联系人身份证号码 */ private String cardNo; /** * 枪号 */ private String qh; }