ycl-common/src/main/java/constant/ApiConstants.java
New file @@ -0,0 +1,27 @@ package constant; /** * 海康优云请求参数常量 */ public class ApiConstants { //成功状态码 public final static String successCode = "0"; public final static Integer pageNo = 1; public final static Integer pageSize = 5000; //请求参数dataType-卡口过车 public final static Integer HK_DATATYPE_CAR = 1; //请求参数dataType-人脸数据 public final static Integer HK_DATATYPE_FACE = 2; //抓拍数据量监测结果 正常 public final static Integer HK_SnapCount_ResultType_Normal = 1; //抓拍数据量监测结果 无数据 public final static Integer HK_SnapCount_ResultType_Null = 2; //抓拍数据量监测结果 数据突降 public final static Integer HK_SnapCount_ResultType_Descent = 3; //请求参数dataType 数据量少 public final static Integer HK_DATATYPE_ResultType_Low = 4; } ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitorVideo.java
File was deleted ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java
@@ -1,6 +1,7 @@ package com.ycl.platform.domain.result.HK; import lombok.Data; import org.springframework.data.mongodb.core.mapping.Document; /** * 抓拍数据量监测结果 @@ -8,7 +9,8 @@ * @author gonghl */ @Data public class SnapshotDataMonitorResult { @Document(collection = "snapshot_data_monitor") public class SnapshotDataMonitorResult extends BaseResult{ /** * dataType为1:卡口内码 dataType为2或11:采集设备内码 ycl-server/src/main/java/com/ycl/platform/controller/TMonitorVideoController.java
File was deleted ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorVideoMapper.java
File was deleted ycl-server/src/main/java/com/ycl/platform/service/ICheckIndexCarService.java
@@ -1,20 +1,21 @@ package com.ycl.platform.service; import com.ycl.platform.domain.entity.CheckIndexCar; import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; import java.util.List; /** * 车辆指标概率数据Service接口 * * * @author ruoyi * @date 2024-04-29 */ public interface ICheckIndexCarService public interface ICheckIndexCarService { /** * 查询车辆指标概率数据 * * * @param id 车辆指标概率数据主键 * @return 车辆指标概率数据 */ @@ -22,7 +23,7 @@ /** * 查询车辆指标概率数据列表 * * * @param checkIndexCar 车辆指标概率数据 * @return 车辆指标概率数据集合 */ @@ -30,7 +31,7 @@ /** * 新增车辆指标概率数据 * * * @param checkIndexCar 车辆指标概率数据 * @return 结果 */ @@ -38,7 +39,7 @@ /** * 修改车辆指标概率数据 * * * @param checkIndexCar 车辆指标概率数据 * @return 结果 */ @@ -46,7 +47,7 @@ /** * 批量删除车辆指标概率数据 * * * @param ids 需要删除的车辆指标概率数据主键集合 * @return 结果 */ @@ -54,9 +55,15 @@ /** * 删除车辆指标概率数据信息 * * * @param id 车辆指标概率数据主键 * @return 结果 */ public int deleteCheckIndexCarById(Long id); /** * 计算车辆点位在线率 * @param list */ void siteOnline(List<SnapshotDataMonitorResult> list); } ycl-server/src/main/java/com/ycl/platform/service/ICheckIndexFaceService.java
@@ -1,20 +1,21 @@ package com.ycl.platform.service; import com.ycl.platform.domain.entity.CheckIndexFace; import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; import java.util.List; /** * 人脸指标概率数据Service接口 * * * @author ruoyi * @date 2024-04-29 */ public interface ICheckIndexFaceService public interface ICheckIndexFaceService { /** * 查询人脸指标概率数据 * * * @param id 人脸指标概率数据主键 * @return 人脸指标概率数据 */ @@ -22,7 +23,7 @@ /** * 查询人脸指标概率数据列表 * * * @param checkIndexFace 人脸指标概率数据 * @return 人脸指标概率数据集合 */ @@ -30,7 +31,7 @@ /** * 新增人脸指标概率数据 * * * @param checkIndexFace 人脸指标概率数据 * @return 结果 */ @@ -38,7 +39,7 @@ /** * 修改人脸指标概率数据 * * * @param checkIndexFace 人脸指标概率数据 * @return 结果 */ @@ -46,7 +47,7 @@ /** * 批量删除人脸指标概率数据 * * * @param ids 需要删除的人脸指标概率数据主键集合 * @return 结果 */ @@ -54,9 +55,16 @@ /** * 删除人脸指标概率数据信息 * * * @param id 人脸指标概率数据主键 * @return 结果 */ public int deleteCheckIndexFaceById(Long id); /** * 计算人脸点位在线率 * @param list */ void siteOnline(List<SnapshotDataMonitorResult> list); } ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
@@ -1,5 +1,6 @@ package com.ycl.platform.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.vo.TMonitorVO; @@ -12,7 +13,7 @@ * @author ruoyi * @date 2024-03-04 */ public interface ITMonitorService public interface ITMonitorService extends IService<TMonitor> { /** * 查询设备资产 ycl-server/src/main/java/com/ycl/platform/service/ITMonitorVideoService.java
File was deleted ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexCarServiceImpl.java
@@ -1,96 +1,180 @@ package com.ycl.platform.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ycl.platform.domain.entity.CheckIndexCar; import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; import com.ycl.platform.mapper.CheckIndexCarMapper; import com.ycl.platform.service.ICheckIndexCarService; import com.ycl.platform.service.ITMonitorService; import com.ycl.system.entity.SysDept; import com.ycl.system.mapper.SysDeptMapper; import constant.ApiConstants; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import utils.DateUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; /** * 车辆指标概率数据Service业务层处理 * * * @author ruoyi * @date 2024-04-29 */ @Service public class CheckIndexCarServiceImpl implements ICheckIndexCarService { public class CheckIndexCarServiceImpl implements ICheckIndexCarService { @Autowired private CheckIndexCarMapper checkIndexCarMapper; @Autowired private ITMonitorService monitorService; @Autowired private SysDeptMapper deptMapper; /** * 查询车辆指标概率数据 * * * @param id 车辆指标概率数据主键 * @return 车辆指标概率数据 */ @Override public CheckIndexCar selectCheckIndexCarById(Long id) { public CheckIndexCar selectCheckIndexCarById(Long id) { return checkIndexCarMapper.selectCheckIndexCarById(id); } /** * 查询车辆指标概率数据列表 * * * @param checkIndexCar 车辆指标概率数据 * @return 车辆指标概率数据 */ @Override public List<CheckIndexCar> selectCheckIndexCarList(CheckIndexCar checkIndexCar) { public List<CheckIndexCar> selectCheckIndexCarList(CheckIndexCar checkIndexCar) { return checkIndexCarMapper.selectCheckIndexCarList(checkIndexCar); } /** * 新增车辆指标概率数据 * * * @param checkIndexCar 车辆指标概率数据 * @return 结果 */ @Override public int insertCheckIndexCar(CheckIndexCar checkIndexCar) { public int insertCheckIndexCar(CheckIndexCar checkIndexCar) { checkIndexCar.setCreateTime(DateUtils.getNowDate()); return checkIndexCarMapper.insertCheckIndexCar(checkIndexCar); } /** * 修改车辆指标概率数据 * * * @param checkIndexCar 车辆指标概率数据 * @return 结果 */ @Override public int updateCheckIndexCar(CheckIndexCar checkIndexCar) { public int updateCheckIndexCar(CheckIndexCar checkIndexCar) { return checkIndexCarMapper.updateCheckIndexCar(checkIndexCar); } /** * 批量删除车辆指标概率数据 * * * @param ids 需要删除的车辆指标概率数据主键 * @return 结果 */ @Override public int deleteCheckIndexCarByIds(Long[] ids) { public int deleteCheckIndexCarByIds(Long[] ids) { return checkIndexCarMapper.deleteCheckIndexCarByIds(ids); } /** * 删除车辆指标概率数据信息 * * * @param id 车辆指标概率数据主键 * @return 结果 */ @Override public int deleteCheckIndexCarById(Long id) { public int deleteCheckIndexCarById(Long id) { return checkIndexCarMapper.deleteCheckIndexCarById(id); } /** * 计算车辆点位在线率、视图库对接稳定性 * * @param list */ @Override public void siteOnline(List<SnapshotDataMonitorResult> list) { //设备id List<String> deviceIds = list.stream().map(SnapshotDataMonitorResult::getExternalIndexCode).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(deviceIds)) { // 用于存储每个区域统计信息的辅助类 class AreaStats { //点位总数 int totalSites = 0; //离线点位数 int offlineSites = 0; //总抓拍量 int totalDataSum = 0; } List<TMonitor> monitors = monitorService.list(new QueryWrapper<TMonitor>().in("serial_number", deviceIds)); Map<String, AreaStats> areaStatsMap = new HashMap<>(); //获得所有区县deptId List<Long> deptIds = deptMapper.selectByParentId(207L); deptIds.forEach(deptId -> areaStatsMap.put(deptId + "", new AreaStats())); //转换为map //TODO:分省厅市局 List<String> provinceIds = new ArrayList<>(); Map<String, TMonitor> monitorMap = monitors.stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); for (SnapshotDataMonitorResult result : list) { TMonitor monitor = monitorMap.get(result.getExternalIndexCode()); AreaStats areaStats = areaStatsMap.get(monitor.getDeptId() + ""); String serialNumber = monitor.getSerialNumber(); //无数据 if (ApiConstants.HK_SnapCount_ResultType_Null == result.getResultType()) { //区域离线点位数 areaStats.offlineSites++; } else { //区域总抓拍量 areaStats.totalSites += result.getDataCount(); } //区域点位总数 areaStats.totalDataSum++; //是否是省厅数据 if (!CollectionUtils.isEmpty(provinceIds)) { if (provinceIds.contains(serialNumber)) { //省厅数据 AreaStats provinceStats = areaStatsMap.get("Province_" + monitor.getDeptId()); //无数据 if (ApiConstants.HK_SnapCount_ResultType_Null == result.getResultType()) { //区域离线点位数 provinceStats.offlineSites++; } else { //区域总抓拍量 provinceStats.totalSites += result.getDataCount(); } //区域点位总数 provinceStats.totalDataSum++; areaStatsMap.put("Province_" + monitor.getDeptId(), areaStats); } } areaStatsMap.put(monitor.getDeptId() + "", areaStats); } areaStatsMap.forEach((k, v) -> { if (k.startsWith("Province_")) { } }); CheckIndexCar checkIndexCar = new CheckIndexCar(); } } } ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexFaceServiceImpl.java
@@ -1,6 +1,7 @@ package com.ycl.platform.service.impl; import com.ycl.platform.domain.entity.CheckIndexFace; import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; import com.ycl.platform.mapper.CheckIndexFaceMapper; import com.ycl.platform.service.ICheckIndexFaceService; import org.springframework.beans.factory.annotation.Autowired; @@ -11,86 +12,89 @@ /** * 人脸指标概率数据Service业务层处理 * * * @author ruoyi * @date 2024-04-29 */ @Service public class CheckIndexFaceServiceImpl implements ICheckIndexFaceService { public class CheckIndexFaceServiceImpl implements ICheckIndexFaceService { @Autowired private CheckIndexFaceMapper checkIndexFaceMapper; /** * 查询人脸指标概率数据 * * * @param id 人脸指标概率数据主键 * @return 人脸指标概率数据 */ @Override public CheckIndexFace selectCheckIndexFaceById(Long id) { public CheckIndexFace selectCheckIndexFaceById(Long id) { return checkIndexFaceMapper.selectCheckIndexFaceById(id); } /** * 查询人脸指标概率数据列表 * * * @param checkIndexFace 人脸指标概率数据 * @return 人脸指标概率数据 */ @Override public List<CheckIndexFace> selectCheckIndexFaceList(CheckIndexFace checkIndexFace) { public List<CheckIndexFace> selectCheckIndexFaceList(CheckIndexFace checkIndexFace) { return checkIndexFaceMapper.selectCheckIndexFaceList(checkIndexFace); } /** * 新增人脸指标概率数据 * * * @param checkIndexFace 人脸指标概率数据 * @return 结果 */ @Override public int insertCheckIndexFace(CheckIndexFace checkIndexFace) { public int insertCheckIndexFace(CheckIndexFace checkIndexFace) { checkIndexFace.setCreateTime(DateUtils.getNowDate()); return checkIndexFaceMapper.insertCheckIndexFace(checkIndexFace); } /** * 修改人脸指标概率数据 * * * @param checkIndexFace 人脸指标概率数据 * @return 结果 */ @Override public int updateCheckIndexFace(CheckIndexFace checkIndexFace) { public int updateCheckIndexFace(CheckIndexFace checkIndexFace) { return checkIndexFaceMapper.updateCheckIndexFace(checkIndexFace); } /** * 批量删除人脸指标概率数据 * * * @param ids 需要删除的人脸指标概率数据主键 * @return 结果 */ @Override public int deleteCheckIndexFaceByIds(Long[] ids) { public int deleteCheckIndexFaceByIds(Long[] ids) { return checkIndexFaceMapper.deleteCheckIndexFaceByIds(ids); } /** * 删除人脸指标概率数据信息 * * * @param id 人脸指标概率数据主键 * @return 结果 */ @Override public int deleteCheckIndexFaceById(Long id) { public int deleteCheckIndexFaceById(Long id) { return checkIndexFaceMapper.deleteCheckIndexFaceById(id); } /** * 计算人脸点位在线率 * * @param list */ @Override public void siteOnline(List<SnapshotDataMonitorResult> list) { } } ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
@@ -45,7 +45,7 @@ /** * 考核积分明细Service业务层处理 * * * @author ruoyi * @date 2024-04-22 */ @@ -71,7 +71,7 @@ private ISysDeptService deptService; /** * 查询考核积分指标 * * * @param id 考核积分主键 * @return 考核积分 */ @@ -126,7 +126,7 @@ /** * 查询考核积分卡片列表 * * * @param checkScore 考核积分 * @return 考核积分 */ @@ -232,38 +232,6 @@ mysheet.add(e3); ExcelUtilManySheet<List<ExcelExp>> util = new ExcelUtilManySheet<>(mysheet); util.exportExcelManySheet(response,mysheet); //导单sheet的方式 // switch (CheckScoreType.fromValue(examineCategory)){ // case CHECK_SCORE_TYPE_CAR: // //查车辆 // List<CheckIndexCar> checkIndexCars = indexCarService.selectCheckIndexCarList(new CheckIndexCar()); // export(response, depts, checkIndexCars,CheckIndexCar.class); // break; // case CHECK_SCORE_TYPE_FACE: // // 查人脸 // List<CheckIndexFace> checkIndexFaces = indexFaceService.selectCheckIndexFaceList(new CheckIndexFace()); // export(response, depts, checkIndexFaces,CheckIndexFace.class); // break; // case CHECK_SCORE_TYPE_VIDEO: // // 查视频 // List<CheckIndexVideo> checkIndexVideos = indexVideoService.selectCheckIndexVideoList(new CheckIndexVideo()); // export(response, depts, checkIndexVideos,CheckIndexVideo.class); // break; // } } private <T extends CheckIndex> void export(HttpServletResponse response, List<BaseSelect> depts, List<T> checkIndexes,Class<T> checkIndexClass) { //暂时没用,如果数据过大,在server层翻译,避免连表 checkIndexes.forEach(checkIndex->{ Optional<BaseSelect> first = depts.stream().filter(baseSelect -> checkIndex.getDeptId().equals(Long.valueOf(baseSelect.getId()+""))).findFirst(); if(first.isPresent()){ checkIndex.setDeptName(first.get().getValue()); } }); ExcelUtil<T> util = new ExcelUtil<T>(checkIndexClass); util.exportExcel(response, checkIndexes, "考核积分明细数据"); } ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorVideoServiceImpl.java
File was deleted ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -101,7 +101,11 @@ return ywThresholdMapper.deleteYwThresholdById(id); } /** * 判断视频阈值是否满足下发条件 * * @param list */ @Override public void videoCheck(List list) { @@ -207,15 +211,15 @@ T thresholdAutoValue = parseThreshold(ywThreshold.getValue(), value.getClass()); //比较大小,加入到对应待处理集合 if (compareType.compare(v, thresholdAutoValue)) { //自动下发工单 workOrderList.add(result); } else if (compareType.compare(v, thresholdValue)) { //进入工单代下发 distributeList.add(result); } }, () -> log.error("{} 为空: {}", thresholds.get(key).getName(), result) ); } private <T extends Comparable<T>> T parseThreshold(String thresholdStr, Class<?> type) { ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java
@@ -134,4 +134,12 @@ * @return */ List<Long> selectParents(@Param("id") Long deptId); /** * 查询自己的父类部门ID * * @param deptId * @return */ List<Long> selectByParentId(@Param("id") Long deptId); } ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -3,12 +3,19 @@ import com.alibaba.fastjson2.JSONObject; import com.ycl.platform.domain.entity.YwThreshold; import com.ycl.platform.domain.param.HK.FaceDeviceInspectionParam; import com.ycl.platform.domain.param.HK.SnapshotDataMonitorParam; import com.ycl.platform.domain.param.HK.VehicleDeviceInspectionParam; import com.ycl.platform.domain.result.HK.BaseResult; import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult; import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult; import com.ycl.platform.mapper.YwThresholdMapper; import com.ycl.platform.service.ICheckIndexCarService; import com.ycl.platform.service.ICheckIndexFaceService; import com.ycl.platform.service.ICheckIndexVideoService; import com.ycl.platform.service.IYwThresholdService; import com.ycl.web.HKClient; import constant.ApiConstants; import enumeration.BusinessType; import enumeration.general.BusinessTypeEnum; import lombok.extern.slf4j.Slf4j; @@ -32,70 +39,144 @@ private HKClient hkClient; @Autowired private IYwThresholdService ywThresholdService; private final static Integer pageNo = 1; private final static Integer pageSize = 5000; //成功状态码 private final static String successCode = "0"; @Autowired private ICheckIndexFaceService checkIndexFaceService; @Autowired private ICheckIndexCarService checkIndexCarService; @Autowired private ICheckIndexVideoService checkIndexVideoService; //车辆设备全检指标监测结果 public void VehicleDeviceInspectionTask() { log.info("开始执行车辆设备全检指标监测结果数据同步"); VehicleDeviceInspectionParam param = new VehicleDeviceInspectionParam(); param.setPageNO(pageNo).setPageSize(pageSize).setDate(getToday()); param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(getToday()); JSONObject jsonObject = hkClient.VehicleDeviceInspection(param); if (jsonObject != null && successCode.equals(jsonObject.getString("code"))) { JSONObject data = jsonObject.getJSONObject("data"); if (data == null) { throw new RuntimeException("车辆设备全检指标监测结果数据为空"); } List<VehicleDeviceInspectionResult> list = data.getList("list", VehicleDeviceInspectionResult.class); list.forEach(item ->item.setCreateTime(new Date())); if (CollectionUtils.isEmpty(list)) { throw new RuntimeException("车辆设备全检指标监测结果数据为空"); } List<VehicleDeviceInspectionResult> list = getDataList(jsonObject, VehicleDeviceInspectionResult.class, "车辆设备全检指标监测结果数据为空"); if (!CollectionUtils.isEmpty(list)) { //存放在mongo中 mongoTemplate.insert(list); //同步的数据进行工单阈值处理 ywThresholdService.carCheck(list); } else { log.error("同步车辆设备全检指标监测结果失败", jsonObject); } log.info("结束车辆设备全检指标监测结果数据同步"); } //人脸设备全检指标监测结果 public void FaceDeviceInspectionTask() { log.info("开始执行人脸设备全检指标监测结果数据同步"); FaceDeviceInspectionParam param = new FaceDeviceInspectionParam(); param.setPageNO(pageNo).setPageSize(pageSize).setDate(getToday()); param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(getToday()); JSONObject jsonObject = hkClient.FaceDeviceInspection(param); if (jsonObject != null && successCode.equals(jsonObject.getString("code"))) { JSONObject data = jsonObject.getJSONObject("data"); if (data == null) { throw new RuntimeException("人脸设备全检指标监测结果数据为空"); } List<FaceDeviceInspectionResult> list = data.getList("list", FaceDeviceInspectionResult.class); list.forEach(item ->item.setCreateTime(new Date())); if (CollectionUtils.isEmpty(list)) { throw new RuntimeException("人脸设备全检指标监测结果数据为空"); } List<FaceDeviceInspectionResult> list = getDataList(jsonObject, FaceDeviceInspectionResult.class, "人脸设备全检指标监测结果数据为空"); if (!CollectionUtils.isEmpty(list)) { //存放在mongo中 mongoTemplate.insert(list); //同步的数据进行工单阈值处理 ywThresholdService.faceCheck(list); } else { log.error("同步人脸设备全检指标监测结果失败", jsonObject); } log.info("结束人脸设备全检指标监测结果数据同步"); } //抓拍数据量监测结果 public void SnapshotDataMonitorTask() { log.info("开始执行抓拍数据量检测结果数据同步"); /** 车辆数据 */ SnapshotDataMonitorParam carParam = new SnapshotDataMonitorParam(); carParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(getToday()).setDataType(ApiConstants.HK_DATATYPE_CAR); JSONObject carJsonObject = hkClient.SnapshotDataMonitor(carParam); List<SnapshotDataMonitorResult> carList = getDataList(carJsonObject, SnapshotDataMonitorResult.class, "车辆抓拍数据量检测结果数据"); if (!CollectionUtils.isEmpty(carList)) { //存放在mongo中 mongoTemplate.insert(carList); //TODO:车辆点位在线率 checkIndexCarService.siteOnline(carList); } /** 人脸数据 */ SnapshotDataMonitorParam faceParam = new SnapshotDataMonitorParam(); faceParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(getToday()).setDataType(ApiConstants.HK_DATATYPE_FACE); JSONObject faceJsonObject = hkClient.SnapshotDataMonitor(carParam); List list = getDataList(faceJsonObject, SnapshotDataMonitorResult.class, "人脸抓拍数据量检测结果数据为空"); if (!CollectionUtils.isEmpty(list)) { //存放在mongo中 mongoTemplate.insert(list); //TODO:人脸点位在线率 checkIndexFaceService.siteOnline(list); } log.info("结束抓拍数据量检测结果数据同步"); } //一机一档 public void task2() { //联网卡口设备目录一致率 } //卡口属性监测结果 public void task3() { //车辆卡口信息采集准确率 } //数据完整性监测结果 public void task4() { //车辆卡口设备抓拍数据完整性 } //属性识别准确监测结果 public void task5() { //车辆卡口设备抓拍数据完整性 } //车辆设备全检指标监测结果 public void task6() { //车辆卡口设备时钟准确性 } //抓拍数据时延监测结果 public void task7() { //车辆卡口设备抓拍数据上传及时性 } //图片访问监测结果 public void task8() { //车辆卡口信息采集准确率 //车辆卡口设备url可用性 } //获取当前日期 private String getToday() { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String today = sdf.format(date); return today; } //解析数据 private <T> List<T> getDataList(JSONObject faceJsonObject, Class<T> resultClass, String message) { if (faceJsonObject != null && ApiConstants.successCode.equals(faceJsonObject.getString("code"))) { JSONObject data = faceJsonObject.getJSONObject("data"); if (data == null) { log.error(message, faceJsonObject); return null; } List<T> list = data.getList("list", resultClass); if (CollectionUtils.isEmpty(list)) { log.error(message, data); return null; } for (T t : list) { if (t instanceof BaseResult) { ((BaseResult) t).setCreateTime(new Date()); } } return list; } else { log.error(message); } return null; } } ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -49,6 +49,22 @@ log.info("结束人脸设备全检指标监测结果数据同步"); } //一机一档 public void task1() { //一机一档合格率 // 一机一档注册率 // 档案考核比 } //图像监测诊断结果 public void task2() { //点位在线率 } //录像可用 public void task3() { //录像可用率 } private String getToday() { Date date = new Date(); ycl-server/src/main/java/com/ycl/web/HKClient.java
@@ -143,7 +143,7 @@ * @return 抓拍数据时延监测结果 */ @PostMapping("/dqd/service/rs/v1/data/snapAgingDetail/query") JSONObject SnapshotDataMonitor(SnapshotDelayMonitorParam param); JSONObject SnapshotDelayMonitor(SnapshotDelayMonitorParam param); /** * 图片访问监测结果 ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -79,6 +79,11 @@ select * from sys_dept where find_in_set(#{deptId}, ancestors) </select> <select id="selectByParentId" resultType="java.lang.Integer"> select dept_id from sys_dept where del_flag = 0 and parent_id = #{id} </select> <select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int"> select count(*) from sys_dept where status = '0' and del_flag = 0 and find_in_set(#{deptId}, ancestors) </select> ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -254,4 +254,5 @@ FROM t_monitor WHERE recovery = 1 </select> </mapper> ycl-server/src/main/resources/mapper/zgyw/TMonitorVideoMapper.xml
File was deleted