服务挂了主动获取查询过车记录
This commit is contained in:
parent
4e3c9f759b
commit
fa3c8a6649
@ -18,6 +18,7 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -176,6 +177,15 @@ public class RedisRepository {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param key
|
||||||
|
* @param expireTime 毫秒
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean setNx(final String key, Long expireTime) {
|
||||||
|
return redisTemplate.opsForValue().setIfAbsent(key, "1", expireTime, TimeUnit.MILLISECONDS);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询在这个时间段内即将过期的key
|
* 查询在这个时间段内即将过期的key
|
||||||
*
|
*
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
|
import com.zhgd.redis.lock.RedisRepository;
|
||||||
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;
|
||||||
import com.zhgd.xmgl.modules.basicdata.mapper.HikvisionRequestRetryMapper;
|
import com.zhgd.xmgl.modules.basicdata.mapper.HikvisionRequestRetryMapper;
|
||||||
@ -27,6 +28,7 @@ import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
|
|||||||
import com.zhgd.xmgl.modules.worker.entity.*;
|
import com.zhgd.xmgl.modules.worker.entity.*;
|
||||||
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
|
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
|
||||||
import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper;
|
import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper;
|
||||||
|
import com.zhgd.xmgl.modules.worker.mapper.WorkerAttendanceMapper;
|
||||||
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
||||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendancePresenceService;
|
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendancePresenceService;
|
||||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
|
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
|
||||||
@ -64,6 +66,9 @@ public class HikvisionCall {
|
|||||||
private ProjectMapper projectMapper;
|
private ProjectMapper projectMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Lazy
|
@Lazy
|
||||||
|
private RedisRepository redisRepository;
|
||||||
|
@Autowired
|
||||||
|
@Lazy
|
||||||
private EnterpriseInfoMapper enterpriseInfoMapper;
|
private EnterpriseInfoMapper enterpriseInfoMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Lazy
|
@Lazy
|
||||||
@ -73,6 +78,9 @@ public class HikvisionCall {
|
|||||||
private IWorkerAttendanceService workerAttendanceService;
|
private IWorkerAttendanceService workerAttendanceService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Lazy
|
@Lazy
|
||||||
|
private WorkerAttendanceMapper workerAttendanceMapper;
|
||||||
|
@Autowired
|
||||||
|
@Lazy
|
||||||
private IWorkerAttendancePresenceService workerAttendancePresenceService;
|
private IWorkerAttendancePresenceService workerAttendancePresenceService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Lazy
|
@Lazy
|
||||||
@ -284,66 +292,84 @@ public class HikvisionCall {
|
|||||||
.eq(Project::getSyncHikvision, 1);
|
.eq(Project::getSyncHikvision, 1);
|
||||||
if (StringUtils.isNotBlank(projectSn)) {
|
if (StringUtils.isNotBlank(projectSn)) {
|
||||||
queryWrapper.eq(Project::getProjectSn, projectSn);
|
queryWrapper.eq(Project::getProjectSn, projectSn);
|
||||||
|
if (!redisRepository.setNx("getDoorEvents:projectSn" + projectSn, 1000 * 30L)) {
|
||||||
|
return Result.ok("正在同步中请耐心等待通知!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
List<Project> projects = projectMapper.selectList(queryWrapper);
|
List<Project> projects = projectMapper.selectList(queryWrapper);
|
||||||
for (Project project : projects) {
|
if (CollUtil.isEmpty(projects)) {
|
||||||
List<UfaceDev> ufaceDevs = ufaceDevMapper.selectList(new LambdaQueryWrapper<UfaceDev>()
|
return Result.error("项目未配置海康同步功能");
|
||||||
.eq(UfaceDev::getProjectSn, project.getProjectSn()));
|
|
||||||
for (UfaceDev ufaceDev : ufaceDevs) {
|
|
||||||
param.put("doorIndexCode", ufaceDev.getDevSn());
|
|
||||||
param.put("pageNo", 1);
|
|
||||||
Integer total = 0;
|
|
||||||
do {
|
|
||||||
String rs = getDoorEventsForHttp(project, param);
|
|
||||||
JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
|
|
||||||
if (joData != null) {
|
|
||||||
total = joData.getInteger("total");
|
|
||||||
if (!Objects.equals(total, 0)) {
|
|
||||||
JSONArray listJa = joData.getJSONArray("list");
|
|
||||||
for (int i = 0; i < listJa.size(); i++) {
|
|
||||||
JSONObject listJo = listJa.getJSONObject(i);
|
|
||||||
String eventTime = listJo.getString("eventTime");
|
|
||||||
String personId = listJo.getString("personId");
|
|
||||||
String personName = listJo.getString("personName");
|
|
||||||
String doorIndexCode = listJo.getString("doorIndexCode");
|
|
||||||
String picUri = listJo.getString("picUri");
|
|
||||||
String svrIndexCode = listJo.getString("svrIndexCode");
|
|
||||||
WorkerInfo workerInfo = workerInfoMapper.selectById(personId);
|
|
||||||
if (workerInfo == null) {
|
|
||||||
log.error("未找到该人员信息,personName:{}", personName);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
HashMap<String, Object> map = new HashMap<>();
|
|
||||||
String time = DateUtil.formatDateTime(DateUtil.parse(eventTime));
|
|
||||||
map.put("passTime", time);
|
|
||||||
map.put("idCard", workerInfo.getIdCard());
|
|
||||||
map.put("attendanceNumber", workerInfo.getAttendanceNumber());
|
|
||||||
int passType = workerAttendanceServiceImpl.getPassType(ufaceDev, time);
|
|
||||||
map.put("direction", passType);
|
|
||||||
map.put("passType", 2);
|
|
||||||
map.put("projectCode", workerInfo.getProjectSn());
|
|
||||||
map.put("devCode", doorIndexCode);
|
|
||||||
|
|
||||||
try {
|
|
||||||
HikvisionEventsPictureRq rq = new HikvisionEventsPictureRq();
|
|
||||||
rq.setPicUri(picUri);
|
|
||||||
rq.setSvrIndexCode(svrIndexCode);
|
|
||||||
map.put("faceUrl", saveToLocal(getHikvisionEventsPicture(rq, project.getArtemisConfigHost(), project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret())));
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
workerAttendanceService.saveExternalPassRecord(map);
|
|
||||||
}
|
|
||||||
param.put("pageNo", param.getIntValue("pageNo") + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} while (total > 0);
|
|
||||||
}
|
|
||||||
workerAttendancePresenceService.addNowAllWorkerAttendancePresence(projectSn);
|
|
||||||
}
|
}
|
||||||
log.info("服务挂了主动获取门禁点事件的人员通行记录执行完成,startTime:{},endTime:{}", startTime, endTime);
|
CompletableFuture.runAsync(() -> {
|
||||||
return Result.ok();
|
for (Project project : projects) {
|
||||||
|
List<UfaceDev> ufaceDevs = ufaceDevMapper.selectList(new LambdaQueryWrapper<UfaceDev>()
|
||||||
|
.eq(UfaceDev::getProjectSn, project.getProjectSn()));
|
||||||
|
for (UfaceDev ufaceDev : ufaceDevs) {
|
||||||
|
param.put("doorIndexCode", ufaceDev.getDevSn());
|
||||||
|
param.put("pageNo", 1);
|
||||||
|
Integer total = 0;
|
||||||
|
do {
|
||||||
|
String rs = getDoorEventsForHttp(project, param);
|
||||||
|
JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
|
||||||
|
if (joData != null) {
|
||||||
|
total = joData.getInteger("total");
|
||||||
|
if (!Objects.equals(total, 0)) {
|
||||||
|
JSONArray listJa = joData.getJSONArray("list");
|
||||||
|
for (int i = 0; i < listJa.size(); i++) {
|
||||||
|
JSONObject listJo = listJa.getJSONObject(i);
|
||||||
|
String eventTime = listJo.getString("eventTime");
|
||||||
|
String personId = listJo.getString("personId");
|
||||||
|
String personName = listJo.getString("personName");
|
||||||
|
String doorIndexCode = listJo.getString("doorIndexCode");
|
||||||
|
String picUri = listJo.getString("picUri");
|
||||||
|
String svrIndexCode = listJo.getString("svrIndexCode");
|
||||||
|
WorkerInfo workerInfo = workerInfoMapper.selectById(personId);
|
||||||
|
if (workerInfo == null) {
|
||||||
|
log.error("未找到该人员信息,personName:{}", personName);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
String time = DateUtil.formatDateTime(DateUtil.parse(eventTime));
|
||||||
|
map.put("passTime", time);
|
||||||
|
map.put("idCard", workerInfo.getIdCard());
|
||||||
|
map.put("attendanceNumber", workerInfo.getAttendanceNumber());
|
||||||
|
int passType = workerAttendanceServiceImpl.getPassType(ufaceDev, time);
|
||||||
|
map.put("direction", passType);
|
||||||
|
map.put("passType", 2);
|
||||||
|
map.put("projectCode", workerInfo.getProjectSn());
|
||||||
|
map.put("devCode", doorIndexCode);
|
||||||
|
|
||||||
|
try {
|
||||||
|
HikvisionEventsPictureRq rq = new HikvisionEventsPictureRq();
|
||||||
|
rq.setPicUri(picUri);
|
||||||
|
rq.setSvrIndexCode(svrIndexCode);
|
||||||
|
map.put("faceUrl", saveToLocal(getHikvisionEventsPicture(rq, project.getArtemisConfigHost(), project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret())));
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
Integer count = workerAttendanceMapper.selectCount(new LambdaQueryWrapper<WorkerAttendance>()
|
||||||
|
.eq(WorkerAttendance::getPersonSn, workerInfo.getPersonSn())
|
||||||
|
.eq(WorkerAttendance::getCreateTime, time)
|
||||||
|
);
|
||||||
|
if (count == 0) {
|
||||||
|
workerAttendanceService.saveExternalPassRecord(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
param.put("pageNo", param.getIntValue("pageNo") + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while (total > 0);
|
||||||
|
}
|
||||||
|
workerAttendancePresenceService.addNowAllWorkerAttendancePresence(projectSn);
|
||||||
|
}
|
||||||
|
log.info("服务挂了主动获取门禁点事件的人员通行记录执行完成,startTime:{},endTime:{}", startTime, endTime);
|
||||||
|
if (SecurityUtils.getUser().getUserId() != null) {
|
||||||
|
String title = "同步人员通行数据成功";
|
||||||
|
String msg = title + ",同步时间段:startTime:" + startTime + ",endTime:" + endTime;
|
||||||
|
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, "2");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return Result.ok("已在后台同步人员数据,请耐心等待!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "服务挂了主动获取查询过车记录", notes = "服务挂了主动获取查询过车记录", httpMethod = "POST")
|
@ApiOperation(value = "服务挂了主动获取查询过车记录", notes = "服务挂了主动获取查询过车记录", httpMethod = "POST")
|
||||||
@ -366,17 +392,25 @@ public class HikvisionCall {
|
|||||||
.eq(Project::getSyncHikvision, 1);
|
.eq(Project::getSyncHikvision, 1);
|
||||||
if (StringUtils.isNotBlank(projectSn)) {
|
if (StringUtils.isNotBlank(projectSn)) {
|
||||||
queryWrapper.eq(Project::getProjectSn, projectSn);
|
queryWrapper.eq(Project::getProjectSn, projectSn);
|
||||||
|
if (!redisRepository.setNx("getCrossRecords:projectSn" + projectSn, 1000 * 30L)) {
|
||||||
|
return Result.ok("正在同步中请耐心等待通知!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
List<Project> projects = projectMapper.selectList(queryWrapper);
|
List<Project> projects = projectMapper.selectList(queryWrapper);
|
||||||
for (Project project : projects) {
|
if (CollUtil.isEmpty(projects)) {
|
||||||
List<UfaceDev> ufaceDevs = ufaceDevMapper.selectList(new LambdaQueryWrapper<UfaceDev>()
|
return Result.error("项目未配置海康同步功能");
|
||||||
.eq(UfaceDev::getProjectSn, project.getProjectSn()));
|
}
|
||||||
for (UfaceDev ufaceDev : ufaceDevs) {
|
CompletableFuture.runAsync(() -> {
|
||||||
param.put("doorIndexCode", ufaceDev.getDevSn());
|
for (Project project : projects) {
|
||||||
param.put("pageNo", 1);
|
param.put("pageNo", 1);
|
||||||
|
String projectParkCode = getProjectParkCode(project);
|
||||||
|
if (StringUtils.isBlank(projectParkCode)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
param.put("parkSyscode", projectParkCode);
|
||||||
Integer total = 0;
|
Integer total = 0;
|
||||||
do {
|
do {
|
||||||
String rs = getDoorEventsForHttp(project, param);
|
String rs = getCrossRecordsForHttp(project, param);
|
||||||
JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
|
JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
|
||||||
if (joData != null) {
|
if (joData != null) {
|
||||||
total = joData.getInteger("total");
|
total = joData.getInteger("total");
|
||||||
@ -384,48 +418,68 @@ public class HikvisionCall {
|
|||||||
JSONArray listJa = joData.getJSONArray("list");
|
JSONArray listJa = joData.getJSONArray("list");
|
||||||
for (int i = 0; i < listJa.size(); i++) {
|
for (int i = 0; i < listJa.size(); i++) {
|
||||||
JSONObject listJo = listJa.getJSONObject(i);
|
JSONObject listJo = listJa.getJSONObject(i);
|
||||||
String eventTime = listJo.getString("eventTime");
|
String plateNo = listJo.getString("plateNo");
|
||||||
String personId = listJo.getString("personId");
|
String roadwaySyscode = listJo.getString("roadwaySyscode");
|
||||||
String personName = listJo.getString("personName");
|
String aswSyscode = listJo.getString("aswSyscode");
|
||||||
String doorIndexCode = listJo.getString("doorIndexCode");
|
String crossTime = listJo.getString("crossTime");
|
||||||
String picUri = listJo.getString("picUri");
|
String time = DateUtil.formatDateTime(DateUtil.parse(crossTime));
|
||||||
String svrIndexCode = listJo.getString("svrIndexCode");
|
String plateNoPicUri = listJo.getString("plateNoPicUri");
|
||||||
WorkerInfo workerInfo = workerInfoMapper.selectById(personId);
|
String vehiclePicUri = listJo.getString("vehiclePicUri");
|
||||||
if (workerInfo == null) {
|
CarCamera carCamera = carCameraMapper.selectOne(new LambdaQueryWrapper<CarCamera>()
|
||||||
log.error("未找到该人员信息,personName:{}", personName);
|
.eq(CarCamera::getCameraId, roadwaySyscode));
|
||||||
|
if (carCamera == null) {
|
||||||
|
log.info("海康车辆相机设备不存在:CameraId:{}", roadwaySyscode);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
HashMap<String, Object> map = new HashMap<>();
|
CarPassRecord entity = new CarPassRecord();
|
||||||
String time = DateUtil.formatDateTime(DateUtil.parse(eventTime));
|
entity.setCarNumber(plateNo);
|
||||||
map.put("passTime", time);
|
entity.setType(getPassType(carCamera.getPassType()));
|
||||||
map.put("idCard", workerInfo.getIdCard());
|
entity.setPassTime(time);
|
||||||
map.put("attendanceNumber", workerInfo.getAttendanceNumber());
|
|
||||||
int passType = workerAttendanceServiceImpl.getPassType(ufaceDev, time);
|
|
||||||
map.put("direction", passType);
|
|
||||||
map.put("passType", 2);
|
|
||||||
map.put("projectCode", workerInfo.getProjectSn());
|
|
||||||
map.put("devCode", doorIndexCode);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
HikvisionEventsPictureRq rq = new HikvisionEventsPictureRq();
|
//车牌
|
||||||
rq.setPicUri(picUri);
|
entity.setImageUrl(saveToLocal(getHikvisionEventsPicture(new HikvisionEventsPictureRq(aswSyscode, plateNoPicUri), project.getArtemisConfigHost(), project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret())));
|
||||||
rq.setSvrIndexCode(svrIndexCode);
|
entity.setPanoramaUrl(saveToLocal(getHikvisionEventsPicture(new HikvisionEventsPictureRq(aswSyscode, vehiclePicUri), project.getArtemisConfigHost(), project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret())));
|
||||||
map.put("faceUrl", saveToLocal(getHikvisionEventsPicture(rq, project.getArtemisConfigHost(), project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret())));
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
workerAttendanceService.saveExternalPassRecord(map);
|
entity.setCarColor(getCarColor(listJo.getInteger("plateColor")));
|
||||||
|
entity.setLocation(carCamera.getCameraName());
|
||||||
|
entity.setProjectSn(carCamera.getProjectSn());
|
||||||
|
entity.setColor(getColor(listJo.getInteger("vehicleColor")));
|
||||||
|
entity.setCameraId(roadwaySyscode);
|
||||||
|
List<CarInfo> carInfos = carInfoMapper.selectList(new LambdaQueryWrapper<CarInfo>()
|
||||||
|
.eq(CarInfo::getProjectSn, carCamera.getProjectSn())
|
||||||
|
.eq(CarInfo::getCarNumber, plateNo)
|
||||||
|
.eq(CarInfo::getIsBlack, 0)
|
||||||
|
);
|
||||||
|
if (CollUtil.isNotEmpty(carInfos)) {
|
||||||
|
entity.setIsOpen(1);
|
||||||
|
} else {
|
||||||
|
entity.setIsOpen(0);
|
||||||
|
}
|
||||||
|
Integer count = carPassRecordMapper.selectCount(new LambdaQueryWrapper<CarPassRecord>()
|
||||||
|
.eq(CarPassRecord::getCarNumber, plateNo)
|
||||||
|
.eq(CarPassRecord::getPassTime, time)
|
||||||
|
);
|
||||||
|
if (count == 0) {
|
||||||
|
carPassRecordMapper.insert(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
param.put("pageNo", param.getIntValue("pageNo") + 1);
|
param.put("pageNo", param.getIntValue("pageNo") + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (total > 0);
|
} while (total > 0);
|
||||||
}
|
}
|
||||||
workerAttendancePresenceService.addNowAllWorkerAttendancePresence(projectSn);
|
log.info("服务挂了主动获取车辆事件的车辆通行记录执行完成,startTime:{},endTime:{}", startTime, endTime);
|
||||||
}
|
if (SecurityUtils.getUser().getUserId() != null) {
|
||||||
log.info("服务挂了主动获取门禁点事件的人员通行记录执行完成,startTime:{},endTime:{}", startTime, endTime);
|
String title = "同步车辆通行数据成功";
|
||||||
return Result.ok();
|
String msg = title + ",同步时间段:startTime:" + startTime + ",endTime:" + endTime;
|
||||||
|
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, "2");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return Result.ok("已在后台同步车辆通行数据,请耐心等待!");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1531,7 +1585,7 @@ public class HikvisionCall {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取项目名称的停车场的parkIndexCode
|
* 获取项目名称的停车场的parkIndexCode,没有一样名字的就取第一个停车场
|
||||||
*
|
*
|
||||||
* @param project
|
* @param project
|
||||||
* @return
|
* @return
|
||||||
@ -1539,10 +1593,14 @@ public class HikvisionCall {
|
|||||||
public String getProjectParkCode(Project project) {
|
public String getProjectParkCode(Project project) {
|
||||||
JSONArray parkList = getParkList(project);
|
JSONArray parkList = getParkList(project);
|
||||||
if (parkList != null && parkList.size() > 0) {
|
if (parkList != null && parkList.size() > 0) {
|
||||||
JSONObject jo = parkList.getJSONObject(0);
|
for (int i = 0; i < parkList.size(); i++) {
|
||||||
if (Objects.equals(jo.getString("parkName"), project.getProjectName())) {
|
JSONObject jo = parkList.getJSONObject(i);
|
||||||
return jo.getString("parkIndexCode");
|
if (Objects.equals(jo.getString("parkName"), project.getProjectName())) {
|
||||||
|
return jo.getString("parkIndexCode");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
//没有一样名字的就取第一个停车场
|
||||||
|
return parkList.getJSONObject(0).getString("parkIndexCode");
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -1711,4 +1769,26 @@ public class HikvisionCall {
|
|||||||
return HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
return HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询过车记录
|
||||||
|
*
|
||||||
|
* @param project
|
||||||
|
* @param param
|
||||||
|
*/
|
||||||
|
public String getCrossRecordsForHttp(Project project, JSONObject param) {
|
||||||
|
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
|
final String path = ARTEMIS_PATH + "/api/pms/v1/crossRecords/page";
|
||||||
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
jo.put("pageNo", param.getIntValue("pageNo"));
|
||||||
|
jo.put("pageSize", 1000);
|
||||||
|
//ISO8601时间格式
|
||||||
|
jo.put("startTime", param.getString("startTime"));
|
||||||
|
jo.put("endTime", param.getString("endTime"));
|
||||||
|
jo.put("parkSyscode", param.getString("parkSyscode"));
|
||||||
|
return HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -237,6 +237,7 @@ public class SafetyHatDataServiceImpl extends ServiceImpl<SafetyHatDataMapper, S
|
|||||||
data.setLongitude(yPoint);
|
data.setLongitude(yPoint);
|
||||||
data.setUploadTime(new Date(time * 1000L));
|
data.setUploadTime(new Date(time * 1000L));
|
||||||
data.setProjectSn(dev.getProjectSn());
|
data.setProjectSn(dev.getProjectSn());
|
||||||
|
data.setWorkerName(dev.getWorkerName());
|
||||||
hatDataArrayList.add(data);
|
hatDataArrayList.add(data);
|
||||||
}
|
}
|
||||||
return CollUtil.reverse(hatDataArrayList);
|
return CollUtil.reverse(hatDataArrayList);
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.zhgd.xmgl.modules.worker.service.impl;
|
package com.zhgd.xmgl.modules.worker.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@ -222,6 +223,11 @@ socialCode 班组所属的劳务公司统一社会信用代码 string 是
|
|||||||
return resultMap;
|
return resultMap;
|
||||||
}
|
}
|
||||||
TeamInfo teamInfo = teamInfoMapper.selectOne(new LambdaQueryWrapper<TeamInfo>().eq(TeamInfo::getTeamName, dto.getGroupName()));
|
TeamInfo teamInfo = teamInfoMapper.selectOne(new LambdaQueryWrapper<TeamInfo>().eq(TeamInfo::getTeamName, dto.getGroupName()));
|
||||||
|
List<WorkerType> workerTypes = workerTypeMapper.selectList(new LambdaQueryWrapper<WorkerType>().eq(WorkerType::getProjectSn, dto.getProjectCode())
|
||||||
|
.eq(WorkerType::getTypeName, "其他工种"));
|
||||||
|
if (CollUtil.isNotEmpty(workerTypes)) {
|
||||||
|
teamInfo.setWorkerTypeId(workerTypes.get(0).getId());
|
||||||
|
}
|
||||||
if (teamInfo != null) {
|
if (teamInfo != null) {
|
||||||
//修改
|
//修改
|
||||||
teamInfo.setTeamName(StringUtils.isNotBlank(dto.getNewGroupName()) ? dto.getNewGroupName() : dto.getGroupName());
|
teamInfo.setTeamName(StringUtils.isNotBlank(dto.getNewGroupName()) ? dto.getNewGroupName() : dto.getGroupName());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user