fuliqi
2024-12-25 7fa07718de92093c6315c5cb37bbc8dd7cdafa3c
考核积分修改、点位导出修改
16个文件已修改
1个文件已添加
267 ■■■■■ 已修改文件
document/2024年运维考核细则.docx 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/ContractTask.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/HKTask.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
document/2024ÄêÔËά¿¼ºËϸÔò.docx
Binary files differ
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java
@@ -79,4 +79,5 @@
    @TableField(exist = false)
    private List<String> quarter;
}
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java
@@ -46,7 +46,7 @@
    private String unitContactPhone;
    /** å·¥å•来源/设备名称 */
    @Excel(name = "设备名称",sort = 3)
    @Excel(name = "设备名称",sort = 3,width = 25)
    private String source;
    /** ip */
    @Excel(name = "IP",sort = 5)
@@ -54,15 +54,15 @@
    /**
     * è®¾å¤‡ç¼–号
     */
    @Excel(name = "设备编号",sort = 2)
    @Excel(name = "设备编号",sort = 2,width = 22)
    private String serialNumber;
    /**
     * æ ‡ç­¾
     * è€ƒæ ¸æ ‡ç­¾
     * @param entity
     * @param vo
     * @return
     */
    @Excel(name = "标签",sort = 4)
    @Excel(name = "考核标签",sort = 4)
    private String tag;
    /**
@@ -81,7 +81,14 @@
    /** æ•…障类型 */
    @Excel(name = "故障类型",sort = 8)
    private String errorType;
    /**
     * è®¾å¤‡æ ‡ç­¾
     * @param entity
     * @param vo
     * @return
     */
    @Excel(name = "设备标签",sort = 9,width = 30)
    private String dynamicTag;
    /** å·¥å•检测图片 */
    private String imgListStr;
@@ -89,7 +96,7 @@
    /** è¿ç»´äººå‘˜ */
    private Integer ywPeopleId;
    private Long pointId;
    private String ywPeopleName;
    /** è¿ç»´å¤„理时间 */
ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java
@@ -43,7 +43,16 @@
        Map<Long, List<CheckScore>> deptMap = checkScoreService.selectCheckScoreList(checkScore);
        return success(deptMap);
    }
    /**
     * æŸ¥è¯¢è€ƒæ ¸ç§¯åˆ†å¡ç‰‡åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('check:score:query')")
    @PostMapping("/bar")
    public AjaxResult bar(@RequestBody CheckScore checkScore)
    {
        Map<Long, List<CheckScore>> deptMap = checkScoreService.selectCheckScoreList(checkScore);
        return success(deptMap);
    }
    /**
     * æŸ¥è¯¢è€ƒæ ¸ç§¯åˆ†æŠ˜çº¿å›¾
     */
ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java
@@ -81,7 +81,7 @@
     * é¦–页考核预警
     * @return æ•°æ®
     */
    List<Map<String, Object>> home();
    List<Map<String, Object>> home(Date startTime,Date endTime);
    /**
     * é¦–页核算
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -11,11 +11,11 @@
import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.vo.TMonitorVO;
import com.ycl.platform.domain.vo.UpdateOnlineVO;
import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.vo.screen.MonitorRateVO;
import com.ycl.platform.domain.vo.screen.MonitorTotalVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;
import java.util.Date;
import java.util.List;
@@ -183,4 +183,6 @@
    List<TMonitor> selectCarOrFace();
    List<TMonitorExp> exportTMonitorList(TMonitorVO tMonitor);
    List<TMonitorResult> getByIp(@Param("ipList")List<String> ips);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
@@ -30,6 +30,7 @@
import enumeration.general.PublishType;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -145,33 +146,35 @@
    /**
     * æŸ¥è¯¢è€ƒæ ¸ç§¯åˆ†å¡ç‰‡åˆ—表
     *
     * è¿™é‡Œæ˜¾ç¤ºå½“天的成绩如果没有当天成绩则显示最后一次成绩
     * @param checkScore è€ƒæ ¸ç§¯åˆ†
     * @return è€ƒæ ¸ç§¯åˆ†
     */
    @Override
    @DataScope(deptAlias = "d", userAlias = "u")
    public Map<Long, List<CheckScore>> selectCheckScoreList(CheckScore checkScore) {
    public Map<Long, List<CheckScore>> selectCheckScoreList(CheckScore query) {
        CheckScore checkScore = new CheckScore();
        BeanUtils.copyProperties(query,checkScore);
        //区县只能看已发布
        roleControl(checkScore);
        // èŽ·å–æ•°æ®æ—¥æœŸæ—¶é—´
        Calendar calendar = Calendar.getInstance();
        getCheckScore(checkScore, calendar);
        // è½¬æ¢æ•°æ®æ—¥æœŸæ—¶é—´ã€æ ‡ç­¾
        getCheckScore(checkScore);
        // ä¸€å·æŸ¥è¯¢ä¹‹å‰çš„æ•°æ®
        if (LocalDateTime.now().getDayOfMonth() == 1) {
            calendar.add(Calendar.DAY_OF_MONTH, -1);
        }
//        // ä¸€å·æŸ¥è¯¢ä¹‹å‰çš„æ•°æ®
//        if (LocalDateTime.now().getDayOfMonth() == 1) {
//            calendar.add(Calendar.DAY_OF_MONTH, -1);
//        }
        List<CheckScore> checkScores = scoreMapper.selectCheckScoreMap(checkScore);
        // å¦‚果数据为空,则查询之前的数据
        if (checkScores.isEmpty()) {
        if (CollectionUtils.isEmpty(checkScores) && (query.getStartDate() ==null || query.getStartDate() ==null)) {
            CheckScore one = scoreMapper.getLast(checkScore);
            if (Objects.nonNull(one)) {
                calendar.setTime(one.getCreateTime());
                getCheckScore(checkScore, calendar);
                checkScore.setStartDate(one.getCreateTime());
                checkScore.setEndDate(one.getCreateTime());
                getCheckScore(checkScore);
                checkScores = scoreMapper.selectCheckScoreMap(checkScore);
            }
        }
@@ -180,31 +183,16 @@
        return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId));
    }
    private void getCheckScore(CheckScore checkScore, Calendar calendar) {
        // 0.省厅月度 1.省厅季度 2.市局月度 3.市局季度 4.公安部月度 5.公安部季度
        switch (checkScore.getExamineTag()) {
            case 0, 2, 4:
                checkScore.setEndDate(calendar.getTime());
                calendar.set(Calendar.DAY_OF_MONTH, 1);
                checkScore.setStartDate(calendar.getTime());
                if (checkScore.getExamineTag() == 0)
                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + ""));
                if (checkScore.getExamineTag() == 2)
                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + ""));
                if (checkScore.getExamineTag() == 4)
                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + ""));
                break;
            case 1, 3, 5:
                checkScore.setStartDate(DateUtils.getQuarterStart(calendar).getTime());
                checkScore.setEndDate(DateUtils.getQuarterEnd(calendar).getTime());
                if (checkScore.getExamineTag() == 1)
                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + ""));
                if (checkScore.getExamineTag() == 3)
                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + ""));
                if (checkScore.getExamineTag() == 5)
                    checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + ""));
                break;
        }
    private void getCheckScore(CheckScore checkScore) {
        checkScore.setStartDate(DateUtils.getDayStart(checkScore.getStartDate()));
        checkScore.setEndDate(DateUtils.getDayEnd(checkScore.getEndDate()));
        // 0.省厅 1.市局 2.公安部
        if (checkScore.getExamineTag() == 0)
            checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + ""));
        if (checkScore.getExamineTag() == 1)
            checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + ""));
        if (checkScore.getExamineTag() == 2)
            checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + ""));
    }
    /**
@@ -522,7 +510,11 @@
    @Override
    public List<Map<String, Object>> home() {
        return baseMapper.home();
        Date now = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -7);
        Date startTime = calendar.getTime();
        return baseMapper.home(startTime,now);
    }
ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java
@@ -249,7 +249,7 @@
        job.setConcurrent("1");
        job.setStatus(checkTemplateDTO.getStatus());
        job.setJobGroup("CHECK");
        job.setCronExpression("0 0 6 * * ?");
        job.setCronExpression("0 0 8 * * ?");
        job.setJobName(checkTemplateDTO.getTemplateName());
        int i = jobService.insertJob(job);
        return job;
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -352,8 +352,15 @@
        return tMonitorMapper.recoveryException(monitor);
    }
    /**
     *  æŸ¥mongo查某个月设备总数
     *  æŸ¥çœ‹å·¥å•数量查看异常的数
     * @param monitorQuery æŸ¥è¯¢æ¡ä»¶
     * @return
     */
    @Override
    public Map<String, Object> home(HomeQuery monitorQuery) {
        Map<String, Object> dataMap = new HashMap<>();
        Map<String, Object> monthMap1 = new HashMap<>();
        Map<String, Object> monthMap2 = new HashMap<>();
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -13,6 +13,7 @@
import com.ycl.platform.domain.entity.*;
import com.ycl.platform.domain.form.*;
import com.ycl.platform.domain.query.*;
import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.vo.*;
import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO;
import com.ycl.platform.domain.vo.screen.WorkOrderRegionVO;
@@ -78,6 +79,8 @@
public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
    private final YwPointService ywPointService;
    private final TMonitorMapper monitorMapper;
    private final DynamicColumnMapper dynamicColumnMapper;
    private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper;
    private final WorkOrderAuditingRecordService workOrderAuditingRecordService;
    private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
@@ -1113,6 +1116,12 @@
        return Result.ok().data(workOrder);
    }
    /**
     * å·¥å•导出的逻辑
     * æ ‡ç­¾ï¼šåŒä¸€ä¸ªip标签合在一起,针对离线工单(ip相同就不会生成工单),方便运维处理
     * @param query
     * @return
     */
    @Override
    public List<WorkOrderVO> export(WorkOrderExportQuery query) {
        if (query.getUnitId() == null) {
@@ -1121,13 +1130,59 @@
        if (query.getStart() != null) query.setStart(query.getStart() + " 00:00:00");
        if (query.getEnd() != null) query.setEnd(query.getEnd() + " 23:59:59");
        List<WorkOrderVO> export = baseMapper.export(query);
        if(CollectionUtils.isEmpty(export)) return new ArrayList<WorkOrderVO>();
        List<String> ips = export.stream().map(WorkOrderVO::getIp).collect(Collectors.toList());
        //查出相同ip的设备、并查出标签
        List<TMonitorResult> monitorVOS = monitorMapper.getByIp(ips);
        //获取动态列数据
        List<Integer> pointIds = monitorVOS.stream().map(TMonitorResult::getPointId).collect(Collectors.toList());
        List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds);
        //补充动态列数据
        if (!CollectionUtils.isEmpty(dynamics)) {
            Map<Integer, List<DynamicColumnVO>> map = dynamics.stream().collect(Collectors.groupingBy(DynamicColumnVO::getRefId));
            for (TMonitorResult tMonitorResult : monitorVOS) {
                Integer pointId = tMonitorResult.getPointId();
                tMonitorResult.setDynamicColumnList(map.get(pointId));
            }
        }
        export.forEach(result->{
           StringBuilder tag = new StringBuilder("" + (result.getProvinceTagVideo() ? "省厅视频、" : "")+(result.getProvinceTagCar() ? "省厅车辆、" : "")+(result.getProvinceTagFace() ? "省厅人脸、" : "") + (result.getImportantTag() ? "重点点位、" : "") + (result.getImportantCommandImageTag() ? "重点指挥图像、" : "") + (result.getDeptTag() ? "部级、" : ""));
            // åˆ é™¤å­—符串末尾的“、”
            StringBuilder dynamicTag = new StringBuilder("");
            Boolean provinceTagVideo = false;
            Boolean provinceTagCar = false;
            Boolean provinceTagFace = false;
            Boolean importantTag = false;
            Boolean importantCommandImageTag = false;
            Boolean deptTag = false;
            List<String> dynamicTags = new ArrayList<>();
            for (TMonitorResult tagVO : monitorVOS) {
                if(tagVO.getIp().equals(result.getIp())){
                    if(tagVO.getProvinceTagVideo()) provinceTagVideo = true;
                    if(tagVO.getProvinceTagCar()) provinceTagCar = true;
                    if(tagVO.getProvinceTagFace()) provinceTagFace = true;
                    if(tagVO.getImportantTag()) importantTag = true;
                    if(tagVO.getImportantCommandImageTag()) importantCommandImageTag = true;
                    if(tagVO.getDeptTag()) deptTag = true;
                    //动态列处理加在标签里
                    if (!CollectionUtils.isEmpty(tagVO.getDynamicColumnList())) {
                        List<DynamicColumnVO> dynamicColumnList = tagVO.getDynamicColumnList();
                        for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) {
                            if(!dynamicTags.contains(dynamicColumnVO.getColumnValue())) dynamicTags.add(dynamicColumnVO.getColumnValue());
                        }
                    }
                }
            }
            for (String tag : dynamicTags) {
                dynamicTag.append(tag).append("、");
            }
            StringBuilder tag = new StringBuilder("" + (provinceTagVideo ? "省厅视频、" : "")+(provinceTagCar ? "省厅车辆、" : "")+(provinceTagFace ? "省厅人脸、" : "") + (importantTag ? "重点点位、" : "") + (importantCommandImageTag ? "重点指挥图像、" : "") + (deptTag ? "部级、" : ""));
            if (tag.toString().endsWith("、")) {
                tag = new StringBuilder(tag.substring(0, tag.length() - 1));
            }
            if (dynamicTag.toString().endsWith("、")) {
                dynamicTag = new StringBuilder(dynamicTag.substring(0, dynamicTag.length() - 1));
            }
            result.setTag(tag.toString());
            result.setDynamicTag(dynamicTag.toString());
        });
        return export;
    }
ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -201,7 +201,11 @@
        Assert.notNull(entity, "记录不存在");
        YwPointVO vo = YwPointVO.getVoByEntity(entity, null);
        if (Objects.nonNull(entity.getDeptId())) {
            vo.setDeptIds(sysDeptMapper.selectParents(entity.getDeptId()));
            //TODO:方法待完善 ç®€å•处理
            List<Long> deptIds = sysDeptMapper.selectParents(entity.getDeptId());
            deptIds.remove(deptIds.size()-1);
            deptIds.add(entity.getDeptId());
            vo.setDeptIds(deptIds);
        }
        return Result.ok().data(vo);
    }
@@ -436,40 +440,32 @@
        }
        //根据label_value和ref_id判断是否是同一数据
        for (PointExport pointExport : dataList) {
            //得到excel中动态列名作为key的map
            Map<String, DynamicColumnVO> exportMap = pointExport.getDynamicData().stream().collect(Collectors.toMap(DynamicColumnVO::getLabelValue, Function.identity()));
            //查出数据库中这个点位的动态列
            List<DynamicColumnVO> dynamicColumnVOS = dynamicVOMap.get(pointExport.getId());
            if (!CollectionUtils.isEmpty(dynamicColumnVOS)) {
                //遍历数据库中这个点位的动态列,并根据动态列名找出excel中的值
                for (DynamicColumnVO vo : dynamicColumnVOS) {
                    DynamicColumnVO dynamicColumnVO = exportMap.get(vo.getLabelValue());
                    //存在说明excel有这个数据,将数据库这个数据的值改为excel的值
                    if (dynamicColumnVO.getColumnValue() != null) {
                        DynamicColumnValue entity = new DynamicColumnValue();
                        entity.setColumnValue(dynamicColumnVO.getColumnValue());
                        entity.setDynamicColumnId(vo.getId());
                        entity.setRefId(vo.getRefId());
                        entity.setId(vo.getValueId());
                        updateList.add(entity);
            //数据库中的动态列
            List<DynamicColumnVO> dynamicColumnVOS = dynamicVOMap.getOrDefault(pointExport.getId(), Collections.emptyList());
            Map<String, DynamicColumnVO> databaseMap = dynamicColumnVOS.stream()
                    .collect(Collectors.toMap(DynamicColumnVO::getLabelValue, Function.identity()));
            for (DynamicColumnVO excelVo : pointExport.getDynamicData()) {
                String labelValue = excelVo.getLabelValue();
                DynamicColumnVO databaseVo = databaseMap.get(labelValue);
                //如果excel值不为空判定为新增或修改
                if (excelVo.getColumnValue() != null) {
                    Integer dynamicId = dictionary.get(labelValue);
                    DynamicColumnValue entity = new DynamicColumnValue();
                    entity.setColumnValue(excelVo.getColumnValue());
                    entity.setRefId(pointExport.getId());
                    //数据库找不到为新增否则为修改
                    if (databaseVo != null) {
                        entity.setDynamicColumnId(databaseVo.getId());
                        entity.setId(databaseVo.getValueId());
                        updateList.add(entity);
                    } else {
                        //不存在则取消标签,删除
                        deleteList.add(vo.getValueId());
                    }
                }
            } else {
                //数据库里查不到excel里面的这个点位动态列,全为新增
                List<DynamicColumnVO> dynamicData = pointExport.getDynamicData();
                for (DynamicColumnVO excelData : dynamicData) {
                    if (excelData.getColumnValue() != null) {
                        Integer dynamicId = dictionary.get(excelData.getLabelValue());
                        DynamicColumnValue entity = new DynamicColumnValue();
                        entity.setColumnValue(excelData.getColumnValue());
                        entity.setDynamicColumnId(dynamicId);
                        entity.setRefId(pointExport.getId());
                        insertList.add(entity);
                    }
                } else if (databaseVo != null) {
                    //excel里为空但是数据库存在 åˆ é™¤
                    deleteList.add(databaseVo.getValueId());
                }
            }
        }
ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -228,7 +228,7 @@
//                }
//            }
            //前端感知源治理工作(时钟同步规则、OSD规则、一机一档规则)
            if (ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType) || ErrorType.CLOCK_RIGHT.getValue().equals(errorType)) {
            if (ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType) || ErrorType.CLOCK_RIGHT.getValue().equals(errorType) || ErrorType.POINT_INFO_ERROR.getValue().equals(errorType)) {
                if (!CollectionUtils.isEmpty(monitorRuleMap)) {
                    monitorRuleMap.forEach((contractId, rules) -> {
                        Integer unitId = rules.get(0).getUnitId();
@@ -252,7 +252,7 @@
                }
            }
            //点位异常情况处理(镜头异常、摄像头遮挡等)
            if (ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType)) {
            if (ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType) || ErrorType.SIGNAL_LOSS.getValue().equals(errorType) || ErrorType.SCREEN_COLOR_DEVIATION.getValue().equals(errorType) || ErrorType.SNOW_STORM.getValue().equals(errorType) || ErrorType.STRIPE_INTERFERENCE.getValue().equals(errorType) || ErrorType.ABNORMAL_CLARITY.getValue().equals(errorType)) {
                if (!CollectionUtils.isEmpty(monitorRuleMap)) {
                    siteRuleMap.forEach((contractId, rules) -> {
                        Integer unitId = rules.get(0).getUnitId();
ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -581,24 +581,23 @@
        car.setViewConnectStability(new BigDecimal(score.getDownCarDataUploadScoreString() == null ? "1" : score.getDownCarDataUploadScoreString()));
        car.setSiteOnline(new BigDecimal(score.getDownCrossQualityCarScoreString() == null ? "1" : score.getDownCrossQualityCarScoreString()));
        car.setDeviceDirectoryConsistent(new BigDecimal(score.getDownCrossNumPushCarScoreString() == null ? "1" : score.getDownCrossNumPushCarScoreString()));
        //TODO:待完善
        //TODO:没找到考核项
        car.setVehicleInformationCollectionAccuracy(new BigDecimal("1"));
        //TODO:待完善 é‡ç‚¹æ€Žä¹ˆåŠ è¿›åŽ»
        car.setVehicleCaptureIntegrity(new BigDecimal(score.getDownCrossAllCarDataIntegrityScoreString() == null ? "1" : score.getDownCrossAllCarDataIntegrityScoreString()));
        //TODO:待完善 ä¸¤ä¸ªé¡¹åˆæˆä¸€ä¸ª
        //海康是设为1的,但是接口推的原始数据
        car.setVehicleCaptureAccuracy(new BigDecimal("1"));
        car.setVehicleTimingAccuracy(new BigDecimal(score.getDownCrossCarInvertScoreString() == null ? "1" : score.getDownCrossCarInvertScoreString()));
        car.setVehicleUploadTimeliness(new BigDecimal(score.getDownCrossAllCarDelayScoreString() == null ? "1" : score.getDownCrossAllCarDelayScoreString()));
        //TODO:待完善
        //TODO:没找到考核项
        car.setVehicleUrlAvailability(new BigDecimal("1"));
        car.setVehiclePictureAvailability(new BigDecimal(score.getDownCrossPictureQualityCarScoreString() == null ? "1" : score.getDownCrossPictureQualityCarScoreString()));
        face.setViewConnectStability(new BigDecimal(score.getDownFaceDataUploadScoreString() == null ? "1" : score.getDownFaceDataUploadScoreString()));
        face.setSiteOnline(new BigDecimal(score.getDownFaceDataUploadScoreString() == null ? "1" : score.getDownFaceDataUploadScoreString()));
        face.setDeviceDirectoryConsistent(new BigDecimal(score.getDownCrossNumPushCarScoreString() == null ? "1" : score.getDownCrossNumPushCarScoreString()));
        //TODO:待完善
        face.setDeviceDirectoryConsistent(new BigDecimal(score.getDownCrossNumPushFaceScoreString() == null ? "1" : score.getDownCrossNumPushFaceScoreString()));
        //TODO:没找到考核项
        face.setFaceInformationCollectionAccuracy(new BigDecimal("1"));
        //TODO:待完善
        //TODO:没找到考核项
        face.setFacePictureQualification(new BigDecimal("1"));
        face.setFaceTimingAccuracy(new BigDecimal(score.getDownCrossFaceInvertScoreString() == null ? "1" : score.getDownCrossFaceInvertScoreString()));
        face.setFaceUploadTimeliness(new BigDecimal(score.getDownCrossAllFaceDelayScoreString() == null ? "1" : score.getDownCrossAllFaceDelayScoreString()));
ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
@@ -180,21 +180,21 @@
               d.area,
               CASE
                   WHEN cs.examine_tag = '0' THEN '省厅'
                   WHEN cs.examine_tag = '1' THEN '市局'
                   WHEN cs.examine_tag = '1' THEN '区县'
                   WHEN cs.examine_tag = '2' THEN '' END        AS examineTag,
               ct.template_name                                 AS templateName,
               cs.score
        FROM t_check_score cs
                 LEFT JOIN t_check_template ct ON cs.template_id = ct.id
                 LEFT JOIN sys_dept d ON cs.dept_id = d.dept_id
        WHERE cs.score < ct.alarm_score
        WHERE cs.score < ct.alarm_score and cs.create_time between #{startTime} and #{endTime}
        ORDER BY cs.create_time DESC
        ]]>
    </select>
    <select id="calculate" resultType="java.util.Map">
        SELECT area              AS deptName,
               ROUND(AVG(score)) AS score
               ROUND(AVG(score),2) AS score
        FROM t_check_score tcs
                 LEFT JOIN sys_dept d ON tcs.dept_id = d.dept_id
        WHERE examine_tag = 1
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -696,4 +696,14 @@
        on m.serial_number = p.serial_number
        where (m.camera_fun_type = '2' or m.camera_fun_type = '3') and p.examine_status = 1
    </select>
    <select id="getByIp" resultType="com.ycl.platform.domain.result.SYS.TMonitorResult">
        select m.ip,m.serial_number as no,p.id as pointId,p.province_tag_video,p.province_tag_car,p.province_tag_face,p.dept_tag,p.important_tag,p.important_command_image_tag
        from t_monitor m
        left join t_yw_point p on m.serial_number = p.serial_number
        where m.ip in
        <foreach collection="ipList" item="ip" separator="," close=")" open="(">
            #{ip}
        </foreach>
    </select>
</mapper>
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -265,6 +265,7 @@
            WHERE DATE_FORMAT(w.create_time, '%Y') = DATE_FORMAT(NOW(), '%Y')
                AND w.deleted = 0 AND unit_id = #{unitId}
            GROUP BY dateType
            ORDER BY dateType
        </if>
        <if test="dateType == 'week'">
@@ -281,6 +282,7 @@
            w.create_time BETWEEN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) AND DATE_ADD(CURDATE(), INTERVAL (6 - WEEKDAY(CURDATE())) DAY)
               AND w.deleted = 0 AND unit_id = #{unitId}
            GROUP BY dateType
            ORDER BY dateType
        </if>
        <if test="dateType == 'day'">
@@ -297,6 +299,7 @@
                DATE_FORMAT(w.create_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE())
              AND w.deleted = 0 AND unit_id = #{unitId}
            GROUP BY dateType
            ORDER BY dateType
        </if>
    </select>
ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -87,7 +87,7 @@
        SELECT t_yw_point.id, point_name, start_time, end_time, status, unit_name AS remark
        FROM t_yw_point
                 LEFT JOIN t_yw_unit ON t_yw_unit.id = t_yw_point.unit_id AND t_yw_point.deleted = 0
        WHERE t_yw_point.deleted = 0
        WHERE t_yw_point.deleted = 0 AND t_yw_point.examine_status = 1
          AND TIMESTAMPDIFF(MONTH, NOW(), end_time) <= (SELECT config_value
                                                        FROM sys_config
                                                        WHERE config_key = 'operation.and.maintenance.expiration.warning.time')