bug修复
This commit is contained in:
parent
64608c6a9b
commit
37e384bb93
@ -78,6 +78,7 @@ public class DataScopeInterceptor extends JsqlParserSupport implements InnerInte
|
|||||||
sb.append(".java:");
|
sb.append(".java:");
|
||||||
sb.append(e.getLineNumber());
|
sb.append(e.getLineNumber());
|
||||||
sb.append(")");
|
sb.append(")");
|
||||||
|
sb.append(" \r\n ");
|
||||||
sb.append(" > ");
|
sb.append(" > ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -650,7 +650,7 @@ public class HikvisionCall {
|
|||||||
for (Project project : projects) {
|
for (Project project : projects) {
|
||||||
String projectParkCode = null;
|
String projectParkCode = null;
|
||||||
try {
|
try {
|
||||||
projectParkCode = getProjectParkCode(project);
|
projectParkCode = HikvisionUtil.getProjectParkCode(project);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("err:", e);
|
log.error("err:", e);
|
||||||
return;
|
return;
|
||||||
@ -974,8 +974,7 @@ public class HikvisionCall {
|
|||||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
|
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
String body = getWorkerJson(workerInfo);
|
String body = getWorkerJson(workerInfo);
|
||||||
String rs = HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
return HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
return rs;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1099,14 +1098,30 @@ public class HikvisionCall {
|
|||||||
String msg = "";
|
String msg = "";
|
||||||
String type = "25";
|
String type = "25";
|
||||||
if (success) {
|
if (success) {
|
||||||
|
JSONObject jo = JSONObject.parseObject(rs);
|
||||||
|
JSONObject dataJo = jo.getJSONObject("data");
|
||||||
|
Optional<JSONArray> fOp = Optional.ofNullable(dataJo).map(o -> o.getJSONArray("failures"));
|
||||||
|
if (fOp.isPresent() && fOp.get().size() != 0) {
|
||||||
|
if ("0x00052102".equals(fOp.get().getJSONObject(0).getString("code"))) {
|
||||||
|
msg = "同步失败,组织名称:" + orgName + "。失败原因:上级组织不存在";
|
||||||
|
title += "失败";
|
||||||
|
success = false;
|
||||||
|
} else {
|
||||||
|
msg = "同步失败,组织名称:" + orgName + "。失败原因:下发异常";
|
||||||
|
title += "失败";
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
msg = "同步成功,组织名称:" + orgName;
|
msg = "同步成功,组织名称:" + orgName;
|
||||||
title += "成功";
|
title += "成功";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:" + rs;
|
msg = "同步失败,组织名称:" + orgName + "。失败原因:" + rs;
|
||||||
title += "失败";
|
title += "失败";
|
||||||
|
success = false;
|
||||||
}
|
}
|
||||||
if (success) {
|
if (success) {
|
||||||
xzHikvisionCompareDataService.compareRetrySuc();
|
xzHikvisionCompareDataService.compareRetrySuccess();
|
||||||
} else {
|
} else {
|
||||||
xzHikvisionCompareDataService.compareRetryFail();
|
xzHikvisionCompareDataService.compareRetryFail();
|
||||||
}
|
}
|
||||||
@ -1172,8 +1187,10 @@ public class HikvisionCall {
|
|||||||
}
|
}
|
||||||
if (success) {
|
if (success) {
|
||||||
updateSuccessStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
|
updateSuccessStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
|
||||||
|
xzHikvisionCompareDataService.compareRetrySuccess();
|
||||||
} else {
|
} else {
|
||||||
updateFailStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
|
updateFailStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
|
||||||
|
xzHikvisionCompareDataService.compareRetryFail();
|
||||||
}
|
}
|
||||||
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
|
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
|
||||||
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, noticeType);
|
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, noticeType);
|
||||||
@ -1577,7 +1594,7 @@ public class HikvisionCall {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private String getCategoryCode(Project project) throws Exception {
|
private String getCategoryCode(Project project) throws Exception {
|
||||||
//绑定固定的群组
|
//绑定固定的群组
|
||||||
JSONArray ja = HikvisionUtil.queryCategory(project);
|
JSONArray ja = HikvisionUtil.getCategoryList(project);
|
||||||
return getFixedCarGroupName(ja);
|
return getFixedCarGroupName(ja);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1804,7 +1821,7 @@ public class HikvisionCall {
|
|||||||
JSONObject o1 = null;
|
JSONObject o1 = null;
|
||||||
int pageNo = 0;
|
int pageNo = 0;
|
||||||
do {
|
do {
|
||||||
JSONObject jo = HikvisionUtil.getCarInfoListByCarNumber(carNumber, project, ++pageNo);
|
JSONObject jo = HikvisionUtil.getFixCarListByCarNumber(carNumber, project, ++pageNo);
|
||||||
if (HikvisionUtil.isSuccess(jo)) {
|
if (HikvisionUtil.isSuccess(jo)) {
|
||||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo);
|
JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo);
|
||||||
total = dataJo.getInteger("total");
|
total = dataJo.getInteger("total");
|
||||||
@ -1846,7 +1863,7 @@ public class HikvisionCall {
|
|||||||
final String ARTEMIS_PATH = "/artemis";
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
final String path = ARTEMIS_PATH + "/api/pms/v1/parkingSpace/reservations/deletion";
|
final String path = ARTEMIS_PATH + "/api/pms/v1/parkingSpace/reservations/deletion";
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
JSONArray reservationCarInfoList = getReservationCarInfoList(carInfo.getCarNumber(), project);
|
JSONArray reservationCarInfoList = HikvisionUtil.getReservationCarInfoDataList(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);
|
||||||
@ -1861,38 +1878,6 @@ public class HikvisionCall {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询预约记录v2
|
|
||||||
*
|
|
||||||
* @param carNumber
|
|
||||||
* @param project
|
|
||||||
*/
|
|
||||||
public JSONArray getReservationCarInfoList(String carNumber, Project project) throws Exception {
|
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
|
||||||
final String path = ARTEMIS_PATH + "/api/pms/v2/reserveRecord/page";
|
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
|
||||||
HikvisionReservationCarInfo info = getHikvisionReservationCarInfoObj(carNumber, project);
|
|
||||||
String rs = HikvisionUtil.doPost(host, path, JSON.toJSONString(info), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
|
||||||
JSONObject jsonObjectData = HikvisionUtil.getJSONObjectData(rs);
|
|
||||||
return jsonObjectData.getJSONArray("list");
|
|
||||||
}
|
|
||||||
|
|
||||||
private HikvisionReservationCarInfo getHikvisionReservationCarInfoObj(String carNumber, Project project) throws Exception {
|
|
||||||
String projectParkCode = getProjectParkCode(project);
|
|
||||||
HikvisionReservationCarInfo hikvisionReservationCarInfo = new HikvisionReservationCarInfo();
|
|
||||||
hikvisionReservationCarInfo.setParkSyscode(projectParkCode);
|
|
||||||
hikvisionReservationCarInfo.setPlateNo(carNumber);
|
|
||||||
hikvisionReservationCarInfo.setResvState(0L);
|
|
||||||
//hikvisionReservationCarInfo.setResvWay();
|
|
||||||
//hikvisionReservationCarInfo.setAllowTimes();
|
|
||||||
//hikvisionReservationCarInfo.setIsCharge();
|
|
||||||
//hikvisionReservationCarInfo.setStartTime();
|
|
||||||
//hikvisionReservationCarInfo.setEndTime();
|
|
||||||
hikvisionReservationCarInfo.setPageNo(1L);
|
|
||||||
hikvisionReservationCarInfo.setPageSize(999L);
|
|
||||||
return hikvisionReservationCarInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加组织
|
* 添加组织
|
||||||
*
|
*
|
||||||
@ -2164,23 +2149,6 @@ public class HikvisionCall {
|
|||||||
return jo.getJSONArray("list").size() > 0;
|
return jo.getJSONArray("list").size() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取停车库列表
|
|
||||||
*
|
|
||||||
* @param project
|
|
||||||
*/
|
|
||||||
public JSONArray getParkList(Project project) throws Exception {
|
|
||||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
|
||||||
final String path = ARTEMIS_PATH + "/api/resource/v1/park/parkList";
|
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
|
||||||
JSONObject jo = new JSONObject();
|
|
||||||
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
|
||||||
return HikvisionUtil.getJSONArrayData(rs);
|
|
||||||
}
|
|
||||||
|
|
||||||
private HikvisionOrganization getHikvisionOrganization(Project project) {
|
private HikvisionOrganization getHikvisionOrganization(Project project) {
|
||||||
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
||||||
hikvisionOrganization.setClientId(null);
|
hikvisionOrganization.setClientId(null);
|
||||||
@ -2213,7 +2181,7 @@ public class HikvisionCall {
|
|||||||
*/
|
*/
|
||||||
private void cancelCharge(Project project, CarInfo carInfo) throws Exception {
|
private void cancelCharge(Project project, CarInfo carInfo) throws Exception {
|
||||||
//取消车辆包期
|
//取消车辆包期
|
||||||
String parkIndexCode = getProjectParkCode(project);
|
String parkIndexCode = HikvisionUtil.getProjectParkCode(project);
|
||||||
chargeDeletion(project, new ChargeDeletionParam(parkIndexCode, carInfo.getCarNumber()));
|
chargeDeletion(project, new ChargeDeletionParam(parkIndexCode, carInfo.getCarNumber()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2227,7 +2195,7 @@ public class HikvisionCall {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ParkReservation getParkReservation(Project project, CarInfo carInfo) throws Exception {
|
private ParkReservation getParkReservation(Project project, CarInfo carInfo) throws Exception {
|
||||||
String parkIndexCode = getProjectParkCode(project);
|
String parkIndexCode = HikvisionUtil.getProjectParkCode(project);
|
||||||
WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId());
|
WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId());
|
||||||
ParkReservation parkReservation = new ParkReservation();
|
ParkReservation parkReservation = new ParkReservation();
|
||||||
parkReservation.setParkSyscode(parkIndexCode);
|
parkReservation.setParkSyscode(parkIndexCode);
|
||||||
@ -2245,28 +2213,6 @@ public class HikvisionCall {
|
|||||||
return parkReservation;
|
return parkReservation;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取项目名称的停车场的parkIndexCode,没有一样名字的就取第一个停车场
|
|
||||||
*
|
|
||||||
* @param project
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public String getProjectParkCode(Project project) throws Exception {
|
|
||||||
JSONArray parkList = getParkList(project);
|
|
||||||
if (parkList != null && parkList.size() > 0) {
|
|
||||||
for (int i = 0; i < parkList.size(); i++) {
|
|
||||||
JSONObject jo = parkList.getJSONObject(i);
|
|
||||||
if (Objects.equals(jo.getString("parkName"), project.getProjectName())) {
|
|
||||||
return jo.getString("parkIndexCode");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//没有一样名字的就取第一个停车场
|
|
||||||
return parkList.getJSONObject(0).getString("parkIndexCode");
|
|
||||||
} else {
|
|
||||||
throw new OpenPromptException("未查询到停车场信息");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String saveToLocal(String url) {
|
public String saveToLocal(String url) {
|
||||||
return UrlUtil.saveToLocal(url, basePath, IdUtil.simpleUUID() + ".png");
|
return UrlUtil.saveToLocal(url, basePath, IdUtil.simpleUUID() + ".png");
|
||||||
|
|||||||
@ -69,4 +69,9 @@ public class WorkerAccessRecord implements Serializable {
|
|||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private java.util.Date updateTime;
|
private java.util.Date updateTime;
|
||||||
|
@ApiModelProperty(value = "准入状态:1允许入场2拒绝入场")
|
||||||
|
private Integer accessStatus;
|
||||||
|
@ApiModelProperty(value = "扫码人员的账号名")
|
||||||
|
private java.lang.String scanQrCoder;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -139,7 +139,7 @@ public class XzHikvisionCompareDataController {
|
|||||||
@ApiImplicitParam(name = "type", value = "1人员2车辆", paramType = "body", required = true, dataType = "Integer"),
|
@ApiImplicitParam(name = "type", value = "1人员2车辆", paramType = "body", required = true, dataType = "Integer"),
|
||||||
})
|
})
|
||||||
@PostMapping(value = "/manualCompareData")
|
@PostMapping(value = "/manualCompareData")
|
||||||
public Result manualCompareData(@ApiIgnore @RequestBody Map<String ,Object> param) {
|
public Result manualCompareData(@ApiIgnore @RequestBody Map<String, Object> param) throws Exception {
|
||||||
xzHikvisionCompareDataService.manualCompareData(param);
|
xzHikvisionCompareDataService.manualCompareData(param);
|
||||||
return Result.ok("已在后台校验中");
|
return Result.ok("已在后台校验中");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,7 +34,7 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
|
|||||||
|
|
||||||
void compareRetryFail();
|
void compareRetryFail();
|
||||||
|
|
||||||
void compareRetrySuc();
|
void compareRetrySuccess();
|
||||||
|
|
||||||
void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId);
|
void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId);
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
|
|||||||
|
|
||||||
JSONObject checkCompareDataException(Map<String, Object> param);
|
JSONObject checkCompareDataException(Map<String, Object> param);
|
||||||
|
|
||||||
void manualCompareData(Map<String, Object> param);
|
void manualCompareData(Map<String, Object> param) throws Exception;
|
||||||
|
|
||||||
void deleteAllCompareData(Project project);
|
void deleteAllCompareData(Project project);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import com.zhgd.xmgl.async.AsyncHikvision;
|
|||||||
import com.zhgd.xmgl.async.AsyncXzHikvisionCompareData;
|
import com.zhgd.xmgl.async.AsyncXzHikvisionCompareData;
|
||||||
import com.zhgd.xmgl.call.HikvisionCall;
|
import com.zhgd.xmgl.call.HikvisionCall;
|
||||||
import com.zhgd.xmgl.constant.Cts;
|
import com.zhgd.xmgl.constant.Cts;
|
||||||
|
import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl;
|
||||||
import com.zhgd.xmgl.modules.car.entity.CarInfo;
|
import com.zhgd.xmgl.modules.car.entity.CarInfo;
|
||||||
import com.zhgd.xmgl.modules.car.service.ICarInfoService;
|
import com.zhgd.xmgl.modules.car.service.ICarInfoService;
|
||||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||||
@ -34,6 +35,7 @@ import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
|
|||||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionCompareData;
|
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionCompareData;
|
||||||
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionCompareDataMapper;
|
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionCompareDataMapper;
|
||||||
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionCompareDataService;
|
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionCompareDataService;
|
||||||
|
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||||
import com.zhgd.xmgl.task.HikvisionTask;
|
import com.zhgd.xmgl.task.HikvisionTask;
|
||||||
import com.zhgd.xmgl.util.*;
|
import com.zhgd.xmgl.util.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -85,6 +87,9 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
|||||||
private AsyncHikvision asyncHikvision;
|
private AsyncHikvision asyncHikvision;
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private NoticeServiceImpl noticeService;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
private HikvisionCall hikvisionCall;
|
private HikvisionCall hikvisionCall;
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -320,23 +325,32 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void syncCar(XzHikvisionCompareData data) throws Exception {
|
private void syncCar(XzHikvisionCompareData data) throws Exception {
|
||||||
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(data.getProjectSn());
|
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(data.getProjectSn());
|
||||||
CarInfo carInfo = carInfoService.queryById(data.getUniqueId());
|
CarInfo carInfo = carInfoService.queryById(data.getUniqueId());
|
||||||
|
Boolean existIsc = null;
|
||||||
if (data.getExistIsc() == 1 && data.getExistMyPlatform() == 0) {
|
if (data.getExistIsc() == 1 && data.getExistMyPlatform() == 0) {
|
||||||
//查询id是否存在平台,存在就更新,不存在就删除
|
//查询id是否存在平台,存在就更新,不存在就删除
|
||||||
if (carInfo != null) {
|
if (carInfo != null) {
|
||||||
//同步海康
|
//同步海康
|
||||||
asyncHikvision.editCarInfoForHikvision(carInfo, carInfo);
|
asyncHikvision.editCarInfoForHikvision(carInfo, carInfo);
|
||||||
|
existIsc = true;
|
||||||
} else {
|
} else {
|
||||||
carInfo = new CarInfo();
|
carInfo = new CarInfo();
|
||||||
carInfo.setCarNumber(data.getCarNumber());
|
carInfo.setCarNumber(data.getCarNumber());
|
||||||
|
carInfo.setProjectSn(data.getProjectSn());
|
||||||
asyncHikvision.deleteCarInfoForHikvision(carInfo, false);
|
asyncHikvision.deleteCarInfoForHikvision(carInfo, false);
|
||||||
|
existIsc = false;
|
||||||
}
|
}
|
||||||
|
compareRetrySuccess(projectInfoBySn, carInfo, existIsc);
|
||||||
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
|
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
|
||||||
//查询id是否存在isc,存在就更新,不存在就新增
|
//查询id是否存在isc,存在就更新,不存在就新增
|
||||||
JSONObject rtJo = HikvisionUtil.getCarInfoListByCarNumber(data.getCarNumber(), projectInfoBySn, 1);
|
JSONObject rtJo;
|
||||||
|
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
|
||||||
|
rtJo = HikvisionUtil.getFixCarListByCarNumber(data.getCarNumber(), projectInfoBySn, 1);
|
||||||
|
} else {
|
||||||
|
rtJo = HikvisionUtil.getReservationCarInfoList(carInfo.getCarNumber(), projectInfoBySn);
|
||||||
|
}
|
||||||
if (HikvisionUtil.isSuccess(rtJo)) {
|
if (HikvisionUtil.isSuccess(rtJo)) {
|
||||||
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
||||||
if (CollUtil.isEmpty(list)) {
|
if (CollUtil.isEmpty(list)) {
|
||||||
@ -346,12 +360,58 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
|||||||
//更新
|
//更新
|
||||||
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
|
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
|
||||||
}
|
}
|
||||||
|
existIsc = true;
|
||||||
} else {
|
} else {
|
||||||
log.error("校验数据同步海康失败,失败原因:{}", rtJo.toJSONString());
|
log.error("校验数据同步海康失败,失败原因:{}", rtJo.toJSONString());
|
||||||
|
existIsc = false;
|
||||||
}
|
}
|
||||||
|
compareRetrySuccess(projectInfoBySn, carInfo, existIsc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param projectInfoBySn
|
||||||
|
* @param carInfo
|
||||||
|
* @param existSuc isc存在车辆就成功,反之
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
private void compareRetrySuccess(ProjectInfoExtVo projectInfoBySn, CarInfo carInfo, boolean existSuc) throws Exception {
|
||||||
|
//验证执行是否成功
|
||||||
|
JSONArray listJa;
|
||||||
|
if (carInfo.getCarModuleType() == null) {
|
||||||
|
JSONObject jo = HikvisionUtil.getFixCarListByCarNumber(carInfo.getCarNumber(), projectInfoBySn, 1);
|
||||||
|
JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo);
|
||||||
|
listJa = dataJo.getJSONArray("list");
|
||||||
|
listJa.addAll(HikvisionUtil.getReservationCarInfoDataList(carInfo.getCarNumber(), projectInfoBySn));
|
||||||
|
} else if (Objects.equals(carInfo.getCarModuleType(), 1)) {
|
||||||
|
JSONObject jo = HikvisionUtil.getFixCarListByCarNumber(carInfo.getCarNumber(), projectInfoBySn, 1);
|
||||||
|
JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo);
|
||||||
|
listJa = dataJo.getJSONArray("list");
|
||||||
|
} else {
|
||||||
|
listJa = HikvisionUtil.getReservationCarInfoDataList(carInfo.getCarNumber(), projectInfoBySn);
|
||||||
|
}
|
||||||
|
if (existSuc) {
|
||||||
|
setExistSuc(listJa);
|
||||||
|
} else {
|
||||||
|
setEmptySuc(listJa);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setExistSuc(JSONArray listJa) {
|
||||||
|
if (CollUtil.isNotEmpty(listJa)) {
|
||||||
|
this.compareRetrySuccess();
|
||||||
|
} else {
|
||||||
|
this.compareRetryFail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setEmptySuc(JSONArray listJa) {
|
||||||
|
if (CollUtil.isEmpty(listJa)) {
|
||||||
|
this.compareRetrySuccess();
|
||||||
|
} else {
|
||||||
|
this.compareRetryFail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据校验重试失败
|
* 数据校验重试失败
|
||||||
@ -369,7 +429,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
|||||||
* 数据校验重试成功
|
* 数据校验重试成功
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void compareRetrySuc() {
|
public void compareRetrySuccess() {
|
||||||
XzHikvisionCompareData data = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY, XzHikvisionCompareData.class);
|
XzHikvisionCompareData data = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY, XzHikvisionCompareData.class);
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
xzHikvisionCompareDataMapper.deleteById(data.getId());
|
xzHikvisionCompareDataMapper.deleteById(data.getId());
|
||||||
@ -485,18 +545,14 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void manualCompareData(Map<String, Object> param) {
|
public void manualCompareData(Map<String, Object> param) throws Exception {
|
||||||
String projectSn = MapUtils.getString(param, Cts.PROJECT_SN);
|
String projectSn = MapUtils.getString(param, Cts.PROJECT_SN);
|
||||||
try {
|
|
||||||
xzHikvisionCompareDataService.manualCompareDataAsync(param, projectSn);
|
xzHikvisionCompareDataService.manualCompareDataAsync(param, projectSn);
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("", e);
|
|
||||||
addExceptionShowIfNull(projectSn);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Async("syncXzHikvisionCompareData")
|
@Async("syncXzHikvisionCompareData")
|
||||||
public void manualCompareDataAsync(Map<String, Object> param, String projectSn) throws Exception {
|
public void manualCompareDataAsync(Map<String, Object> param, String projectSn) throws Exception {
|
||||||
|
try {
|
||||||
Integer type = MapUtils.getInteger(param, "type");
|
Integer type = MapUtils.getInteger(param, "type");
|
||||||
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
|
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
|
||||||
if (Objects.equals(type, 1)) {
|
if (Objects.equals(type, 1)) {
|
||||||
@ -514,6 +570,13 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
|||||||
);
|
);
|
||||||
hikvisionTask.compareHikvisionForCar(projectInfoBySn);
|
hikvisionTask.compareHikvisionForCar(projectInfoBySn);
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("", e);
|
||||||
|
addExceptionShowIfNull(projectSn);
|
||||||
|
} finally {
|
||||||
|
// 手动执行比对数据完成
|
||||||
|
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), "手动校验数据完成", "手动校验数据完成", "1");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -276,7 +276,7 @@ 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 = hikvisionCall.getReservationCarInfoList(null, project);
|
JSONArray listJa = HikvisionUtil.getReservationCarInfoDataList(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)
|
||||||
|
|||||||
@ -9,6 +9,8 @@ import com.hikvision.artemis.sdk.Response;
|
|||||||
import com.hikvision.artemis.sdk.constant.Constants;
|
import com.hikvision.artemis.sdk.constant.Constants;
|
||||||
import com.hikvision.artemis.sdk.enums.Method;
|
import com.hikvision.artemis.sdk.enums.Method;
|
||||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
|
import com.zhgd.jeecg.common.execption.OpenPromptException;
|
||||||
|
import com.zhgd.xmgl.base.HikvisionReservationCarInfo;
|
||||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@ -169,10 +171,31 @@ public class HikvisionUtil {
|
|||||||
return doPostRtObj(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
return doPostRtObj(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询车辆列表v2-固定车辆
|
||||||
|
*
|
||||||
|
* @param carNumber
|
||||||
|
* @param project
|
||||||
|
* @param pageNo
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static JSONObject getFixCarListByCarNumber(String carNumber, Project project, Integer pageNo) throws Exception {
|
||||||
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
|
final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList";
|
||||||
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
//模糊查询
|
||||||
|
jo.put("plateNo", carNumber);
|
||||||
|
jo.put("pageNo", pageNo);
|
||||||
|
jo.put("pageSize", 1000);
|
||||||
|
return doPostRtObj(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询车辆分类
|
* 查询车辆分类
|
||||||
*/
|
*/
|
||||||
public static JSONArray queryCategory(Project project) throws Exception {
|
public static JSONArray getCategoryList(Project project) throws Exception {
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
final String path = ARTEMIS_PATH + "/api/pms/v1/car/category/search";
|
final String path = ARTEMIS_PATH + "/api/pms/v1/car/category/search";
|
||||||
String host = "https://" + project.getArtemisConfigHost();
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
@ -248,25 +271,84 @@ public class HikvisionUtil {
|
|||||||
return doPostRtObj(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
return doPostRtObj(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取停车库列表
|
||||||
|
*
|
||||||
|
* @param project
|
||||||
|
*/
|
||||||
|
public static JSONArray getParkList(Project project) throws Exception {
|
||||||
|
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
|
final String path = ARTEMIS_PATH + "/api/resource/v1/park/parkList";
|
||||||
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
String rs = doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
|
return getJSONArrayData(rs);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询车辆列表v2
|
* 获取项目名称的停车场的parkIndexCode,没有一样名字的就取第一个停车场
|
||||||
|
*
|
||||||
|
* @param project
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getProjectParkCode(Project project) throws Exception {
|
||||||
|
JSONArray parkList = getParkList(project);
|
||||||
|
if (parkList != null && parkList.size() > 0) {
|
||||||
|
for (int i = 0; i < parkList.size(); i++) {
|
||||||
|
JSONObject jo = parkList.getJSONObject(i);
|
||||||
|
if (Objects.equals(jo.getString("parkName"), project.getProjectName())) {
|
||||||
|
return jo.getString("parkIndexCode");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//没有一样名字的就取第一个停车场
|
||||||
|
return parkList.getJSONObject(0).getString("parkIndexCode");
|
||||||
|
} else {
|
||||||
|
throw new OpenPromptException("未查询到停车场信息");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询预约记录v2
|
||||||
*
|
*
|
||||||
* @param carNumber
|
* @param carNumber
|
||||||
* @param project
|
* @param project
|
||||||
* @param pageNo
|
|
||||||
* @return
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
public static JSONObject getCarInfoListByCarNumber(String carNumber, Project project, Integer pageNo) throws Exception {
|
public static JSONObject getReservationCarInfoList(String carNumber, Project project) throws Exception {
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList";
|
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(carNumber, project);
|
||||||
//模糊查询
|
return doPostRtObj(host, path, JSON.toJSONString(info), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
jo.put("plateNo", carNumber);
|
}
|
||||||
jo.put("pageNo", pageNo);
|
|
||||||
jo.put("pageSize", 1000);
|
/**
|
||||||
return doPostRtObj(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
* 查询预约记录v2
|
||||||
|
*
|
||||||
|
* @param carNumber
|
||||||
|
* @param project
|
||||||
|
*/
|
||||||
|
public static JSONArray getReservationCarInfoDataList(String carNumber, Project project) throws Exception {
|
||||||
|
JSONObject jo = getReservationCarInfoList(carNumber, project);
|
||||||
|
return getJSONObjectData(jo).getJSONArray("list");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static HikvisionReservationCarInfo getHikvisionReservationCarInfoObj(String carNumber, Project project) throws Exception {
|
||||||
|
String projectParkCode = HikvisionUtil.getProjectParkCode(project);
|
||||||
|
HikvisionReservationCarInfo hikvisionReservationCarInfo = new HikvisionReservationCarInfo();
|
||||||
|
hikvisionReservationCarInfo.setParkSyscode(projectParkCode);
|
||||||
|
hikvisionReservationCarInfo.setPlateNo(carNumber);
|
||||||
|
hikvisionReservationCarInfo.setResvState(0L);
|
||||||
|
//hikvisionReservationCarInfo.setResvWay();
|
||||||
|
//hikvisionReservationCarInfo.setAllowTimes();
|
||||||
|
//hikvisionReservationCarInfo.setIsCharge();
|
||||||
|
//hikvisionReservationCarInfo.setStartTime();
|
||||||
|
//hikvisionReservationCarInfo.setEndTime();
|
||||||
|
hikvisionReservationCarInfo.setPageNo(1L);
|
||||||
|
hikvisionReservationCarInfo.setPageSize(999L);
|
||||||
|
return hikvisionReservationCarInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user