fuliqi
2025-01-07 e23edcf2619ad46fd77a710fca6c21de78234bc0
核算重构完成
18个文件已修改
245 ■■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResult.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/excel/CalculateExport.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractResultVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/ContractResultServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/ContractResultTask.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/HKTask.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/MonitorTask.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResult.java
@@ -45,4 +45,7 @@
    private Integer deleted;
    private Date updateTime;
    private Integer whichYear;
    private Integer whichMonth;
}
ycl-pojo/src/main/java/com/ycl/platform/domain/excel/CalculateExport.java
@@ -40,7 +40,7 @@
     * 分数
     */
    @ExcelProperty({"自贡市公共视频监控系统续维合同", "分数"})
    private Integer score;
    private BigDecimal score;
    /**
     * 金额
ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java
@@ -28,5 +28,6 @@
    private Integer contractId;
    private Integer whichYear;
}
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java
@@ -54,6 +54,8 @@
    private List<CalculateRecordVO> recordList;
    private Integer whichYear;
    private Integer whichMonth;
    private Integer latestMonth;
    public static CalculateReportVO getVoByEntity(@NonNull CalculateReport entity, CalculateReportVO vo) {
        if(vo == null) {
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractResultVO.java
@@ -49,4 +49,6 @@
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createEndTime;
    private Integer whichYear;
    private Integer whichMonth;
}
ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java
@@ -69,8 +69,8 @@
    @PostMapping("/export")
    @ApiOperation(value = "导出", notes = "导出")
    @PreAuthorize("@ss.hasPermi('system:calculate:report:export')")
    public void export(Integer contractId, HttpServletResponse response) {
        calculateReportService.export(contractId, response);
    public void export(Integer calculateId,Integer contractId, HttpServletResponse response) {
        calculateReportService.export(calculateId,contractId, response);
    }
}
ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java
@@ -42,5 +42,5 @@
     * 导出数据
     * @return 数据
     */
    List<CalculateExport> exportData(Integer contractId);
    List<CalculateExport> exportData(Integer calculateId);
}
ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java
@@ -55,7 +55,7 @@
    /**
     * 根据id查找
     * @param id
     * @param
     * @return
     */
    Result detail(CalculateReportQuery query);
@@ -77,14 +77,14 @@
    /**
     * 修改发布状态
     *
     * @param reportId
     * @param
     * @return
     */
    Result updatePublishStatus(Integer contractId,Integer whichYear);
    /**
     * 修改发布状态
     *
     * @param reportId
     * @param
     * @return
     */
    Result updatePublishStatusById(Integer id,String status);
@@ -92,5 +92,5 @@
     * 导出
     * @param response 响应
     */
    void export(Integer contractId, HttpServletResponse response);
    void export(Integer calculateId,Integer contractId, HttpServletResponse response);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java
@@ -16,14 +16,18 @@
import com.ycl.platform.domain.query.CalculateReportQuery;
import com.ycl.platform.domain.vo.CalculateReportDetailVO;
import com.ycl.platform.domain.vo.CalculateReportVO;
import com.ycl.platform.domain.vo.ContractResultVO;
import com.ycl.platform.mapper.CalculateRecordMapper;
import com.ycl.platform.mapper.CalculateReportMapper;
import com.ycl.platform.service.CalculateReportService;
import com.ycl.platform.service.ICalculateRuleService;
import com.ycl.system.Result;
import com.ycl.system.entity.SysRole;
import com.ycl.system.entity.SysUser;
import com.ycl.system.page.PageUtil;
import com.ycl.utils.SecurityUtils;
import enumeration.general.CalculateReportStatusEnum;
import enumeration.general.PublishType;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
@@ -34,6 +38,7 @@
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Date;
@@ -125,7 +130,10 @@
    @Override
    public Result page(CalculateReportQuery query) {
        IPage<CalculateReportVO> page = PageUtil.getPage(query, CalculateReportVO.class);
        //只能看自己单位
        query.setUnitId(SecurityUtils.getUnitId());
        //只能看已发布
        roleControl(query);
        baseMapper.page(query, page);
        page.getRecords().stream().forEach(item -> {
            if (Objects.isNull(item)) {
@@ -139,23 +147,29 @@
    /**
     * 根据id查找
     * @param id
     * @param
     * @return
     */
    @Override
    public Result detail(CalculateReportQuery query) {
        roleControl(query);
        // 明细列表
        CalculateReportDetailVO detail = baseMapper.getById(query);
        if (Objects.nonNull(detail) && ! CollectionUtils.isEmpty(detail.getRecordList())) {
            if (CalculateReportStatusEnum.NOT_PUBLISH.equals(detail.getStatus())) {
                detail.getRecordList().get(0).setLatest(Boolean.TRUE);
            } else {
                detail.getRecordList().get(0).setLatest(Boolean.FALSE);
            }
        }
        return Result.ok().data(detail);
    }
    private void roleControl(CalculateReportQuery query) {
        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
        SysUser user = SecurityUtils.getLoginUser().getUser();
        if (!user.isAdmin()) {
            for (SysRole role : roles) {
                //菜单的地方增加了一个按钮,角色权限编辑如果勾上了说明只能查看已发布
                if (role.getPermissions().contains("check:contract:role:publish")) {
                    query.setStatus(PublishType.PUBLISHED.getCode());
                }
            }
        }
    }
    /**
     * 列表
     * @return
@@ -211,13 +225,18 @@
    @Override
    @SneakyThrows
    public void export(Integer contractId, HttpServletResponse response) {
    public void export(Integer calculateId,Integer contractId, HttpServletResponse response) {
        // 获取数据
        List<CalculateExport> list = baseMapper.exportData(contractId);
        List<CalculateExport> list = baseMapper.exportData(calculateId);
        CalculateExport calculateExport = new CalculateExport();
        calculateExport.setRuleName("合计");
        calculateExport.setNum(list.stream().mapToInt(CalculateExport::getNum).sum());
        calculateExport.setScore(100 + list.stream().mapToInt(CalculateExport::getScore).sum());
        calculateExport.setScore(list.stream()
                .map(CalculateExport::getScore)
                .reduce(BigDecimal.ZERO, BigDecimal::add) // 计算总和
                .add(BigDecimal.valueOf(100)) // 加上100
                .setScale(1, RoundingMode.HALF_UP));
        list.add(calculateExport);
        // 获取规则
        List<CalculateRule> ruleList = calculateRuleService.list(new LambdaQueryWrapper<CalculateRule>().eq(CalculateRule::getContractId, contractId));
ycl-server/src/main/java/com/ycl/platform/service/impl/ContractResultServiceImpl.java
@@ -8,7 +8,11 @@
import com.ycl.platform.mapper.ContractResultMapper;
import com.ycl.platform.mapper.ContractResultRecordMapper;
import com.ycl.platform.service.IContractResultService;
import com.ycl.system.entity.BaseEntity;
import com.ycl.system.entity.SysRole;
import com.ycl.system.entity.SysUser;
import com.ycl.utils.SecurityUtils;
import enumeration.general.PublishType;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -16,6 +20,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
@@ -52,7 +57,7 @@
    @Override
    public List<ContractResultVO> selectCheckResultList(ContractResultVO contractResult) {
        //避免查询条件失效
        if(contractResult.getUnitId()==null) {
        if (contractResult.getUnitId() == null) {
            Integer unitId = SecurityUtils.getUnitId();
            Long uid = null;
            if (Objects.nonNull(unitId)) {
@@ -60,8 +65,22 @@
            }
            contractResult.setUnitId(uid);
        }
        roleControl(contractResult);
        return checkResultMapper.selectCheckResultList(contractResult);
    }
    private void roleControl(ContractResultVO contractResult) {
        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
        SysUser user = SecurityUtils.getLoginUser().getUser();
        if (!user.isAdmin()) {
            for (SysRole role : roles) {
                if (role.getPermissions().contains("check:contract:role:publish")) {
                    contractResult.setPublish(1);
                }
            }
        }
    }
    /**
     * 新增考核结果
@@ -122,9 +141,11 @@
    @Override
    public Boolean publish(Long id) {
        ContractResult contractResult = checkResultMapper.selectById(id);
        return new LambdaUpdateChainWrapper<>(checkResultMapper)
                .eq(ContractResult::getId, id)
                .set(ContractResult::getPublish, 1)
                .set(ContractResult::getPublish, contractResult.getPublish() == 0 ? 1 : 0)
                .set(ContractResult::getPublishId, SecurityUtils.getLoginUser().getUserId())
                .update();
    }
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -1155,6 +1155,7 @@
            Boolean deptTag = false;
            List<String> dynamicTags = new ArrayList<>();
            for (TMonitorResult tagVO : monitorVOS) {
                //省厅标签通过ip判断 (运维要求)
                if(tagVO.getIp().equals(result.getIp())){
                    if(tagVO.getProvinceTagVideo()) provinceTagVideo = true;
                    if(tagVO.getProvinceTagCar()) provinceTagCar = true;
@@ -1162,6 +1163,9 @@
                    if(tagVO.getImportantTag()) importantTag = true;
                    if(tagVO.getImportantCommandImageTag()) importantCommandImageTag = true;
                    if(tagVO.getDeptTag()) deptTag = true;
                }
                //动态列根据国标判断
                if (tagVO.getNo().equals(result.getSerialNumber())) {
                    //动态列处理加在标签里
                    if (!CollectionUtils.isEmpty(tagVO.getDynamicColumnList())) {
                        List<DynamicColumnVO> dynamicColumnList = tagVO.getDynamicColumnList();
ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
@@ -9,6 +9,7 @@
import com.ycl.utils.DateUtils;
import com.ycl.utils.bean.BeanUtils;
import enumeration.general.CalculateReportStatusEnum;
import enumeration.general.PublishType;
import lombok.Data;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -48,23 +49,28 @@
            // 上个月扣分记录
            List<ContractScore> contractScore = contractScoreService.getDateRangeScoreByContractId(tContract.getId(), startTime, endTime);
            // 新增考核结果
            //获取上个月时间
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.MONTH, -1);
            ContractResult contractResult = getCheckResult(tContract, contractScore);
            contractResult.setWhichMonth(calendar.get(Calendar.MONTH)+1);
            contractResult.setWhichYear(calendar.get(Calendar.YEAR));
            checkResultService.save(contractResult);
            // 新增考核结果记录
            List<ContractResultRecord> contractResultRecord = getContractResultRecord(contractScore, contractResult);
            checkResultService.saveBatchRecord(contractResultRecord);
//            // 新增考核结果记录
//            List<ContractResultRecord> contractResultRecord = getContractResultRecord(contractScore, contractResult);
//            checkResultService.saveBatchRecord(contractResultRecord);
            // 新增核算明细记录
            CalculateRecord calculateRecord = new CalculateRecord();
            calculateRecord.setScore(contractResult.getScore());
            //改为直接去查
//            calculateRecord.setScore(contractResult.getScore());
            calculateRecord.setContractId(Integer.parseInt(tContract.getId()+""));
            calculateRecord.setCreateTime(new Date());
            calculateRecord.setUpdateTime(new Date());
            calculateRecord.setStatus(CalculateReportStatusEnum.NOT_PUBLISH.getValue());
            Calendar calendar = Calendar.getInstance();
            calculateRecord.setStatus(PublishType.UNPUBLISHED.getCode());
            calculateRecord.setWhichYear(calendar.get(Calendar.YEAR));
            calculateRecord.setWhichMonth(calendar.get(Calendar.MONTH)+1);
            calculateRecordMapper.insert(calculateRecord);
        }
    }
@@ -100,7 +106,8 @@
        contractResult.setContractId(tContract.getId());
        contractResult.setPublish(0);
        contractResult.setCheckTime(DateUtils.getNowDate());
        contractResult.setScore(contractScore.isEmpty() ? new BigDecimal("100") : new BigDecimal("100").subtract(contractScore.stream().map(ContractScore::getScore).reduce(BigDecimal::add).get()));
        //改为直接去查
//        contractResult.setScore(contractScore.isEmpty() ? new BigDecimal("100") : new BigDecimal("100").subtract(contractScore.stream().map(ContractScore::getScore).reduce(BigDecimal::add).get()));
        return contractResult;
    }
ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -204,23 +204,24 @@
                TMonitor monitor = map.get(item.getExternalIndexCode());
                item.setIp(monitor.getIp());
            });
            List<UpdateOnlineVO> willUpdateList = totalResult.stream().map(item -> {
                UpdateOnlineVO vo = new UpdateOnlineVO();
                vo.setOnline(item.getDataCount() > 0 ? 1 : -1);
                vo.setIp(map.get(item.getExternalIndexCode()).getIp());
                vo.setUpdateTime(now);
                return vo;
            }).collect(Collectors.toList());
            monitorMapper.updateOnlineFromUyOrHk(willUpdateList);
            //离线生成工单,一个ip只生成一个工单
            List<SnapshotDataMonitorResult> workOrders = new ArrayList<>(totalResult.stream()
                    .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getDataCount() > 0 ? 1 : -1))
                    .collect(Collectors.toMap(
                            SnapshotDataMonitorResult::getIp,
                            Function.identity(),
                            (existing, replacement) -> existing // 如果遇到相同的 IP,保留第一个(existing)
                    )).values());
            uyErrorTypeCheckService.hkOnlineCheck(workOrders);
            //海康不做在线监测
//            List<UpdateOnlineVO> willUpdateList = totalResult.stream().map(item -> {
//                UpdateOnlineVO vo = new UpdateOnlineVO();
//                vo.setOnline(item.getDataCount() > 0 ? 1 : -1);
//                vo.setIp(map.get(item.getExternalIndexCode()).getIp());
//                vo.setUpdateTime(now);
//                return vo;
//            }).collect(Collectors.toList());
//            monitorMapper.updateOnlineFromUyOrHk(willUpdateList);
//            //离线生成工单,一个ip只生成一个工单
//            List<SnapshotDataMonitorResult> workOrders = new ArrayList<>(totalResult.stream()
//                    .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getDataCount() > 0 ? 1 : -1))
//                    .collect(Collectors.toMap(
//                            SnapshotDataMonitorResult::getIp,
//                            Function.identity(),
//                            (existing, replacement) -> existing // 如果遇到相同的 IP,保留第一个(existing)
//                    )).values());
//            uyErrorTypeCheckService.hkOnlineCheck(workOrders);
        }
        log.info("结束抓拍数据量检测结果数据同步");
    }
ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -104,7 +104,6 @@
            //准备插入点位表的数据
            List<YwPoint> ywPointList = new ArrayList<>();
            //全年留存
            for (MonitorQualifyResult result : oneMachineFileResults) {
                TMonitor monitor = getMonitor(result, monitorVOMap, osdMap);
@@ -132,7 +131,7 @@
                //老设备状态改为不参与考核
                if (!points.contains(key)) {
                    value.setExamineStatus(Boolean.FALSE);
                    //单位设置为空(TODO:为啥)
                    //单位设置为空
                    value.setUnitId(null);
                    ywPointList.add(value);
                }
ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml
@@ -30,7 +30,7 @@
    </update>
    <update id="batchPublish">
        update t_calculate_record set status = 'publish'
        update t_calculate_record set status = 'PUBLISHED'
        where contract_id = #{contractId} and which_year =#{whichYear}
    </update>
ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml
@@ -52,8 +52,9 @@
        tyu.unit_name,
        tc.name as contractName,
        tcr.which_year,
        tcr.which_month,
        SUM(tcr.deduct_money) AS deductMoney,
        MAX(tcr.create_time) AS latest_time,
        MAX(tcr.which_month) AS latest_month,
        (
        SELECT deduct_money
        FROM t_calculate_record
@@ -84,7 +85,7 @@
        <result column="status" property="status"/>
        <collection property="ruleList" column="contract_id" ofType="com.ycl.platform.domain.vo.CalculateMoneyRuleVO"
                    select="selectRuleByContractId"/>
        <collection property="recordList" column="{contractId=contract_id, whichYear=which_year}" ofType="com.ycl.platform.domain.vo.CalculateRecordVO"
        <collection property="recordList" column="{contractId=contract_id, whichYear=which_year,status=status}" ofType="com.ycl.platform.domain.vo.CalculateRecordVO"
                    select="selectRecordByContractId"/>
    </resultMap>
@@ -99,44 +100,57 @@
    <select id="selectRecordByContractId" resultType="com.ycl.platform.domain.vo.CalculateRecordVO">
        SELECT
               id,
               create_time  as createTime,
               score,
               deduct_money as deductMoney,
               which_year as whichYear,
               which_month as whichMonth,
               status
        tcr.id,
        tcr.create_time as createTime,
        (IFNULL(-SUM(tcs.score), 0) + 100) AS score,
        tcr.deduct_money as deductMoney,
        tcr.which_year as whichYear,
        tcr.which_month as whichMonth,
        tcr.status
        FROM
             t_calculate_record
        WHERE
              contract_id = #{contractId} AND which_year = #{whichYear} AND deleted = 0
        t_calculate_record tcr
        LEFT JOIN t_contract_score tcs
            ON tcr.contract_id =tcs.contract_id
                   AND tcs.deleted=0
                   AND YEAR(tcs.create_time) = #{whichYear}
                   AND MONTH(tcs.create_time) = tcr.which_month
                   AND tcs.auditing_status = 'PASS'
        <where>
            tcr.contract_id = #{contractId} AND tcr.which_year = #{whichYear} AND tcr.deleted = 0
            <if test="status!=null">
                AND tcr.status=#{status}
            </if>
        </where>
        ORDER BY
            create_time
        tcr.create_time
    </select>
    <select id="getById" resultMap="DetailResultMap">
        SELECT tyu.unit_name,
               tc.name,
               tcr.id,
               tcr.contract_id,
               tcr.create_time,
               tcr.update_time,
               tcr.which_year
        tc.name,
        tcr.id,
        tcr.contract_id,
        tcr.create_time,
        tcr.update_time,
        tcr.which_year,
        #{query.status} as status
        FROM t_calculate_record tcr
                 INNER JOIN t_contract tc ON tcr.contract_id = tc.id
                 INNER JOIN t_yw_unit tyu ON tyu.id = tc.unit_id
        WHERE tcr.contract_id = #{query.contractId} AND tcr.which_year = #{query.whichYear}
        INNER JOIN t_contract tc ON tcr.contract_id = tc.id
        INNER JOIN t_yw_unit tyu ON tyu.id = tc.unit_id
        <where>
            tcr.contract_id = #{query.contractId} AND tcr.which_year = #{query.whichYear}
        </where>
        limit 1
    </select>
    <select id="exportData" resultType="com.ycl.platform.domain.excel.CalculateExport">
        SELECT
            a.rule_name,
            COUNT(b.id) AS num,
            IFNULL(-SUM(score), 0) AS score
        SELECT a.rule_name,
               COUNT(b.id)              AS num,
               IFNULL(-SUM(b.score), 0) AS score
        FROM t_calculate_rule a
        LEFT JOIN t_contract_score b ON b.rule_id = a.id AND auditing_status = 'PASS' AND b.deleted = 0
        WHERE a.contract_id = #{contractId} AND a.deleted = 0
        LEFT JOIN t_calculate_record tcr ON a.contract_id = tcr.contract_id And tcr.id = #{calculateId}
        LEFT JOIN t_contract_score b ON b.rule_id = a.id AND auditing_status = 'PASS' AND b.deleted = 0 AND YEAR (b.create_time) = tcr.which_year
        WHERE a.deleted = 0
        GROUP BY a.rule_name
    </select>
ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml
@@ -4,7 +4,8 @@
    <select id="selectCheckResultList" resultType="com.ycl.platform.domain.vo.ContractResultVO">
        SELECT c.*,
        SELECT c.id,c.publish,c.contract_id,c.check_time,c.unit_id,c.which_year,c.which_month,
        (IFNULL(-SUM(b.score), 0) + 100) AS score,
        u.unit_name AS unitName,
        ct.name AS contractName
        FROM t_contract_result c
@@ -12,7 +13,8 @@
        t_yw_unit u ON c.unit_id = u.id and u.deleted = 0
        LEFT JOIN
        t_contract ct ON c.contract_id = ct.id and ct.deleted = 0
        where
        LEFT JOIN t_contract_score b ON b.contract_id = c.contract_id AND auditing_status = 'PASS' AND b.deleted = 0  AND MONTH(b.create_time) = c.which_month AND YEAR(b.create_time) = c.which_year
        <where>
        c.deleted = 0
        <if test="unitId != null">
            AND c.unit_id = #{unitId}
@@ -23,16 +25,20 @@
        <if test="publish != null">
            AND c.publish = #{publish}
        </if>
        </where>
        GROUP BY c.id
    </select>
    <select id="selectCheckResultRecordList" resultType="com.ycl.platform.domain.entity.ContractResultRecord">
        SELECT
            a.rule_name,
            COUNT(b.id) AS num,
            IFNULL(-SUM(score), 0) AS score
            IFNULL(-SUM(b.score), 0) AS score
        FROM t_calculate_rule a
                LEFT JOIN t_contract_result_record b ON SUBSTRING_INDEX(b.rule_ids, ',', -1) = a.id AND b.deleted = 0  AND b.result_id = #{resultId}
        WHERE a.contract_id = #{contractId} AND a.deleted = 0
            LEFT JOIN t_contract_result tcr on a.contract_id = tcr.contract_id AND tcr.id = #{resultId}
            LEFT JOIN t_contract_score b ON b.rule_id = a.id AND auditing_status = 'PASS' AND b.deleted = 0  AND MONTH(b.create_time) = tcr.which_month AND YEAR(b.create_time) = tcr.which_year
        WHERE
        a.contract_id = #{contractId} AND a.deleted = 0
        GROUP BY a.rule_name
    </select>
</mapper>
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -701,7 +701,7 @@
        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
        where p.examine_status = 1 and m.ip in
        <foreach collection="ipList" item="ip" separator="," close=")" open="(">
            #{ip}
        </foreach>