From 7fa07718de92093c6315c5cb37bbc8dd7cdafa3c Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 25 十二月 2024 10:28:43 +0800 Subject: [PATCH] 考核积分修改、点位导出修改 --- ycl-server/src/main/java/com/ycl/task/ContractTask.java | 4 ycl-server/src/main/java/com/ycl/task/HKTask.java | 13 +- ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 3 ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 4 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java | 19 ++- ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java | 7 + ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java | 2 ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml | 2 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java | 1 ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml | 6 document/2024年运维考核细则.docx | 0 ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java | 11 ++ ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java | 68 ++++++------- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 59 +++++++++++ ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java | 2 ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java | 56 +++++------ ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 10 ++ 17 files changed, 174 insertions(+), 93 deletions(-) diff --git "a/document/2024\345\271\264\350\277\220\347\273\264\350\200\203\346\240\270\347\273\206\345\210\231.docx" "b/document/2024\345\271\264\350\277\220\347\273\264\350\200\203\346\240\270\347\273\206\345\210\231.docx" new file mode 100644 index 0000000..309584a --- /dev/null +++ "b/document/2024\345\271\264\350\277\220\347\273\264\350\200\203\346\240\270\347\273\206\345\210\231.docx" Binary files differ diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java index d3a75e7..94b02f6 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckScore.java @@ -79,4 +79,5 @@ @TableField(exist = false) private List<String> quarter; + } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java index 0db8edb..e85eded 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java @@ -46,7 +46,7 @@ private String unitContactPhone; /** 宸ュ崟鏉ユ簮/璁惧鍚嶇О */ - @Excel(name = "璁惧鍚嶇О",sort = 3) + @Excel(name = "璁惧鍚嶇О",sort = 3,width = 25) private String source; /** ip */ @Excel(name = "IP",sort = 5) @@ -54,15 +54,15 @@ /** * 璁惧缂栧彿 */ - @Excel(name = "璁惧缂栧彿",sort = 2) + @Excel(name = "璁惧缂栧彿",sort = 2,width = 22) private String serialNumber; /** - * 鏍囩 + * 鑰冩牳鏍囩 * @param entity * @param vo * @return */ - @Excel(name = "鏍囩",sort = 4) + @Excel(name = "鑰冩牳鏍囩",sort = 4) private String tag; /** @@ -81,7 +81,14 @@ /** 鏁呴殰绫诲瀷 */ @Excel(name = "鏁呴殰绫诲瀷",sort = 8) private String errorType; - + /** + * 璁惧鏍囩 + * @param entity + * @param vo + * @return + */ + @Excel(name = "璁惧鏍囩",sort = 9,width = 30) + private String dynamicTag; /** 宸ュ崟妫�娴嬪浘鐗� */ private String imgListStr; @@ -89,7 +96,7 @@ /** 杩愮淮浜哄憳 */ private Integer ywPeopleId; - + private Long pointId; private String ywPeopleName; /** 杩愮淮澶勭悊鏃堕棿 */ diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java index 1a53890..09f209b 100644 --- a/ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java +++ b/ycl-server/src/main/java/com/ycl/platform/controller/CheckScoreController.java @@ -43,7 +43,16 @@ Map<Long, List<CheckScore>> deptMap = checkScoreService.selectCheckScoreList(checkScore); return success(deptMap); } - + /** + * 鏌ヨ鑰冩牳绉垎鍗$墖鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('check:score:query')") + @PostMapping("/bar") + public AjaxResult bar(@RequestBody CheckScore checkScore) + { + Map<Long, List<CheckScore>> deptMap = checkScoreService.selectCheckScoreList(checkScore); + return success(deptMap); + } /** * 鏌ヨ鑰冩牳绉垎鎶樼嚎鍥� */ diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java index 61c4981..8c5999e 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java @@ -81,7 +81,7 @@ * 棣栭〉鑰冩牳棰勮 * @return 鏁版嵁 */ - List<Map<String, Object>> home(); + List<Map<String, Object>> home(Date startTime,Date endTime); /** * 棣栭〉鏍哥畻 diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java index f1afa0a..62b512e 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java @@ -11,11 +11,11 @@ import com.ycl.platform.domain.result.SYS.TMonitorResult; import com.ycl.platform.domain.vo.TMonitorVO; import com.ycl.platform.domain.vo.UpdateOnlineVO; +import com.ycl.platform.domain.vo.WorkOrderVO; import com.ycl.platform.domain.vo.screen.MonitorRateVO; import com.ycl.platform.domain.vo.screen.MonitorTotalVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import org.springframework.security.core.parameters.P; import java.util.Date; import java.util.List; @@ -183,4 +183,6 @@ List<TMonitor> selectCarOrFace(); List<TMonitorExp> exportTMonitorList(TMonitorVO tMonitor); + + List<TMonitorResult> getByIp(@Param("ipList")List<String> ips); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java index e649db4..57a706f 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java @@ -30,6 +30,7 @@ import enumeration.general.PublishType; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -145,33 +146,35 @@ /** * 鏌ヨ鑰冩牳绉垎鍗$墖鍒楄〃 - * + * 杩欓噷鏄剧ず褰撳ぉ鐨勬垚缁╁鏋滄病鏈夊綋澶╂垚缁╁垯鏄剧ず鏈�鍚庝竴娆℃垚缁� * @param checkScore 鑰冩牳绉垎 * @return 鑰冩牳绉垎 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public Map<Long, List<CheckScore>> selectCheckScoreList(CheckScore checkScore) { + public Map<Long, List<CheckScore>> selectCheckScoreList(CheckScore query) { + CheckScore checkScore = new CheckScore(); + BeanUtils.copyProperties(query,checkScore); //鍖哄幙鍙兘鐪嬪凡鍙戝竷 roleControl(checkScore); - // 鑾峰彇鏁版嵁鏃ユ湡鏃堕棿 - Calendar calendar = Calendar.getInstance(); - getCheckScore(checkScore, calendar); + // 杞崲鏁版嵁鏃ユ湡鏃堕棿銆佹爣绛� + getCheckScore(checkScore); - // 涓�鍙锋煡璇箣鍓嶇殑鏁版嵁 - if (LocalDateTime.now().getDayOfMonth() == 1) { - calendar.add(Calendar.DAY_OF_MONTH, -1); - } +// // 涓�鍙锋煡璇箣鍓嶇殑鏁版嵁 +// if (LocalDateTime.now().getDayOfMonth() == 1) { +// calendar.add(Calendar.DAY_OF_MONTH, -1); +// } List<CheckScore> checkScores = scoreMapper.selectCheckScoreMap(checkScore); // 濡傛灉鏁版嵁涓虹┖锛屽垯鏌ヨ涔嬪墠鐨勬暟鎹� - if (checkScores.isEmpty()) { + if (CollectionUtils.isEmpty(checkScores) && (query.getStartDate() ==null || query.getStartDate() ==null)) { CheckScore one = scoreMapper.getLast(checkScore); if (Objects.nonNull(one)) { - calendar.setTime(one.getCreateTime()); - getCheckScore(checkScore, calendar); + checkScore.setStartDate(one.getCreateTime()); + checkScore.setEndDate(one.getCreateTime()); + getCheckScore(checkScore); checkScores = scoreMapper.selectCheckScoreMap(checkScore); } } @@ -180,31 +183,16 @@ return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId)); } - private void getCheckScore(CheckScore checkScore, Calendar calendar) { - // 0.鐪佸巺鏈堝害 1.鐪佸巺瀛e害 2.甯傚眬鏈堝害 3.甯傚眬瀛e害 4.鍏畨閮ㄦ湀搴� 5.鍏畨閮ㄥ搴� - switch (checkScore.getExamineTag()) { - case 0, 2, 4: - checkScore.setEndDate(calendar.getTime()); - calendar.set(Calendar.DAY_OF_MONTH, 1); - checkScore.setStartDate(calendar.getTime()); - if (checkScore.getExamineTag() == 0) - checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + "")); - if (checkScore.getExamineTag() == 2) - checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + "")); - if (checkScore.getExamineTag() == 4) - checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + "")); - break; - case 1, 3, 5: - checkScore.setStartDate(DateUtils.getQuarterStart(calendar).getTime()); - checkScore.setEndDate(DateUtils.getQuarterEnd(calendar).getTime()); - if (checkScore.getExamineTag() == 1) - checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + "")); - if (checkScore.getExamineTag() == 3) - checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + "")); - if (checkScore.getExamineTag() == 5) - checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + "")); - break; - } + private void getCheckScore(CheckScore checkScore) { + checkScore.setStartDate(DateUtils.getDayStart(checkScore.getStartDate())); + checkScore.setEndDate(DateUtils.getDayEnd(checkScore.getEndDate())); + // 0.鐪佸巺 1.甯傚眬 2.鍏畨閮� + if (checkScore.getExamineTag() == 0) + checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Province + "")); + if (checkScore.getExamineTag() == 1) + checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_County + "")); + if (checkScore.getExamineTag() == 2) + checkScore.setExamineTag(Integer.valueOf(CheckConstants.Examine_Tag_Dept + "")); } /** @@ -522,7 +510,11 @@ @Override public List<Map<String, Object>> home() { - return baseMapper.home(); + Date now = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DATE, -7); + Date startTime = calendar.getTime(); + return baseMapper.home(startTime,now); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java index bc3b335..1deba5d 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java @@ -249,7 +249,7 @@ job.setConcurrent("1"); job.setStatus(checkTemplateDTO.getStatus()); job.setJobGroup("CHECK"); - job.setCronExpression("0 0 6 * * ?"); + job.setCronExpression("0 0 8 * * ?"); job.setJobName(checkTemplateDTO.getTemplateName()); int i = jobService.insertJob(job); return job; diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java index 3f09bc6..b044f0c 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java @@ -352,8 +352,15 @@ return tMonitorMapper.recoveryException(monitor); } + /** + * 鏌ongo鏌ユ煇涓湀璁惧鎬绘暟 + * 鏌ョ湅宸ュ崟鏁伴噺鏌ョ湅寮傚父鐨勬暟 + * @param monitorQuery 鏌ヨ鏉′欢 + * @return + */ @Override public Map<String, Object> home(HomeQuery monitorQuery) { + Map<String, Object> dataMap = new HashMap<>(); Map<String, Object> monthMap1 = new HashMap<>(); Map<String, Object> monthMap2 = new HashMap<>(); diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java index a8ee2ee..81b9299 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java @@ -13,6 +13,7 @@ import com.ycl.platform.domain.entity.*; import com.ycl.platform.domain.form.*; import com.ycl.platform.domain.query.*; +import com.ycl.platform.domain.result.SYS.TMonitorResult; import com.ycl.platform.domain.vo.*; import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO; import com.ycl.platform.domain.vo.screen.WorkOrderRegionVO; @@ -78,6 +79,8 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService { private final YwPointService ywPointService; + private final TMonitorMapper monitorMapper; + private final DynamicColumnMapper dynamicColumnMapper; private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper; private final WorkOrderAuditingRecordService workOrderAuditingRecordService; private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper; @@ -1113,6 +1116,12 @@ return Result.ok().data(workOrder); } + /** + * 宸ュ崟瀵煎嚭鐨勯�昏緫 + * 鏍囩锛氬悓涓�涓猧p鏍囩鍚堝湪涓�璧凤紝閽堝绂荤嚎宸ュ崟锛坕p鐩稿悓灏变笉浼氱敓鎴愬伐鍗曪級锛屾柟渚胯繍缁村鐞� + * @param query + * @return + */ @Override public List<WorkOrderVO> export(WorkOrderExportQuery query) { if (query.getUnitId() == null) { @@ -1121,13 +1130,59 @@ if (query.getStart() != null) query.setStart(query.getStart() + " 00:00:00"); if (query.getEnd() != null) query.setEnd(query.getEnd() + " 23:59:59"); List<WorkOrderVO> export = baseMapper.export(query); + if(CollectionUtils.isEmpty(export)) return new ArrayList<WorkOrderVO>(); + List<String> ips = export.stream().map(WorkOrderVO::getIp).collect(Collectors.toList()); + //鏌ュ嚭鐩稿悓ip鐨勮澶囥�佸苟鏌ュ嚭鏍囩 + List<TMonitorResult> monitorVOS = monitorMapper.getByIp(ips); + //鑾峰彇鍔ㄦ�佸垪鏁版嵁 + List<Integer> pointIds = monitorVOS.stream().map(TMonitorResult::getPointId).collect(Collectors.toList()); + List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds); + //琛ュ厖鍔ㄦ�佸垪鏁版嵁 + if (!CollectionUtils.isEmpty(dynamics)) { + Map<Integer, List<DynamicColumnVO>> map = dynamics.stream().collect(Collectors.groupingBy(DynamicColumnVO::getRefId)); + for (TMonitorResult tMonitorResult : monitorVOS) { + Integer pointId = tMonitorResult.getPointId(); + tMonitorResult.setDynamicColumnList(map.get(pointId)); + } + } export.forEach(result->{ - StringBuilder tag = new StringBuilder("" + (result.getProvinceTagVideo() ? "鐪佸巺瑙嗛銆�" : "")+(result.getProvinceTagCar() ? "鐪佸巺杞﹁締銆�" : "")+(result.getProvinceTagFace() ? "鐪佸巺浜鸿劯銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : "")); - // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲�� + StringBuilder dynamicTag = new StringBuilder(""); + Boolean provinceTagVideo = false; + Boolean provinceTagCar = false; + Boolean provinceTagFace = false; + Boolean importantTag = false; + Boolean importantCommandImageTag = false; + Boolean deptTag = false; + List<String> dynamicTags = new ArrayList<>(); + for (TMonitorResult tagVO : monitorVOS) { + if(tagVO.getIp().equals(result.getIp())){ + if(tagVO.getProvinceTagVideo()) provinceTagVideo = true; + if(tagVO.getProvinceTagCar()) provinceTagCar = true; + if(tagVO.getProvinceTagFace()) provinceTagFace = true; + if(tagVO.getImportantTag()) importantTag = true; + if(tagVO.getImportantCommandImageTag()) importantCommandImageTag = true; + if(tagVO.getDeptTag()) deptTag = true; + //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲� + if (!CollectionUtils.isEmpty(tagVO.getDynamicColumnList())) { + List<DynamicColumnVO> dynamicColumnList = tagVO.getDynamicColumnList(); + for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) { + if(!dynamicTags.contains(dynamicColumnVO.getColumnValue())) dynamicTags.add(dynamicColumnVO.getColumnValue()); + } + } + } + } + for (String tag : dynamicTags) { + dynamicTag.append(tag).append("銆�"); + } + StringBuilder tag = new StringBuilder("" + (provinceTagVideo ? "鐪佸巺瑙嗛銆�" : "")+(provinceTagCar ? "鐪佸巺杞﹁締銆�" : "")+(provinceTagFace ? "鐪佸巺浜鸿劯銆�" : "") + (importantTag ? "閲嶇偣鐐逛綅銆�" : "") + (importantCommandImageTag ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (deptTag ? "閮ㄧ骇銆�" : "")); if (tag.toString().endsWith("銆�")) { tag = new StringBuilder(tag.substring(0, tag.length() - 1)); } + if (dynamicTag.toString().endsWith("銆�")) { + dynamicTag = new StringBuilder(dynamicTag.substring(0, dynamicTag.length() - 1)); + } result.setTag(tag.toString()); + result.setDynamicTag(dynamicTag.toString()); }); return export; } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java index 77e4435..c20dd0c 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java @@ -201,7 +201,11 @@ Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); YwPointVO vo = YwPointVO.getVoByEntity(entity, null); if (Objects.nonNull(entity.getDeptId())) { - vo.setDeptIds(sysDeptMapper.selectParents(entity.getDeptId())); + //TODO:鏂规硶寰呭畬鍠� 绠�鍗曞鐞� + List<Long> deptIds = sysDeptMapper.selectParents(entity.getDeptId()); + deptIds.remove(deptIds.size()-1); + deptIds.add(entity.getDeptId()); + vo.setDeptIds(deptIds); } return Result.ok().data(vo); } @@ -436,40 +440,32 @@ } //鏍规嵁label_value鍜宺ef_id鍒ゆ柇鏄惁鏄悓涓�鏁版嵁 for (PointExport pointExport : dataList) { - //寰楀埌excel涓姩鎬佸垪鍚嶄綔涓簁ey鐨刴ap - Map<String, DynamicColumnVO> exportMap = pointExport.getDynamicData().stream().collect(Collectors.toMap(DynamicColumnVO::getLabelValue, Function.identity())); - //鏌ュ嚭鏁版嵁搴撲腑杩欎釜鐐逛綅鐨勫姩鎬佸垪 - List<DynamicColumnVO> dynamicColumnVOS = dynamicVOMap.get(pointExport.getId()); - if (!CollectionUtils.isEmpty(dynamicColumnVOS)) { - //閬嶅巻鏁版嵁搴撲腑杩欎釜鐐逛綅鐨勫姩鎬佸垪锛屽苟鏍规嵁鍔ㄦ�佸垪鍚嶆壘鍑篹xcel涓殑鍊� - for (DynamicColumnVO vo : dynamicColumnVOS) { - DynamicColumnVO dynamicColumnVO = exportMap.get(vo.getLabelValue()); - //瀛樺湪璇存槑excel鏈夎繖涓暟鎹紝灏嗘暟鎹簱杩欎釜鏁版嵁鐨勫�兼敼涓篹xcel鐨勫�� - if (dynamicColumnVO.getColumnValue() != null) { - DynamicColumnValue entity = new DynamicColumnValue(); - entity.setColumnValue(dynamicColumnVO.getColumnValue()); - entity.setDynamicColumnId(vo.getId()); - entity.setRefId(vo.getRefId()); - entity.setId(vo.getValueId()); - updateList.add(entity); + //鏁版嵁搴撲腑鐨勫姩鎬佸垪 + List<DynamicColumnVO> dynamicColumnVOS = dynamicVOMap.getOrDefault(pointExport.getId(), Collections.emptyList()); + Map<String, DynamicColumnVO> databaseMap = dynamicColumnVOS.stream() + .collect(Collectors.toMap(DynamicColumnVO::getLabelValue, Function.identity())); + for (DynamicColumnVO excelVo : pointExport.getDynamicData()) { + String labelValue = excelVo.getLabelValue(); + DynamicColumnVO databaseVo = databaseMap.get(labelValue); + //濡傛灉excel鍊间笉涓虹┖鍒ゅ畾涓烘柊澧炴垨淇敼 + if (excelVo.getColumnValue() != null) { + Integer dynamicId = dictionary.get(labelValue); + DynamicColumnValue entity = new DynamicColumnValue(); + entity.setColumnValue(excelVo.getColumnValue()); + entity.setRefId(pointExport.getId()); + //鏁版嵁搴撴壘涓嶅埌涓烘柊澧炲惁鍒欎负淇敼 + if (databaseVo != null) { + entity.setDynamicColumnId(databaseVo.getId()); + entity.setId(databaseVo.getValueId()); + updateList.add(entity); } else { - //涓嶅瓨鍦ㄥ垯鍙栨秷鏍囩锛屽垹闄� - deleteList.add(vo.getValueId()); - } - } - } else { - //鏁版嵁搴撻噷鏌ヤ笉鍒癳xcel閲岄潰鐨勮繖涓偣浣嶅姩鎬佸垪锛屽叏涓烘柊澧� - List<DynamicColumnVO> dynamicData = pointExport.getDynamicData(); - for (DynamicColumnVO excelData : dynamicData) { - if (excelData.getColumnValue() != null) { - Integer dynamicId = dictionary.get(excelData.getLabelValue()); - DynamicColumnValue entity = new DynamicColumnValue(); - entity.setColumnValue(excelData.getColumnValue()); entity.setDynamicColumnId(dynamicId); - entity.setRefId(pointExport.getId()); insertList.add(entity); } + } else if (databaseVo != null) { + //excel閲屼负绌轰絾鏄暟鎹簱瀛樺湪 鍒犻櫎 + deleteList.add(databaseVo.getValueId()); } } } diff --git a/ycl-server/src/main/java/com/ycl/task/ContractTask.java b/ycl-server/src/main/java/com/ycl/task/ContractTask.java index a62d7d1..2112870 100644 --- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java +++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java @@ -228,7 +228,7 @@ // } // } //鍓嶇鎰熺煡婧愭不鐞嗗伐浣滐紙鏃堕挓鍚屾瑙勫垯銆丱SD瑙勫垯銆佷竴鏈轰竴妗h鍒欙級 - if (ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType) || ErrorType.CLOCK_RIGHT.getValue().equals(errorType)) { + if (ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType) || ErrorType.CLOCK_RIGHT.getValue().equals(errorType) || ErrorType.POINT_INFO_ERROR.getValue().equals(errorType)) { if (!CollectionUtils.isEmpty(monitorRuleMap)) { monitorRuleMap.forEach((contractId, rules) -> { Integer unitId = rules.get(0).getUnitId(); @@ -252,7 +252,7 @@ } } //鐐逛綅寮傚父鎯呭喌澶勭悊锛堥暅澶村紓甯搞�佹憚鍍忓ご閬尅绛夛級 - if (ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType)) { + if (ErrorType.SCREEN_OCCLUSION.getValue().equals(errorType) || ErrorType.SIGNAL_LOSS.getValue().equals(errorType) || ErrorType.SCREEN_COLOR_DEVIATION.getValue().equals(errorType) || ErrorType.SNOW_STORM.getValue().equals(errorType) || ErrorType.STRIPE_INTERFERENCE.getValue().equals(errorType) || ErrorType.ABNORMAL_CLARITY.getValue().equals(errorType)) { if (!CollectionUtils.isEmpty(monitorRuleMap)) { siteRuleMap.forEach((contractId, rules) -> { Integer unitId = rules.get(0).getUnitId(); diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java index 759cf0e..77ea50f 100644 --- a/ycl-server/src/main/java/com/ycl/task/HKTask.java +++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java @@ -581,24 +581,23 @@ car.setViewConnectStability(new BigDecimal(score.getDownCarDataUploadScoreString() == null ? "1" : score.getDownCarDataUploadScoreString())); car.setSiteOnline(new BigDecimal(score.getDownCrossQualityCarScoreString() == null ? "1" : score.getDownCrossQualityCarScoreString())); car.setDeviceDirectoryConsistent(new BigDecimal(score.getDownCrossNumPushCarScoreString() == null ? "1" : score.getDownCrossNumPushCarScoreString())); - //TODO:寰呭畬鍠� + //TODO:娌℃壘鍒拌�冩牳椤� car.setVehicleInformationCollectionAccuracy(new BigDecimal("1")); - //TODO:寰呭畬鍠� 閲嶇偣鎬庝箞鍔犺繘鍘� car.setVehicleCaptureIntegrity(new BigDecimal(score.getDownCrossAllCarDataIntegrityScoreString() == null ? "1" : score.getDownCrossAllCarDataIntegrityScoreString())); - //TODO:寰呭畬鍠� 涓や釜椤瑰悎鎴愪竴涓� + //娴峰悍鏄涓�1鐨勶紝浣嗘槸鎺ュ彛鎺ㄧ殑鍘熷鏁版嵁 car.setVehicleCaptureAccuracy(new BigDecimal("1")); car.setVehicleTimingAccuracy(new BigDecimal(score.getDownCrossCarInvertScoreString() == null ? "1" : score.getDownCrossCarInvertScoreString())); car.setVehicleUploadTimeliness(new BigDecimal(score.getDownCrossAllCarDelayScoreString() == null ? "1" : score.getDownCrossAllCarDelayScoreString())); - //TODO:寰呭畬鍠� + //TODO:娌℃壘鍒拌�冩牳椤� car.setVehicleUrlAvailability(new BigDecimal("1")); car.setVehiclePictureAvailability(new BigDecimal(score.getDownCrossPictureQualityCarScoreString() == null ? "1" : score.getDownCrossPictureQualityCarScoreString())); face.setViewConnectStability(new BigDecimal(score.getDownFaceDataUploadScoreString() == null ? "1" : score.getDownFaceDataUploadScoreString())); face.setSiteOnline(new BigDecimal(score.getDownFaceDataUploadScoreString() == null ? "1" : score.getDownFaceDataUploadScoreString())); - face.setDeviceDirectoryConsistent(new BigDecimal(score.getDownCrossNumPushCarScoreString() == null ? "1" : score.getDownCrossNumPushCarScoreString())); - //TODO:寰呭畬鍠� + face.setDeviceDirectoryConsistent(new BigDecimal(score.getDownCrossNumPushFaceScoreString() == null ? "1" : score.getDownCrossNumPushFaceScoreString())); + //TODO:娌℃壘鍒拌�冩牳椤� face.setFaceInformationCollectionAccuracy(new BigDecimal("1")); - //TODO:寰呭畬鍠� + //TODO:娌℃壘鍒拌�冩牳椤� face.setFacePictureQualification(new BigDecimal("1")); face.setFaceTimingAccuracy(new BigDecimal(score.getDownCrossFaceInvertScoreString() == null ? "1" : score.getDownCrossFaceInvertScoreString())); face.setFaceUploadTimeliness(new BigDecimal(score.getDownCrossAllFaceDelayScoreString() == null ? "1" : score.getDownCrossAllFaceDelayScoreString())); diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml index 4a0a076..33bfe57 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml @@ -180,21 +180,21 @@ d.area, CASE WHEN cs.examine_tag = '0' THEN '鐪佸巺' - WHEN cs.examine_tag = '1' THEN '甯傚眬' + WHEN cs.examine_tag = '1' THEN '鍖哄幙' WHEN cs.examine_tag = '2' THEN '' END AS examineTag, ct.template_name AS templateName, cs.score FROM t_check_score cs LEFT JOIN t_check_template ct ON cs.template_id = ct.id LEFT JOIN sys_dept d ON cs.dept_id = d.dept_id - WHERE cs.score < ct.alarm_score + WHERE cs.score < ct.alarm_score and cs.create_time between #{startTime} and #{endTime} ORDER BY cs.create_time DESC ]]> </select> <select id="calculate" resultType="java.util.Map"> SELECT area AS deptName, - ROUND(AVG(score)) AS score + ROUND(AVG(score),2) AS score FROM t_check_score tcs LEFT JOIN sys_dept d ON tcs.dept_id = d.dept_id WHERE examine_tag = 1 diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml index d403d91..23091ce 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml @@ -696,4 +696,14 @@ on m.serial_number = p.serial_number where (m.camera_fun_type = '2' or m.camera_fun_type = '3') and p.examine_status = 1 </select> + + <select id="getByIp" resultType="com.ycl.platform.domain.result.SYS.TMonitorResult"> + 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 + <foreach collection="ipList" item="ip" separator="," close=")" open="("> + #{ip} + </foreach> + </select> </mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml index 4f2c8b9..db29bbe 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml @@ -265,6 +265,7 @@ WHERE DATE_FORMAT(w.create_time, '%Y') = DATE_FORMAT(NOW(), '%Y') AND w.deleted = 0 AND unit_id = #{unitId} GROUP BY dateType + ORDER BY dateType </if> <if test="dateType == 'week'"> @@ -281,6 +282,7 @@ w.create_time BETWEEN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) AND DATE_ADD(CURDATE(), INTERVAL (6 - WEEKDAY(CURDATE())) DAY) AND w.deleted = 0 AND unit_id = #{unitId} GROUP BY dateType + ORDER BY dateType </if> <if test="dateType == 'day'"> @@ -297,6 +299,7 @@ DATE_FORMAT(w.create_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE()) AND w.deleted = 0 AND unit_id = #{unitId} GROUP BY dateType + ORDER BY dateType </if> </select> diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml index ae5d9d2..a503036 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml @@ -87,7 +87,7 @@ SELECT t_yw_point.id, point_name, start_time, end_time, status, unit_name AS remark FROM t_yw_point LEFT JOIN t_yw_unit ON t_yw_unit.id = t_yw_point.unit_id AND t_yw_point.deleted = 0 - WHERE t_yw_point.deleted = 0 + WHERE t_yw_point.deleted = 0 AND t_yw_point.examine_status = 1 AND TIMESTAMPDIFF(MONTH, NOW(), end_time) <= (SELECT config_value FROM sys_config WHERE config_key = 'operation.and.maintenance.expiration.warning.time') -- Gitblit v1.8.0