| | |
| | | private Integer deleted; |
| | | |
| | | private Date updateTime; |
| | | |
| | | private Integer whichYear; |
| | | private Integer whichMonth; |
| | | } |
| | |
| | | * 分数 |
| | | */ |
| | | @ExcelProperty({"自贡市公共视频监控系统续维合同", "分数"}) |
| | | private Integer score; |
| | | private BigDecimal score; |
| | | |
| | | /** |
| | | * 金额 |
| | |
| | | private Integer contractId; |
| | | |
| | | private Integer whichYear; |
| | | |
| | | } |
| | | |
| | |
| | | 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) { |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date createEndTime; |
| | | |
| | | private Integer whichYear; |
| | | private Integer whichMonth; |
| | | } |
| | |
| | | @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); |
| | | } |
| | | |
| | | } |
| | |
| | | * 导出数据 |
| | | * @return 数据 |
| | | */ |
| | | List<CalculateExport> exportData(Integer contractId); |
| | | List<CalculateExport> exportData(Integer calculateId); |
| | | } |
| | |
| | | |
| | | /** |
| | | * 根据id查找 |
| | | * @param id |
| | | * @param |
| | | * @return |
| | | */ |
| | | Result detail(CalculateReportQuery query); |
| | |
| | | /** |
| | | * 修改发布状态 |
| | | * |
| | | * @param reportId |
| | | * @param |
| | | * @return |
| | | */ |
| | | Result updatePublishStatus(Integer contractId,Integer whichYear); |
| | | /** |
| | | * 修改发布状态 |
| | | * |
| | | * @param reportId |
| | | * @param |
| | | * @return |
| | | */ |
| | | Result updatePublishStatusById(Integer id,String status); |
| | |
| | | * 导出 |
| | | * @param response 响应 |
| | | */ |
| | | void export(Integer contractId, HttpServletResponse response); |
| | | void export(Integer calculateId,Integer contractId, HttpServletResponse response); |
| | | } |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | @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)) { |
| | |
| | | |
| | | /** |
| | | * 根据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 |
| | |
| | | |
| | | @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)); |
| | |
| | | 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; |
| | |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | |
| | | @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)) { |
| | |
| | | } |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 新增考核结果 |
| | |
| | | |
| | | @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(); |
| | | } |
| | |
| | | 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; |
| | |
| | | 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(); |
| | |
| | | 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; |
| | |
| | | // 上个月扣分记录 |
| | | 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); |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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("结束抓拍数据量检测结果数据同步"); |
| | | } |
| | |
| | | //准备插入点位表的数据 |
| | | List<YwPoint> ywPointList = new ArrayList<>(); |
| | | |
| | | |
| | | //全年留存 |
| | | for (MonitorQualifyResult result : oneMachineFileResults) { |
| | | TMonitor monitor = getMonitor(result, monitorVOMap, osdMap); |
| | |
| | | //老设备状态改为不参与考核 |
| | | if (!points.contains(key)) { |
| | | value.setExamineStatus(Boolean.FALSE); |
| | | //单位设置为空(TODO:为啥) |
| | | //单位设置为空 |
| | | value.setUnitId(null); |
| | | ywPointList.add(value); |
| | | } |
| | |
| | | </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> |
| | | |
| | |
| | | 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 |
| | |
| | | <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> |
| | | |
| | |
| | | |
| | | <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> |
| | | |
| | |
| | | |
| | | |
| | | <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 |
| | |
| | | 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} |
| | |
| | | <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> |
| | |
| | | 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> |