智慧保安后台管理-外网
Administrator
2022-06-16 8b375fe00a241b3a769b82fe3dac8d1c9dce8a02
src/main/java/org/springblade/modules/location/controller/LiveLocationController.java
@@ -8,14 +8,18 @@
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.FTP.FtpUtil;
import org.springblade.modules.location.entity.LiveLocation;
import org.springblade.modules.location.entity.Locus;
import org.springblade.modules.location.service.LiveLocationService;
import org.springblade.modules.location.service.LocusService;
import org.springblade.modules.location.vo.LiveLocationVOTest;
import org.springblade.modules.location.vo.LiveLocationVo;
import org.springblade.modules.location.vo.LocusVo;
import org.springblade.modules.system.service.MyAsyncService;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@@ -33,12 +37,13 @@
   private final LocusService locusService;
   private final MyAsyncService myAsyncService;
   /**
    * 自定义分页
    * @param query page,size
    * @param liveLocation 实时位置信息对象
    *
    * @param query        page,size
    * @param liveLocation 实时位置信息对象
    */
   @GetMapping("/page")
   public R<IPage<LiveLocationVo>> page(LiveLocationVo liveLocation, Query query) {
@@ -48,6 +53,7 @@
   /**
    * 新增
    *
    * @param liveLocation 实时位置信息对象
    */
   @PostMapping("/save")
@@ -59,6 +65,7 @@
   /**
    * 实时位置信息新增,同时新增到轨迹表中
    *
    * @param liveLocation 实时位置信息对象
    */
   @PostMapping("/saveLiveLocationAndLocus")
@@ -67,35 +74,167 @@
      //先查询是否已有实时位置信息,如果有,则更新,没有则插入
      LiveLocation liveLocationInfo = liveLocationService.getLiveLocationInfo(liveLocation);
      boolean status = false;
      if (null == liveLocationInfo){
      if (null == liveLocationInfo) {
         //新增
         liveLocation.setRecordTime(new Date());
         status = liveLocationService.save(liveLocation);
      }else {
         if (status) {
            //数据推送
            String s1 =
               "insert into sys_live_location(id,type,worker_id,longitude,latitude,record_time,location) " +
                  "values(" + "'" + liveLocation.getId() + "'" + "," +
                  "'" + liveLocation.getType() + "'" + "," +
                  "'" + liveLocation.getWorkerId() + "'" + "," +
                  "'" + liveLocation.getLongitude() + "'" + "," +
                  "'" + liveLocation.getLatitude() + "'" + "," +
                  "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocation.getRecordTime()) + "'" + "," +
                  "'" + liveLocation.getLocation() + "'" + ")";
            //FtpUtil.sqlFileUpload(s1);
            myAsyncService.FTP(s1);
         }
      } else {
         //更新
         liveLocationInfo.setRecordTime(new Date());
         liveLocationInfo.setLongitude(liveLocation.getLongitude());
         liveLocationInfo.setLatitude(liveLocation.getLatitude());
         status = liveLocationService.updateById(liveLocationInfo);
         if (status) {
            //内网同步
            String s1 =
               "update sys_live_location set type = " + "'" + liveLocation.getType() + "'" +
                  ",worker_id = " + "'" + liveLocation.getWorkerId() + "'" +
                  ",longitude = " + "'" + liveLocation.getLongitude() + "'" +
                  ",latitude = " + "'" + liveLocation.getLatitude() + "'" +
                  ",record_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocation.getRecordTime()) + "'" +
                  ",location = " + "'" + liveLocation.getLocation() + "'" +
                  " " + "where id = " + "'" + liveLocation.getId() + "'";
            //FtpUtil.sqlFileUpload(s1);
            myAsyncService.FTP(s1);
         }
      }
      if (status){
      if (status) {
         //新增轨迹
         Locus locus = new Locus();
         //封装数据
         if (null!=liveLocationInfo){
         if (null != liveLocationInfo) {
            locus.setLiveLocationId(liveLocationInfo.getId());
         }else {
         } 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){
         //数据推送
         String s2 =
            "insert into sys_locus(id,live_location_id,record_time,longitude,latitude) " +
               "values(" + "'" + locus.getId() + "'" + "," +
               "'" + locus.getLiveLocationId() + "'" + "," +
               "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(locus.getRecordTime()) + "'" + "," +
               "'" + locus.getLongitude() + "'" + "," +
               "'" + locus.getLatitude() + "'" + ")";
         //FtpUtil.sqlFileUpload(s2);
         myAsyncService.FTP(s2);
         if (save1) {
            //返回数据
            return R.status(true);
         }
      }
      //返回数据
      return R.status(false);
   }
   /**
    * 实时位置信息新增,同时新增到轨迹表中
    *
    * @param locationVOTest 实时位置信息对象
    */
   @PostMapping("/saveLiveLocationAndLocusAsTest")
   @ApiOperation(value = "新增", notes = "传入liveLocation")
   public R saveLiveLocationAndLocusAsTest(@RequestBody LiveLocationVOTest locationVOTest) {
      //获取数据
      LiveLocation liveLocation = new LiveLocation();
      liveLocation.setLongitude(locationVOTest.getLongitude().toString());
      liveLocation.setLatitude(locationVOTest.getLatitude().toString());
      liveLocation.setType(2);
      liveLocation.setWorkerId("16L");
      //先查询是否已有实时位置信息,如果有,则更新,没有则插入
      LiveLocation liveLocationInfo = liveLocationService.getLiveLocationInfo(liveLocation);
      boolean status = false;
      if (null == liveLocationInfo) {
         //新增
         liveLocation.setRecordTime(new Date());
         status = liveLocationService.save(liveLocation);
         if (status) {
            //数据推送
            String s1 =
               "insert into sys_live_location(id,type,worker_id,longitude,latitude,record_time,location) " +
                  "values(" + "'" + liveLocation.getId() + "'" + "," +
                  "'" + liveLocation.getType() + "'" + "," +
                  "'" + liveLocation.getWorkerId() + "'" + "," +
                  "'" + liveLocation.getLongitude() + "'" + "," +
                  "'" + liveLocation.getLatitude() + "'" + "," +
                  "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocation.getRecordTime()) + "'" + "," +
                  "'" + liveLocation.getLocation() + "'" + ")";
            //FtpUtil.sqlFileUpload(s1);
            myAsyncService.FTP(s1);
         }
      } else {
         //更新
         liveLocationInfo.setRecordTime(new Date());
         liveLocationInfo.setLongitude(liveLocation.getLongitude());
         liveLocationInfo.setLatitude(liveLocation.getLatitude());
         status = liveLocationService.updateById(liveLocationInfo);
         if (status) {
            //内网同步
            String s1 =
               "update sys_live_location set type = " + "'" + liveLocation.getType() + "'" +
                  ",worker_id = " + "'" + liveLocation.getWorkerId() + "'" +
                  ",longitude = " + "'" + liveLocation.getLongitude() + "'" +
                  ",latitude = " + "'" + liveLocation.getLatitude() + "'" +
                  ",record_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocation.getRecordTime()) + "'" +
                  ",location = " + "'" + liveLocation.getLocation() + "'" +
                  " " + "where id = " + "'" + liveLocation.getId() + "'";
            //FtpUtil.sqlFileUpload(s1);
            myAsyncService.FTP(s1);
         }
      }
      if (status) {
         //新增轨迹
         Locus locus = new Locus();
         //封装数据
         if (null != liveLocationInfo) {
            locus.setLiveLocationId(liveLocationInfo.getId());
         } else {
            locus.setLiveLocationId(liveLocation.getId());
         }
         if (null != liveLocation.getLatitude() && null != liveLocation.getLongitude()) {
            locus.setLatitude(liveLocation.getLatitude());
            locus.setLongitude(liveLocation.getLongitude());
         }
         locus.setRecordTime(new Date());
         //新增轨迹
         boolean save1 = locusService.save(locus);
         //数据推送
         String s2 =
            "insert into sys_locus(id,live_location_id,record_time,longitude,latitude) " +
               "values(" + "'" + locus.getId() + "'" + "," +
               "'" + locus.getLiveLocationId() + "'" + "," +
               "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(locus.getRecordTime()) + "'" + "," +
               "'" + locus.getLongitude() + "'" + "," +
               "'" + locus.getLatitude() + "'" + ")";
         myAsyncService.FTP(s2);
         //FtpUtil.sqlFileUpload(s2);
         if (save1) {
            //返回数据
            return R.status(true);
         }
@@ -106,6 +245,7 @@
   /**
    * 修改
    *
    * @param liveLocation 实时位置信息对象
    */
   @PostMapping("/update")
@@ -115,6 +255,7 @@
   /**
    * 新增或修改
    *
    * @param liveLocation 实时位置信息对象
    */
   @PostMapping("/submit")
@@ -124,6 +265,7 @@
   /**
    * 删除
    *
    * @param ids 实时位置信息ids 数组
    */
   @PostMapping("/remove")
@@ -133,6 +275,7 @@
   /**
    * 详情
    *
    * @param liveLocation 实时位置信息对象
    */
   @GetMapping("/detail")
@@ -144,20 +287,22 @@
   /**
    * 获取轨迹数据
    *
    * @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));
   }
   /**
    * 首页实时定位
    *
    * @return
    */
   @GetMapping("/getLiveLocationVoList")
   public R<List<LiveLocationVo>> getLiveLocationVoList(LiveLocationVo liveLocationVo){
   public R<List<LiveLocationVo>> getLiveLocationVoList(LiveLocationVo liveLocationVo) {
      return R.data(liveLocationService.getLiveLocationVoList(liveLocationVo));
   }