| | |
| | | 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.*; |
| | | |
| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.List; |
| | | |
| | | import static org.springblade.common.config.FtpConfig.localPath; |
| | | |
| | | /** |
| | | * @author zhongrj |
| | |
| | | private final LocusService locusService; |
| | | private final CarService carService; |
| | | private IUserService userService; |
| | | private final MyAsyncService myAsyncService; |
| | | |
| | | /** |
| | | * 自定义分页 |
| | |
| | | @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")); |
| | | // 跳过表头 如果需要表头的话,这句可以忽略 |
| | |
| | | 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(); |
| | | } |
| | |
| | | |
| | | } |
| | | |
| | | @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(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |