智慧保安后台管理项目备份
zhongrj
2024-05-24 b5960d1968e007b91d4d33dd7cbb74f1b566f2c1
src/main/java/org/springblade/modules/location/controller/LiveLocationController.java
@@ -3,7 +3,12 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import liquibase.pro.packaged.S;
import lombok.AllArgsConstructor;
import net.sf.json.JSONArray;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
@@ -36,7 +41,8 @@
   /**
    * 自定义分页
    * @param query page,size
    *
    * @param query        page,size
    * @param liveLocation 实时位置信息对象
    */
   @GetMapping("/page")
@@ -47,6 +53,7 @@
   /**
    * 新增
    *
    * @param liveLocation 实时位置信息对象
    */
   @PostMapping("/save")
@@ -58,41 +65,44 @@
   /**
    * 实时位置信息新增,同时新增到轨迹表中
    *
    * @param liveLocation 实时位置信息对象
    */
   @PostMapping("/saveLiveLocationAndLocus")
   @ApiOperation(value = "新增", notes = "传入liveLocation")
   public R saveLiveLocationAndLocus(@RequestBody LiveLocation liveLocation) {
      //先查询是否已有实时位置信息,如果有,则更新,没有则插入
      LiveLocationVo liveLocationVo = liveLocationService.selectLiveLocationInfo(liveLocation);
      LiveLocation liveLocationInfo = liveLocationService.getLiveLocationInfo(liveLocation);
      boolean status = false;
      if (null == liveLocationVo){
      if (null == liveLocationInfo) {
         //新增
         liveLocation.setRecordTime(new Date());
         status = liveLocationService.save(liveLocation);
      }else {
      } else {
         //更新
         liveLocationVo.setRecordTime(new Date());
         status = liveLocationService.updateById(liveLocationVo);
         liveLocationInfo.setRecordTime(new Date());
         liveLocationInfo.setLongitude(liveLocation.getLongitude());
         liveLocationInfo.setLatitude(liveLocation.getLatitude());
         status = liveLocationService.updateById(liveLocationInfo);
      }
      if (status){
      if (status) {
         //新增轨迹
         Locus locus = new Locus();
         //封装数据
         if (null!=liveLocationVo){
            locus.setLiveLocationId(liveLocationVo.getId());
         }else {
         if (null != liveLocationInfo) {
            locus.setLiveLocationId(liveLocationInfo.getId());
         } else {
            locus.setLiveLocationId(liveLocation.getId());
         }
         if (null!= liveLocation.getLatitude() && null!=liveLocation.getLongitude()){
         if (null != liveLocation.getLatitude() && null != liveLocation.getLongitude()) {
            locus.setLatitude(liveLocation.getLatitude());
            locus.setLongitude(liveLocation.getLongitude());
         }
         locus.setRecordTime(new Date());
         //新增轨迹
         boolean save1 = locusService.save(locus);
         if (save1){
         if (save1) {
            //返回数据
            return R.status(true);
         }
@@ -103,6 +113,7 @@
   /**
    * 修改
    *
    * @param liveLocation 实时位置信息对象
    */
   @PostMapping("/update")
@@ -112,6 +123,7 @@
   /**
    * 新增或修改
    *
    * @param liveLocation 实时位置信息对象
    */
   @PostMapping("/submit")
@@ -121,6 +133,7 @@
   /**
    * 删除
    *
    * @param ids 实时位置信息ids 数组
    */
   @PostMapping("/remove")
@@ -130,6 +143,7 @@
   /**
    * 详情
    *
    * @param liveLocation 实时位置信息对象
    */
   @GetMapping("/detail")
@@ -141,12 +155,79 @@
   /**
    * 获取轨迹数据
    *
    * @param liveLocationVo 实时对象信息
    * @return
    */
   @GetMapping("/getLocusInfoList")
   public R<List<LocusVo>> getLocusInfoList(LiveLocationVo liveLocationVo){
   public R<List<LocusVo>> getLocusInfoList(LiveLocationVo liveLocationVo) {
      return R.data(liveLocationService.getLocusInfoList(liveLocationVo));
   }
   /**
    * 获取指令接收人的轨迹数据
    *
    * @param liveLocationVo 实时对象信息
    * @return
    */
   @GetMapping("/getDirectiveLocusInfoList")
   public R<List<List<LocusVo>>> getDirectiveLocusInfoList(LiveLocationVo liveLocationVo) {
      return R.data(liveLocationService.getDirectiveLocusInfoList(liveLocationVo));
   }
   /**
    * 首页实时定位
    *
    * @return
    */
   @GetMapping("/getLiveLocationVoList")
   public R<List<LiveLocationVo>> getLiveLocationVoList(LiveLocationVo liveLocationVo) {
      return R.data(liveLocationService.getLiveLocationVoList(liveLocationVo));
   }
   /**
    * 获取指令接收人的定位信息
    *
    * @param liveLocationVo 定位数据信息
    * @return
    */
   @GetMapping("/getDirectiveLiveLocationVoList")
   public R<List<LiveLocationVo>> getDirectiveLiveLocationVoList(LiveLocationVo liveLocationVo) {
      return R.data(liveLocationService.getDirectiveLiveLocationVoList(liveLocationVo));
   }
   /**
    * 枪支定位
    *
    * @param
    * @param
    * @return
    */
   @GetMapping("/Gun")
   public R Gun(String hwysfzh, String szdw, String kssj, String jssj) {
      String s = httpGetOne(hwysfzh, szdw, kssj, jssj);
      String a = "[" + s + "]";
      JSONArray jsonArray = JSONArray.fromObject(a);
      return R.data(jsonArray);
   }
   public static String httpGetOne(String hwysfzh, String szdw, String kssj, String jssj) {
      OkHttpClient client = new OkHttpClient();
      Request request = new Request.Builder()
         .url("http://47.49.36.190/api/investigate/gun?hwysfzh=" + hwysfzh + "&szdw=" + szdw + "&kssj=" + kssj + "&jssj=" + jssj)
         .get()
         .build();
      try {
         Response response = client.newCall(request).execute();
         return response.body().string();
      } catch (Exception e) {
      }
      return null;
   }
}