| | |
| | | CONTRACT_RULE_Monitor_OSD(null,"OSD标识", 2), |
| | | CONTRACT_RULE_Monitor_OneFile(null,"一机一档", 2), |
| | | |
| | | CONTRACT_RULE_Store(3,"存储故障", 0), |
| | | CONTRACT_RULE_Store_24H(null,"因存储设备、云存储软件等引起平台不能正常查看历史图像,须在24小时排除故障,单次故障在24小时以内", 3), |
| | | CONTRACT_RULE_Store_48H(null,"因存储设备、云存储软件等引起平台不能正常查看历史图像,须在24小时排除故障,单次故障在48小时以内", 3), |
| | | CONTRACT_RULE_Store_Important(null,"因视频或者图片丢失导致重要案事件不能回放或查看", 3), |
| | | // CONTRACT_RULE_Store(3,"存储故障", 0), |
| | | // CONTRACT_RULE_Store_24H(null,"因存储设备、云存储软件等引起平台不能正常查看历史图像,须在24小时排除故障,单次故障在24小时以内", 3), |
| | | // CONTRACT_RULE_Store_48H(null,"因存储设备、云存储软件等引起平台不能正常查看历史图像,须在24小时排除故障,单次故障在48小时以内", 3), |
| | | // CONTRACT_RULE_Store_Important(null,"因视频或者图片丢失导致重要案事件不能回放或查看", 3), |
| | | |
| | | CONTRACT_RULE_Site(4,"对于前端点位异常情况的处理", 0), |
| | | CONTRACT_RULE_Site_Error(null,"镜头故障或污染或树枝遮挡或枪机视角偏移正常角度或补光灯应亮未亮", 4), |
| | | CONTRACT_RULE_Site(3,"对于前端点位异常情况的处理", 0), |
| | | CONTRACT_RULE_Site_Error24(null,"镜头故障或污染或树枝遮挡或枪机视角偏移正常角度或补光灯应亮未亮,24小时后未修复的", 3), |
| | | CONTRACT_RULE_Site_Error48(null,"镜头故障或污染或树枝遮挡或枪机视角偏移正常角度或补光灯应亮未亮,48小时后未修复的", 3), |
| | | |
| | | CONTRACT_RULE_VideoRecord(5,"确保录像完整不定期对所有点位录像完整性抽查", 0), |
| | | CONTRACT_RULE_VideoRecord(4,"确保录像完整不定期对所有点位录像完整性抽查", 0), |
| | | |
| | | CONTRACT_RULE_PicComplete(6,"确保图片完整不定期对所有人脸车辆以及智能前端抓拍的图片完整性抽查", 0), |
| | | CONTRACT_RULE_PicComplete_PicUnuseful(null,"发现后台存储不能调取前端设备图片", 6), |
| | | CONTRACT_RULE_PicComplete(5,"确保图片完整不定期对所有人脸车辆以及智能前端抓拍的图片完整性抽查", 0), |
| | | CONTRACT_RULE_PicComplete_PicUnuseful(null,"发现后台存储不能调取前端设备图片", 5), |
| | | |
| | | ; |
| | | private final Integer id; |
| | |
| | | STRIPE_INTERFERENCE("SCREENSTRIP", "条纹干扰","VIDEO"), |
| | | SCREEN_OCCLUSION("SCREENSHADE", "画面遮挡","VIDEO"), |
| | | ABNORMAL_CLARITY("SCREENBLUR", "清晰度异常","VIDEO"), |
| | | ABNORMAL_BRIGHTNESS("SCREENLIGHT", "亮度异常","VIDEO"), |
| | | // ABNORMAL_BRIGHTNESS("SCREENLIGHT", "亮度异常","VIDEO"), |
| | | OSD_ERROR("OSD", "osd异常","VIDEO"), |
| | | // VIDEO_LOSS("VIDEOMISS", "录像缺失","VIDEO"), |
| | | // VIDEO_NONE("NOVIDEO", "无录像","VIDEO"), |
| | |
| | | setTemplateRule(list,null,"前端感知源治理工作","OSD标识",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1); |
| | | setTemplateRule(list,null,"前端感知源治理工作","一机一档",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1); |
| | | |
| | | setTemplateRule(list,3,"存储故障","因存储设备、云存储软件等引起平台不能正常查看历史图像,单次故障时长在24小时以内的",24D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5); |
| | | setTemplateRule(list,null,"存储故障","因存储设备、云存储软件等引起平台不能正常查看历史图像,单次故障时长若超出24小时以上。",null,24D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0); |
| | | setTemplateRule(list,null,"存储故障","因视频或者图片丢失导致重要案事件不能回放或查看",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0); |
| | | |
| | | setTemplateRule(list,4,"对于前端点位异常情况的处理","镜头故障或污染或树枝遮挡或枪机视角偏移正常角度或补光灯应亮未亮,24小时后未修复的",null,24D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5); |
| | | setTemplateRule(list,3,"对于前端点位异常情况的处理","镜头故障或污染或树枝遮挡或枪机视角偏移正常角度或补光灯应亮未亮,24小时后未修复的",null,24D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5); |
| | | setTemplateRule(list,null,"对于前端点位异常情况的处理","镜头故障或污染或树枝遮挡或枪机视角偏移正常角度或补光灯应亮未亮,48小时后未修复的",null,48D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0); |
| | | |
| | | setTemplateRule(list,5,"确保录像完整不定期对所有点位录像完整性抽查","每路视频累计丢失10分钟以内",10D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.2); |
| | | setTemplateRule(list,4,"确保录像完整不定期对所有点位录像完整性抽查","每路视频累计丢失10分钟以内",10D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.2); |
| | | setTemplateRule(list,null,"确保录像完整不定期对所有点位录像完整性抽查","丢失10-60 分钟",10D,60D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5); |
| | | setTemplateRule(list,null,"确保录像完整不定期对所有点位录像完整性抽查","丢失1 小时-4 小时(含)",60D,240D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0); |
| | | setTemplateRule(list,null,"确保录像完整不定期对所有点位录像完整性抽查","丢失4 小时-12 小时(含)",240D,720D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.5); |
| | | setTemplateRule(list,null,"确保录像完整不定期对所有点位录像完整性抽查","丢失12 小时以上",null,720D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0); |
| | | |
| | | setTemplateRule(list,6,"确保图片完整不定期对所有人脸车辆以及智能前端抓拍的图片完整性抽查","发现后台存储不能调取前端设备图片",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0); |
| | | setTemplateRule(list,5,"确保图片完整不定期对所有人脸车辆以及智能前端抓拍的图片完整性抽查","发现后台存储不能调取前端设备图片",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0); |
| | | |
| | | |
| | | return list; |
| | |
| | | setTemplateRule(list,null,"前端感知源治理工作","OSD标识",24D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1); |
| | | setTemplateRule(list,null,"前端感知源治理工作","一机一档",24D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1); |
| | | |
| | | setTemplateRule(list,3,"存储故障","因存储设备、云存储软件等引起平台不能正常查看历史图像,须在24小时排除故障,单次故障在24小时以内",24D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5); |
| | | setTemplateRule(list,null,"存储故障","因存储设备、云存储软件等引起平台不能正常查看历史图像,须在24小时排除故障,单次故障在48小时以内",48D,25D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0); |
| | | setTemplateRule(list,null,"存储故障","因视频或者图片丢失导致重要案事件不能回放或查看",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0); |
| | | |
| | | setTemplateRule(list,4,"对于前端点位异常情况的处理","镜头故障或污染或树枝遮挡或枪机视角偏移正常角度或补光灯应亮未亮,24小时后未修复的",48D,25D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5); |
| | | setTemplateRule(list,3,"对于前端点位异常情况的处理","镜头故障或污染或树枝遮挡或枪机视角偏移正常角度或补光灯应亮未亮,24小时后未修复的",48D,25D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5); |
| | | setTemplateRule(list,null,"对于前端点位异常情况的处理","镜头故障或污染或树枝遮挡或枪机视角偏移正常角度或补光灯应亮未亮,48小时后未修复的",null,49D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0); |
| | | |
| | | setTemplateRule(list,5,"确保录像完整不定期对所有点位录像完整性抽查","每路视频累计丢失10分钟(含)以内",10D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.2); |
| | | setTemplateRule(list,4,"确保录像完整不定期对所有点位录像完整性抽查","每路视频累计丢失10分钟(含)以内",10D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.2); |
| | | setTemplateRule(list,null,"确保录像完整不定期对所有点位录像完整性抽查","丢失10-60 分钟(含)",60D,9D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5); |
| | | setTemplateRule(list,null,"确保录像完整不定期对所有点位录像完整性抽查","丢失1 小时-4 小时(含)",240D,59D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0); |
| | | setTemplateRule(list,null,"确保录像完整不定期对所有点位录像完整性抽查","丢失4 小时-12 小时(含)",720D,539D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.5); |
| | | setTemplateRule(list,null,"确保录像完整不定期对所有点位录像完整性抽查","丢失12 小时以上",null,719D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0); |
| | | |
| | | setTemplateRule(list,6,"确保图片完整不定期对所有人脸车辆以及智能前端抓拍的图片完整性抽查","发现后台存储不能调取前端设备图片",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0); |
| | | setTemplateRule(list,5,"确保图片完整不定期对所有人脸车辆以及智能前端抓拍的图片完整性抽查","发现后台存储不能调取前端设备图片",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0); |
| | | |
| | | return list; |
| | | } |
| | |
| | | import com.ycl.platform.domain.entity.WorkOrder; |
| | | import com.ycl.platform.domain.entity.YwPoint; |
| | | import com.ycl.platform.domain.result.HK.PicAccessResult; |
| | | import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; |
| | | import com.ycl.platform.domain.result.SYS.TMonitorResult; |
| | | import com.ycl.platform.domain.result.UY.RecordMetaDSumResult; |
| | | import com.ycl.platform.domain.result.UY.VideoOnlineResult; |
| | | import com.ycl.platform.domain.vo.CalculateRuleVO; |
| | | import com.ycl.platform.domain.vo.WorkOrderVO; |
| | | import com.ycl.platform.mapper.*; |
| | |
| | | import java.math.RoundingMode; |
| | | import java.time.LocalDateTime; |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | | |
| | |
| | | */ |
| | | @Slf4j |
| | | @Component("contractTask") |
| | | //TODO:重新看下逻辑 |
| | | public class ContractTask { |
| | | @Autowired |
| | | private MongoTemplate mongoTemplate; |
| | |
| | | * 合同考核 在线率每日任务检测 |
| | | * 查生效的合同关联的公司,获取unitId集合 |
| | | * 根据unitId查询对应点位获取各个公司管理的设备Ids |
| | | * 查询三种设备在线不在线情况,封装为一个map<国标码,在线状态> |
| | | * 计算每日每家公司的在线率存入mysql |
| | | * 月底计算平均值,根据在线率和合同标准扣减分数 |
| | | */ |
| | |
| | | List<Integer> unitIds = ruleVos.stream().map(CalculateRuleVO::getUnitId).collect(Collectors.toList()); |
| | | List<YwPoint> ywPoints = ywPointMapper.selectList(new QueryWrapper<YwPoint>().in("unit_id", unitIds)); |
| | | //key是unitId value是设备编码集合 |
| | | Map<Long, List<String>> unitMap = ywPoints.stream() |
| | | Map<Long, List<YwPoint>> unitMap = ywPoints.stream().filter(point -> point.getUnitId() != null) |
| | | .collect(Collectors.groupingBy( |
| | | YwPoint::getUnitId, |
| | | Collectors.mapping( |
| | | YwPoint::getSerialNumber, |
| | | Collectors.toList() |
| | | YwPoint::getUnitId |
| | | ) |
| | | )); |
| | | Map<String, Integer> onlineStatusMap = new HashMap<>(); |
| | | Date date = new Date(); |
| | | //车辆、人脸 |
| | | Query query = new Query(); |
| | | query.addCriteria(Criteria |
| | | .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date))); |
| | | List<TMonitorResult> tMonitorResults = mongoTemplate.find(query, TMonitorResult.class); |
| | | for (TMonitorResult result : tMonitorResults) { |
| | | if(result.getPingOnline()){ |
| | | onlineStatusMap.put(result.getNo(), Online); |
| | | }else { |
| | | onlineStatusMap.put(result.getNo(), Offline); |
| | | } |
| | | } |
| | | |
| | | ); |
| | | //查询报备列表 |
| | | List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate()); |
| | | //计算每个公司的点位在线率 |
| | | List<ContractRuleRecord> ruleRecordList = new ArrayList<>(); |
| | | unitMap.forEach((unitId, serialNumberList) -> { |
| | | unitMap.forEach((unitId, pointList) -> { |
| | | int totalSite = 0; |
| | | int onlineSite = 0; |
| | | for (String number : serialNumberList) { |
| | | for (YwPoint point : pointList) { |
| | | //报备过不纳入计算 |
| | | if (!CollectionUtils.isEmpty(reportNumbers) && reportNumbers.contains(number)) continue; |
| | | Integer status = onlineStatusMap.get(number); |
| | | if (!CollectionUtils.isEmpty(reportNumbers) && reportNumbers.contains(point.getSerialNumber())) |
| | | continue; |
| | | totalSite++; |
| | | if (Online.equals(status)) { |
| | | if (ApiConstants.UY_OnlineSite_Online.equals(point.getOnline())) { |
| | | onlineSite++; |
| | | } |
| | | } |
| | | BigDecimal online = new BigDecimal(onlineSite).divide(new BigDecimal(totalSite), 2, RoundingMode.DOWN); |
| | | BigDecimal online = BigDecimal.ONE; |
| | | if (totalSite != 0) { |
| | | online = new BigDecimal(onlineSite).divide(new BigDecimal(totalSite), 2, RoundingMode.DOWN); |
| | | } |
| | | ContractRuleRecord contractRuleRecord = new ContractRuleRecord(); |
| | | contractRuleRecord.setSiteOnline(online); |
| | | contractRuleRecord.setCreateTime(new Date()); |
| | |
| | | public void calculateOnlineScore() { |
| | | //TODO:检查表 |
| | | log.info("开始计算合同点位在线率分数"); |
| | | //如果是月底,需要统计平均在线率然后进行积分扣除 |
| | | // String now = DateUtils.getDate(); |
| | | //月底需要统计平均在线率然后进行积分扣除 |
| | | String mouthStart = DateUtils.getMouthStart(new Date()); |
| | | String mouthEnd = DateUtils.getMouthEnd(new Date()); |
| | | // if (now.equals(mouthEnd)) { |
| | | //查一个月的记录 |
| | | List<ContractRuleRecord> ruleMonthRecords = recordMapper.selectMonth(mouthStart, mouthEnd); |
| | | //通过unitId分单位 |
| | | //通过unitId分单位,获取当月数据map |
| | | Map<Long, List<ContractRuleRecord>> unitMap = ruleMonthRecords.stream().collect(Collectors.groupingBy(ContractRuleRecord::getUnitId)); |
| | | //查在线率规则 获取key为合同id,value为在线率规则的map |
| | | //查在线率规则 获取key为合同id,value为在线率规则集合 |
| | | Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream() |
| | | .filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_Online.getName().equals(calculateRuleVO.getRuleName())) |
| | | .collect(Collectors.groupingBy(CalculateRuleVO::getContractId)); |
| | |
| | | CalculateRuleVO calculateRuleVO = ruleList.get(0); |
| | | Integer unitId = calculateRuleVO.getUnitId(); |
| | | List<ContractRuleRecord> ruleRecordList = unitMap.get(Long.parseLong(unitId + "")); |
| | | if (!CollectionUtils.isEmpty(ruleMonthRecords)) { |
| | | if (!CollectionUtils.isEmpty(ruleRecordList)) { |
| | | BigDecimal siteOnlineTotal = ruleRecordList.stream().map(ContractRuleRecord::getSiteOnline).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal siteOnline = siteOnlineTotal.divide(new BigDecimal(ruleRecordList.size()), 2, RoundingMode.DOWN); |
| | | for (CalculateRuleVO ruleVO : ruleList) { |
| | |
| | | } |
| | | } |
| | | }); |
| | | // } |
| | | contractScoreService.saveBatch(contractScoreList); |
| | | log.info("结束计算合同点位在线率分数"); |
| | | } |
| | |
| | | )); |
| | | //前端感知源治理工作(时钟同步规则、OSD规则、一机一档规则) 获取key为合同id,value为规则的map |
| | | Map<Integer, List<CalculateRuleVO>> monitorRuleMap = ruleMap.get(ContractRule.CONTRACT_RULE_Monitor.getName()); |
| | | //存储故障(24小时以内,48小时以内) 获取key为合同id,value为规则的map |
| | | Map<Integer, List<CalculateRuleVO>> storeRuleMap = ruleMap.get(ContractRule.CONTRACT_RULE_Store.getName()); |
| | | //存储故障(24小时以内,48小时以内) 获取key为合同id,value为规则的map (改成手动的了) |
| | | // Map<Integer, List<CalculateRuleVO>> storeRuleMap = ruleMap.get(ContractRule.CONTRACT_RULE_Store.getName()); |
| | | //点位异常情况处理 获取key为合同id,value为规则的map |
| | | Map<Integer, List<CalculateRuleVO>> siteRuleMap = ruleMap.get(ContractRule.CONTRACT_RULE_Site.getName()); |
| | | //查询报备列表 |
| | |
| | | if (reportNumbers.contains(workOrder.getSerialNumber())) continue; |
| | | } |
| | | String errorType = workOrder.getErrorType(); |
| | | //存储故障 录像或图片访问异常 |
| | | //存储故障 录像或图片访问异常 (改成手动打分了) |
| | | // if (ErrorType.VIDEO_NONE.getValue().equals(errorType) || ErrorType.PIC_URLABNORMAL.getValue().equals(errorType)) { |
| | | // if (!CollectionUtils.isEmpty(storeRuleMap)) { |
| | | // storeRuleMap.forEach((contractId, rules) -> { |
| | |
| | | // } |
| | | // } |
| | | //前端感知源治理工作(时钟同步规则、OSD规则、一机一档规则) |
| | | if (ErrorType.POINT_INFO_ERROR.getValue().equals(errorType) || ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType)) { |
| | | if (ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType) || ErrorType.CLOCK_RIGHT.getValue().equals(errorType)) { |
| | | if (!CollectionUtils.isEmpty(monitorRuleMap)) { |
| | | monitorRuleMap.forEach((contractId, rules) -> { |
| | | Integer unitId = rules.get(0).getUnitId(); |
| | |
| | | } |
| | | } |
| | | //点位异常情况处理(镜头异常、摄像头遮挡等) |
| | | if (ErrorType.SCREEN_COLOR_DEVIATION.getValue().equals(errorType) || ErrorType.SNOW_STORM.getValue().equals(errorType) || ErrorType.STRIPE_INTERFERENCE.getValue().equals(errorType) || ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType) || ErrorType.ABNORMAL_CLARITY.getValue().equals(errorType) || ErrorType.ABNORMAL_BRIGHTNESS.getValue().equals(errorType)) { |
| | | if (ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType)) { |
| | | if (!CollectionUtils.isEmpty(monitorRuleMap)) { |
| | | siteRuleMap.forEach((contractId, rules) -> { |
| | | Integer unitId = rules.get(0).getUnitId(); |
| | |
| | | for (CalculateRuleVO rule : rules) { |
| | | if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) { |
| | | double deductScore = 0d; |
| | | if (ContractRule.CONTRACT_RULE_Store_48H.getName().equals(rule.getRuleCondition())) { |
| | | if (ContractRule.CONTRACT_RULE_Site_Error48.getName().equals(rule.getRuleCondition())) { |
| | | //计算超时天数 |
| | | int day = (int) ((diffTime - 48) / 24 + 1); |
| | | deductScore = rule.getCalcFraction() * (day); |
| | |
| | | } |
| | | //判断是否是该公司运维 |
| | | if (monitorList.contains(picAccessResult.getExternalIndexCode())) { |
| | | //存在大图不可用数据量,需要扣减 |
| | | if (picAccessResult.getBigDisableCount() > 0) { |
| | | //存在图片访问异常数据量,需要扣减 |
| | | if (picAccessResult.getExpCount() > 0) { |
| | | deduct = true; |
| | | serialNumber = picAccessResult.getExternalIndexCode(); |
| | | break; |
| | |
| | | List<ContractScore> contractScoreList = new ArrayList<>(); |
| | | //查询报备列表 |
| | | List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate()); |
| | | //TODO:测试日期 |
| | | Date date = DateUtils.getDay(2024, 7, 13); |
| | | //查图片完整性规则 获取key为合同id,value为规则的map |
| | | Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream() |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <configuration> |
| | | <!-- 日志存放路径 --> |
| | | <property name="log.path" value="./logs" /> |
| | | <property name="log.path" value="/home/java/logs" /> |
| | | <!-- 日志输出格式 --> |
| | | <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> |
| | | |
| | |
| | | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
| | | <!-- 日志文件名格式 --> |
| | | <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> |
| | | <!-- 日志最大的历史 60天 --> |
| | | <maxHistory>60</maxHistory> |
| | | <!-- 日志最大的历史 20天 --> |
| | | <maxHistory>20</maxHistory> |
| | | </rollingPolicy> |
| | | <encoder> |
| | | <pattern>${log.pattern}</pattern> |
| | |
| | | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
| | | <!-- 日志文件名格式 --> |
| | | <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern> |
| | | <!-- 日志最大的历史 60天 --> |
| | | <maxHistory>60</maxHistory> |
| | | <!-- 日志最大的历史 20天 --> |
| | | <maxHistory>20</maxHistory> |
| | | </rollingPolicy> |
| | | <encoder> |
| | | <pattern>${log.pattern}</pattern> |
| | |
| | | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
| | | <!-- 按天回滚 daily --> |
| | | <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern> |
| | | <!-- 日志最大的历史 60天 --> |
| | | <maxHistory>60</maxHistory> |
| | | <!-- 日志最大的历史 20天 --> |
| | | <maxHistory>20</maxHistory> |
| | | </rollingPolicy> |
| | | <encoder> |
| | | <pattern>${log.pattern}</pattern> |