智慧保安后台管理-外网项目备份
src/main/java/org/springblade/modules/location/controller/LocusController.java
@@ -25,6 +25,7 @@
import org.springblade.modules.location.service.LocusService;
import org.springblade.modules.location.vo.LocusVo;
import org.springblade.modules.system.service.IUserService;
import org.springblade.modules.system.service.MyAsyncService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -36,6 +37,8 @@
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import static org.springblade.common.config.FtpConfig.localPath;
/**
 * @author zhongrj
@@ -50,6 +53,7 @@
   private final LocusService locusService;
   private final CarService carService;
   private IUserService userService;
   private final MyAsyncService myAsyncService;
   /**
    * 自定义分页
@@ -161,18 +165,18 @@
   @ApiOperation(value = "详情", notes = "传入car")
   public void SaveUrl(String callbackId, String fileUrl) throws Exception {
      DowloadZipUtil dowloadZipUtil = new DowloadZipUtil();
      File file = dowloadZipUtil.downloadFile(fileUrl, "D:\\caiji");
      File file = dowloadZipUtil.downloadFile(fileUrl, "/usr/local/nginx/dist/enterprises/car");
      //文件名
      String name = file.getName();
      String substring = name.substring(0, name.length() - 4);
      //解压数据
      FileZip fileZip = new FileZip();
      fileZip.ZipUncompress("D:\\caiji\\" + substring + ".zip", "D:\\caiji");
      fileZip.ZipUncompress("/usr/local/nginx/dist/enterprises/car/" + substring + ".zip", "/usr/local/nginx/dist/enterprises/car");
      try {
         // 用来保存数据
         ArrayList<String[]> csvFileList = new ArrayList<String[]>();
         // 定义一个CSV路径
         String csvFilePath = "D:\\caiji\\" + substring + ".csv";
         String csvFilePath = "/usr/local/nginx/dist/enterprises/car/" + substring + ".csv";
         // 创建CSV读对象 例如:CsvReader(文件路径,分隔符,编码格式);
         CsvReader reader = new CsvReader(csvFilePath, ',', Charset.forName("UTF-8"));
         // 跳过表头 如果需要表头的话,这句可以忽略
@@ -184,33 +188,38 @@
         reader.close();
         Locus locus = new Locus();
         String s1 = "";
         //遍历读取的CSV文件
         for (int row = 0; row < csvFileList.size(); row++) {
            // 取得第row行第0列的数据
            String cell = csvFileList.get(row)[0];
            String cell1 = csvFileList.get(row)[1];
            String cell2 = csvFileList.get(row)[2];
            Date date = timeStamp2Date(cell2);
            locus.setType(2);
            locus.setLongitude(cell);
            locus.setLatitude(cell1);
            locus.setRecordTime(date);
            locus.setWorkerId(callbackId);
            locusService.save(locus);
            //数据推送
            s1 +=
               "insert into sys_locus(id,type,worker_id,longitude,latitude,record_time) " +
                  "values(" + "'" + locus.getId() + "'" + "," +
                  "'" + locus.getType() + "'" + "," +
                  "'" + locus.getWorkerId() + "'" + "," +
                  "'" + locus.getLongitude() + "'" + "," +
                  "'" + locus.getLatitude() + "'" + "," +
                  "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(locus.getRecordTime()) + "'" + ")";
            if (row != csvFileList.size() - 1) {
               s1 += ";";
         if (csvFileList.size() != 0) {
            //遍历读取的CSV文件
            for (int row = 0; row < csvFileList.size(); row++) {
               // 取得第row行第0列的数据
               String cell = csvFileList.get(row)[0];
               String cell1 = csvFileList.get(row)[1];
               String cell2 = csvFileList.get(row)[2];
               Date date = timeStamp2Date(cell2);
               locus.setType(2);
               locus.setLongitude(cell);
               locus.setLatitude(cell1);
               locus.setRecordTime(date);
               locus.setWorkerId(callbackId);
               locusService.save(locus);
               //数据推送
               s1 +=
                  "insert into sys_locus(id,type,worker_id,longitude,latitude,record_time) " +
                     "values(" + "'" + locus.getId() + "'" + "," +
                     "'" + locus.getType() + "'" + "," +
                     "'" + locus.getWorkerId() + "'" + "," +
                     "'" + locus.getLongitude() + "'" + "," +
                     "'" + locus.getLatitude() + "'" + "," +
                     "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(locus.getRecordTime()) + "'" + ")";
               if (row != csvFileList.size() - 1) {
                  s1 += ";";
               }
            }
            //FtpUtil.sqlFileUpload(s1);
            myAsyncService.dataSync(s1);
            deletescsv(substring);
         }
         FtpUtil.sqlFileUpload(s1);
         deletescsv(substring);
      } catch (IOException e) {
         e.printStackTrace();
      }
@@ -230,68 +239,78 @@
   }
   @PostMapping("/ss")
   public void Peog() throws Exception {
      String url = "http://47.104.104.46/api/client/getgistrack.php";
      Calendar calendar = Calendar.getInstance();
      calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - 1);
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
      //查询有押运人员的数据
      List<Map<String, Object>> list = userService.selectEquipent();
      for (int i = 0; i < list.size(); i++) {
         //实时位置实体类
         Locus locus = new Locus();
         locus.setType(1);
         String id = list.get(i).get("id").toString();
         locus.setWorkerId(id);
         Map<String, Object> params = new HashMap<>();
         String equipmentCode = list.get(i).get("code").toString();
         //设备imei号
         params.put("number", 7730);
         params.put("acc", equipmentCode);
         params.put("startTime", "2021-06-01");
         params.put("endTime", "2021-08-01");
         String res = null;
         res = HttpReqUtil.getInstance().doPost(url, params, null);
         String a = "[" + res + "]";
         JSONArray jsonArray = JSONArray.fromObject(a);
         String track = jsonArray.getJSONObject(0).get("track").toString();
         JSONArray jsonArray1 = JSONArray.fromObject(track);
         String s1 = "";
         String sql="insert into sys_locus(id,type,worker_id,longitude,latitude,record_time) values ";
         for (int j = 0; j < jsonArray1.size(); j++) {
            String gis_jd = jsonArray1.getJSONObject(j).get("gis_jd").toString();
            String gis_wd = jsonArray1.getJSONObject(j).get("gis_wd").toString();
            String date = jsonArray1.getJSONObject(j).get("date").toString();
            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            try {
               //使用SimpleDateFormat的parse()方法生成Date
               Date dates = sf.parse(date);
               locus.setRecordTime(dates);
               //打印Date
            } catch (ParseException e) {
               e.printStackTrace();
            }
            locus.setLongitude(gis_jd);
            locus.setLatitude(gis_wd);
            locusService.save(locus);
            //数据推送
            s1 += "(" + "'" + locus.getId() + "'" + "," +
               "'" + locus.getType() + "'" + "," +
               "'" + locus.getWorkerId() + "'" + "," +
               "'" + locus.getLongitude() + "'" + "," +
               "'" + locus.getLatitude() + "'" + "," +
               "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(locus.getRecordTime()) + "'" + ")";
            if (j != jsonArray1.size() - 1) {
               s1 += ",";
            }
            else {
               s1+=";";
            }
         }
         String c = "a" +sql+ s1;
         FtpUtil.sqlFileUpload(c);
//   @PostMapping("/ss")
//   public void Peog() throws Exception {
//      String url = "http://47.104.104.46/api/client/getgistrack.php";
//      Calendar calendar = Calendar.getInstance();
//      calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - 1);
//      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
//      //查询有押运人员的数据
//      List<Map<String, Object>> list = userService.selectEquipent();
//      for (int i = 0; i < list.size(); i++) {
//         //实时位置实体类
//         Locus locus = new Locus();
//         locus.setType(1);
//         String id = list.get(i).get("id").toString();
//         locus.setWorkerId(id);
//         Map<String, Object> params = new HashMap<>();
//         String equipmentCode = list.get(i).get("code").toString();
//         //设备imei号
//         params.put("number", 7730);
//         params.put("acc", equipmentCode);
//         params.put("startTime", "2021-12-01");
//         params.put("endTime", "2021-12-02");
//         String res = null;
//         res = HttpReqUtil.getInstance().doPost(url, params, null);
//         String a = "[" + res + "]";
//         JSONArray jsonArray = JSONArray.fromObject(a);
//         String track = jsonArray.getJSONObject(0).get("track").toString();
//         JSONArray jsonArray1 = JSONArray.fromObject(track);
//         String s1 = "";
//         for (int j = 0; j < jsonArray1.size(); j++) {
//            String gis_jd = jsonArray1.getJSONObject(j).get("gis_jd").toString();
//            String gis_wd = jsonArray1.getJSONObject(j).get("gis_wd").toString();
//            String date = jsonArray1.getJSONObject(j).get("date").toString();
//            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//            try {
//               //使用SimpleDateFormat的parse()方法生成Date
//               Date dates = sf.parse(date);
//               locus.setRecordTime(dates);
//               //打印Date
//            } catch (ParseException e) {
//               e.printStackTrace();
//            }
//            locus.setLongitude(gis_jd);
//            locus.setLatitude(gis_wd);
//            locusService.save(locus);
//            //数据推送
//            s1 += "insert into sys_locus(id,type,worker_id,longitude,latitude,record_time) values" +
//               " (" + "'" + locus.getId() + "'" + "," +
//               "'" + locus.getType() + "'" + "," +
//               "'" + locus.getWorkerId() + "'" + "," +
//               "'" + locus.getLongitude() + "'" + "," +
//               "'" + locus.getLatitude() + "'" + "," +
//               "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(locus.getRecordTime()) + "'" + ")";
//            if (j != jsonArray1.size() - 1) {
//               s1 += ";";
//            }
//         }
//         FtpUtil.sqlFileUpload(s1);
//      }
//   }
   /**
    * 删除本地csv文件
    *
    * @param fileName
    */
   public static void deletescsv(String fileName) {
      File file = new File("D:\\caiji\\" + fileName + ".csv");
      if (file.isFile() && file.exists()) {
         file.delete();
      }
   }
}