车辆bug修改
This commit is contained in:
parent
b160b71b0f
commit
9bc1a5870a
@ -11,7 +11,7 @@ public class HikvisionReservationCarInfo {
|
|||||||
@JsonProperty("plateNo")
|
@JsonProperty("plateNo")
|
||||||
private String plateNo;
|
private String plateNo;
|
||||||
@JsonProperty("resvState")
|
@JsonProperty("resvState")
|
||||||
private Long resvState;
|
private Integer resvState;
|
||||||
@JsonProperty("resvWay")
|
@JsonProperty("resvWay")
|
||||||
private Long resvWay;
|
private Long resvWay;
|
||||||
@JsonProperty("allowTimes")
|
@JsonProperty("allowTimes")
|
||||||
@ -23,7 +23,7 @@ public class HikvisionReservationCarInfo {
|
|||||||
@JsonProperty("endTime")
|
@JsonProperty("endTime")
|
||||||
private String endTime;
|
private String endTime;
|
||||||
@JsonProperty("pageNo")
|
@JsonProperty("pageNo")
|
||||||
private Long pageNo;
|
private Integer pageNo;
|
||||||
@JsonProperty("pageSize")
|
@JsonProperty("pageSize")
|
||||||
private Long pageSize;
|
private Long pageSize;
|
||||||
|
|
||||||
|
|||||||
@ -2062,7 +2062,7 @@ public class HikvisionCall {
|
|||||||
final String artemisPath = "/artemis";
|
final String artemisPath = "/artemis";
|
||||||
final String path = artemisPath + "/api/pms/v1/parkingSpace/reservations/deletion";
|
final String path = artemisPath + "/api/pms/v1/parkingSpace/reservations/deletion";
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
JSONArray reservationCarInfoList = HikvisionUtil.getReservationCarInfoDataList(carInfo.getCarNumber(), project);
|
JSONArray reservationCarInfoList = HikvisionUtil.getIscActiveReservationCarList(carInfo.getCarNumber(), project);
|
||||||
if (CollUtil.isNotEmpty(reservationCarInfoList)) {
|
if (CollUtil.isNotEmpty(reservationCarInfoList)) {
|
||||||
for (int i = 0; i < reservationCarInfoList.size(); i++) {
|
for (int i = 0; i < reservationCarInfoList.size(); i++) {
|
||||||
JSONObject jsonObject = reservationCarInfoList.getJSONObject(i);
|
JSONObject jsonObject = reservationCarInfoList.getJSONObject(i);
|
||||||
|
|||||||
@ -392,7 +392,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
|||||||
jo.put("pageSize", 1);
|
jo.put("pageSize", 1);
|
||||||
rtJo = HikvisionUtil.getBlackCarList(projectInfoBySn, jo);
|
rtJo = HikvisionUtil.getBlackCarList(projectInfoBySn, jo);
|
||||||
} else {
|
} else {
|
||||||
rtJo = HikvisionUtil.getReservationCarInfoList(carInfo.getCarNumber(), projectInfoBySn);
|
rtJo = HikvisionUtil.getReservationCarInfoList(carInfo.getCarNumber(), projectInfoBySn, 1, 0);
|
||||||
}
|
}
|
||||||
if (HikvisionUtil.isSuccess(rtJo)) {
|
if (HikvisionUtil.isSuccess(rtJo)) {
|
||||||
JSONArray list = HikvisionUtil.getJsonObjectData(rtJo).getJSONArray("list");
|
JSONArray list = HikvisionUtil.getJsonObjectData(rtJo).getJSONArray("list");
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONArray;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.gexin.fastjson.JSON;
|
||||||
import com.zhgd.redis.lock.RedisRepository;
|
import com.zhgd.redis.lock.RedisRepository;
|
||||||
import com.zhgd.xmgl.async.AsyncHikvision;
|
import com.zhgd.xmgl.async.AsyncHikvision;
|
||||||
import com.zhgd.xmgl.call.HikvisionCall;
|
import com.zhgd.xmgl.call.HikvisionCall;
|
||||||
@ -201,6 +202,7 @@ public class HikvisionTask {
|
|||||||
param.put("parentOrgIndexCode", project.getProjectSn());
|
param.put("parentOrgIndexCode", project.getProjectSn());
|
||||||
JSONObject rtJo = HikvisionUtil.getSubOrgListByParentOrg(project, param);
|
JSONObject rtJo = HikvisionUtil.getSubOrgListByParentOrg(project, param);
|
||||||
List<EnterpriseInfo> enterpriseInfos = BeanUtil.copyToList(enterpriseInfoService.getEnterpriseInfoList(new MapBuilder<String, Object>().put(Cts.PROJECT_SN, project.getProjectSn()).build()), EnterpriseInfo.class);
|
List<EnterpriseInfo> enterpriseInfos = BeanUtil.copyToList(enterpriseInfoService.getEnterpriseInfoList(new MapBuilder<String, Object>().put(Cts.PROJECT_SN, project.getProjectSn()).build()), EnterpriseInfo.class);
|
||||||
|
log.info("数据校验我们平台的企业列表:{}", JSON.toJSONString(enterpriseInfos));
|
||||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rtJo);
|
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rtJo);
|
||||||
JSONArray listJa = dataJo.getJSONArray("list");
|
JSONArray listJa = dataJo.getJSONArray("list");
|
||||||
if (CollUtil.isEmpty(listJa)) {
|
if (CollUtil.isEmpty(listJa)) {
|
||||||
@ -251,8 +253,10 @@ public class HikvisionTask {
|
|||||||
JSONObject rtJo = HikvisionUtil.getSubOrgListByParentOrg(project, param);
|
JSONObject rtJo = HikvisionUtil.getSubOrgListByParentOrg(project, param);
|
||||||
List<TeamInfo> teamList = teamInfoService.getProjectTeamList(new MapBuilder<String, Object>()
|
List<TeamInfo> teamList = teamInfoService.getProjectTeamList(new MapBuilder<String, Object>()
|
||||||
.put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.ENTERPRISE_ID, enterpriseId).build());
|
.put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.ENTERPRISE_ID, enterpriseId).build());
|
||||||
|
log.info("数据校验我们平台的班组列表:{}", JSON.toJSONString(teamList));
|
||||||
List<DepartmentInfo> departmentInfoList = departmentInfoMapper.getDepartmentInfoList(new MapBuilder<String, Object>()
|
List<DepartmentInfo> departmentInfoList = departmentInfoMapper.getDepartmentInfoList(new MapBuilder<String, Object>()
|
||||||
.put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.ENTERPRISE_ID, enterpriseId).build());
|
.put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.ENTERPRISE_ID, enterpriseId).build());
|
||||||
|
log.info("数据校验我们平台的部门列表:{}", JSON.toJSONString(departmentInfoList));
|
||||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rtJo);
|
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rtJo);
|
||||||
JSONArray listJa = dataJo.getJSONArray("list");
|
JSONArray listJa = dataJo.getJSONArray("list");
|
||||||
if (CollUtil.isEmpty(listJa)) {
|
if (CollUtil.isEmpty(listJa)) {
|
||||||
@ -323,6 +327,7 @@ public class HikvisionTask {
|
|||||||
.put(type == 2, Cts.DEPARTMENT_ID, orgIndex)
|
.put(type == 2, Cts.DEPARTMENT_ID, orgIndex)
|
||||||
.build());
|
.build());
|
||||||
List<WorkerInfo> workerInfoList = workerPage.getRecords();
|
List<WorkerInfo> workerInfoList = workerPage.getRecords();
|
||||||
|
log.info("数据校验我们平台的人员列表:{}", JSON.toJSONString(workerInfoList));
|
||||||
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rtJo);
|
JSONObject dataJo = HikvisionUtil.getJsonObjectData(rtJo);
|
||||||
JSONArray listJa = dataJo.getJSONArray("list");
|
JSONArray listJa = dataJo.getJSONArray("list");
|
||||||
if (CollUtil.isEmpty(listJa)) {
|
if (CollUtil.isEmpty(listJa)) {
|
||||||
@ -395,12 +400,13 @@ public class HikvisionTask {
|
|||||||
public void compareHikvisionForReservationCar(Project project) throws Exception {
|
public void compareHikvisionForReservationCar(Project project) throws Exception {
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
HikvisionUtil.addPageParamIfAbsent(param);
|
HikvisionUtil.addPageParamIfAbsent(param);
|
||||||
JSONArray listJa = HikvisionUtil.getReservationCarInfoDataList(null, project);
|
JSONArray listJa = HikvisionUtil.getIscActiveReservationCarList(null, project);
|
||||||
List<CarInfo> carInfoList = carInfoService.selectCarList(new MapBuilder<String, Object>()
|
List<CarInfo> carInfoList = carInfoService.selectCarList(new MapBuilder<String, Object>()
|
||||||
.put(Cts.PROJECT_SN, project.getProjectSn())
|
.put(Cts.PROJECT_SN, project.getProjectSn())
|
||||||
.put(Cts.RESERVATION_TYPE, 1)
|
.put(Cts.RESERVATION_TYPE, 1)
|
||||||
.put("isBlack", 0)
|
.put("isBlack", 0)
|
||||||
.build());
|
.build());
|
||||||
|
log.info("数据校验我们平台的临时车列表:{}", JSON.toJSONString(carInfoList));
|
||||||
compareAndAddData(project, listJa, carInfoList, 2);
|
compareAndAddData(project, listJa, carInfoList, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package com.zhgd.xmgl.util;
|
package com.zhgd.xmgl.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
@ -20,6 +22,10 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 海康接口
|
* 海康接口
|
||||||
@ -358,24 +364,61 @@ public class HikvisionUtil {
|
|||||||
*
|
*
|
||||||
* @param carNumber
|
* @param carNumber
|
||||||
* @param project
|
* @param project
|
||||||
|
* @param pageNo
|
||||||
|
* @param resvState
|
||||||
*/
|
*/
|
||||||
public static JSONObject getReservationCarInfoList(String carNumber, Project project) throws Exception {
|
public static JSONObject getReservationCarInfoList(String carNumber, Project project, int pageNo, int resvState) throws Exception {
|
||||||
final String artemisPath = "/artemis";
|
final String artemisPath = "/artemis";
|
||||||
final String path = artemisPath + "/api/pms/v2/reserveRecord/page";
|
final String path = artemisPath + "/api/pms/v2/reserveRecord/page";
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
HikvisionReservationCarInfo info = getHikvisionReservationCarInfoObj(carNumber, project);
|
HikvisionReservationCarInfo info = getHikvisionReservationCarInfoObj(carNumber, project, pageNo, resvState);
|
||||||
return doPostRtObj(host, path, JSON.toJSONString(info), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
return doPostRtObj(host, path, JSON.toJSONString(info), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询预约记录v2
|
* 获取isc中预约状态为:0已预约3已进场并且车辆在有效期内的预约车,查询预约记录v2
|
||||||
*
|
*
|
||||||
* @param carNumber
|
* @param carNumber
|
||||||
* @param project
|
* @param project
|
||||||
*/
|
*/
|
||||||
public static JSONArray getReservationCarInfoDataList(String carNumber, Project project) throws Exception {
|
public static JSONArray getIscActiveReservationCarList(String carNumber, Project project) throws Exception {
|
||||||
JSONObject jo = getReservationCarInfoList(carNumber, project);
|
long total = 0;
|
||||||
return getJsonObjectData(jo).getJSONArray("list");
|
int pageNo = 0;
|
||||||
|
JSONArray rt = new JSONArray();
|
||||||
|
do {
|
||||||
|
pageNo++;
|
||||||
|
JSONObject rsJo = getReservationCarInfoList(carNumber, project, pageNo, 0);
|
||||||
|
JSONObject dataJo = getJsonObjectData(rsJo);
|
||||||
|
total = dataJo.getInteger("total");
|
||||||
|
if (CollUtil.isNotEmpty(dataJo.getJSONArray("list"))) {
|
||||||
|
rt.addAll(dataJo.getJSONArray("list"));
|
||||||
|
}
|
||||||
|
} while (total > pageNo * 1000L);
|
||||||
|
total = 0;
|
||||||
|
pageNo = 0;
|
||||||
|
do {
|
||||||
|
pageNo++;
|
||||||
|
JSONObject rsJo = getReservationCarInfoList(carNumber, project, pageNo, 3);
|
||||||
|
JSONObject dataJo = getJsonObjectData(rsJo);
|
||||||
|
total = dataJo.getInteger("total");
|
||||||
|
if (CollUtil.isNotEmpty(dataJo.getJSONArray("list"))) {
|
||||||
|
rt.addAll(dataJo.getJSONArray("list"));
|
||||||
|
}
|
||||||
|
} while (total > pageNo * 1000L);
|
||||||
|
|
||||||
|
Date date = new Date();
|
||||||
|
//取有效时间内的车辆并去重车牌号
|
||||||
|
List<Object> list = rt.stream().filter(o -> {
|
||||||
|
String startTime = ((JSONObject) o).getString("startTime");
|
||||||
|
String endTime = ((JSONObject) o).getString("endTime");
|
||||||
|
return DateUtil.compare(DateUtil.parse(endTime), date) >= 0;
|
||||||
|
}).filter(distinctByKey(o1 -> ((JSONObject) o1).getString("plateNo"))).collect(Collectors.toList());
|
||||||
|
return JSONArray.parseArray(JSON.toJSONString(list));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
|
||||||
|
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
|
||||||
|
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -383,22 +426,24 @@ public class HikvisionUtil {
|
|||||||
*
|
*
|
||||||
* @param carNumber
|
* @param carNumber
|
||||||
* @param project
|
* @param project
|
||||||
|
* @param pageNo
|
||||||
|
* @param resvState
|
||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private static HikvisionReservationCarInfo getHikvisionReservationCarInfoObj(String carNumber, Project project) throws Exception {
|
private static HikvisionReservationCarInfo getHikvisionReservationCarInfoObj(String carNumber, Project project, int pageNo, int resvState) throws Exception {
|
||||||
String projectParkCode = HikvisionUtil.getProjectParkCode(project);
|
String projectParkCode = HikvisionUtil.getProjectParkCode(project);
|
||||||
HikvisionReservationCarInfo hikvisionReservationCarInfo = new HikvisionReservationCarInfo();
|
HikvisionReservationCarInfo hikvisionReservationCarInfo = new HikvisionReservationCarInfo();
|
||||||
hikvisionReservationCarInfo.setParkSyscode(projectParkCode);
|
hikvisionReservationCarInfo.setParkSyscode(projectParkCode);
|
||||||
hikvisionReservationCarInfo.setPlateNo(carNumber);
|
hikvisionReservationCarInfo.setPlateNo(carNumber);
|
||||||
hikvisionReservationCarInfo.setResvState(0L);
|
hikvisionReservationCarInfo.setResvState(resvState);
|
||||||
//hikvisionReservationCarInfo.setResvWay();
|
//hikvisionReservationCarInfo.setResvWay();
|
||||||
//hikvisionReservationCarInfo.setAllowTimes();
|
//hikvisionReservationCarInfo.setAllowTimes();
|
||||||
//hikvisionReservationCarInfo.setIsCharge();
|
//hikvisionReservationCarInfo.setIsCharge();
|
||||||
//hikvisionReservationCarInfo.setStartTime();
|
//hikvisionReservationCarInfo.setStartTime();
|
||||||
//hikvisionReservationCarInfo.setEndTime();
|
//hikvisionReservationCarInfo.setEndTime();
|
||||||
hikvisionReservationCarInfo.setPageNo(1L);
|
hikvisionReservationCarInfo.setPageNo(pageNo);
|
||||||
hikvisionReservationCarInfo.setPageSize(999L);
|
hikvisionReservationCarInfo.setPageSize(1000L);
|
||||||
return hikvisionReservationCarInfo;
|
return hikvisionReservationCarInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user