预约车辆bug修改
This commit is contained in:
parent
a561aa183c
commit
914b1d7594
@ -0,0 +1,30 @@
|
|||||||
|
package com.zhgd.xmgl.base;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class HikvisionReservationCarInfo {
|
||||||
|
|
||||||
|
@JsonProperty("parkSyscode")
|
||||||
|
private String parkSyscode;
|
||||||
|
@JsonProperty("plateNo")
|
||||||
|
private String plateNo;
|
||||||
|
@JsonProperty("resvState")
|
||||||
|
private Long resvState;
|
||||||
|
@JsonProperty("resvWay")
|
||||||
|
private Long resvWay;
|
||||||
|
@JsonProperty("allowTimes")
|
||||||
|
private Long allowTimes;
|
||||||
|
@JsonProperty("isCharge")
|
||||||
|
private Long isCharge;
|
||||||
|
@JsonProperty("startTime")
|
||||||
|
private String startTime;
|
||||||
|
@JsonProperty("endTime")
|
||||||
|
private String endTime;
|
||||||
|
@JsonProperty("pageNo")
|
||||||
|
private Long pageNo;
|
||||||
|
@JsonProperty("pageSize")
|
||||||
|
private Long pageSize;
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,12 +1,12 @@
|
|||||||
package com.zhgd.xmgl.call;
|
package com.zhgd.xmgl.call;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.date.DateUtil;
|
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;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.google.gson.JsonArray;
|
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
import com.zhgd.xmgl.base.*;
|
import com.zhgd.xmgl.base.*;
|
||||||
import com.zhgd.xmgl.modules.basicdata.entity.HikvisionRequestRetry;
|
import com.zhgd.xmgl.modules.basicdata.entity.HikvisionRequestRetry;
|
||||||
@ -583,34 +583,33 @@ public class HikvisionCall {
|
|||||||
jo.put("vehicleIds", list);
|
jo.put("vehicleIds", list);
|
||||||
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
|
|
||||||
deleteReservationCarInfo(carInfo);
|
deleteReservationCarInfo(carInfo, project);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取消车位预约
|
* 取消车位预约
|
||||||
*
|
*
|
||||||
* @param carInfo
|
* @param carInfo
|
||||||
|
* @param project
|
||||||
*/
|
*/
|
||||||
private void deleteReservationCarInfo(CarInfo carInfo) {
|
private void deleteReservationCarInfo(CarInfo carInfo, Project project) {
|
||||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
|
try {
|
||||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
return;
|
final String path = ARTEMIS_PATH + "/api/pms/v1/parkingSpace/reservations/deletion";
|
||||||
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
|
JSONArray reservationCarInfoList = getReservationCarInfoList(carInfo, project);
|
||||||
|
if (reservationCarInfoList != null) {
|
||||||
|
for (int i = 0; i < reservationCarInfoList.size(); i++) {
|
||||||
|
JSONObject jsonObject = reservationCarInfoList.getJSONObject(i);
|
||||||
|
String reserveOrderNo = jsonObject.getString("reserveOrderNo");
|
||||||
|
JSONObject jsonObject1 = new JSONObject();
|
||||||
|
jsonObject1.put("reserveOrderNo", reserveOrderNo);
|
||||||
|
HikvisionUtil.doPost(host, path, jsonObject1.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
JSONArray parkList = getParkList(project);
|
|
||||||
if (parkList != null && parkList.size() > 0) {
|
|
||||||
JSONObject jo = parkList.getJSONObject(0);
|
|
||||||
String parkIndexCode = jo.getString("parkIndexCode");
|
|
||||||
|
|
||||||
}
|
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
|
||||||
final String path = ARTEMIS_PATH + "/api/pms/v1/parkingSpace/reservations/deletion";
|
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
|
||||||
JSONObject jo = new JSONObject();
|
|
||||||
JsonArray array = new JsonArray();
|
|
||||||
String body = array.toString();
|
|
||||||
array.add(carInfo.getId());
|
|
||||||
jo.put("vehicleIds", array);
|
|
||||||
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -618,23 +617,41 @@ public class HikvisionCall {
|
|||||||
* 查询预约记录v2
|
* 查询预约记录v2
|
||||||
*
|
*
|
||||||
* @param carInfo
|
* @param carInfo
|
||||||
|
* @param project
|
||||||
*/
|
*/
|
||||||
private void getReservationCarInfoList(CarInfo carInfo) {
|
private JSONArray getReservationCarInfoList(CarInfo carInfo, Project project) {
|
||||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
|
|
||||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
final String path = ARTEMIS_PATH + "/api/pms/v2/reserveRecord/page";
|
final String path = ARTEMIS_PATH + "/api/pms/v2/reserveRecord/page";
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
JSONObject jo = new JSONObject();
|
HikvisionReservationCarInfo info = getHikvisionReservationCarInfoObj(carInfo, project);
|
||||||
JsonArray array = new JsonArray();
|
String rs = HikvisionUtil.doPost(host, path, JSON.toJSONString(info), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
String body = array.toString();
|
try {
|
||||||
array.add(carInfo.getId());
|
JSONObject jsonObjectData = HikvisionUtil.getJSONObjectData(rs);
|
||||||
jo.put("vehicleIds", array);
|
return jsonObjectData.getJSONArray("list");
|
||||||
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private HikvisionReservationCarInfo getHikvisionReservationCarInfoObj(CarInfo carInfo, Project project) {
|
||||||
|
JSONArray parkList = getParkList(project);
|
||||||
|
HikvisionReservationCarInfo hikvisionReservationCarInfo = new HikvisionReservationCarInfo();
|
||||||
|
if (parkList != null && parkList.size() > 0) {
|
||||||
|
JSONObject jo = parkList.getJSONObject(0);
|
||||||
|
String parkIndexCode = jo.getString("parkIndexCode");
|
||||||
|
hikvisionReservationCarInfo.setParkSyscode(parkIndexCode);
|
||||||
|
hikvisionReservationCarInfo.setPlateNo(carInfo.getCarNumber());
|
||||||
|
}
|
||||||
|
//hikvisionReservationCarInfo.setResvState();
|
||||||
|
//hikvisionReservationCarInfo.setResvWay();
|
||||||
|
//hikvisionReservationCarInfo.setAllowTimes();
|
||||||
|
//hikvisionReservationCarInfo.setIsCharge();
|
||||||
|
//hikvisionReservationCarInfo.setStartTime();
|
||||||
|
//hikvisionReservationCarInfo.setEndTime();
|
||||||
|
hikvisionReservationCarInfo.setPageNo(1L);
|
||||||
|
hikvisionReservationCarInfo.setPageSize(999L);
|
||||||
|
return hikvisionReservationCarInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -940,31 +957,49 @@ public class HikvisionCall {
|
|||||||
* @param carInfo
|
* @param carInfo
|
||||||
*/
|
*/
|
||||||
public void reservationCar(Project project, CarInfo carInfo) {
|
public void reservationCar(Project project, CarInfo carInfo) {
|
||||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
try {
|
||||||
return;
|
//临时车辆预约
|
||||||
|
if (Objects.equals(carInfo.getCarModuleType(), 2)) {
|
||||||
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
|
final String path = ARTEMIS_PATH + "/api/pms/v2/parkingSpace/reservations/addition";
|
||||||
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
|
ParkReservation parkReservation = getParkReservation(project, carInfo);
|
||||||
|
if (parkReservation != null) {
|
||||||
|
HikvisionUtil.doPost(host, path, JSON.toJSONString(parkReservation), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//删除预约车辆
|
||||||
|
deleteReservationCarInfo(carInfo, project);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
|
||||||
final String path = ARTEMIS_PATH + "/api/pms/v2/parkingSpace/reservations/addition";
|
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
|
||||||
ParkReservation parkReservation = getParkReservation(project, carInfo);
|
|
||||||
HikvisionUtil.doPost(host, path, JSON.toJSONString(parkReservation), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ParkReservation getParkReservation(Project project, CarInfo carInfo) {
|
private ParkReservation getParkReservation(Project project, CarInfo carInfo) {
|
||||||
WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId());
|
JSONArray parkList = getParkList(project);
|
||||||
ParkReservation parkReservation = new ParkReservation();
|
if (parkList != null && parkList.size() > 0) {
|
||||||
parkReservation.setParkSyscode(null);
|
JSONObject jo = parkList.getJSONObject(0);
|
||||||
parkReservation.setPlateNo(carInfo.getCarNumber());
|
String parkIndexCode = jo.getString("parkIndexCode");
|
||||||
if (workerInfo != null) {
|
WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId());
|
||||||
parkReservation.setPhoneNo(workerInfo.getPhoneNumber());
|
ParkReservation parkReservation = new ParkReservation();
|
||||||
parkReservation.setOwner(workerInfo.getWorkerName());
|
parkReservation.setParkSyscode(parkIndexCode);
|
||||||
|
parkReservation.setPlateNo(carInfo.getCarNumber());
|
||||||
|
if (workerInfo != null) {
|
||||||
|
parkReservation.setPhoneNo(workerInfo.getPhoneNumber());
|
||||||
|
parkReservation.setOwner(workerInfo.getWorkerName());
|
||||||
|
}
|
||||||
|
parkReservation.setAllowTimes(Convert.toLong(carInfo.getEntryAndExitPermit()));
|
||||||
|
parkReservation.setIsCharge("0");
|
||||||
|
parkReservation.setStartTime(DateUtil.format(carInfo.getReserveStartTime(), "yyyy-MM-dd'T'HH:mm:ss") + "+08:00");
|
||||||
|
parkReservation.setEndTime(DateUtil.format(carInfo.getReserveEndTime(), "yyyy-MM-dd'T'HH:mm:ss") + "+08:00");
|
||||||
|
return parkReservation;
|
||||||
}
|
}
|
||||||
parkReservation.setAllowTimes(Long.valueOf(carInfo.getEntryAndExitPermit()));
|
return null;
|
||||||
parkReservation.setIsCharge("0");
|
}
|
||||||
parkReservation.setResvWay(null);
|
|
||||||
parkReservation.setStartTime(DateUtil.format(carInfo.getReserveStartTime(), "yyyy-MM-ddTHH:mm:ss+Z"));
|
public static void main(String[] args) {
|
||||||
parkReservation.setEndTime(DateUtil.format(carInfo.getReserveEndTime(), "yyyy-MM-ddTHH:mm:ss+Z"));
|
System.out.println(DateUtil.format(new Date(), "yyyy-MM-dd'T'HH:mm:ss+'Z'"));
|
||||||
return parkReservation;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user