From 3b0516a2959e25576e4f3fda697a3b025d06c8c9 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期二, 24 六月 2025 14:09:07 +0800 Subject: [PATCH] 每日录像可用指标添加日志,修改大屏为查看当前月平均 --- ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java | 61 ++++++++++++++++++++++-------- 1 files changed, 44 insertions(+), 17 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java b/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java index 43a2824..9cd10d1 100644 --- a/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java +++ b/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java @@ -4,9 +4,11 @@ import com.google.common.base.CaseFormat; import com.ycl.platform.base.CheckIndex; import com.ycl.platform.domain.entity.*; +import com.ycl.platform.domain.vo.YwPointVO; import com.ycl.platform.mapper.*; import com.ycl.platform.service.*; import constant.CheckConstants; +import enumeration.general.PublishType; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; @@ -32,18 +34,23 @@ @Autowired private CheckScoreMapper scoreMapper; @Autowired + private ICheckScoreService checkScoreService; + @Autowired private CheckIndexVideoMapper videoMapper; @Autowired private CheckIndexFaceMapper faceMapper; @Autowired private CheckIndexCarMapper carMapper; - + @Autowired + private YwPointMapper pointMapper; + //鍏畨閮ㄥ彧鏈夎棰戣�冩牳 public void executeTemplate(Integer templateId) { CheckTemplate checkTemplate = templateMapper.selectCheckTemplateById(templateId); if (checkTemplate != null) { - log.info("鎵ц鑰冩牳妯℃澘---------->{}", checkTemplate.getTemplateName()); Short examineCategory = checkTemplate.getExamineCategory(); Short examineTag = checkTemplate.getExamineTag(); + //鐢ㄤ簬琛ュ厖鏁伴噺 + List<YwPointVO> pointVOS= pointMapper.selectToCount(examineCategory, examineTag); //鏌ユ潈閲� CheckTemplateRule checkTemplateRule = new CheckTemplateRule(); checkTemplateRule.setCheckTemplateId(templateId); @@ -51,7 +58,6 @@ //鏌ヤ粖澶╃殑index鎸囨爣 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String day = dateFormat.format(new Date()); - //鍒涘缓score闆嗗悎鏂逛究鏈�鍚庢壒閲忓瓨鍌� List<CheckScore> scoreList = new ArrayList<>(); //鏍规嵁鑰冩牳绫诲埆鍜岃�冩牳鏍囩锛屾煡涓嶅悓index琛紙鍖哄垎鐪佸巺鍖哄幙锛� @@ -60,40 +66,54 @@ checkIndexVideo.setExamineTag(examineTag); checkIndexVideo.setDay(day); checkIndexVideo.setDeptIds(JSONArray.parseArray(checkTemplate.getDeptId(), Integer.class)); - //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�瑙嗛鏁版嵁 + //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�鎴栧叕瀹夐儴瑙嗛鏁版嵁 List<CheckIndexVideo> checkIndexVideos = videoMapper.getCheckIndexVideoList(checkIndexVideo); for (CheckIndexVideo indexVideo : checkIndexVideos) { - addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexVideo, CheckConstants.Rule_Category_Video); + addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexVideo, CheckConstants.Rule_Category_Video,pointVOS); } } else if (CheckConstants.Rule_Category_Car.equals(examineCategory)) { CheckIndexCar checkIndexCar = new CheckIndexCar(); checkIndexCar.setDay(day); checkIndexCar.setExamineTag(examineTag); checkIndexCar.setDeptIds(JSONArray.parseArray(checkTemplate.getDeptId(), Integer.class)); - //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�杞﹁締鏁版嵁 + //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�鎴栧叕瀹夐儴杞﹁締鏁版嵁 List<CheckIndexCar> checkIndexCars = carMapper.getCheckIndexCarList(checkIndexCar); for (CheckIndexCar indexCar : checkIndexCars) { - addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexCar, CheckConstants.Rule_Category_Car); + addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexCar, CheckConstants.Rule_Category_Car,pointVOS); } } else if (CheckConstants.Rule_Category_Face.equals(examineCategory)) { CheckIndexFace checkIndexFace = new CheckIndexFace(); checkIndexFace.setDay(day); checkIndexFace.setExamineTag(examineTag); checkIndexFace.setDeptIds(JSONArray.parseArray(checkTemplate.getDeptId(), Integer.class)); - //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�浜鸿劯鏁版嵁 + //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�鎴栧叕瀹夐儴浜鸿劯鏁版嵁 List<CheckIndexFace> checkIndexFaces = faceMapper.getCheckIndexFaceList(checkIndexFace); for (CheckIndexFace indexFace : checkIndexFaces) { - addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexFace, CheckConstants.Rule_Category_Face); + addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexFace, CheckConstants.Rule_Category_Face,pointVOS); + } + } + + //鏌ュ嚭浠婂ぉ鐢熸垚score + List<CheckScore> todays = scoreMapper.selectToday(day); + //閬嶅巻scoreList闆嗗悎锛屽鏋滀粖澶╃敓鎴愯繃琛ュ厖id + for (CheckScore result : scoreList) { + for (CheckScore today : todays) { + //鏍规嵁鑰冩牳鏍囩銆佽�冩牳绉嶇被銆侀儴闂╥d鏌ヨ鏄惁瀛樺湪浠婃棩鏁版嵁 + if(result.getExamineTag().equals(today.getExamineTag()) && result.getExamineCategory().equals(today.getExamineCategory()) && result.getDeptId().equals(today.getDeptId())){ + //琛ュ厖id锛屽悗缁牴鎹甶d saveOrUpdate + result.setId(today.getId()); + result.setPublish(today.getPublish()); + } } } //鍌ㄥ瓨鍒嗘暟 - if(!CollectionUtils.isEmpty(scoreList)) { - scoreMapper.saveBatch(scoreList); + if (!CollectionUtils.isEmpty(scoreList)) { + checkScoreService.saveOrUpdateBatch(scoreList); } } } - private <T extends CheckIndex> void addToList(Integer templateId, CheckTemplate checkTemplate, Short examineTag, List<CheckTemplateRule> templateRuleList, List<CheckScore> scoreList, T indexObject, Short checkCategory) { + private <T extends CheckIndex> void addToList(Integer templateId, CheckTemplate checkTemplate, Short examineTag, List<CheckTemplateRule> templateRuleList, List<CheckScore> scoreList, T indexObject, Short checkCategory, List<YwPointVO> pointVOS) { CheckScore checkScore = new CheckScore(); checkScore.setIndexId(indexObject.getId()); BigDecimal scoreFinal = BigDecimal.ZERO; @@ -102,7 +122,7 @@ scoreFinal = getScoreFinal(indexObject, scoreFinal, templateRule); } //琛ュ厖checkScore - fillCheckScore(templateId, checkTemplate, examineTag, indexObject, checkScore, scoreFinal, checkCategory); + fillCheckScore(templateId, checkTemplate, examineTag, indexObject, checkScore, scoreFinal, checkCategory,pointVOS); scoreList.add(checkScore); } @@ -120,21 +140,23 @@ BigDecimal score = index.multiply(templateRule.getWeight()); scoreFinal = scoreFinal.add(score); } catch (Exception e) { - log.info("鍙嶅皠寮傚父", e.getMessage()); + log.error("鍙嶅皠寮傚父", e.getMessage()); } return scoreFinal; } //璁剧疆checkScore瀵硅薄 - private void fillCheckScore(Integer templateId, CheckTemplate checkTemplate, Short examineTag, CheckIndex checkIndex, CheckScore checkScore, BigDecimal scoreFinal, Short checkCategory) { + private void fillCheckScore(Integer templateId, CheckTemplate checkTemplate, Short examineTag, CheckIndex checkIndex, CheckScore checkScore, BigDecimal scoreFinal, Short checkCategory, List<YwPointVO> pointVOS) { //鏍规嵁璋冩暣绯绘暟璋冩暣鏈�缁堝垎鏁板ぇ灏� String adjustWay = checkTemplate.getAdjustWay(); BigDecimal adjustCoefficient = checkTemplate.getAdjustCoefficient(); if (CheckConstants.Multiply.equals(adjustWay)) { - scoreFinal = adjustCoefficient.multiply(scoreFinal).multiply(new BigDecimal(100)); +// scoreFinal = adjustCoefficient.multiply(scoreFinal).multiply(new BigDecimal(100)); + scoreFinal = adjustCoefficient.multiply(scoreFinal); } else if (CheckConstants.Divided.equals(adjustWay)) { //鍥涜垗浜斿叆淇濈暀灏忔暟鍚庡洓浣� - scoreFinal = scoreFinal.divide(adjustCoefficient, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); +// scoreFinal = scoreFinal.divide(adjustCoefficient, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); + scoreFinal = scoreFinal.divide(adjustCoefficient, 4, RoundingMode.HALF_UP); } checkScore.setCreateTime(new Date()); checkScore.setExamineTag(Integer.parseInt(examineTag + "")); @@ -142,5 +164,10 @@ checkScore.setDeptId(checkIndex.getDeptId()); checkScore.setTemplateId(templateId); checkScore.setScore(scoreFinal); + checkScore.setPublish(PublishType.PUBLISHED.getCode()); + if(!CollectionUtils.isEmpty(pointVOS)) { + long count = pointVOS.stream().filter(ywPointVO -> checkIndex.getDeptId().equals(ywPointVO.getDeptId())).count(); + checkScore.setDeviceCount((int) count); + } } } -- Gitblit v1.8.0