|
|
@@ -14,6 +14,7 @@ import com.sckw.core.model.enums.SystemTypeEnum;
|
|
|
import com.sckw.core.model.file.FileInfo;
|
|
|
import com.sckw.core.utils.*;
|
|
|
import com.sckw.core.web.constant.HttpStatus;
|
|
|
+import com.sckw.core.web.context.LoginEntHolder;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
import com.sckw.core.web.request.HttpClientUtil;
|
|
|
import com.sckw.core.web.response.HttpResult;
|
|
|
@@ -138,7 +139,6 @@ public class KwfTruckService {
|
|
|
/**数据处理**/
|
|
|
Map<String, Integer> authStatusMap = new HashMap(){{put("正常", 1); put("临时", 2); put("异常", 3);}};
|
|
|
for(Map.Entry<String, Integer> entry:authStatusMap.entrySet()){
|
|
|
- System.out.println(entry.getKey()+"--->"+entry.getValue());
|
|
|
KwfTableTopCount count = new KwfTableTopCount();
|
|
|
for (KwfTableTopCount topCount:counts) {
|
|
|
if (Integer.parseInt(topCount.getValue()) == entry.getValue()) {
|
|
|
@@ -224,7 +224,7 @@ public class KwfTruckService {
|
|
|
|
|
|
/**
|
|
|
* @param {}
|
|
|
- * @description 导出
|
|
|
+ * @desc 导出
|
|
|
* @author zk
|
|
|
* @date 2023/07/11
|
|
|
**/
|
|
|
@@ -592,23 +592,18 @@ public class KwfTruckService {
|
|
|
* @author zk
|
|
|
* @date 2023/9/5
|
|
|
**/
|
|
|
- public List<KwfTruckMonitorVo> findTruck(Map<String, Object> params){
|
|
|
+ public List<KwfTruckMonitorVo> findTruck(Map params){
|
|
|
/**车辆查询**/
|
|
|
- List<KwfTruckMonitorVo> trucks = new ArrayList<>();
|
|
|
- if (LoginUserHolder.getSystemType() == SystemTypeEnum.COMPANY.getCode()) {
|
|
|
- trucks = truckDao.findTruckByEnt(LoginUserHolder.getEntId());
|
|
|
- }
|
|
|
- if (LoginUserHolder.getSystemType() == SystemTypeEnum.MANAGE.getCode()) {
|
|
|
- trucks = truckDao.findTruckByAll();
|
|
|
- }
|
|
|
- if (trucks == null || trucks.size() == 0) {
|
|
|
- return trucks;
|
|
|
+ Map queryParams = new HashMap<>(Global.NUMERICAL_SIXTEEN){{ put("truckNo", params.get("truckNo"));}};
|
|
|
+ List<KwfTruckMonitorVo> truckList = findTruckMonitor(queryParams);
|
|
|
+ if (truckList == null || truckList.size() == 0) {
|
|
|
+ return truckList;
|
|
|
}
|
|
|
|
|
|
/**数据配置**/
|
|
|
List<Long> entIds = new ArrayList<>();
|
|
|
List<String> truckNos = new ArrayList<>();
|
|
|
- for (KwfTruckMonitorVo truck:trucks) {
|
|
|
+ for (KwfTruckMonitorVo truck:truckList) {
|
|
|
entIds.add(truck.getEntId());
|
|
|
truckNos.add(truck.getTruckNo());
|
|
|
}
|
|
|
@@ -620,16 +615,97 @@ public class KwfTruckService {
|
|
|
Map<String, KwfTruckGpsVo> truckGpsMap = findTruckLocateHandle(truckNos);
|
|
|
|
|
|
/**数据组装**/
|
|
|
- for (KwfTruckMonitorVo truck:trucks) {
|
|
|
+ for (KwfTruckMonitorVo truck:truckList) {
|
|
|
EntCacheResDto ent = ents == null ? null : ents.get(truck.getEntId());
|
|
|
KwfTruckGpsVo truckGps = truckGpsMap != null ? truckGpsMap.get(truck.getTruckNo()) : null;
|
|
|
truck.setFirmName(ent != null ? ent.getFirmName() : null);
|
|
|
truck.setRunStatus(truckGps != null ? truckGps.getRunStatus() : null);
|
|
|
}
|
|
|
|
|
|
+ return truckList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param truckNos 車牌號集
|
|
|
+ * @description 车辆查询GPS(业务关联 + 归属车辆)
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/9/6
|
|
|
+ **/
|
|
|
+ public List<KwfTruckGpsVo> findTruckGps(List<String> truckNos) {
|
|
|
+ /**车辆查询**/
|
|
|
+ List<KwfTruckGpsVo> truckGpsList = new ArrayList<>();
|
|
|
+ Map queryParams = new HashMap<>(Global.NUMERICAL_SIXTEEN){{ put("truckNos", truckNos);}};
|
|
|
+ List<KwfTruckMonitorVo> truckList = findTruckMonitor(queryParams);
|
|
|
+ if (truckList == null || truckList.size() == 0) {
|
|
|
+ return truckGpsList;
|
|
|
+ }
|
|
|
+
|
|
|
+ //车辆定位数据集
|
|
|
+ Map<String, KwfTruckGpsVo> truckGpsMap = findTruckLocateHandle(truckNos);
|
|
|
+
|
|
|
+ /**数据组装**/
|
|
|
+ for (KwfTruckMonitorVo truck:truckList) {
|
|
|
+ KwfTruckGpsVo truckGps = truckGpsMap != null ? truckGpsMap.get(truck.getTruckNo()) : null;
|
|
|
+ if (truckGps == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ truckGps.setTruckNo(truck.getTruckNo());
|
|
|
+ truckGps.setBusinessStatus(truck.getBusinessStatus());
|
|
|
+ truckGpsList.add(truckGps);
|
|
|
+ }
|
|
|
+
|
|
|
+ return truckGpsList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param params 参数
|
|
|
+ * @desc 车辆查询(业务关联 + 归属车辆)
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/9/6
|
|
|
+ **/
|
|
|
+ public List<KwfTruckMonitorVo> findTruckMonitor(Map params) {
|
|
|
+ List<KwfTruckMonitorVo> trucks = new ArrayList<>();
|
|
|
+ if (LoginUserHolder.getSystemType() == SystemTypeEnum.COMPANY.getCode()) {
|
|
|
+ params.put("entId", LoginUserHolder.getEntId());
|
|
|
+ trucks = truckDao.findTruckByEnt(params);
|
|
|
+ }
|
|
|
+ if (LoginUserHolder.getSystemType() == SystemTypeEnum.MANAGE.getCode()) {
|
|
|
+ trucks = truckDao.findTruckByAll(params);
|
|
|
+ }
|
|
|
return trucks;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param truckNo 车牌号
|
|
|
+ * @desc 车牌号查询车辆关联数据
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/9/6
|
|
|
+ **/
|
|
|
+ public Map<String, Object> findDetailByTruckNo(String truckNo) {
|
|
|
+ Map<String, Object> detail = new HashMap<>(Global.NUMERICAL_SIXTEEN);
|
|
|
+ detail.put("truckNo", truckNo);
|
|
|
+ detail.put("firmName", LoginEntHolder.getFirmName());
|
|
|
+ /*
|
|
|
+ 鲁EH2975 承运单位:东营启正运输有限公司
|
|
|
+ 当前位置:山东省东营市垦利区昊隆路西100米
|
|
|
+ GPS状态:77km/h
|
|
|
+ 定位时间:2023-01-01 13:21:47
|
|
|
+ 张晓波 18508243826
|
|
|
+ 车辆轨迹 运单开始时间-结束时间
|
|
|
+ 关联订单:202305010001*/
|
|
|
+
|
|
|
+ /*detail.put("truckNo", truckNo);
|
|
|
+ detail.put("driverName", "赵先生");
|
|
|
+ detail.put("driverPhone", "17358629955");
|
|
|
+ detail.put("firmName", "东旭物流有限公司");
|
|
|
+ detail.put("detailAddress", "四川省成都市xxx路10号");
|
|
|
+ detail.put("lat", "29.48"+new Random().nextInt(10000));
|
|
|
+ detail.put("lng", "103.53"+new Random().nextInt(10000));
|
|
|
+ detail.put("speed", new Random().nextInt(100));
|
|
|
+ detail.put("gpsTime", DateUtils.getCurrentTime());*/
|
|
|
+ return detail;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param params 参数
|
|
|
* @desc 校验车辆是否有证书
|
|
|
@@ -788,16 +864,17 @@ public class KwfTruckService {
|
|
|
if (result.getInteger("code") != null && result.getInteger("code") != 200) {
|
|
|
return truckGpsMap;
|
|
|
} else {
|
|
|
- System.out.println(result);
|
|
|
+
|
|
|
}
|
|
|
JSONArray trucks = result.getJSONArray("data");
|
|
|
+ System.out.println((trucks != null ? trucks.size() : 0) + "==="+ truckNos.size() + "===" + truckNos);
|
|
|
for (int i=0; trucks != null && i < trucks.size(); i++) {
|
|
|
JSONObject truck = trucks.getJSONObject(i);
|
|
|
JSONObject locateInfo = truck.getJSONObject("locateInfo");
|
|
|
KwfTruckGpsVo truckGps = new KwfTruckGpsVo();
|
|
|
truckGps.setTruckNo(truck.getString("vehicleNo"));
|
|
|
- truckGps.setLat(locateInfo.getString("lng"));
|
|
|
- truckGps.setLng(locateInfo.getString("vehicleNo"));
|
|
|
+ truckGps.setLat(locateInfo.getString("lat"));
|
|
|
+ truckGps.setLng(locateInfo.getString("lng"));
|
|
|
truckGps.setSpeed(locateInfo.getDouble("speed"));
|
|
|
truckGps.setGpsTime(locateInfo.getString("createTime"));
|
|
|
truckGps.setRunStatus(runStatus(truckGps.getGpsTime(), truckGps.getSpeed()));
|
|
|
@@ -810,6 +887,47 @@ public class KwfTruckService {
|
|
|
return truckGpsMap;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param truckNos 车牌号
|
|
|
+ * @desc 查询车辆定位数据
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/9/5
|
|
|
+ **/
|
|
|
+ public KwfTruckGpsVo findTruckLocate(String truckNo){
|
|
|
+ if (StringUtils.isBlank(truckNo)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ Map<String, Object> params = new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
|
|
|
+ put("vehicleNoList", new ArrayList<>(){{add(truckNo);}});
|
|
|
+ }};
|
|
|
+ String httpResult = HttpClientUtil.post(queryLocate, JSON.toJSONString(params));
|
|
|
+ if (StringUtils.isNotBlank(httpResult)) {
|
|
|
+ JSONObject result = JSONObject.parseObject(httpResult);
|
|
|
+ if (result.getInteger("code") != null && result.getInteger("code") != 200) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ JSONArray trucks = result.getJSONArray("data");
|
|
|
+ if (trucks != null && trucks.size() > 0) {
|
|
|
+ JSONObject truck = trucks.getJSONObject(Global.NUMERICAL_ZERO);
|
|
|
+ JSONObject locateInfo = truck.getJSONObject("locateInfo");
|
|
|
+ KwfTruckGpsVo truckGps = new KwfTruckGpsVo();
|
|
|
+ truckGps.setTruckNo(truck.getString("vehicleNo"));
|
|
|
+ truckGps.setLat(locateInfo.getString("lat"));
|
|
|
+ truckGps.setLng(locateInfo.getString("lng"));
|
|
|
+ truckGps.setSpeed(locateInfo.getDouble("speed"));
|
|
|
+ truckGps.setGpsTime(locateInfo.getString("createTime"));
|
|
|
+ truckGps.setRunStatus(runStatus(truckGps.getGpsTime(), truckGps.getSpeed()));
|
|
|
+ return truckGps;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param gpsTimeStr 地位时间
|
|
|
* @param speed 速度
|
|
|
@@ -832,14 +950,4 @@ public class KwfTruckService {
|
|
|
return compareTo < 0 ? 2 : (speed == null || speed == 0) ? 1 : 0;
|
|
|
}
|
|
|
|
|
|
- public static void main(String[] args) {
|
|
|
- String url = "http://10.10.10.224:27802/openapi/vehicleLocate/queryLocateByDesignatedTime";
|
|
|
- Map<String, Object> params = new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("vehicleNo", "川L01819D");}};
|
|
|
- String result = HttpClientUtil.post(url, JSON.toJSONString(params));
|
|
|
- System.out.println(result);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
}
|