| | |
| | | package org.springblade.modules.equipage.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.alibaba.fastjson.JSON; |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONException; |
| | | import net.sf.json.JSONObject; |
| | | import org.springblade.common.utils.HttpReqUtil; |
| | | import org.springblade.common.utils.Md5SignUtil; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.modules.FTP.FtpUtil; |
| | | import org.springblade.modules.equipage.service.CarService; |
| | | 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.system.entity.User; |
| | | import org.springblade.modules.system.service.IUserService; |
| | | import org.springblade.modules.system.service.MyAsyncService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | @Component |
| | | @Component("fixed") |
| | | public class fixed { |
| | | private static final DateFormat JSON = null; |
| | | @Autowired |
| | |
| | | private LocusService locusService; |
| | | @Autowired |
| | | private CarService carService; |
| | | @Autowired |
| | | private MyAsyncService myAsyncService; |
| | | |
| | | /** |
| | | * 押运人员 |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Scheduled(cron = "0 */5 * * * ?") |
| | | // @Scheduled(cron = "0 */5 * * * ?") |
| | | public void Peo() throws Exception { |
| | | String url = "http://47.104.104.46/api/client/getgis.php"; |
| | | //查询有押运人员的数据 |
| | | List<Map<String, Object>> list = userService.selectEquipent(); |
| | | for (int i = 0; i < list.size(); i++) { |
| | | //实时位置实体类 |
| | | LiveLocation liveLocation = new LiveLocation(); |
| | | liveLocation.setType(1); |
| | | String id = list.get(i).get("id").toString(); |
| | | liveLocation.setWorkerId(id); |
| | | Map<String, Object> params = new HashMap<>(); |
| | | String equipmentCode = list.get(i).get("code").toString(); |
| | | //设备imei号 |
| | | params.put("acc", equipmentCode); |
| | | String res = null; |
| | | res = HttpReqUtil.getInstance().doPost(url, params, null); |
| | | JSONArray jsonArray = JSONArray.fromObject(res); |
| | | JSONArray sortedJsonArray = new JSONArray(); |
| | | List<JSONObject> jsonValues = new ArrayList<JSONObject>(); |
| | | for (int j = 0; j < jsonArray.size(); j++) { |
| | | jsonValues.add(jsonArray.getJSONObject(j)); |
| | | } |
| | | Collections.sort(jsonValues, new Comparator<JSONObject>() { |
| | | private static final String KEY_NAME = "date"; |
| | | String string1; |
| | | String string2; |
| | | |
| | | @Override |
| | | public int compare(JSONObject a, JSONObject b) { |
| | | try { |
| | | string1 = a.getString(KEY_NAME).replaceAll("-", ""); |
| | | string2 = b.getString(KEY_NAME).replaceAll("-", ""); |
| | | } catch (JSONException e) { |
| | | // 处理异常 |
| | | } |
| | | //这里是按照时间逆序排列,不加负号为正序排列 |
| | | return -string1.compareTo(string2); |
| | | if (list.size() > 0) { |
| | | for (int i = 0; i < list.size(); i++) { |
| | | //实时位置实体类 |
| | | LiveLocation liveLocation = new LiveLocation(); |
| | | liveLocation.setType(1); |
| | | String id = list.get(i).get("id").toString(); |
| | | liveLocation.setWorkerId(id); |
| | | Map<String, Object> params = new HashMap<>(); |
| | | String equipmentCode = list.get(i).get("code").toString(); |
| | | //设备imei号 |
| | | params.put("acc", equipmentCode); |
| | | String res = null; |
| | | res = HttpReqUtil.getInstance().doPost(url, params, null); |
| | | JSONArray jsonArray = JSONArray.fromObject(res); |
| | | JSONArray sortedJsonArray = new JSONArray(); |
| | | List<JSONObject> jsonValues = new ArrayList<JSONObject>(); |
| | | for (int j = 0; j < jsonArray.size(); j++) { |
| | | jsonValues.add(jsonArray.getJSONObject(j)); |
| | | } |
| | | }); |
| | | for (int c = 0; c < jsonArray.size(); c++) { |
| | | sortedJsonArray.add(jsonValues.get(c)); |
| | | } |
| | | //经度 |
| | | String gis_jd = sortedJsonArray.getJSONObject(0).getString("gis_jd"); |
| | | //纬度 |
| | | String gis_wd = sortedJsonArray.getJSONObject(0).getString("gis_wd"); |
| | | String date = sortedJsonArray.getJSONObject(0).getString("date"); |
| | | SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Date dates = formatter.parse(date); |
| | | //经度 |
| | | liveLocation.setLongitude(gis_jd); |
| | | liveLocation.setLatitude(gis_wd); |
| | | //纬度 |
| | | liveLocation.setRecordTime(dates); |
| | | //先查询是否已有实时位置信息,如果有,则更新,没有则插入 |
| | | LiveLocation liveLocationInfo = liveLocationService.getLiveLocationInfo(liveLocation); |
| | | boolean status = false; |
| | | if (null == liveLocationInfo) { |
| | | //新增 |
| | | status = liveLocationService.save(liveLocation); |
| | | //数据推送 |
| | | String s1 = |
| | | "insert into sys_live_location(id,type,worker_id,longitude,latitude,record_time) " + |
| | | "values(" + "'" + liveLocation.getId() + "'" + "," + |
| | | "'" + liveLocation.getType() + "'" + "," + |
| | | "'" + liveLocation.getWorkerId() + "'" + "," + |
| | | "'" + liveLocation.getLongitude() + "'" + "," + |
| | | "'" + liveLocation.getLatitude() + "'" + "," + |
| | | "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocation.getRecordTime()) + "'" + ")"; |
| | | FtpUtil.sqlFileUpload(s1); |
| | | } else { |
| | | status = liveLocationService.updateById(liveLocationInfo); |
| | | //内网同步 |
| | | String s1 = |
| | | "update sys_live_location set type = " + "'" + liveLocationInfo.getType() + "'" + |
| | | ",worker_id = " + "'" + liveLocationInfo.getWorkerId() + "'" + |
| | | ",longitude = " + "'" + liveLocationInfo.getLongitude() + "'" + |
| | | ",latitude = " + "'" + liveLocationInfo.getLatitude() + "'" + |
| | | ",record_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocationInfo.getRecordTime()) + "'" + |
| | | " " + "where id = " + "'" + liveLocationInfo.getId() + "'"; |
| | | FtpUtil.sqlFileUpload(s1); |
| | | Collections.sort(jsonValues, new Comparator<JSONObject>() { |
| | | private static final String KEY_NAME = "date"; |
| | | String string1; |
| | | String string2; |
| | | |
| | | @Override |
| | | public int compare(JSONObject a, JSONObject b) { |
| | | try { |
| | | string1 = a.getString(KEY_NAME).replaceAll("-", ""); |
| | | string2 = b.getString(KEY_NAME).replaceAll("-", ""); |
| | | } catch (JSONException e) { |
| | | // 处理异常 |
| | | } |
| | | //这里是按照时间逆序排列,不加负号为正序排列 |
| | | return -string1.compareTo(string2); |
| | | } |
| | | }); |
| | | for (int c = 0; c < jsonArray.size(); c++) { |
| | | sortedJsonArray.add(jsonValues.get(c)); |
| | | } |
| | | //经度 |
| | | String gis_jd = sortedJsonArray.getJSONObject(0).getString("gis_jd"); |
| | | //纬度 |
| | | String gis_wd = sortedJsonArray.getJSONObject(0).getString("gis_wd"); |
| | | String date = sortedJsonArray.getJSONObject(0).getString("date"); |
| | | SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | Date dates = formatter.parse(date); |
| | | //经度 |
| | | liveLocation.setLongitude(gis_jd); |
| | | liveLocation.setLatitude(gis_wd); |
| | | //纬度 |
| | | liveLocation.setRecordTime(dates); |
| | | //先查询是否已有实时位置信息,如果有,则更新,没有则插入 |
| | | LiveLocation liveLocationInfo = liveLocationService.getLiveLocationInfo(liveLocation); |
| | | boolean status = false; |
| | | if (null == liveLocationInfo) { |
| | | //新增 |
| | | status = liveLocationService.save(liveLocation); |
| | | //数据推送 |
| | | String s1 = |
| | | "insert into sys_live_location(id,type,worker_id,longitude,latitude,record_time) " + |
| | | "values(" + "'" + liveLocation.getId() + "'" + "," + |
| | | "'" + liveLocation.getType() + "'" + "," + |
| | | "'" + liveLocation.getWorkerId() + "'" + "," + |
| | | "'" + liveLocation.getLongitude() + "'" + "," + |
| | | "'" + liveLocation.getLatitude() + "'" + "," + |
| | | "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocation.getRecordTime()) + "'" + ")"; |
| | | //FtpUtil.sqlFileUpload(s1); |
| | | myAsyncService.FTP(s1); |
| | | } else { |
| | | status = liveLocationService.updateById(liveLocationInfo); |
| | | //内网同步 |
| | | String s1 = |
| | | "update sys_live_location set type = " + "'" + liveLocationInfo.getType() + "'" + |
| | | ",worker_id = " + "'" + liveLocationInfo.getWorkerId() + "'" + |
| | | ",longitude = " + "'" + liveLocationInfo.getLongitude() + "'" + |
| | | ",latitude = " + "'" + liveLocationInfo.getLatitude() + "'" + |
| | | ",record_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocationInfo.getRecordTime()) + "'" + |
| | | " " + "where id = " + "'" + liveLocationInfo.getId() + "'"; |
| | | //FtpUtil.sqlFileUpload(s1); |
| | | myAsyncService.FTP(s1); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Scheduled(cron = "0 0 * * * ?") |
| | | // @Scheduled(cron = "0 0 * * * ?") |
| | | public void Peog() throws Exception { |
| | | System.out.println("押运人员"); |
| | | String url = "http://47.104.104.46/api/client/getgistrack.php"; |
| | |
| | | JSONArray jsonArray = JSONArray.fromObject(a); |
| | | String s1 = ""; |
| | | String track = jsonArray.getJSONObject(0).get("track").toString(); |
| | | if (track.equals("[]")){ |
| | | if (track.equals("[]")) { |
| | | System.out.println("数据为空"); |
| | | } |
| | | else { |
| | | } else { |
| | | JSONArray jsonArray1 = JSONArray.fromObject(track); |
| | | for (int j = 0; j < jsonArray1.size(); j++) { |
| | | String gis_jd = jsonArray1.getJSONObject(j).get("gis_jd").toString(); |
| | |
| | | s1 += ";"; |
| | | } |
| | | } |
| | | FtpUtil.sqlFileUpload(s1); |
| | | //FtpUtil.sqlFileUpload(s1); |
| | | myAsyncService.FTP(s1); |
| | | } |
| | | } |
| | | } |
| | |
| | | /** |
| | | * 车辆实时位置 |
| | | */ |
| | | @Scheduled(cron = "0 */5 * * * ?") |
| | | // @Scheduled(cron = "0 */5 * * * ?") |
| | | public void locationcar() { |
| | | String url = "http://dvopenapi.aimap.net.cn/openapi/device/location"; |
| | | String res = null; |
| | |
| | | String a = "[" + res + "]"; |
| | | JSONArray jsonArray = JSONArray.fromObject(a); |
| | | String code = jsonArray.getJSONObject(0).get("code").toString(); |
| | | if (Integer.parseInt(code)==200) { |
| | | if (Integer.parseInt(code) == 200) { |
| | | String data = jsonArray.getJSONObject(0).get("data").toString(); |
| | | String b = "[" + data + "]"; |
| | | JSONArray jsonArrayb = JSONArray.fromObject(b); |
| | |
| | | if (null == liveLocationInfo) { |
| | | //新增 |
| | | status = liveLocationService.save(liveLocation); |
| | | //数据推送 |
| | | String s1 = |
| | | "insert into sys_live_location(id,type,worker_id,longitude,latitude,record_time) " + |
| | | "values(" + "'" + liveLocation.getId() + "'" + "," + |
| | | "'" + liveLocation.getType() + "'" + "," + |
| | | "'" + liveLocation.getWorkerId() + "'" + "," + |
| | | "'" + liveLocation.getLongitude() + "'" + "," + |
| | | "'" + liveLocation.getLatitude() + "'" + "," + |
| | | "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocation.getRecordTime()) + "'" + ")"; |
| | | FtpUtil.sqlFileUpload(s1); |
| | | if (status) { |
| | | //数据推送 |
| | | String s1 = |
| | | "insert into sys_live_location(id,type,worker_id,longitude,latitude,record_time) " + |
| | | "values(" + "'" + liveLocation.getId() + "'" + "," + |
| | | "'" + liveLocation.getType() + "'" + "," + |
| | | "'" + liveLocation.getWorkerId() + "'" + "," + |
| | | "'" + liveLocation.getLongitude() + "'" + "," + |
| | | "'" + liveLocation.getLatitude() + "'" + "," + |
| | | "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocation.getRecordTime()) + "'" + ")"; |
| | | //FtpUtil.sqlFileUpload(s1); |
| | | myAsyncService.FTP(s1); |
| | | } |
| | | } else { |
| | | status = liveLocationService.updateById(liveLocationInfo); |
| | | //内网同步 |
| | | String s1 = |
| | | "update sys_live_location set type = " + "'" + liveLocationInfo.getType() + "'" + |
| | | ",worker_id = " + "'" + liveLocationInfo.getWorkerId() + "'" + |
| | | ",longitude = " + "'" + liveLocationInfo.getLongitude() + "'" + |
| | | ",latitude = " + "'" + liveLocationInfo.getLatitude() + "'" + |
| | | ",record_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocationInfo.getRecordTime()) + "'" + |
| | | " " + "where id = " + "'" + liveLocationInfo.getId() + "'"; |
| | | FtpUtil.sqlFileUpload(s1); |
| | | if (status) { |
| | | String s1 = |
| | | "update sys_live_location set type = " + "'" + liveLocationInfo.getType() + "'" + |
| | | ",worker_id = " + "'" + liveLocationInfo.getWorkerId() + "'" + |
| | | ",longitude = " + "'" + liveLocationInfo.getLongitude() + "'" + |
| | | ",latitude = " + "'" + liveLocationInfo.getLatitude() + "'" + |
| | | ",record_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(liveLocationInfo.getRecordTime()) + "'" + |
| | | " " + "where id = " + "'" + liveLocationInfo.getId() + "'"; |
| | | //FtpUtil.sqlFileUpload(s1); |
| | | myAsyncService.FTP(s1); |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | /** |
| | | * 查询车辆轨迹 |
| | | */ |
| | | @Scheduled(cron = "0 0 * * * ?") |
| | | // @Scheduled(cron = "0 0 * * * ?") |
| | | public void locationhistoryTrack() { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | /* HOUR_OF_DAY 指示一天中的小时 */ |
| | |
| | | params.put("beginTime", df.format(calendar.getTime())); |
| | | params.put("endTime", df.format(new Date())); |
| | | params.put("rectify", 0); |
| | | params.put("callbackUrl", "http://223.82.109.183:2080/api/locus/SaveUrl"); |
| | | params.put("callbackUrl", "http://61.131.136.25:2080/api/locus/SaveUrl"); |
| | | params.put("callbackId", maps.get(i).get("carnumber").toString()); |
| | | params.put("appId", "PO00000761"); |
| | | params.put("timestamp", System.currentTimeMillis()); |