From bb72c40ff327fc6a7a1b3a96e0589507711f0cdf Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Tue, 30 Nov 2021 14:58:29 +0800
Subject: [PATCH] 1.押运
---
src/main/java/org/springblade/modules/location/controller/LocusController.java | 210 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 210 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/modules/location/controller/LocusController.java b/src/main/java/org/springblade/modules/location/controller/LocusController.java
index 9c3c212..42b9194 100644
--- a/src/main/java/org/springblade/modules/location/controller/LocusController.java
+++ b/src/main/java/org/springblade/modules/location/controller/LocusController.java
@@ -1,17 +1,41 @@
package org.springblade.modules.location.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.csvreader.CsvReader;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
+import liquibase.pro.packaged.E;
+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.common.utils.DowloadZipUtil;
+import org.springblade.common.utils.FileZip;
+import org.springblade.common.utils.HttpReqUtil;
+import org.springblade.common.utils.Md5SignUtil;
import org.springblade.core.mp.support.Condition;
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.equipage.service.CarService;
import org.springblade.modules.location.entity.Locus;
import org.springblade.modules.location.service.LocusService;
import org.springblade.modules.location.vo.LocusVo;
+import org.springblade.modules.system.service.IUserService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+
+import java.awt.*;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.List;
/**
* @author zhongrj
@@ -24,9 +48,12 @@
public class LocusController {
private final LocusService locusService;
+ private final CarService carService;
+ private IUserService userService;
/**
* 自定义分页
+ *
* @param query page,size
* @param locus 轨迹信息对象
*/
@@ -38,6 +65,7 @@
/**
* 新增
+ *
* @param locus 轨迹信息对象
*/
@PostMapping("/save")
@@ -48,6 +76,7 @@
/**
* 修改
+ *
* @param locus 轨迹信息对象
*/
@PostMapping("/update")
@@ -57,6 +86,7 @@
/**
* 新增或修改
+ *
* @param locus 轨迹信息对象
*/
@PostMapping("/submit")
@@ -66,6 +96,7 @@
/**
* 删除
+ *
* @param ids 轨迹信息ids 数组
*/
@PostMapping("/remove")
@@ -75,6 +106,7 @@
/**
* 详情
+ *
* @param locus 轨迹信息对象
*/
@GetMapping("/detail")
@@ -84,4 +116,182 @@
return R.data(detail);
}
+ /**
+ * 查询车辆轨迹
+ */
+ @GetMapping("/locationhistoryTrack")
+ public void locationhistoryTrack() {
+ String url = "http://dvopenapi.aimap.net.cn/openapi/device/historyTrack";
+ String res = null;
+ List<Map<Object, Object>> maps = carService.selectCar();
+ for (int i = 0; i < maps.size(); i++) {
+ Map<String, Object> params = new HashMap<>();
+ params.put("imei", maps.get(i).get("code").toString());
+ params.put("beginTime", "2021112510");
+ params.put("endTime", "2021112511");
+ params.put("rectify", 0);
+ params.put("callbackUrl", "http://2h3f861221.wicp.vip/locus/SaveUrl");
+ params.put("callbackId", maps.get(i).get("carnumber").toString());
+ params.put("appId", "PO00000761");
+ params.put("timestamp", System.currentTimeMillis());
+ String secert = "dXRGb2pRNVdWOGQ3d1ouV29UYzc1MnJaUnBwTzUx";
+ String computeSign = "";
+ try {
+ computeSign = Md5SignUtil.signRequest(params, secert);
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ params.put("sign", computeSign);
+ try {
+ res = HttpReqUtil.getInstance().doPost(url, params, null);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+ /**
+ * 轨迹回调
+ *
+ * @param callbackId
+ * @param fileUrl
+ */
+ @PostMapping("/SaveUrl")
+ @ApiOperation(value = "详情", notes = "传入car")
+ public void SaveUrl(String callbackId, String fileUrl) throws Exception {
+ DowloadZipUtil dowloadZipUtil = new DowloadZipUtil();
+ File file = dowloadZipUtil.downloadFile(fileUrl, "D:\\caiji");
+ //文件名
+ String name = file.getName();
+ String substring = name.substring(0, name.length() - 4);
+ //解压数据
+ FileZip fileZip = new FileZip();
+ fileZip.ZipUncompress("D:\\caiji\\" + substring + ".zip", "D:\\caiji");
+ try {
+ // 用来保存数据
+ ArrayList<String[]> csvFileList = new ArrayList<String[]>();
+ // 定义一个CSV路径
+ String csvFilePath = "D:\\caiji\\" + substring + ".csv";
+ // 创建CSV读对象 例如:CsvReader(文件路径,分隔符,编码格式);
+ CsvReader reader = new CsvReader(csvFilePath, ',', Charset.forName("UTF-8"));
+ // 跳过表头 如果需要表头的话,这句可以忽略
+ reader.readHeaders();
+ // 逐行读入除表头的数据
+ while (reader.readRecord()) {
+ csvFileList.add(reader.getValues());
+ }
+ 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 += ";";
+ }
+ }
+ FtpUtil.sqlFileUpload(s1);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static Date timeStamp2Date(String time) {
+ Long timeLong = Long.parseLong(time);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//要转换的时间格式
+ Date date;
+ try {
+ date = sdf.parse(sdf.format(timeLong));
+ return date;
+ } catch (ParseException e) {
+ e.printStackTrace();
+ return null;
+ }
+
+ }
+
+ @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);
+ }
+ }
+
}
--
Gitblit v1.9.3