智慧保安后台管理项目备份
Administrator
2021-12-02 71ca853ee10f712055bd7b9a7eaf2c71c4d9b5c8
枪支定位数据查询修改
3 files modified
1 files added
163 ■■■■■ changed files
src/main/java/org/springblade/modules/investigate/Investigate.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/location/service/impl/LiveLocationServiceImpl.java 55 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/location/vo/GunLiveLocationVO.java 63 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/location/vo/LiveLocationVo.java 10 ●●●●● 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;
}