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(e.getLineNumber());
|
||||
sb.append(")");
|
||||
sb.append(" \r\n ");
|
||||
sb.append(" > ");
|
||||
}
|
||||
}
|
||||
|
||||
@ -650,7 +650,7 @@ public class HikvisionCall {
|
||||
for (Project project : projects) {
|
||||
String projectParkCode = null;
|
||||
try {
|
||||
projectParkCode = getProjectParkCode(project);
|
||||
projectParkCode = HikvisionUtil.getProjectParkCode(project);
|
||||
} catch (Exception e) {
|
||||
log.error("err:", e);
|
||||
return;
|
||||
@ -974,8 +974,7 @@ public class HikvisionCall {
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
String body = getWorkerJson(workerInfo);
|
||||
String rs = HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
return rs;
|
||||
return HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1099,14 +1098,30 @@ public class HikvisionCall {
|
||||
String msg = "";
|
||||
String type = "25";
|
||||
if (success) {
|
||||
msg = "同步成功,组织名称:" + orgName;
|
||||
title += "成功";
|
||||
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;
|
||||
title += "成功";
|
||||
}
|
||||
} else {
|
||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:" + rs;
|
||||
title += "失败";
|
||||
success = false;
|
||||
}
|
||||
if (success) {
|
||||
xzHikvisionCompareDataService.compareRetrySuc();
|
||||
xzHikvisionCompareDataService.compareRetrySuccess();
|
||||
} else {
|
||||
xzHikvisionCompareDataService.compareRetryFail();
|
||||
}
|
||||
@ -1172,8 +1187,10 @@ public class HikvisionCall {
|
||||
}
|
||||
if (success) {
|
||||
updateSuccessStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
|
||||
xzHikvisionCompareDataService.compareRetrySuccess();
|
||||
} else {
|
||||
updateFailStatusByNow(workerInfo.getProjectSn(), workerInfo.getId(), type, operate, AsyncHikvision.getSyncTime(), null);
|
||||
xzHikvisionCompareDataService.compareRetryFail();
|
||||
}
|
||||
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
|
||||
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, noticeType);
|
||||
@ -1577,7 +1594,7 @@ public class HikvisionCall {
|
||||
@NotNull
|
||||
private String getCategoryCode(Project project) throws Exception {
|
||||
//绑定固定的群组
|
||||
JSONArray ja = HikvisionUtil.queryCategory(project);
|
||||
JSONArray ja = HikvisionUtil.getCategoryList(project);
|
||||
return getFixedCarGroupName(ja);
|
||||
}
|
||||
|
||||
@ -1804,7 +1821,7 @@ public class HikvisionCall {
|
||||
JSONObject o1 = null;
|
||||
int pageNo = 0;
|
||||
do {
|
||||
JSONObject jo = HikvisionUtil.getCarInfoListByCarNumber(carNumber, project, ++pageNo);
|
||||
JSONObject jo = HikvisionUtil.getFixCarListByCarNumber(carNumber, project, ++pageNo);
|
||||
if (HikvisionUtil.isSuccess(jo)) {
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(jo);
|
||||
total = dataJo.getInteger("total");
|
||||
@ -1846,7 +1863,7 @@ public class HikvisionCall {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/parkingSpace/reservations/deletion";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONArray reservationCarInfoList = getReservationCarInfoList(carInfo.getCarNumber(), project);
|
||||
JSONArray reservationCarInfoList = HikvisionUtil.getReservationCarInfoDataList(carInfo.getCarNumber(), project);
|
||||
if (CollUtil.isNotEmpty(reservationCarInfoList)) {
|
||||
for (int i = 0; i < reservationCarInfoList.size(); 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取停车库列表
|
||||
*
|
||||
* @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) {
|
||||
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
||||
hikvisionOrganization.setClientId(null);
|
||||
@ -2213,7 +2181,7 @@ public class HikvisionCall {
|
||||
*/
|
||||
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()));
|
||||
}
|
||||
|
||||
@ -2227,7 +2195,7 @@ public class HikvisionCall {
|
||||
}
|
||||
|
||||
private ParkReservation getParkReservation(Project project, CarInfo carInfo) throws Exception {
|
||||
String parkIndexCode = getProjectParkCode(project);
|
||||
String parkIndexCode = HikvisionUtil.getProjectParkCode(project);
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(carInfo.getDriverWorkerId());
|
||||
ParkReservation parkReservation = new ParkReservation();
|
||||
parkReservation.setParkSyscode(parkIndexCode);
|
||||
@ -2245,28 +2213,6 @@ public class HikvisionCall {
|
||||
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) {
|
||||
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")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
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"),
|
||||
})
|
||||
@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);
|
||||
return Result.ok("已在后台校验中");
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
|
||||
|
||||
void compareRetryFail();
|
||||
|
||||
void compareRetrySuc();
|
||||
void compareRetrySuccess();
|
||||
|
||||
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);
|
||||
|
||||
void manualCompareData(Map<String, Object> param);
|
||||
void manualCompareData(Map<String, Object> param) throws Exception;
|
||||
|
||||
void deleteAllCompareData(Project project);
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@ import com.zhgd.xmgl.async.AsyncHikvision;
|
||||
import com.zhgd.xmgl.async.AsyncXzHikvisionCompareData;
|
||||
import com.zhgd.xmgl.call.HikvisionCall;
|
||||
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.service.ICarInfoService;
|
||||
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.mapper.XzHikvisionCompareDataMapper;
|
||||
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.util.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -85,6 +87,9 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
private AsyncHikvision asyncHikvision;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private NoticeServiceImpl noticeService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private HikvisionCall hikvisionCall;
|
||||
@Lazy
|
||||
@Autowired
|
||||
@ -320,23 +325,32 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void syncCar(XzHikvisionCompareData data) throws Exception {
|
||||
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(data.getProjectSn());
|
||||
CarInfo carInfo = carInfoService.queryById(data.getUniqueId());
|
||||
Boolean existIsc = null;
|
||||
if (data.getExistIsc() == 1 && data.getExistMyPlatform() == 0) {
|
||||
//查询id是否存在平台,存在就更新,不存在就删除
|
||||
if (carInfo != null) {
|
||||
//同步海康
|
||||
asyncHikvision.editCarInfoForHikvision(carInfo, carInfo);
|
||||
existIsc = true;
|
||||
} else {
|
||||
carInfo = new CarInfo();
|
||||
carInfo.setCarNumber(data.getCarNumber());
|
||||
carInfo.setProjectSn(data.getProjectSn());
|
||||
asyncHikvision.deleteCarInfoForHikvision(carInfo, false);
|
||||
existIsc = false;
|
||||
}
|
||||
compareRetrySuccess(projectInfoBySn, carInfo, existIsc);
|
||||
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
|
||||
//查询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)) {
|
||||
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
@ -346,12 +360,58 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
//更新
|
||||
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, carInfo);
|
||||
}
|
||||
existIsc = true;
|
||||
} else {
|
||||
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
|
||||
public void compareRetrySuc() {
|
||||
public void compareRetrySuccess() {
|
||||
XzHikvisionCompareData data = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY, XzHikvisionCompareData.class);
|
||||
if (data != null) {
|
||||
xzHikvisionCompareDataMapper.deleteById(data.getId());
|
||||
@ -485,34 +545,37 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
}
|
||||
|
||||
@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);
|
||||
try {
|
||||
xzHikvisionCompareDataService.manualCompareDataAsync(param, projectSn);
|
||||
} catch (Exception e) {
|
||||
log.error("", e);
|
||||
addExceptionShowIfNull(projectSn);
|
||||
}
|
||||
xzHikvisionCompareDataService.manualCompareDataAsync(param, projectSn);
|
||||
}
|
||||
|
||||
@Async("syncXzHikvisionCompareData")
|
||||
public void manualCompareDataAsync(Map<String, Object> param, String projectSn) throws Exception {
|
||||
Integer type = MapUtils.getInteger(param, "type");
|
||||
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
|
||||
if (Objects.equals(type, 1)) {
|
||||
//人员
|
||||
xzHikvisionCompareDataMapper.delete(new LambdaQueryWrapper<XzHikvisionCompareData>()
|
||||
.eq(XzHikvisionCompareData::getProjectSn, projectSn)
|
||||
.ne(XzHikvisionCompareData::getType, 4)
|
||||
);
|
||||
hikvisionTask.compareHikvisionForEnterpriseEtc(projectInfoBySn);
|
||||
} else if (Objects.equals(type, 2)) {
|
||||
//车辆
|
||||
xzHikvisionCompareDataMapper.delete(new LambdaQueryWrapper<XzHikvisionCompareData>()
|
||||
.eq(XzHikvisionCompareData::getProjectSn, projectSn)
|
||||
.eq(XzHikvisionCompareData::getType, 4)
|
||||
);
|
||||
hikvisionTask.compareHikvisionForCar(projectInfoBySn);
|
||||
try {
|
||||
Integer type = MapUtils.getInteger(param, "type");
|
||||
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(projectSn);
|
||||
if (Objects.equals(type, 1)) {
|
||||
//人员
|
||||
xzHikvisionCompareDataMapper.delete(new LambdaQueryWrapper<XzHikvisionCompareData>()
|
||||
.eq(XzHikvisionCompareData::getProjectSn, projectSn)
|
||||
.ne(XzHikvisionCompareData::getType, 4)
|
||||
);
|
||||
hikvisionTask.compareHikvisionForEnterpriseEtc(projectInfoBySn);
|
||||
} else if (Objects.equals(type, 2)) {
|
||||
//车辆
|
||||
xzHikvisionCompareDataMapper.delete(new LambdaQueryWrapper<XzHikvisionCompareData>()
|
||||
.eq(XzHikvisionCompareData::getProjectSn, projectSn)
|
||||
.eq(XzHikvisionCompareData::getType, 4)
|
||||
);
|
||||
hikvisionTask.compareHikvisionForCar(projectInfoBySn);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("", e);
|
||||
addExceptionShowIfNull(projectSn);
|
||||
} finally {
|
||||
// 手动执行比对数据完成
|
||||
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), "手动校验数据完成", "手动校验数据完成", "1");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -276,7 +276,7 @@ public class HikvisionTask {
|
||||
public void compareHikvisionForReservationCar(Project project) throws Exception {
|
||||
JSONObject param = new JSONObject();
|
||||
HikvisionUtil.addPageParamIfAbsent(param);
|
||||
JSONArray listJa = hikvisionCall.getReservationCarInfoList(null, project);
|
||||
JSONArray listJa = HikvisionUtil.getReservationCarInfoDataList(null, project);
|
||||
List<CarInfo> carInfoList = carInfoService.selectCarList(new MapBuilder<String, Object>()
|
||||
.put(Cts.PROJECT_SN, project.getProjectSn())
|
||||
.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.enums.Method;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -169,10 +171,31 @@ public class HikvisionUtil {
|
||||
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 path = ARTEMIS_PATH + "/api/pms/v1/car/category/search";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
@ -248,25 +271,84 @@ public class HikvisionUtil {
|
||||
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 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 path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v2/reserveRecord/page";
|
||||
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());
|
||||
HikvisionReservationCarInfo info = getHikvisionReservationCarInfoObj(carNumber, project);
|
||||
return doPostRtObj(host, path, JSON.toJSONString(info), 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