车辆修改
This commit is contained in:
parent
bd5ec224ae
commit
3d0f0102b7
@ -1,11 +1,13 @@
|
||||
package com.zhgd.xmgl.async;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zhgd.jeecg.common.execption.OpenPromptException;
|
||||
import com.zhgd.jeecg.common.util.pass.HttpUtils;
|
||||
import com.zhgd.xmgl.call.HikvisionCall;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
|
||||
import com.zhgd.xmgl.modules.car.entity.CarInfo;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
|
||||
import com.zhgd.xmgl.modules.video.mapper.ProjectVideoHkVqdMapper;
|
||||
import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper;
|
||||
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo;
|
||||
@ -38,6 +40,9 @@ public class AsyncHikvision {
|
||||
HikvisionCall hikvisionCall;
|
||||
@Lazy
|
||||
@Autowired
|
||||
ProjectMapper projectMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
VideoItemMapper videoItemMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
@ -140,6 +145,7 @@ public class AsyncHikvision {
|
||||
} else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) {
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(1).setWhoId(carInfo.getId()).setCreateDate(now));
|
||||
}
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(carInfo.getIsBlack() == 1 ? 1 : 3).setWhoId(carInfo.getId()).setCreateDate(now));
|
||||
asyncHikvision.addCarInfoForHikvisionAsyc(carInfo, now);
|
||||
}
|
||||
|
||||
@ -154,6 +160,23 @@ public class AsyncHikvision {
|
||||
}
|
||||
}
|
||||
|
||||
public void handleAlarmCarForHikvision(CarInfo carInfo) {
|
||||
Date now = new Date();
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(carInfo.getIsBlack() == 1 ? 1 : 3).setWhoId(carInfo.getId()).setCreateDate(now));
|
||||
asyncHikvision.handleAlarmCarForHikvision(carInfo, now);
|
||||
}
|
||||
|
||||
@Async("carInfoExecutor")
|
||||
public void handleAlarmCarForHikvision(CarInfo carInfo, Date now) {
|
||||
ThreadLocalUtil.addInKey("now", now);
|
||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
hikvisionCall.handleAlarmCar(project, carInfo);
|
||||
}
|
||||
|
||||
|
||||
private void sendNoticeForCar(CarInfo carInfo, Exception e, String action) {
|
||||
String title = action + "车辆到海康isc失败";
|
||||
String type = "24";
|
||||
@ -179,6 +202,7 @@ public class AsyncHikvision {
|
||||
} else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) {
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(1).setWhoId(carInfo.getId()).setCreateDate(now));
|
||||
}
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(carInfo.getIsBlack() == 1 ? 1 : 3).setWhoId(carInfo.getId()).setCreateDate(now));
|
||||
asyncHikvision.editCarInfoForHikvisionAsync(carInfo, old, now);
|
||||
}
|
||||
|
||||
@ -198,6 +222,7 @@ public class AsyncHikvision {
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(4).setOperate(3).setWhoId(carInfo.getId()).setCreateDate(now));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(5).setOperate(3).setWhoId(carInfo.getId()).setCreateDate(now));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(3).setWhoId(carInfo.getId()).setCreateDate(now));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(3).setWhoId(carInfo.getId()).setCreateDate(now));
|
||||
asyncHikvision.deleteCarInfoForHikvisionAsync(carInfo, now);
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.zhgd.xmgl.call;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@ -27,6 +28,7 @@ import com.zhgd.xmgl.modules.car.mapper.CarCameraMapper;
|
||||
import com.zhgd.xmgl.modules.car.mapper.CarInfoMapper;
|
||||
import com.zhgd.xmgl.modules.car.mapper.CarPassRecordMapper;
|
||||
import com.zhgd.xmgl.modules.car.mapper.CarTypeMapper;
|
||||
import com.zhgd.xmgl.modules.car.service.impl.CarInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.car.service.impl.CarPassRecordServiceImpl;
|
||||
import com.zhgd.xmgl.modules.frontierprotectionnonet.entity.FrontierProtectionNoNetData;
|
||||
import com.zhgd.xmgl.modules.frontierprotectionnonet.entity.FrontierProtectionNoNetDev;
|
||||
@ -67,7 +69,10 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import java.util.*;
|
||||
@ -89,6 +94,9 @@ public class HikvisionCall {
|
||||
HikvisionCall hikvisionCall;
|
||||
@Lazy
|
||||
@Autowired
|
||||
CarInfoServiceImpl carInfoService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private AiAnalyseHardWareAlarmRecordMapper aiAnalyseHardWareAlarmRecordMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
@ -975,7 +983,11 @@ public class HikvisionCall {
|
||||
|
||||
private void sendNoticeForCarInfo(String title, String rs, CarInfo carInfo, Integer type, Integer operate) {
|
||||
boolean callSuc = HikvisionUtil.isSuccess(rs);
|
||||
String msg = "";
|
||||
sendNoticeForCarInfo(title, rs, carInfo, type, operate, callSuc);
|
||||
}
|
||||
|
||||
public void sendNoticeForCarInfo(String title, String rs, CarInfo carInfo, Integer type, Integer operate, boolean callSuc) {
|
||||
String msg;
|
||||
boolean success = false;
|
||||
if (callSuc) {
|
||||
msg = "同步成功,车牌号码:" + carInfo.getCarNumber();
|
||||
@ -998,6 +1010,9 @@ public class HikvisionCall {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
|
||||
title += "失败";
|
||||
}
|
||||
} else if (Objects.equals(code, "0x02e33400")) {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:车辆属于黑名单内不能下发预约车";
|
||||
title += "失败";
|
||||
} else {
|
||||
msg = "同步失败,车牌号码:" + carInfo.getCarNumber() + "。失败原因:下发异常";
|
||||
title += "失败";
|
||||
@ -1114,10 +1129,18 @@ public class HikvisionCall {
|
||||
updateTotalStatus(projectSn, whoId, type, now);
|
||||
}
|
||||
|
||||
public void updateFailStatusByNow(String projectSn, Long whoId, Integer type, Date now, String deviceSn) {
|
||||
updateFailStatusByNow(projectSn, whoId, type, null, now, deviceSn);
|
||||
}
|
||||
|
||||
public void updateFailStatusByNow(String projectSn, Long whoId, Integer type, Integer operate, Date now, String deviceSn) {
|
||||
updateStatusByNow(projectSn, whoId, type, operate, now, deviceSn, false);
|
||||
}
|
||||
|
||||
public void updateSuccessStatusByNow(String projectSn, Long whoId, Integer type, Date now, String deviceSn) {
|
||||
updateSuccessStatusByNow(projectSn, whoId, type, null, now, deviceSn);
|
||||
}
|
||||
|
||||
public void updateSuccessStatusByNow(String projectSn, Long whoId, Integer type, Integer operate, Date now, String deviceSn) {
|
||||
updateStatusByNow(projectSn, whoId, type, operate, now, deviceSn, true);
|
||||
}
|
||||
@ -1129,10 +1152,12 @@ public class HikvisionCall {
|
||||
.eq(XzHikvisionSync::getType, type)
|
||||
.eq(XzHikvisionSync::getCreateDate, now)
|
||||
.eq(StringUtils.isNotBlank(deviceSn), XzHikvisionSync::getDeviceSn, deviceSn);
|
||||
if (operate == 3) {
|
||||
queryWrapper.eq(XzHikvisionSync::getOperate, operate);
|
||||
} else {
|
||||
queryWrapper.ne(XzHikvisionSync::getOperate, 3);
|
||||
if (operate != null) {
|
||||
if (operate == 3) {
|
||||
queryWrapper.eq(XzHikvisionSync::getOperate, operate);
|
||||
} else {
|
||||
queryWrapper.ne(XzHikvisionSync::getOperate, 3);
|
||||
}
|
||||
}
|
||||
XzHikvisionSync xzHikvisionSync = xzHikvisionSyncMapper.selectOne(queryWrapper);
|
||||
if (xzHikvisionSync == null) {
|
||||
@ -1168,7 +1193,7 @@ public class HikvisionCall {
|
||||
} else {
|
||||
workerInfoMapper.update(null, new LambdaUpdateWrapper<WorkerInfo>()
|
||||
.eq(WorkerInfo::getId, whoId)
|
||||
.set(WorkerInfo::getSendSuccessStatus, 1)
|
||||
.set(WorkerInfo::getSendSuccessStatus, sendSuccessStatus)
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1340,6 +1365,11 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
if (carInfo.getIsBlack() == 0) {
|
||||
//车辆布防
|
||||
handleAlarmCar(project, carInfo);
|
||||
}
|
||||
|
||||
cancelCharge(project, carInfo);
|
||||
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
|
||||
//删除预约车辆
|
||||
@ -1351,6 +1381,116 @@ public class HikvisionCall {
|
||||
deleteFixedCarForHikvision(carInfo, project);
|
||||
saveReservationCar(project, carInfo);
|
||||
}
|
||||
|
||||
if (carInfo.getIsBlack() == 1) {
|
||||
//车辆布防
|
||||
handleAlarmCar(project, carInfo);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 车辆布防
|
||||
*
|
||||
* @param project
|
||||
* @param carInfo
|
||||
* @throws Exception
|
||||
*/
|
||||
public void handleAlarmCar(Project project, CarInfo carInfo) {
|
||||
try {
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("searchKey", carInfo.getCarNumber());
|
||||
jo.put("pageNo", 1);
|
||||
jo.put("pageSize", 1);
|
||||
JSONObject joRs = queryAlarmCarPage(project, jo);
|
||||
if (HikvisionUtil.isSuccess(joRs)) {
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(joRs);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
if (carInfo.getIsBlack() == 1) {
|
||||
JSONObject addJo = new JSONObject();
|
||||
CarInfo c = carInfoService.queryById(String.valueOf(carInfo.getId()));
|
||||
addJo.put("driver", c.getDriverWorkerName());
|
||||
addJo.put("driverPhone", c.getDriverTelephone());
|
||||
addJo.put("plateNo", carInfo.getCarNumber());
|
||||
JSONObject rs = addAlarmCarForHttp(project, addJo);
|
||||
sendNoticeForCarInfo("车辆布防(黑名单)到海康isc", rs.toJSONString(), carInfo, 7, null);
|
||||
} else {
|
||||
sendNoticeForCarInfo("车辆取消布防(取消黑名单)到海康isc", null, carInfo, 7, null, true);
|
||||
}
|
||||
} else {
|
||||
if (carInfo.getIsBlack() == 1) {
|
||||
sendNoticeForCarInfo("车辆布防(黑名单)到海康isc", null, carInfo, 7, null, true);
|
||||
} else {
|
||||
JSONObject joOne = listJa.getJSONObject(0);
|
||||
String alarmSyscode = joOne.getString("alarmSyscode");
|
||||
JSONObject deleteJo = new JSONObject();
|
||||
deleteJo.put("alarmSyscodes", alarmSyscode);
|
||||
JSONObject rs = this.deletionAlarmCarForHttp(project, deleteJo);
|
||||
sendNoticeForCarInfo("车辆取消布防(取消黑名单)到海康isc", rs.toJSONString(), carInfo, 7, null);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
failAlarmNotice(carInfo);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
failAlarmNotice(carInfo);
|
||||
}
|
||||
}
|
||||
|
||||
private void failAlarmNotice(CarInfo carInfo) {
|
||||
if (carInfo.getIsBlack() == 1) {
|
||||
sendNoticeForCarInfo("车辆布防(黑名单)到海康isc", new JSONObject().toJSONString(), carInfo, 7, null, false);
|
||||
} else {
|
||||
sendNoticeForCarInfo("车辆取消布防(取消黑名单)到海康isc", new JSONObject().toJSONString(), carInfo, 7, null, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 车辆布防
|
||||
*
|
||||
* @param project
|
||||
* @return
|
||||
*/
|
||||
public JSONObject addAlarmCarForHttp(Project project, JSONObject param) throws Exception {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/alarmCar/addition";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(HikvisionUtil.doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消车辆布防
|
||||
*
|
||||
* @param project
|
||||
* @return
|
||||
*/
|
||||
public JSONObject deletionAlarmCarForHttp(Project project, JSONObject param) throws Exception {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/alarmCar/deletion";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(HikvisionUtil.doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询布防车辆
|
||||
*
|
||||
* @param project
|
||||
* @return
|
||||
*/
|
||||
public JSONObject queryAlarmCarPage(Project project, JSONObject param) throws Exception {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/pms/v1/alarmCar/page";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(HikvisionUtil.doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1606,6 +1746,10 @@ public class HikvisionCall {
|
||||
bindCarOrNot(project, 2, carInfo);
|
||||
deleteFixedCarForHikvision(carInfo, project);
|
||||
deleteReservationCarFromHttp(carInfo, project);
|
||||
CarInfo c = new CarInfo();
|
||||
BeanUtil.copyProperties(carInfo, c);
|
||||
c.setIsBlack(0);
|
||||
handleAlarmCar(project, c);
|
||||
}
|
||||
|
||||
private void deleteFixedCarForHikvision(CarInfo carInfo, Project project) throws Exception {
|
||||
|
||||
@ -242,15 +242,8 @@ public class CarInfoController {
|
||||
@ApiImplicitParam(name = "id", value = "车辆黑白名单管理ID", paramType = "body", required = true, dataType = "Integer")
|
||||
@PostMapping(value = "/queryById")
|
||||
public Result<CarInfo> queryById(@RequestBody Map<String,Object> map) {
|
||||
Result<CarInfo> result = new Result<CarInfo>();
|
||||
CarInfo carInfo = carInfoService.getById(MapUtils.getString(map,"id"));
|
||||
if(carInfo==null) {
|
||||
result.error500(MessageUtil.get("notFindErr"));
|
||||
}else {
|
||||
result.setResult(carInfo);
|
||||
result.setSuccess(true);
|
||||
}
|
||||
return result;
|
||||
String id = MapUtils.getString(map, "id");
|
||||
return Result.success(carInfoService.queryById(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "统计项目下各车辆黑白名单情况", notes = "统计项目下各车辆黑白名单情况", httpMethod = "POST")
|
||||
|
||||
@ -32,4 +32,6 @@ public interface CarInfoMapper extends BaseMapper<CarInfo> {
|
||||
String getCarTypeName(CarInfo carInfo);
|
||||
|
||||
CountCarModuleTypeVo countCarModuleType(@Param("param") Map<String, Object> map);
|
||||
|
||||
CarInfo queryById(String id);
|
||||
}
|
||||
|
||||
@ -64,4 +64,19 @@
|
||||
from car_info as t
|
||||
WHERE t.project_sn=#{param.projectSn}
|
||||
</select>
|
||||
|
||||
<select id="queryById" resultType="com.zhgd.xmgl.modules.car.entity.CarInfo">
|
||||
SELECT
|
||||
if(t.car_module_type=1 or t.car_module_type=2,wi.id_card,t.outside_driver_id_card) as outsideDriverIdCard,
|
||||
if(t.car_module_type=1 or t.car_module_type=2,wi.worker_name,t.driver_worker_name) as driverWorkerName,
|
||||
t.*,
|
||||
b.car_type_name,
|
||||
ei.enterprise_name
|
||||
FROM car_info t LEFT JOIN car_type b ON (t.car_type=b.id and t.project_sn=b.project_sn)
|
||||
left join enterprise_info ei on ei.id=t.enterprise_id
|
||||
left join worker_info wi on t.driver_worker_id = wi.id and (t.car_module_type=1 or t.car_module_type=2)
|
||||
left join (SELECT * FROM worker_info GROUP BY id_card) wi1 on wi1.id_card=t.outside_driver_id_card and
|
||||
t.car_module_type=3
|
||||
where t.id = #{id}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -34,4 +34,6 @@ public interface ICarInfoService extends IService<CarInfo> {
|
||||
void delete(Map<String, Object> map);
|
||||
|
||||
CountCarModuleTypeVo countCarModuleType(Map<String, Object> map);
|
||||
|
||||
CarInfo queryById(String id);
|
||||
}
|
||||
|
||||
@ -95,14 +95,15 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
}
|
||||
addCarInfoForApprovalFlowIf(c);
|
||||
Date now = new Date();
|
||||
if (DateUtil.compare(carInfo.getReserveStartTime(), now) < 0 && DateUtil.compare(carInfo.getReserveEndTime(), now) > 0) {
|
||||
log.info("车辆在有效期内,不需要更新,车牌号:{}", c.getCarNumber());
|
||||
return;
|
||||
}
|
||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
|
||||
if (project == null) {
|
||||
return;
|
||||
}
|
||||
if (DateUtil.compare(carInfo.getReserveStartTime(), now) < 0 && DateUtil.compare(carInfo.getReserveEndTime(), now) > 0) {
|
||||
log.info("车辆在有效期内,不需要更新,车牌号:{}", c.getCarNumber());
|
||||
asyncHikvision.handleAlarmCarForHikvision(carInfo);
|
||||
return;
|
||||
}
|
||||
deleteOrUpdateCar(project, carInfo);
|
||||
} else {
|
||||
carInfoMapper.insert(c);
|
||||
@ -300,4 +301,9 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
public CountCarModuleTypeVo countCarModuleType(Map<String, Object> map) {
|
||||
return baseMapper.countCarModuleType(map);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CarInfo queryById(String id) {
|
||||
return baseMapper.queryById(id);
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,10 +40,10 @@ public class XzHikvisionSync implements Serializable {
|
||||
@ApiModelProperty(value = "所属项目SN")
|
||||
private java.lang.String projectSn;
|
||||
/**
|
||||
* 1人员2人员照片3人员权限4固定车辆5固定车辆群组6临时车
|
||||
* 1人员2人员照片3人员权限4固定车辆5固定车辆群组6临时车7车辆布防
|
||||
*/
|
||||
@Excel(name = "1人员2人员照片3人员权限4固定车辆5固定车辆群组6临时车", width = 15)
|
||||
@ApiModelProperty(value = "1人员2人员照片3人员权限4固定车辆5固定车辆群组6临时车")
|
||||
@Excel(name = "1人员2人员照片3人员权限4固定车辆5固定车辆群组6临时车7车辆布防", width = 15)
|
||||
@ApiModelProperty(value = "1人员2人员照片3人员权限4固定车辆5固定车辆群组6临时车7车辆布防")
|
||||
private java.lang.Integer type;
|
||||
/**
|
||||
* 1新增2修改3删除
|
||||
|
||||
@ -117,7 +117,6 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
|
||||
for (XzHikvisionSync xzHikvisionSync : newestList) {
|
||||
Integer operate = xzHikvisionSync.getOperate();
|
||||
Integer type = xzHikvisionSync.getType();
|
||||
Integer isSuccess = xzHikvisionSync.getIsSuccess();
|
||||
String devName = xzHikvisionSync.getDevName();
|
||||
String deviceSn = xzHikvisionSync.getDeviceSn();
|
||||
if (StrUtil.isBlank(deviceSn)) {
|
||||
@ -143,6 +142,8 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
|
||||
return "固定车辆群组";
|
||||
case 6:
|
||||
return "临时车";
|
||||
case 7:
|
||||
return "黑名单";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -187,10 +188,6 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
|
||||
if (carInfo == null) {
|
||||
return;
|
||||
}
|
||||
Project p = projectMapper.selectOne(new LambdaQueryWrapper<Project>()
|
||||
.eq(Project::getProjectSn, carInfo.getProjectSn())
|
||||
.eq(Project::getSyncHikvision, 1)
|
||||
);
|
||||
if (xzHikvisionSync.getOperate() == 1) {
|
||||
hikvisionCall.saveCarInfoFromHikvision(carInfo);
|
||||
} else if (xzHikvisionSync.getOperate() == 2) {
|
||||
|
||||
@ -74,22 +74,22 @@ public class JinqianmaoTask {
|
||||
@Scheduled(cron = "0 10 0 1 * ?")
|
||||
@PostConstruct
|
||||
public void setCallBack() {
|
||||
List<CompanyConfig> companyConfigs = companyConfigMapper.selectList(new QueryWrapper<>());
|
||||
for (CompanyConfig companyConfig:companyConfigs){
|
||||
if (StringUtils.isBlank(companyConfig.getUrl())) {
|
||||
return;
|
||||
}
|
||||
JSONObject jsonInfo = new JSONObject();
|
||||
jsonInfo.put("URL", serverUrl + "/api/main/alarm");
|
||||
HttpResponse httpResponse = HttpRequest.post(getUrl("setCallBack/alarm",companyConfig.getUrl(),companyConfig.getAk(),companyConfig.getSecret()))
|
||||
.body(jsonInfo.toJSONString())
|
||||
.timeout(5 * 60 * 1000)
|
||||
.execute();
|
||||
log.info("请求第三方接口setCallBack响应体:{}", httpResponse);
|
||||
if (!(httpResponse.getStatus() == HttpStatus.HTTP_OK && httpResponse.body() != null)) {
|
||||
log.error("设置金钱猫项目回调地址失败!设置为:{}失败!", serverUrl);
|
||||
}
|
||||
}
|
||||
List<CompanyConfig> companyConfigs = companyConfigMapper.selectList(new QueryWrapper<>());
|
||||
for (CompanyConfig companyConfig : companyConfigs) {
|
||||
if (StringUtils.isBlank(companyConfig.getUrl())) {
|
||||
return;
|
||||
}
|
||||
JSONObject jsonInfo = new JSONObject();
|
||||
jsonInfo.put("URL", serverUrl + "/api/main/alarm");
|
||||
HttpResponse httpResponse = HttpRequest.post(getUrl("setCallBack/alarm", companyConfig.getUrl(), companyConfig.getAk(), companyConfig.getSecret()))
|
||||
.body(jsonInfo.toJSONString())
|
||||
.timeout(5 * 60 * 1000)
|
||||
.execute();
|
||||
log.info("请求第三方接口setCallBack响应体:{}", httpResponse);
|
||||
if (!(httpResponse.getStatus() == HttpStatus.HTTP_OK && httpResponse.body() != null)) {
|
||||
log.error("设置金钱猫项目回调地址失败!设置为:{}失败!", serverUrl);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -128,72 +128,72 @@ public class JinqianmaoTask {
|
||||
|
||||
public void saveJqmDev() {
|
||||
List<CompanyConfig> companyConfigs = companyConfigMapper.selectList(new QueryWrapper<>());
|
||||
for (CompanyConfig companyConfig:companyConfigs){
|
||||
List<Project> projectList = projectService.list(Wrappers.<Project>lambdaQuery().isNotNull(Project::getProjectNumber));
|
||||
JSONObject jsonInfo = new JSONObject();
|
||||
jsonInfo.put("StartIndex", 0);
|
||||
jsonInfo.put("Count", 10000);
|
||||
for (CompanyConfig companyConfig : companyConfigs) {
|
||||
List<Project> projectList = projectService.list(Wrappers.<Project>lambdaQuery().isNotNull(Project::getProjectNumber));
|
||||
JSONObject jsonInfo = new JSONObject();
|
||||
jsonInfo.put("StartIndex", 0);
|
||||
jsonInfo.put("Count", 10000);
|
||||
|
||||
for (Project project : projectList) {
|
||||
String projectNumber = project.getProjectNumber();
|
||||
jsonInfo.put("proId", projectNumber);
|
||||
String url = getUrl("getDevList", companyConfig.getUrl(), companyConfig.getAk(), companyConfig.getSecret());
|
||||
String body = jsonInfo.toJSONString();
|
||||
log.info("saveJqmDev()调用http:url:{};body:{}", url, body);
|
||||
HttpResponse httpResponse = HttpRequest.post(url).body(body).timeout(5 * 60 * 1000).execute();
|
||||
log.info("请求第三方接口getDevList响应体:{}", httpResponse);
|
||||
if (httpResponse.getStatus() == HttpStatus.HTTP_OK && httpResponse.body() != null) {
|
||||
JSONObject response = JSON.parseObject(httpResponse.body());
|
||||
log.info("请求第三方接口getDevList响应体Data:{}", response.getJSONObject("data"));
|
||||
if (response.getJSONObject("data") != null) {
|
||||
JSONArray devList = response.getJSONObject("data").getJSONArray("data");
|
||||
log.debug("devList:{}", devList);
|
||||
if (CollUtil.isNotEmpty(devList)) {
|
||||
List<ProjectJqmDev> projectJqmDevList = new LinkedList<>();
|
||||
String date = DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN);
|
||||
for (int i = 0; i < devList.size(); i++) {
|
||||
JSONObject dev = devList.getJSONObject(i);
|
||||
for (Project project : projectList) {
|
||||
String projectNumber = project.getProjectNumber();
|
||||
jsonInfo.put("proId", projectNumber);
|
||||
String url = getUrl("getDevList", companyConfig.getUrl(), companyConfig.getAk(), companyConfig.getSecret());
|
||||
String body = jsonInfo.toJSONString();
|
||||
log.info("saveJqmDev()调用http:url:{};body:{}", url, body);
|
||||
HttpResponse httpResponse = HttpRequest.post(url).body(body).timeout(5 * 60 * 1000).execute();
|
||||
log.info("请求第三方接口getDevList响应体:{}", httpResponse);
|
||||
if (httpResponse.getStatus() == HttpStatus.HTTP_OK && httpResponse.body() != null) {
|
||||
JSONObject response = JSON.parseObject(httpResponse.body());
|
||||
log.info("请求第三方接口getDevList响应体Data:{}", response.getJSONObject("data"));
|
||||
if (response.getJSONObject("data") != null) {
|
||||
JSONArray devList = response.getJSONObject("data").getJSONArray("data");
|
||||
log.debug("devList:{}", devList);
|
||||
if (CollUtil.isNotEmpty(devList)) {
|
||||
List<ProjectJqmDev> projectJqmDevList = new LinkedList<>();
|
||||
String date = DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN);
|
||||
for (int i = 0; i < devList.size(); i++) {
|
||||
JSONObject dev = devList.getJSONObject(i);
|
||||
|
||||
String devId = dev.getString("devId");
|
||||
String devType = dev.getString("devType");
|
||||
Integer devStatus = dev.getInteger("devStatus");
|
||||
String devName = dev.getString("devName");
|
||||
ProjectJqmDev projectJqmDev = projectJqmDevService.getOne(Wrappers.lambdaQuery(ProjectJqmDev.class)
|
||||
.eq(ProjectJqmDev::getDevSn, devId).eq(ProjectJqmDev::getProjectNumber, projectNumber));
|
||||
String devId = dev.getString("devId");
|
||||
String devType = dev.getString("devType");
|
||||
Integer devStatus = dev.getInteger("devStatus");
|
||||
String devName = dev.getString("devName");
|
||||
ProjectJqmDev projectJqmDev = projectJqmDevService.getOne(Wrappers.lambdaQuery(ProjectJqmDev.class)
|
||||
.eq(ProjectJqmDev::getDevSn, devId).eq(ProjectJqmDev::getProjectNumber, projectNumber));
|
||||
|
||||
Integer curFloor = getCurFloor(projectNumber, devId, companyConfig.getUrl(), companyConfig.getAk(), companyConfig.getSecret());
|
||||
if (projectJqmDev != null) {
|
||||
if (!Objects.equals(curFloor, projectJqmDev.getLastFloorCount())) {
|
||||
asyncCommon.sendMqAndApp("楼层变动通知", "设备:" + devName + "的楼层发生变动,请及时进行巡检!", "楼层变动通知", project.getProjectSn(), "/pages/projectEnd/projectIndex/projectIndex");
|
||||
Integer curFloor = getCurFloor(projectNumber, devId, companyConfig.getUrl(), companyConfig.getAk(), companyConfig.getSecret());
|
||||
if (projectJqmDev != null) {
|
||||
if (!Objects.equals(curFloor, projectJqmDev.getLastFloorCount())) {
|
||||
asyncCommon.sendMqAndApp("楼层变动通知", "设备:" + devName + "的楼层发生变动,请及时进行巡检!", "楼层变动通知", project.getProjectSn(), "/pages/projectEnd/projectIndex/projectIndex");
|
||||
}
|
||||
LambdaUpdateWrapper<ProjectJqmDev> updateWrapper = Wrappers.lambdaUpdate(ProjectJqmDev.class)
|
||||
.eq(ProjectJqmDev::getId, projectJqmDev.getId())
|
||||
.set(ProjectJqmDev::getProjectSn, project.getProjectSn()).set(ProjectJqmDev::getProjectName, project.getProjectName())
|
||||
.set(ProjectJqmDev::getDevType, devType).set(ProjectJqmDev::getDevName, devName)
|
||||
.set(ProjectJqmDev::getDevStatus, devStatus).set(ProjectJqmDev::getLastFloorCount, curFloor == null ? 0 : curFloor)
|
||||
.set(ProjectJqmDev::getUpdateDate, date);
|
||||
projectJqmDevService.update(null, updateWrapper);
|
||||
} else {
|
||||
asyncCommon.sendMqAndApp("全景成像设备通知", "新增设备:" + devName + ",请及时进行巡检!", "全景成像设备通知", project.getProjectSn(), "/pages/projectEnd/projectIndex/projectIndex");
|
||||
projectJqmDevList.add(new ProjectJqmDev(null, projectNumber, project.getProjectSn(), project.getProjectName(), devId, devName, devType, devStatus, curFloor, date, date));
|
||||
}
|
||||
LambdaUpdateWrapper<ProjectJqmDev> updateWrapper = Wrappers.lambdaUpdate(ProjectJqmDev.class)
|
||||
.eq(ProjectJqmDev::getId, projectJqmDev.getId())
|
||||
.set(ProjectJqmDev::getProjectSn, project.getProjectSn()).set(ProjectJqmDev::getProjectName, project.getProjectName())
|
||||
.set(ProjectJqmDev::getDevType, devType).set(ProjectJqmDev::getDevName, devName)
|
||||
.set(ProjectJqmDev::getDevStatus, devStatus).set(ProjectJqmDev::getLastFloorCount, curFloor == null ? 0 : curFloor)
|
||||
.set(ProjectJqmDev::getUpdateDate, date);
|
||||
projectJqmDevService.update(null, updateWrapper);
|
||||
} else {
|
||||
asyncCommon.sendMqAndApp("全景成像设备通知", "新增设备:" + devName + ",请及时进行巡检!", "全景成像设备通知", project.getProjectSn(), "/pages/projectEnd/projectIndex/projectIndex");
|
||||
projectJqmDevList.add(new ProjectJqmDev(null, projectNumber, project.getProjectSn(), project.getProjectName(), devId, devName, devType, devStatus, curFloor, date, date));
|
||||
}
|
||||
log.debug("saveBatch:projectJqmDevList:{}", projectJqmDevList);
|
||||
projectJqmDevService.saveBatch(projectJqmDevList);
|
||||
}
|
||||
log.debug("saveBatch:projectJqmDevList:{}", projectJqmDevList);
|
||||
projectJqmDevService.saveBatch(projectJqmDevList);
|
||||
} else {
|
||||
log.error("调用第三方接口错误:{}", response);
|
||||
}
|
||||
} else {
|
||||
log.error("调用第三方接口错误:{}", response);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Integer getCurFloor(String proId, String devId , String url,String ak,String secret) {
|
||||
public Integer getCurFloor(String proId, String devId, String url, String ak, String secret) {
|
||||
JSONObject jsonInfo = new JSONObject();
|
||||
jsonInfo.put("proId", proId);
|
||||
jsonInfo.put("devId", devId);
|
||||
HttpResponse httpResponse = HttpRequest.post(getUrl("getCurFloor",url,ak,secret))
|
||||
HttpResponse httpResponse = HttpRequest.post(getUrl("getCurFloor", url, ak, secret))
|
||||
.body(jsonInfo.toJSONString())
|
||||
.timeout(5 * 60 * 1000)
|
||||
.execute();
|
||||
@ -210,7 +210,7 @@ public class JinqianmaoTask {
|
||||
}
|
||||
|
||||
|
||||
private String getUrl(String mappingUrl , String URL, String AK , String Secret) {
|
||||
private String getUrl(String mappingUrl, String URL, String AK, String Secret) {
|
||||
StringBuilder url = new StringBuilder();
|
||||
url.append(URL);
|
||||
url.append("/api/main/");
|
||||
@ -227,7 +227,7 @@ public class JinqianmaoTask {
|
||||
url.append("&");
|
||||
url.append("token");
|
||||
url.append("=");
|
||||
url.append(JinqianmaoUtil.getTokenUrl(currentTimeMillis,AK,Secret));
|
||||
url.append(JinqianmaoUtil.getTokenUrl(currentTimeMillis, AK, Secret));
|
||||
//根据链接获取到项目信息
|
||||
return url.toString();
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user