| | |
| | | package com.ycl.platform.domain.excel; |
| | | |
| | | import com.alibaba.excel.annotation.ExcelIgnore; |
| | | import com.alibaba.excel.annotation.ExcelProperty; |
| | | import com.alibaba.excel.annotation.write.style.*; |
| | | import com.alibaba.excel.enums.BooleanEnum; |
| | |
| | | @ExcelProperty({"自贡市公共视频监控系统续维合同", "金额"}) |
| | | private BigDecimal money; |
| | | |
| | | /** |
| | | * 扣除分数 |
| | | */ |
| | | @ExcelIgnore |
| | | private BigDecimal calcFraction; |
| | | } |
| | |
| | | .add(BigDecimal.valueOf(100)) // 加上100 |
| | | .setScale(1, RoundingMode.HALF_UP)); |
| | | list.add(calculateExport); |
| | | list.forEach(item->{ |
| | | if("确保录像完整不定期对所有点位录像完整性抽查".equals(item.getRuleName())){ |
| | | item.setNum(item.getScore().abs().divide(item.getCalcFraction(),0,RoundingMode.HALF_UP).intValue()); |
| | | } |
| | | }); |
| | | // 获取规则 |
| | | List<CalculateRule> ruleList = calculateRuleService.list(new LambdaQueryWrapper<CalculateRule>().eq(CalculateRule::getContractId, contractId)); |
| | | // 输出文件 |
| | |
| | | )) |
| | | .append("loseCount", new Document("$sum", |
| | | new Document("$cond", Arrays.asList( |
| | | new Document("$eq", Arrays.asList("$recordStatus", -1)), |
| | | new Document("$in", Arrays.asList("$recordStatus", Arrays.asList(-1, 0))), |
| | | 1, |
| | | 0 |
| | | )) |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDateTime; |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | |
| | | log.info("开始抽查图片完整状态"); |
| | | //这个月随机抽取一天 |
| | | Date date = getRandomDate(); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); |
| | | //准备批量打分的集合 |
| | | List<ContractScore> contractScoreList = new ArrayList<>(); |
| | | //查询报备列表 |
| | |
| | | if (deduct) { |
| | | //需要扣除的分数,此规则只有一条不需要判断范围 |
| | | Double deductScore = ruleVO.getCalcFraction(); |
| | | ContractScore contractScore = getContractScore(ruleVO, deductScore, "1", Remark + "国标码为:" + serialNumber + "时间:" + new Date() + "存在大图不可用数据"); |
| | | ContractScore contractScore = getContractScore(ruleVO, deductScore, "1", Remark + "国标码为:" + serialNumber + "时间:" + format.format(date) + "存在大图不可用数据"); |
| | | contractScoreList.add(contractScore); |
| | | } |
| | | }); |
| | |
| | | log.info("开始抽查录像完整状态"); |
| | | //这个月随机抽取一天 |
| | | Date date = getRandomDate(); |
| | | // Calendar instance = Calendar.getInstance(); |
| | | // // 设定年、月、日(注意月份从0开始,即0代表1月,11代表12月) |
| | | // instance.set(2024, 10, 1); |
| | | // Date date = instance.getTime(); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); |
| | | //准备批量打分的集合 |
| | | List<ContractScore> contractScoreList = new ArrayList<>(); |
| | | //查询报备列表 |
| | |
| | | if (calculateRuleVO.getNum() != null && calculateRuleVO.getNum() > 0) { |
| | | //需要扣除的分数,此规则只有一条不需要判断范围 |
| | | double deductScore = calculateRuleVO.getCalcFraction() * calculateRuleVO.getNum(); |
| | | ContractScore contractScore = getContractScore(calculateRuleVO, deductScore, calculateRuleVO.getNum() + "", Remark + calculateRuleVO.getNum() + "路设备违反规则"); |
| | | ContractScore contractScore = getContractScore(calculateRuleVO, deductScore, calculateRuleVO.getNum() + "", Remark +"抽查时间"+format.format(date)+"存在"+ calculateRuleVO.getNum() + "路设备违反规则"); |
| | | contractScoreList.add(contractScore); |
| | | } |
| | | } |
| | |
| | | a.rule_name as ruleName, |
| | | a.rule_condition as detailName, |
| | | COUNT(b.id) AS num, |
| | | a.calc_fraction as calcFraction, |
| | | IFNULL(-SUM(b.score), 0) AS score |
| | | FROM t_calculate_rule a |
| | | LEFT JOIN t_calculate_record tcr ON a.contract_id = tcr.contract_id |