From 4082ee4d1cd2357771d7f844a57fe4932a1dd4c4 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 21 八月 2024 15:03:46 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-common/src/main/java/constant/RedisConstant.java | 3 ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java | 22 + ycl-server/src/main/java/com/ycl/task/ContractTask.java | 102 ++++ ycl-common/src/main/java/constant/CheckThreadConstants.java | 4 ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java | 4 ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml | 13 ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceInspectionResult.java | 78 +++ ycl-server/src/main/java/com/ycl/platform/mapper/ContractRuleRecordMapper.java | 65 +++ ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CrossDetailResult.java | 45 ++ ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitoringDetailResult.java | 47 ++ ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/RecordMetaDSumResult.java | 18 ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java | 96 ++++ ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java | 20 ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml | 6 ycl-server/src/main/java/com/ycl/task/MonitorTask.java | 33 + ycl-server/src/main/resources/mapper/zgyw/ContractRuleRecordMapper.xml | 81 +++ ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java | 3 ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java | 60 +- ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java | 329 +++++++++++++++ ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java | 12 ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml | 21 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleVO.java | 62 ++ ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java | 11 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractRuleRecord.java | 38 + ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoOnlineResult.java | 39 + 25 files changed, 1,142 insertions(+), 70 deletions(-) diff --git a/ycl-common/src/main/java/constant/CheckThreadConstants.java b/ycl-common/src/main/java/constant/CheckThreadConstants.java index 2f4335e..1099519 100644 --- a/ycl-common/src/main/java/constant/CheckThreadConstants.java +++ b/ycl-common/src/main/java/constant/CheckThreadConstants.java @@ -13,7 +13,5 @@ //杞﹁締銆佷汉鑴歌�冩牳锛岀偣浣嶅湪绾跨巼锛屽尯鍘夸笉灏戜簬40璺� public final static Integer Check_Car_SiteOnline = 40; public final static Integer Check_Face_SiteOnline = 40; - //杞﹁締銆佷汉鑴稿湪绾跨巼 Redis 姣忔湀鏁版嵁涓柇娆℃暟 Hash key - public final static String Check_Car_ViewConnect = "CarViewConnectNoData"; - public final static String Check_Face_ViewConnect = "FaceViewConnectNoData"; + } diff --git a/ycl-common/src/main/java/constant/RedisConstant.java b/ycl-common/src/main/java/constant/RedisConstant.java index 2e024e8..b576a18 100644 --- a/ycl-common/src/main/java/constant/RedisConstant.java +++ b/ycl-common/src/main/java/constant/RedisConstant.java @@ -3,4 +3,7 @@ public class RedisConstant { /** 涓�鏈轰竴妗g洰褰曚竴鑷寸巼 澶氬嚭鏉ョ殑璁惧 Set闆嗗悎 */ public static final String New_Monitor_Set="New_Monitor_Set"; + //杞﹁締銆佷汉鑴稿湪绾跨巼 Redis 姣忔湀鏁版嵁涓柇娆℃暟 Hash key + public final static String Check_Car_ViewConnect = "CarViewConnectNoData"; + public final static String Check_Face_ViewConnect = "FaceViewConnectNoData"; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractRuleRecord.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractRuleRecord.java new file mode 100644 index 0000000..96d83e9 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractRuleRecord.java @@ -0,0 +1,38 @@ +package com.ycl.platform.domain.entity; + +import annotation.Excel; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * 鍚堝悓瑙勫垯璁板綍瀵硅薄 t_contract_rule_record + * + * @author ruoyi + * @date 2024-08-21 + */ +@Data +public class ContractRuleRecord +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 鍗曚綅id */ + @Excel(name = "鍗曚綅id") + private Long unitId; + + /** 鐐逛綅鍦ㄧ嚎鐜� */ + @Excel(name = "鐐逛綅鍦ㄧ嚎鐜�") + private Integer siteOnline; + + /** 鍒涘缓鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + + private Long deleted; +} diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CrossDetailResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CrossDetailResult.java index af13839..7078f96 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CrossDetailResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CrossDetailResult.java @@ -5,6 +5,8 @@ import org.springframework.data.mongodb.core.index.TextIndexed; import org.springframework.data.mongodb.core.mapping.Document; +import java.util.Objects; + /** * 鍗″彛灞炴�х洃娴嬬粨鏋滐細杞﹁締锛堣溅杈嗗崱鍙d俊鎭噰闆嗗噯纭巼銆侊級 * @@ -55,9 +57,52 @@ private Integer lalType; /** + * 缁忕含搴︾洃娴嬬粨鏋滐紝琛ㄧず缁忕含搴︿俊鎭殑鐩戞祴鐘舵�併�� + * 1:姝e父 2:缁忕含搴︾己澶� 3:涓嶅湪杈栧尯 4:绮惧害杩囦綆 + */ + private String lalTypeText; + + /** * 鍥芥爣缂栫爜鐩戞祴缁撴灉锛岃〃绀哄浗鏍囩紪鐮佺殑鐩戞祴鐘舵�併�� * 1:姝e父 2:缂栫爜闀垮害涓嶇瓑浜�20浣� 3:鍓�6浣嶄笉绗﹀悎鏍囧噯 4:11鑷�13浣嶄笉绗﹀悎鏍囧噯 */ private Integer gbCodeType; + /** + * 鍥芥爣缂栫爜鐩戞祴缁撴灉锛岃〃绀哄浗鏍囩紪鐮佺殑鐩戞祴鐘舵�併�� + * 1:姝e父 2:缂栫爜闀垮害涓嶇瓑浜�20浣� 3:鍓�6浣嶄笉绗﹀悎鏍囧噯 4:11鑷�13浣嶄笉绗﹀悎鏍囧噯 + */ + private String gbCodeTypeText; + + public String getLalTypeText() { + if (Objects.equals(lalType, 1)) { + lalTypeText = "姝e父"; + } + if (Objects.equals(lalType, 2)) { + lalTypeText = "缁忕含搴︾己澶�"; + } + if (Objects.equals(lalType, 3)) { + lalTypeText = "涓嶅湪杈栧尯"; + } + if (Objects.equals(lalType, 4)) { + lalTypeText = "绮惧害杩囦綆"; + } + return lalTypeText; + } + + public String getGbCodeTypeText() { + if (Objects.equals(gbCodeType, 1)) { + gbCodeTypeText = "姝e父"; + } + if (Objects.equals(gbCodeType, 2)) { + gbCodeTypeText = "缂栫爜闀垮害涓嶇瓑浜�20浣�"; + } + if (Objects.equals(gbCodeType, 3)) { + gbCodeTypeText = "鍓�6浣嶄笉绗﹀悎鏍囧噯"; + } + if (Objects.equals(gbCodeType, 4)) { + gbCodeTypeText = "11鑷�13浣嶄笉绗﹀悎鏍囧噯"; + } + return gbCodeTypeText; + } } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceInspectionResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceInspectionResult.java index 309d49c..b7b4fa0 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceInspectionResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceInspectionResult.java @@ -75,6 +75,11 @@ */ private Integer snapResult; + /** + * 鎶撴媿鏁版嵁閲忕洃娴嬬粨鏋滐紝1:姝e父 2:鏃犳暟鎹� 4:鏁版嵁閲忓皯 + */ + private String snapResultText; + // 浠ヤ笅涓哄祵濂楀璞$殑瀛楁 /** @@ -97,6 +102,19 @@ */ private SnapUnique snapUnique; + public String getSnapResultText() { + if (snapResult == 1) { + snapResultText = "姝e父"; + } + if (snapResult == 2) { + snapResultText = "鏃犳暟鎹�"; + } + if (snapResult == 4) { + snapResultText = "鏁版嵁閲忓皯"; + } + return snapResultText; + } + // 鍐呭祵瀵硅薄瀹氫箟 @Data @@ -117,6 +135,11 @@ private Integer todayClockResult; /** + * 褰撴棩鎺ユ敹鐨勫綋鏃ユ姄鎷嶆暟鎹椂閽熷噯纭�у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 + */ + private String todayClockResultText; + + /** * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ姄鎷嶆暟鎹腑鏃堕挓鍑嗙‘鏁版嵁閲� */ private Integer allClockCount; @@ -125,6 +148,31 @@ * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ姄鎷嶆暟鎹腑鏃堕挓鍑嗙‘鎬у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 */ private Integer allClockResult; + + /** + * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ姄鎷嶆暟鎹腑鏃堕挓鍑嗙‘鎬у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 + */ + private String allClockResultText; + + public String getTodayClockResultText() { + if (todayClockResult == 1) { + todayClockResultText = "鍚堟牸"; + } + if (todayClockResult == 0) { + todayClockResultText = "涓嶅悎鏍�"; + } + return todayClockResultText; + } + + public String getAllClockResultText() { + if (allClockResult == 1) { + allClockResultText = "鍚堟牸"; + } + if (allClockResult == 0) { + allClockResultText = "涓嶅悎鏍�"; + } + return allClockResultText; + } } @Data @@ -160,6 +208,11 @@ private Integer todayTimelyResult; /** + * 褰撴棩鎺ユ敹鐨勫綋鏃ユ姄鎷嶆暟鎹強鏃舵�у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 + */ + private String todayTimelyResultText; + + /** * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ姄鎷嶆暟鎹腑寤惰繜鏁版嵁閲� */ private Integer allDelayCount; @@ -183,6 +236,31 @@ * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ姄鎷嶆暟鎹腑鍙婃椂鎬у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 */ private Integer allTimelyResult; + + /** + * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ姄鎷嶆暟鎹腑鍙婃椂鎬у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 + */ + private String allTimelyResultText; + + public String getTodayTimelyResultText() { + if (todayTimelyResult == 1) { + todayTimelyResultText = "鍚堟牸"; + } + if (todayTimelyResult == 0) { + todayTimelyResultText = "涓嶅悎鏍�"; + } + return todayTimelyResultText; + } + + public String getAllTimelyResultText() { + if (allTimelyResult == 1) { + allTimelyResultText = "鍚堟牸"; + } + if (allTimelyResult == 0) { + allTimelyResultText = "涓嶅悎鏍�"; + } + return allTimelyResultText; + } } @Data diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitoringDetailResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitoringDetailResult.java index 14e91b0..d4105dd 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitoringDetailResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitoringDetailResult.java @@ -5,6 +5,8 @@ import org.springframework.data.mongodb.core.index.TextIndexed; import org.springframework.data.mongodb.core.mapping.Document; +import java.util.Objects; + /** * 閲囬泦璁惧灞炴�х洃娴嬬粨鏋滐細浜鸿劯锛堜汉鑴稿崱鍙d俊鎭噰闆嗗噯纭巼锛� * @@ -54,9 +56,21 @@ private Integer lalType; /** + * 缁忕含搴︾洃娴嬬粨鏋滐紝琛ㄧず缁忕含搴︿俊鎭殑鐩戞祴鐘舵�併�� + * 1:姝e父 2:缁忕含搴︾己澶� 3:涓嶅湪杈栧尯 4:绮惧害杩囦綆 + */ + private String lalTypeText; + + /** * 鍥芥爣缂栫爜鐩戞祴缁撴灉: 1:姝e父 2:缂栫爜闀垮害涓嶇瓑浜�20浣� 3:鍓�6浣嶄笉绗﹀悎鏍囧噯 4:11鑷�13浣嶄笉绗﹀悎鏍囧噯 */ private Integer gbCodeType; + + /** + * 鍥芥爣缂栫爜鐩戞祴缁撴灉锛岃〃绀哄浗鏍囩紪鐮佺殑鐩戞祴鐘舵�併�� + * 1:姝e父 2:缂栫爜闀垮害涓嶇瓑浜�20浣� 3:鍓�6浣嶄笉绗﹀悎鏍囧噯 4:11鑷�13浣嶄笉绗﹀悎鏍囧噯 + */ + private String gbCodeTypeText; /** * 鏅�氳兘鍔涢泦 @@ -68,4 +82,37 @@ */ private String intelligentSet; + + public String getLalTypeText() { + if (Objects.equals(lalType, 1)) { + lalTypeText = "姝e父"; + } + if (Objects.equals(lalType, 2)) { + lalTypeText = "缁忕含搴︾己澶�"; + } + if (Objects.equals(lalType, 3)) { + lalTypeText = "涓嶅湪杈栧尯"; + } + if (Objects.equals(lalType, 4)) { + lalTypeText = "绮惧害杩囦綆"; + } + return lalTypeText; + } + + public String getGbCodeTypeText() { + if (Objects.equals(gbCodeType, 1)) { + gbCodeTypeText = "姝e父"; + } + if (Objects.equals(gbCodeType, 2)) { + gbCodeTypeText = "缂栫爜闀垮害涓嶇瓑浜�20浣�"; + } + if (Objects.equals(gbCodeType, 3)) { + gbCodeTypeText = "鍓�6浣嶄笉绗﹀悎鏍囧噯"; + } + if (Objects.equals(gbCodeType, 4)) { + gbCodeTypeText = "11鑷�13浣嶄笉绗﹀悎鏍囧噯"; + } + return gbCodeTypeText; + } + } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java index d343175..049c639 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java @@ -5,6 +5,8 @@ import org.springframework.data.mongodb.core.index.TextIndexed; import org.springframework.data.mongodb.core.mapping.Document; +import java.util.Objects; + /** * 鎶撴媿鏁版嵁閲忕洃娴嬬粨鏋滐細杞﹁締锛堣鍥惧簱瀵规帴绋冲畾鎬с�佺偣浣嶅湪绾跨巼銆侊級 * @@ -66,4 +68,24 @@ */ private int resultType; + /** + * 鎶撴媿鏁版嵁閲忕洃娴嬬粨鏋� 1:姝e父 2:鏃犳暟鎹� 3:鏁版嵁绐侀檷 4:鏁版嵁閲忓皯 + */ + private String resultTypeText; + + public String getResultTypeText() { + if (Objects.equals(resultType, 1)) { + resultTypeText = "姝e父"; + } + if (Objects.equals(resultType, 2)) { + resultTypeText = "鏃犳暟鎹�"; + } + if (Objects.equals(resultType, 3)) { + resultTypeText = "鏁版嵁绐侀檷"; + } + if (Objects.equals(resultType, 4)) { + resultTypeText = "鏁版嵁閲忓皯"; + } + return resultTypeText; + } } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java index 0a86ceb..2141d74 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java @@ -70,6 +70,11 @@ */ private Integer snapResult; + /** + * 鎶撴媿鏁版嵁閲忕洃娴嬬粨鏋滐紝1:姝e父 2:鏃犳暟鎹� 4:鏁版嵁閲忓皯 + */ + private String snapResultText; + // 浠ヤ笅涓哄祵濂楀璞$殑瀛楁 /** @@ -97,6 +102,19 @@ */ private Integrity integrity; + public String getSnapResultText() { + if (snapResult == 1) { + snapResultText = "姝e父"; + } + if (snapResult == 2) { + snapResultText = "鏃犳暟鎹�"; + } + if (snapResult == 4) { + snapResultText = "鏁版嵁閲忓皯"; + } + return snapResultText; + } + // 鍐呭祵瀵硅薄瀹氫箟 @Data @@ -117,6 +135,11 @@ private Integer todayClockResult; /** + * 褰撴棩鎺ユ敹鐨勫綋鏃ユ姄鎷嶆暟鎹椂閽熷噯纭�у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 + */ + private String todayClockResultText; + + /** * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ姄鎷嶆暟鎹椂閽熷噯纭暟鎹噺 */ private Integer allClockCount; @@ -125,6 +148,31 @@ * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ姄鎷嶆暟鎹椂閽熷噯纭�у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 */ private Integer allClockResult; + + /** + * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ姄鎷嶆暟鎹椂閽熷噯纭�у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 + */ + private String allClockResultText; + + public String getTodayClockResultText() { + if (todayClockResult == 1) { + todayClockResultText = "鍚堟牸"; + } + if (todayClockResult == 0) { + todayClockResultText = "涓嶅悎鏍�"; + } + return todayClockResultText; + } + + public String getAllClockResultText() { + if (allClockResult == 1) { + allClockResultText = "鍚堟牸"; + } + if (allClockResult == 0) { + allClockResultText = "涓嶅悎鏍�"; + } + return allClockResultText; + } } @Data @@ -160,6 +208,11 @@ private Integer todayTimelyResult; /** + * 褰撴棩鎺ユ敹鐨勫綋鏃ユ姄鎷嶆暟鎹暟鎹強鏃舵�у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 + */ + private String todayTimelyResultText; + + /** * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ暟鎹欢杩熼噺 */ private Integer allDelayCount; @@ -183,6 +236,31 @@ * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ暟鎹強鏃舵�у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 */ private Integer allTimelyResult; + + /** + * 褰撴棩鎺ユ敹鐨勫叏閮ㄦ暟鎹強鏃舵�у垽瀹氱粨鏋滐細1鏄悎鏍硷紝0鏄笉鍚堟牸 + */ + private String allTimelyResultText; + + public String getTodayTimelyResultText() { + if (todayTimelyResult == 1) { + todayTimelyResultText = "鍚堟牸"; + } + if (todayTimelyResult == 0) { + todayTimelyResultText = "涓嶅悎鏍�"; + } + return todayTimelyResultText; + } + + public String getAllTimelyResultText() { + if (allTimelyResult == 1) { + allTimelyResultText = "鍚堟牸"; + } + if (allTimelyResult == 0) { + allTimelyResultText = "涓嶅悎鏍�"; + } + return allTimelyResultText; + } } @Data @@ -214,6 +292,24 @@ * 杞︾墝璇嗗埆寮傚父锛氱粨鏋滅被鍨� 1:姝e父 2:璇嗗埆鐜囦綆 3:鏄煎璇嗗埆鐜囩獊鍙� */ private Integer recgResult; + + /** + * 杞︾墝璇嗗埆寮傚父锛氱粨鏋滅被鍨� 1:姝e父 2:璇嗗埆鐜囦綆 3:鏄煎璇嗗埆鐜囩獊鍙� + */ + private String recgResultText; + + public String getRecgResultText() { + if (recgResult == 1) { + recgResultText = "姝e父"; + } + if (recgResult == 2) { + recgResultText = "璇嗗埆鐜囦綆"; + } + if (recgResult == 3) { + recgResultText = "鏄煎璇嗗埆鐜囩獊鍙�"; + } + return recgResultText; + } } @Data diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java index 44dd4ff..7b80843 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java @@ -2,10 +2,12 @@ import com.ycl.platform.domain.result.BaseResult; import lombok.Data; +import org.apache.commons.lang3.ArrayUtils; import org.springframework.data.mongodb.core.index.TextIndexed; import org.springframework.data.mongodb.core.mapping.Document; +import utils.StringUtils; -import java.util.Date; +import java.util.*; /** * 涓�鏈轰竴妗� @@ -173,4 +175,329 @@ */ private String SSBMHY; + + public String getJKDWLX() { + if (Objects.equals(JKDWLX, "1")) { + this.JKDWLX = "涓�绫昏棰戠洃鎺х偣"; + } + if (Objects.equals(JKDWLX, "2")) { + this.JKDWLX = "浜岀被瑙嗛鐩戞帶鐐�"; + } + if (Objects.equals(JKDWLX, "3")) { + this.JKDWLX = "涓夌被瑙嗛鐩戞帶鐐�"; + } + if (Objects.equals(JKDWLX, "4")) { + this.JKDWLX = "鍏畨鍐呴儴瑙嗛鐩戞帶鐐�"; + } + if (Objects.equals(JKDWLX, "9")) { + this.JKDWLX = "鍏朵粬鐐逛綅"; + } + return JKDWLX; + } + + public String getSXJGNLX() { + List<String> sxjgnlx = new ArrayList<>(); + if (StringUtils.contains(SXJGNLX, "1")) { + sxjgnlx.add("瑙嗛鐩戞帶"); + } + if (StringUtils.contains(SXJGNLX, "2")) { + sxjgnlx.add("杞﹁締璇嗗埆"); + } + if (StringUtils.contains(SXJGNLX, "3")) { + sxjgnlx.add("浜哄憳璇嗗埆"); + } + if (!sxjgnlx.isEmpty()) { + this.SXJGNLX = String.join("/", sxjgnlx); + } + return SXJGNLX; + } + + public String getSBZT() { + if (Objects.equals(SBZT, "1")) { + this.SBZT = "鍦ㄧ敤"; + } + if (Objects.equals(SBZT, "2")) { + this.SBZT = "缁翠慨"; + } + if (Objects.equals(SBZT, "3")) { + this.SBZT = "鎷嗛櫎"; + } + return SBZT; + } + + public String getSBCS() { + if (Objects.equals(SBCS, "1")) { + this.SBCS = "娴峰悍濞佽"; + } + if (Objects.equals(SBCS, "2")) { + this.SBCS = "澶у崕"; + } + if (Objects.equals(SBCS, "3")) { + this.SBCS = "澶╁湴浼熶笟"; + } + if (Objects.equals(SBCS, "4")) { + this.SBCS = "绉戣揪"; + } + if (Objects.equals(SBCS, "5")) { + this.SBCS = "瀹夎澹�"; + } + if (Objects.equals(SBCS, "6")) { + this.SBCS = "鍗氫笘"; + } + if (Objects.equals(SBCS, "7")) { + this.SBCS = "浜氬畨"; + } + if (Objects.equals(SBCS, "8")) { + this.SBCS = "鑻遍鎷�"; + } + if (Objects.equals(SBCS, "9")) { + this.SBCS = "瀹囪"; + } + if (Objects.equals(SBCS, "10")) { + this.SBCS = "娴蜂俊"; + } + if (Objects.equals(SBCS, "11")) { + this.SBCS = "涓槦鐢靛瓙"; + } + if (Objects.equals(SBCS, "12")) { + this.SBCS = "鏄庢櫙"; + } + if (Objects.equals(SBCS, "13")) { + this.SBCS = "鑱旀兂"; + } + if (Objects.equals(SBCS, "14")) { + this.SBCS = "涓叴"; + } + if (Objects.equals(SBCS, "99")) { + this.SBCS = "鍏朵粬"; + } + return SBCS; + } + + public String getSXJLX() { + if (Objects.equals(SXJLX, "1")) { + this.SXJLX = "鐞冩満"; + } + if (Objects.equals(SXJLX, "2")) { + this.SXJLX = "鍗婄悆"; + } + if (Objects.equals(SXJLX, "3")) { + this.SXJLX = "鍥哄畾鏋満"; + } + if (Objects.equals(SXJLX, "4")) { + this.SXJLX = "閬ユ帶鏋満"; + } + if (Objects.equals(SXJLX, "5")) { + this.SXJLX = "鍗″彛鏋満"; + } + if (Objects.equals(SXJLX, "99")) { + this.SXJLX = "鏈煡"; + } + return SXJLX; + } + + + public String getBGSX() { + if (Objects.equals(BGSX, "1")) { + this.BGSX = "鏃犺ˉ鍏�"; + } + if (Objects.equals(BGSX, "2")) { + this.BGSX = "绾㈠琛ュ厜"; + } + if (Objects.equals(BGSX, "3")) { + this.BGSX = "鐧藉厜琛ュ厜"; + } + if (Objects.equals(BGSX, "9")) { + this.BGSX = "鍏朵粬琛ュ厜"; + } + return BGSX; + } + + public String getSXJBMGS() { + if (Objects.equals(SXJBMGS, "1")) { + this.SXJBMGS = "MPEG-4"; + } + if (Objects.equals(SXJBMGS, "2")) { + this.SXJBMGS = "H.264"; + } + if (Objects.equals(SXJBMGS, "3")) { + this.SXJBMGS = "SVAC"; + } + if (Objects.equals(SXJBMGS, "4")) { + this.SXJBMGS = "H.265"; + } + return SXJBMGS; + } + + public String getSXJWZLX() { + List<String> wzlx = new ArrayList<>(); + if (StringUtils.isBlank(SXJWZLX)) { + return SXJWZLX; + } + String[] split = SXJWZLX.split("/"); + if (ArrayUtils.contains(split, "1")) { + wzlx.add("鐪侀檯妫�鏌ョ珯"); + } + if (ArrayUtils.contains(split, "2")) { + wzlx.add("鍏氭斂鏈哄叧"); + } + if (ArrayUtils.contains(split, "3")) { + wzlx.add("杞︾珯鐮佸ご"); + } + if (ArrayUtils.contains(split, "4")) { + wzlx.add("涓績骞垮満"); + } + if (ArrayUtils.contains(split, "5")) { + wzlx.add("浣撹偛鍦洪"); + } + if (ArrayUtils.contains(split, "6")) { + wzlx.add("鍟嗕笟涓績"); + } + if (ArrayUtils.contains(split, "7")) { + wzlx.add("瀹楁暀鍦烘墍"); + } + if (ArrayUtils.contains(split, "8")) { + wzlx.add("鏍″洯鍛ㄨ竟"); + } + if (ArrayUtils.contains(split, "9")) { + wzlx.add("娌诲畨澶嶆潅鍖哄煙"); + } + if (ArrayUtils.contains(split, "10")) { + wzlx.add("浜ら�氬共绾�"); + } + if (ArrayUtils.contains(split, "11")) { + wzlx.add("鍖婚櫌鍛ㄨ竟"); + } + if (ArrayUtils.contains(split, "12")) { + wzlx.add("閲戣瀺鏈烘瀯鍛ㄨ竟"); + } + if (ArrayUtils.contains(split, "13")) { + wzlx.add("鍗遍櫓鐗╁搧鍦烘墍鍛ㄨ竟"); + } + if (ArrayUtils.contains(split, "14")) { + wzlx.add("鍗氱墿棣嗗睍瑙堥"); + } + if (ArrayUtils.contains(split, "15")) { + wzlx.add("閲嶇偣姘村煙銆佽埅閬�"); + } + if (ArrayUtils.contains(split, "96")) { + wzlx.add("甯傞檯鍏畨妫�鏌ョ珯"); + } + if (ArrayUtils.contains(split, "97")) { + wzlx.add("娑夊鍦烘墍"); + } + if (ArrayUtils.contains(split, "98")) { + wzlx.add("杈瑰娌跨嚎"); + } + if (ArrayUtils.contains(split, "99")) { + wzlx.add("鏃呮父鏅尯"); + } + this.SXJWZLX = String.join("/", wzlx); + return SXJWZLX; + } + + public String getJSFW() { + if (Objects.equals(JSFW, "1")) { + this.JSFW = "涓�"; + } + if (Objects.equals(JSFW, "2")) { + this.JSFW = "瑗�"; + } + if (Objects.equals(JSFW, "3")) { + this.JSFW = "鍗�"; + } + if (Objects.equals(JSFW, "4")) { + this.JSFW = "鍖�"; + } + if (Objects.equals(JSFW, "5")) { + this.JSFW = "涓滃崡"; + } + if (Objects.equals(JSFW, "6")) { + this.JSFW = "涓滃寳"; + } + if (Objects.equals(JSFW, "7")) { + this.JSFW = "瑗垮崡"; + } + if (Objects.equals(JSFW, "8")) { + this.JSFW = "瑗垮寳"; + } + if (Objects.equals(JSFW, "9")) { + this.JSFW = "鍏ㄥ悜"; + } + return JSFW; + } + + public String getLWSX() { + if (Objects.equals(LWSX, "0")) { + this.LWSX = "宸茶仈缃�"; + } + if (Objects.equals(LWSX, "1")) { + this.LWSX = "鏈仈缃�"; + } + return LWSX; + } + + public String getSSBMHY() { + List<String> ssbmhy = new ArrayList<>(); + if (StringUtils.isBlank(SSBMHY)) { + return SSBMHY; + } + String[] split = SSBMHY.split("/"); + if (ArrayUtils.contains(split, "1")) { + ssbmhy.add("鍏畨鏈哄叧"); + } + if (ArrayUtils.contains(split, "2")) { + ssbmhy.add("鐜繚閮ㄩ棬"); + } + if (ArrayUtils.contains(split, "3")) { + ssbmhy.add("鏂囧崥閮ㄩ棬"); + } + if (ArrayUtils.contains(split, "4")) { + ssbmhy.add("鍖荤枟閮ㄩ棬"); + } + if (ArrayUtils.contains(split, "5")) { + ssbmhy.add("鏃呮父绠$悊"); + } + if (ArrayUtils.contains(split, "6")) { + ssbmhy.add("鏂伴椈骞跨數"); + } + if (ArrayUtils.contains(split, "7")) { + ssbmhy.add("椋熷搧鍖昏嵂鐩戠潱绠$悊閮ㄩ棬"); + } + if (ArrayUtils.contains(split, "8")) { + ssbmhy.add("鏁欒偛绠$悊閮ㄩ棬"); + } + if (ArrayUtils.contains(split, "9")) { + ssbmhy.add("妫�瀵熼櫌"); + } + if (ArrayUtils.contains(split, "10")) { + ssbmhy.add("娉曢櫌"); + } + if (ArrayUtils.contains(split, "11")) { + ssbmhy.add("閲戣瀺閮ㄩ棬"); + } + if (ArrayUtils.contains(split, "12")) { + ssbmhy.add("浜ら�氶儴闂�"); + } + if (ArrayUtils.contains(split, "13")) { + ssbmhy.add("浣忔埧鍜屽煄涔″缓璁鹃儴闂�"); + } + if (ArrayUtils.contains(split, "14")) { + ssbmhy.add("姘村埄閮ㄩ棬"); + } + if (ArrayUtils.contains(split, "15")) { + ssbmhy.add("鏋椾笟閮ㄩ棬"); + } + if (ArrayUtils.contains(split, "16")) { + ssbmhy.add("瀹夊叏鐢熶骇鐩戠潱閮ㄩ棬"); + } + if (ArrayUtils.contains(split, "17")) { + ssbmhy.add("甯傛斂甯傚濮�"); + } + if (ArrayUtils.contains(split, "18")) { + ssbmhy.add("鍥藉湡灞�"); + } + this.SSBMHY = String.join("/", ssbmhy); + return SSBMHY; + } } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/RecordMetaDSumResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/RecordMetaDSumResult.java index 9ed4af2..be732c7 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/RecordMetaDSumResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/RecordMetaDSumResult.java @@ -7,6 +7,7 @@ import org.springframework.data.mongodb.core.mapping.Document; import java.util.Date; +import java.util.Objects; /** * 褰曞儚鍙敤鎬� @@ -72,6 +73,11 @@ private Integer recordStatus; /** + * 褰曞儚瀹屾暣鐘舵�侊紝1锛氬畬鏁达紝0锛氶棿姝囷紝-1锛氬紓甯� + */ + private String recordStatusText; + + /** * 缁熻鏃堕棿锛屾牸寮忎负鏃ユ湡瀛楃涓� */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @@ -82,4 +88,16 @@ */ private String tenantId; + public String getRecordStatusText() { + if (Objects.equals(recordStatus, 1)) { + recordStatusText = "瀹屾暣"; + } + if (Objects.equals(recordStatus, 0)) { + recordStatusText = "闂存瓏"; + } + if (Objects.equals(recordStatus, -1)) { + recordStatusText = "寮傚父"; + } + return recordStatusText; + } } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoOnlineResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoOnlineResult.java index 7516d2f..6a7bb2f 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoOnlineResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoOnlineResult.java @@ -55,6 +55,10 @@ */ private Integer icmpStatus; /** + * icmp鐘舵�� 2/1/-1/0 鍏ㄩ儴/鍦ㄧ嚎/绂荤嚎/鏈煡 + */ + private String icmpStatusText; + /** * 鏈�杩慽cmp鏃堕棿 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @@ -101,6 +105,10 @@ */ private Integer status; /** + * 鍦ㄧ嚎鐘舵�� 2/1/-1/0 鍏ㄩ儴/鍦ㄧ嚎/绂荤嚎/鏈煡 + */ + private String statusText; + /** * 鐪佸巺鏍囩 */ private String tagStr; @@ -122,4 +130,35 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date vqdTime; + public String getIcmpStatusText() { + if (icmpStatus == 2) { + this.icmpStatusText = "鍏ㄩ儴"; + } + if (icmpStatus == 1) { + this.icmpStatusText = "鍦ㄧ嚎"; + } + if (icmpStatus == -1) { + this.icmpStatusText = "绂荤嚎"; + } + if (icmpStatus == 0) { + this.icmpStatusText = "鏈煡"; + } + return icmpStatusText; + } + + public String getStatusText() { + if (status == 2) { + this.statusText = "鍏ㄩ儴"; + } + if (status == 1) { + this.statusText = "鍦ㄧ嚎"; + } + if (status == -1) { + this.statusText = "绂荤嚎"; + } + if (status == 0) { + this.statusText = "鏈煡"; + } + return statusText; + } } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleVO.java new file mode 100644 index 0000000..a1344e8 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateRuleVO.java @@ -0,0 +1,62 @@ +package com.ycl.platform.domain.vo; + +import enumeration.general.RuleDeductCategoryEnum; +import lombok.Data; + +import java.util.Date; + +@Data +public class CalculateRuleVO { + + /** + * id + */ + private Integer id; + + /** + * 鍚堝悓id + */ + private Integer contractId; + + /** + * 瑙勫垯鍚嶇О + */ + private String ruleName; + + /** + * 瑙勫垯鏉′欢 + */ + private String ruleCondition; + + /** + * 杩濊鏈�灏忓�� + */ + private Double min; + + /** + * 杩濊鏈�澶у�� + */ + private Double max; + + /** + * 鎵e噺鏂瑰紡 鎵f寚瀹氬垎鏁�/鍒嗘暟涔樹互鏁伴噺/闄や互鏁伴噺鍚庝箻浠ュ垎鏁� + */ + private RuleDeductCategoryEnum deductCategory; + + /** + * 鎵i櫎鍒嗘暟 + */ + private Double calcFraction; + + /** + * 褰撴柟寮忎负闄や互鏃讹紝闄や互褰撳墠瀛楁鏁伴噺 + */ + private Integer calcUnit; + + private Date createTime; + private Date updateTime; + + private Integer deleted; + + private Integer unitId; +} diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java index 716de5e..4abbad3 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java @@ -11,6 +11,7 @@ import constant.ApiConstants; import constant.CheckSnapCountConstants; import constant.CheckThreadConstants; +import constant.RedisConstant; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -21,7 +22,10 @@ import java.math.RoundingMode; import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; @@ -74,7 +78,7 @@ // 鍒ゆ柇浠婂ぉ鏄惁鏄湰鏈堢殑绗竴澶� if (today.equals(firstDayOfMonth)) { // 濡傛灉鏄紝鍒欐竻闄edis涓褰曚腑鏂鏁扮殑鏁版嵁 - redisTemplate.delete(CheckThreadConstants.Check_Car_ViewConnect); + redisTemplate.delete(RedisConstant.Check_Car_ViewConnect); } for (SnapshotDataMonitorResult result : list) { TMonitorVO monitor = monitorMap.get(result.getExternalIndexCode()); @@ -156,7 +160,7 @@ } //瑙嗗浘搴撳鎺ョǔ瀹氭�� //Redis璁板綍璇ュ尯鍘垮綋鏈堟棤鏁版嵁涓婁紶娆℃暟 - Integer noDateCount = (Integer) redisTemplate.opsForHash().get(CheckThreadConstants.Check_Car_ViewConnect, key); + Integer noDateCount = (Integer) redisTemplate.opsForHash().get(RedisConstant.Check_Car_ViewConnect, key); // 濡傛灉鍊间负null锛屽垯鍒濆鍖栦负0 if (noDateCount == null) { noDateCount = 0; @@ -174,7 +178,7 @@ noDateCount++; } // 灏嗘柊鐨勫�兼斁鍥濰ash涓� - redisTemplate.opsForHash().put(CheckThreadConstants.Check_Car_ViewConnect, key, noDateCount); + redisTemplate.opsForHash().put(RedisConstant.Check_Car_ViewConnect, key, noDateCount); return checkIndexCar; } } diff --git a/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java index d9541ff..9ca280e 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java @@ -11,10 +11,7 @@ import com.ycl.platform.service.ICheckIndexFaceService; import com.ycl.platform.service.ITMonitorService; import com.ycl.system.mapper.SysConfigMapper; -import constant.ApiConstants; -import constant.CheckConstants; -import constant.CheckSnapCountConstants; -import constant.CheckThreadConstants; +import constant.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -79,7 +76,7 @@ // 鍒ゆ柇浠婂ぉ鏄惁鏄湰鏈堢殑绗竴澶� if (today.equals(firstDayOfMonth)) { // 濡傛灉鏄紝鍒欐竻闄edis涓褰曚腑鏂鏁扮殑鏁版嵁 - redisTemplate.delete(CheckThreadConstants.Check_Face_ViewConnect); + redisTemplate.delete(RedisConstant.Check_Face_ViewConnect); } for (SnapshotDataMonitorResult result : list) { TMonitorVO monitor = monitorMap.get(result.getExternalIndexCode()); @@ -153,7 +150,7 @@ } //瑙嗗浘搴撳鎺ョǔ瀹氭�� //Redis璁板綍璇ュ尯鍘垮綋鏈堟棤鏁版嵁涓婁紶娆℃暟 - Integer noDateCount = (Integer) redisTemplate.opsForHash().get(CheckThreadConstants.Check_Face_ViewConnect, key); + Integer noDateCount = (Integer) redisTemplate.opsForHash().get(RedisConstant.Check_Face_ViewConnect, key); // 濡傛灉鍊间负null锛屽垯鍒濆鍖栦负0 if (noDateCount == null) { noDateCount = 0; @@ -171,7 +168,7 @@ noDateCount++; } // 灏嗘柊鐨勫�兼斁鍥濰ash涓� - redisTemplate.opsForHash().put(CheckThreadConstants.Check_Face_ViewConnect, key, noDateCount); + redisTemplate.opsForHash().put(RedisConstant.Check_Face_ViewConnect, key, noDateCount); return checkIndexFace; } } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/ContractRuleRecordMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/ContractRuleRecordMapper.java new file mode 100644 index 0000000..27a2ae8 --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/ContractRuleRecordMapper.java @@ -0,0 +1,65 @@ +package com.ycl.platform.mapper; + +import com.ycl.platform.domain.entity.ContractRuleRecord; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 鍚堝悓瑙勫垯璁板綍Mapper鎺ュ彛 + * + * @author ruoyi + * @date 2024-08-21 + */ +public interface ContractRuleRecordMapper +{ + /** + * 鏌ヨ鍚堝悓瑙勫垯璁板綍 + * + * @param id 鍚堝悓瑙勫垯璁板綍涓婚敭 + * @return 鍚堝悓瑙勫垯璁板綍 + */ + public ContractRuleRecord selectContractRuleRecordById(Long id); + + /** + * 鏌ヨ鍚堝悓瑙勫垯璁板綍鍒楄〃 + * + * @param contractRuleRecord 鍚堝悓瑙勫垯璁板綍 + * @return 鍚堝悓瑙勫垯璁板綍闆嗗悎 + */ + public List<ContractRuleRecord> selectContractRuleRecordList(ContractRuleRecord contractRuleRecord); + + /** + * 鏂板鍚堝悓瑙勫垯璁板綍 + * + * @param contractRuleRecord 鍚堝悓瑙勫垯璁板綍 + * @return 缁撴灉 + */ + public int insertContractRuleRecord(ContractRuleRecord contractRuleRecord); + + public void insertBatch(@Param("list") List<ContractRuleRecord> list); + + /** + * 淇敼鍚堝悓瑙勫垯璁板綍 + * + * @param contractRuleRecord 鍚堝悓瑙勫垯璁板綍 + * @return 缁撴灉 + */ + public int updateContractRuleRecord(ContractRuleRecord contractRuleRecord); + + /** + * 鍒犻櫎鍚堝悓瑙勫垯璁板綍 + * + * @param id 鍚堝悓瑙勫垯璁板綍涓婚敭 + * @return 缁撴灉 + */ + public int deleteContractRuleRecordById(Long id); + + /** + * 鎵归噺鍒犻櫎鍚堝悓瑙勫垯璁板綍 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteContractRuleRecordByIds(Long[] ids); +} diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java index aff5d13..1d574d4 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java @@ -6,6 +6,8 @@ import com.ycl.platform.domain.query.ReportQuery; import com.ycl.platform.domain.vo.ReportVO; import com.ycl.platform.domain.form.ReportForm; + +import java.util.Date; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -29,4 +31,6 @@ * @return */ List<ReportVO> examineRecord(@Param("id") Integer id); + + List<String> selectNumberList(String status, String date); } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java index 5d73761..1ac8104 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java @@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.platform.domain.entity.TContract; import com.ycl.platform.domain.query.ContractQuery; +import com.ycl.platform.domain.vo.CalculateRuleVO; import com.ycl.platform.domain.vo.ContractVO; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -21,4 +23,5 @@ IPage<ContractVO> getPage(IPage page, @Param("query") ContractQuery query); + List<CalculateRuleVO> selectByRuleName(String ruleName, String ruleCondition, Date date); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java index 8020953..eab4a39 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java @@ -1,10 +1,15 @@ package com.ycl.platform.service.impl; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.CalculateRecord; import com.ycl.platform.domain.entity.CalculateReport; +import com.ycl.platform.domain.entity.CalculateRule; import com.ycl.platform.domain.excel.CalculateExport; import com.ycl.platform.domain.form.CalculateReportBackfillForm; import com.ycl.platform.domain.form.CalculateReportForm; @@ -14,6 +19,7 @@ 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.page.PageUtil; import enumeration.general.CalculateReportStatusEnum; @@ -44,7 +50,7 @@ @RequiredArgsConstructor public class CalculateReportServiceImpl extends ServiceImpl<CalculateReportMapper, CalculateReport> implements CalculateReportService { - private final CalculateReportMapper calculateReportMapper; + private final ICalculateRuleService calculateRuleService; private final CalculateRecordMapper calculateRecordMapper; /** @@ -211,13 +217,19 @@ calculateExport.setNum(list.stream().mapToInt(CalculateExport::getNum).sum()); calculateExport.setScore(100 + list.stream().mapToInt(CalculateExport::getScore).sum()); list.add(calculateExport); + // 鑾峰彇瑙勫垯 + List<CalculateRule> ruleList = calculateRuleService.list(new LambdaQueryWrapper<CalculateRule>().eq(CalculateRule::getContractId, contractId)); // 杈撳嚭鏂囦欢 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("鏍哥畻鎶ュ憡", StandardCharsets.UTF_8).replace("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); - EasyExcel.write(response.getOutputStream(), CalculateExport.class) - .sheet("鏍哥畻鎶ュ憡") - .doWrite(list); + // 澧炲姞sheet + try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build()){ + WriteSheet sheet = EasyExcel.writerSheet(0, "鏍哥畻鎶ュ憡").head(CalculateExport.class).build(); + excelWriter.write(list, sheet); + WriteSheet sheet2 = EasyExcel.writerSheet(1, "鏍哥畻瑙勫垯").head(CalculateRule.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); + excelWriter.write(ruleList, sheet2); + } } } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java index 7e35095..8b0c6d6 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java @@ -52,9 +52,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, VideoOnlineResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<VideoOnlineResult> resultList = mongoTemplate.find(query, VideoOnlineResult.class); - long total = mongoTemplate.count(query, VideoOnlineResult.class); return Result.ok().data(resultList).total(total); } @@ -77,9 +77,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, OneMachineFileResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); - long total = mongoTemplate.count(query, OneMachineFileResult.class); return Result.ok().data(resultList).total(total); } @@ -102,9 +102,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, MonitorQualifyResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<MonitorQualifyResult> resultList = mongoTemplate.find(query, MonitorQualifyResult.class); - long total = mongoTemplate.count(query, MonitorQualifyResult.class); return Result.ok().data(resultList).total(total); } @@ -127,9 +127,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, OneMachineFileResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); - long total = mongoTemplate.count(query, OneMachineFileResult.class); return Result.ok().data(resultList).total(total); } @@ -152,9 +152,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, RecordMetaDSumResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<RecordMetaDSumResult> resultList = mongoTemplate.find(query, RecordMetaDSumResult.class); - long total = mongoTemplate.count(query, RecordMetaDSumResult.class); return Result.ok().data(resultList).total(total); } @@ -177,9 +177,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, RecordMetaDSumResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<RecordMetaDSumResult> resultList = mongoTemplate.find(query, RecordMetaDSumResult.class); - long total = mongoTemplate.count(query, RecordMetaDSumResult.class); return Result.ok().data(resultList).total(total); } @@ -203,9 +203,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, OneMachineFileResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); - long total = mongoTemplate.count(query, OneMachineFileResult.class); return Result.ok().data(resultList).total(total); } @@ -229,9 +229,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, OneMachineFileResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); - long total = mongoTemplate.count(query, OneMachineFileResult.class); return Result.ok().data(resultList).total(total); } @@ -255,9 +255,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, OneMachineFileResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); - long total = mongoTemplate.count(query, OneMachineFileResult.class); return Result.ok().data(resultList).total(total); } @@ -281,9 +281,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, OneMachineFileResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); - long total = mongoTemplate.count(query, OneMachineFileResult.class); return Result.ok().data(resultList).total(total); } @@ -307,9 +307,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, OneMachineFileResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); - long total = mongoTemplate.count(query, OneMachineFileResult.class); return Result.ok().data(resultList).total(total); } @@ -333,9 +333,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, OneMachineFileResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); - long total = mongoTemplate.count(query, OneMachineFileResult.class); return Result.ok().data(resultList).total(total); } @@ -361,9 +361,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); - long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); return Result.ok().data(resultList).total(total); } @@ -386,9 +386,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); - long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); return Result.ok().data(resultList).total(total); } @@ -411,9 +411,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, OneMachineFileResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); - long total = mongoTemplate.count(query, OneMachineFileResult.class); return Result.ok().data(resultList).total(total); } @@ -436,9 +436,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, CrossDetailResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<CrossDetailResult> resultList = mongoTemplate.find(query, CrossDetailResult.class); - long total = mongoTemplate.count(query, CrossDetailResult.class); return Result.ok().data(resultList).total(total); } @@ -461,9 +461,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, DataIntegrityMonitoringResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<DataIntegrityMonitoringResult> resultList = mongoTemplate.find(query, DataIntegrityMonitoringResult.class); - long total = mongoTemplate.count(query, DataIntegrityMonitoringResult.class); return Result.ok().data(resultList).total(total); } @@ -486,9 +486,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, AttrRecognitionMonitorResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<AttrRecognitionMonitorResult> resultList = mongoTemplate.find(query, AttrRecognitionMonitorResult.class); - long total = mongoTemplate.count(query, AttrRecognitionMonitorResult.class); return Result.ok().data(resultList).total(total); } @@ -511,9 +511,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, VehicleDeviceInspectionResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<VehicleDeviceInspectionResult> resultList = mongoTemplate.find(query, VehicleDeviceInspectionResult.class); - long total = mongoTemplate.count(query, VehicleDeviceInspectionResult.class); return Result.ok().data(resultList).total(total); } @@ -536,9 +536,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, SnapshotDelayMonitorResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<SnapshotDelayMonitorResult> resultList = mongoTemplate.find(query, SnapshotDelayMonitorResult.class); - long total = mongoTemplate.count(query, SnapshotDelayMonitorResult.class); return Result.ok().data(resultList).total(total); } @@ -561,9 +561,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, PicAccessResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<PicAccessResult> resultList = mongoTemplate.find(query, PicAccessResult.class); - long total = mongoTemplate.count(query, PicAccessResult.class); return Result.ok().data(resultList).total(total); } @@ -586,9 +586,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, VehicleDeviceSamplingResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<VehicleDeviceSamplingResult> resultList = mongoTemplate.find(query, VehicleDeviceSamplingResult.class); - long total = mongoTemplate.count(query, VehicleDeviceSamplingResult.class); return Result.ok().data(resultList).total(total); } @@ -611,9 +611,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); - long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); return Result.ok().data(resultList).total(total); } @@ -637,9 +637,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); - long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); return Result.ok().data(resultList).total(total); } @@ -662,9 +662,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, OneMachineFileResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); - long total = mongoTemplate.count(query, OneMachineFileResult.class); return Result.ok().data(resultList).total(total); } @@ -687,9 +687,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, CrossDetailResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<CrossDetailResult> resultList = mongoTemplate.find(query, CrossDetailResult.class); - long total = mongoTemplate.count(query, CrossDetailResult.class); return Result.ok().data(resultList).total(total); } @@ -712,9 +712,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, MonitoringDetailResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<MonitoringDetailResult> resultList = mongoTemplate.find(query, MonitoringDetailResult.class); - long total = mongoTemplate.count(query, MonitoringDetailResult.class); return Result.ok().data(resultList).total(total); } @@ -737,9 +737,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, FaceDeviceInspectionResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<FaceDeviceInspectionResult> resultList = mongoTemplate.find(query, FaceDeviceInspectionResult.class); - long total = mongoTemplate.count(query, FaceDeviceInspectionResult.class); return Result.ok().data(resultList).total(total); } @@ -762,9 +762,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, FaceDeviceInspectionResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<FaceDeviceInspectionResult> resultList = mongoTemplate.find(query, FaceDeviceInspectionResult.class); - long total = mongoTemplate.count(query, FaceDeviceInspectionResult.class); return Result.ok().data(resultList).total(total); } @@ -787,9 +787,9 @@ ); } query.addCriteria(criteria); + long total = mongoTemplate.count(query, FaceDeviceSamplingResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<FaceDeviceSamplingResult> resultList = mongoTemplate.find(query, FaceDeviceSamplingResult.class); - long total = mongoTemplate.count(query, FaceDeviceSamplingResult.class); return Result.ok().data(resultList).total(total); } } 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 bb95a81..a07570c 100644 --- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java +++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java @@ -1,12 +1,36 @@ package com.ycl.task; -import com.ycl.platform.mapper.TContractMapper; -import com.ycl.platform.mapper.TMonitorMapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mongodb.client.result.DeleteResult; +import com.ycl.platform.domain.entity.ContractRuleRecord; +import com.ycl.platform.domain.entity.Report; +import com.ycl.platform.domain.entity.TMonitor; +import com.ycl.platform.domain.entity.YwPoint; +import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; +import com.ycl.platform.domain.result.UY.VideoOnlineResult; +import com.ycl.platform.domain.vo.CalculateRuleVO; +import com.ycl.platform.domain.vo.ContractVO; +import com.ycl.platform.domain.vo.ReportVO; +import com.ycl.platform.mapper.*; +import com.ycl.utils.DateUtils; +import constant.ApiConstants; +import constant.RedisConstant; +import enumeration.ContractRule; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import javax.management.monitor.Monitor; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; +import java.util.stream.Collectors; /** * 鍚堝悓鑰冩牳瀹氭椂浠诲姟 @@ -17,20 +41,88 @@ @Autowired private MongoTemplate mongoTemplate; @Autowired + private RedisTemplate redisTemplate; + @Autowired private TMonitorMapper monitorMapper; @Autowired private TContractMapper contractMapper; + @Autowired + private YwPointMapper ywPointMapper; + @Autowired + private ReportMapper reportMapper; + @Autowired + private ContractRuleRecordMapper recordMapper; + + private static final Integer Online = 1; + private static final Integer Offline = -1; + private static final String AuditStatus_Pass = "1"; /** * 鍚堝悓鑰冩牳 鍦ㄧ嚎鐜囨瘡鏃ヤ换鍔℃娴� * 鏌ョ敓鏁堢殑鍚堝悓鍏宠仈鐨勫叕鍙革紝鑾峰彇unitId闆嗗悎 * 鏍规嵁unitId鏌ヨ瀵瑰簲鐐逛綅鑾峰彇鍚勪釜鍏徃绠$悊鐨勮澶嘔ds * 鏌ヨ涓夌璁惧鍦ㄧ嚎涓嶅湪绾挎儏鍐碉紝灏佽涓轰竴涓猰ap<鍥芥爣鐮�,鍦ㄧ嚎鐘舵��> - * 璁$畻姣忔棩姣忓鍏徃鐨勫湪绾跨巼瀛樺叆redis + * 璁$畻姣忔棩姣忓鍏徃鐨勫湪绾跨巼瀛樺叆mysql * 鏈堝簳璁$畻骞冲潎鍊硷紝鏍规嵁鍦ㄧ嚎鐜囧拰鍚堝悓鏍囧噯鎵e噺鍒嗘暟 */ public void onlineCheck() { -// contractMapper.selectByRuleName(); + List<CalculateRuleVO> ruleVos = contractMapper.selectByRuleName(ContractRule.CONTRACT_RULE_Online.getName(), null, new Date()); + List<Integer> unitIds = ruleVos.stream().map(CalculateRuleVO::getUnitId).collect(Collectors.toList()); + List<YwPoint> ywPoints = ywPointMapper.selectList(new QueryWrapper<YwPoint>().in("unitId", unitIds)); + //key鏄痷nitId value鏄澶囩紪鐮侀泦鍚� + Map<Long, List<String>> unitMap = ywPoints.stream() + .collect(Collectors.groupingBy( + YwPoint::getUnitId, + Collectors.mapping( + YwPoint::getSerialNumber, + Collectors.toList() + ) + )); + Map<String, Integer> onlineStatusMap = new HashMap<>(); + //鏌ongo鑾峰彇璁惧鍦ㄧ嚎鎯呭喌 + Date date = DateUtils.getDay(2024, 7, 13); + //杞﹁締銆佷汉鑴� + Query query = new Query(); + query.addCriteria(Criteria + .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date))); + List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class); + for (SnapshotDataMonitorResult result : results) { + if (ApiConstants.HK_SnapCount_ResultType_Null != result.getResultType()) { + onlineStatusMap.put(result.getExternalIndexCode(), Online); + } else { + onlineStatusMap.put(result.getExternalIndexCode(), Offline); + } + } + //瑙嗛 + Query videoQuery = new Query(Criteria + .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date))); + List<VideoOnlineResult> videoOnlineResults = mongoTemplate.find(videoQuery, VideoOnlineResult.class); + for (VideoOnlineResult videoOnlineResult : videoOnlineResults) { + onlineStatusMap.put(videoOnlineResult.getDeviceId(), videoOnlineResult.getStatus()); + } + //鏌ヨ鎶ュ鍒楄〃 + List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate()); + //璁$畻姣忎釜鍏徃鐨勭偣浣嶅湪绾跨巼 + List<ContractRuleRecord> ruleRecordList = new ArrayList<>(); + unitMap.forEach((unitId, serialNumberList) -> { + int totalSite = 0; + int onlineSite = 0; + for (String number : serialNumberList) { + //鎶ュ杩囦笉绾冲叆璁$畻 + if (!CollectionUtils.isEmpty(reportNumbers) && reportNumbers.contains(number)) continue; + Integer status = onlineStatusMap.get(number); + totalSite++; + if (Online.equals(status)) { + onlineSite++; + } + } + ContractRuleRecord contractRuleRecord = new ContractRuleRecord(); + contractRuleRecord.setSiteOnline( onlineSite / totalSite); + contractRuleRecord.setCreateTime(new Date()); + contractRuleRecord.setUnitId(unitId); + ruleRecordList.add(contractRuleRecord); + }); + //瀛樺偍缁撴灉 + recordMapper.insertBatch(ruleRecordList); } - } diff --git a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java index 7941624..904cd0f 100644 --- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java +++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java @@ -21,6 +21,7 @@ import enumeration.general.AreaDeptEnum; import enumeration.general.PointStatus; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; @@ -59,26 +60,28 @@ @Transactional(rollbackFor = Exception.class) public void synchronize() { log.info("寮�濮嬪悓姝ongodb涓�鏈轰竴妗e埌鏁版嵁搴�"); - Date date = DateUtils.getDay(2024,7,13); + Date date = DateUtils.getDay(2024, 7, 13); Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date))); // Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class); //鏁版嵁搴搈onitor琛ㄦ暟鎹� Map<String, TMonitorVO> monitorVOMap = monitorMapper.selectMonitorVOList().stream().collect(Collectors.toMap(TMonitorVO::getSerialNumber, Function.identity())); - //鍑嗗鎻掑叆璁惧琛ㄧ殑鏁版嵁 - List<TMonitor> monitorList = new ArrayList<>(); - //鍑嗗鎻掑叆鐐逛綅琛ㄧ殑鏁版嵁 - List<YwPoint> ywPointList = new ArrayList<>(); - //鏂扮殑鏁版嵁锛屽師鏁版嵁搴撲腑涓嶅瓨鍦ㄧ殑鏁版嵁 - Set<TMonitor> newMonitorList = new HashSet<>(); //鐐逛綅鏁版嵁 Map<String, YwPoint> pointMap = ywPointService.list(new QueryWrapper<YwPoint>()).stream().collect(Collectors.toMap(YwPoint::getSerialNumber, Function.identity())); + //閲嶇偣鐐逛綅闆嗗悎瀛楀吀(瑙f瀽SXJCJQY瀛楁) SysDictData sysDictData = new SysDictData(); sysDictData.setDictType("platform_important_site"); List<SysDictData> DictDataList = dictDataService.selectDictDataList(sysDictData); //閲囬泦鍖哄煙涓洪噸鐐圭偣浣嶇殑闆嗗悎 List<String> importantSite = DictDataList.stream().map(SysDictData::getDictValue).collect(Collectors.toList()); + + //鍑嗗鎻掑叆璁惧琛ㄧ殑鏁版嵁 + List<TMonitor> monitorList = new ArrayList<>(); + //鍑嗗鎻掑叆鐐逛綅琛ㄧ殑鏁版嵁 + List<YwPoint> ywPointList = new ArrayList<>(); + //鏂扮殑鏁版嵁锛屽師鏁版嵁搴撲腑涓嶅瓨鍦ㄧ殑鏁版嵁 + Set<TMonitor> newMonitorList = new HashSet<>(); //鍏ㄥ勾鐣欏瓨 for (MonitorQualifyResult result : oneMachineFileResults) { @@ -91,6 +94,22 @@ newMonitorList.add(monitor); } } + //娣诲姞鑰佹暟鎹� + List<String> numbers = CollectionUtils.isEmpty(monitorList) ? new ArrayList<>() : monitorList.stream().map(TMonitor::getSerialNumber).collect(Collectors.toList()); + monitorVOMap.forEach((key, value) -> { + if (!numbers.contains(key)){ + TMonitor monitor = new TMonitor(); + BeanUtils.copyProperties(value,monitor); + monitorList.add(monitor); + } + }); + List<String> points = CollectionUtils.isEmpty(ywPointList) ? new ArrayList<>() : ywPointList.stream().map(YwPoint::getSerialNumber).collect(Collectors.toList()); + pointMap.forEach((key, value) -> { + if (!points.contains(key)){ + ywPointList.add(value); + } + }); + log.info("result闆嗗悎{},璁惧闆嗗悎{},鐐逛綅闆嗗悎{}", oneMachineFileResults.size(), monitorList.size(), ywPointList.size()); //鎻掑叆鏁版嵁搴� if (!CollectionUtils.isEmpty(monitorList)) { diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml index a3c9adf..85e8d77 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml @@ -102,12 +102,13 @@ <select id="exportData" resultType="com.ycl.platform.domain.excel.CalculateExport"> SELECT - SUBSTRING_INDEX(rule_name, '/', 1) AS rule_name, - COUNT(*) AS num, - -SUM(score) AS score - FROM t_contract_score - WHERE contract_id = #{contractId} AND auditing_status = 'PASS' AND deleted = 0 - GROUP BY SUBSTRING_INDEX(rule_name, '/', 1) + a.rule_name, + COUNT(b.id) AS num, + IFNULL(-SUM(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 + GROUP BY a.rule_name </select> </mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/ContractRuleRecordMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ContractRuleRecordMapper.xml new file mode 100644 index 0000000..5ba17a2 --- /dev/null +++ b/ycl-server/src/main/resources/mapper/zgyw/ContractRuleRecordMapper.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ycl.platform.mapper.ContractRuleRecordMapper"> + + <resultMap type="com.ycl.platform.domain.entity.ContractRuleRecord" id="ContractRuleRecordResult"> + <result property="id" column="id"/> + <result property="unitId" column="unit_id"/> + <result property="siteOnline" column="site_online"/> + <result property="createTime" column="create_time"/> + <result property="deleted" column="deleted"/> + </resultMap> + + <sql id="selectContractRuleRecordVo"> + select id, unit_id, site_online, create_time, deleted + from t_contract_rule_record + </sql> + + <select id="selectContractRuleRecordList" resultMap="ContractRuleRecordResult"> + <include refid="selectContractRuleRecordVo"/> + <where> + <if test="unitId != null ">and unit_id = #{unitId}</if> + <if test="siteOnline != null ">and site_online = #{siteOnline}</if> + <if test="deleted != null ">and deleted = #{deleted}</if> + </where> + </select> + + <select id="selectContractRuleRecordById" resultMap="ContractRuleRecordResult"> + <include refid="selectContractRuleRecordVo"/> + where id = #{id} + </select> + + <insert id="insertContractRuleRecord" useGeneratedKeys="true" keyProperty="id"> + insert into t_contract_rule_record + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="unitId != null">unit_id,</if> + <if test="siteOnline != null">site_online,</if> + <if test="createTime != null">create_time,</if> + <if test="deleted != null">deleted,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="unitId != null">#{unitId},</if> + <if test="siteOnline != null">#{siteOnline},</if> + <if test="createTime != null">#{createTime},</if> + <if test="deleted != null">#{deleted},</if> + </trim> + </insert> + + <insert id="insertBatch"> + inner into t_contract_rule_record (unit_id,site_online,create_time) + values + <foreach collection="list" item="item" separator=","> + (#{item.unitId},#{item.siteOnline},#{item.createTime}) + </foreach> + </insert> + + <update id="updateContractRuleRecord"> + update t_contract_rule_record + <trim prefix="SET" suffixOverrides=","> + <if test="unitId != null">unit_id = #{unitId},</if> + <if test="siteOnline != null">site_online = #{siteOnline},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="deleted != null">deleted = #{deleted},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteContractRuleRecordById"> + delete + from t_contract_rule_record + where id = #{id} + </delete> + + <delete id="deleteContractRuleRecordByIds"> + delete from t_contract_rule_record where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> +</mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml index cc7b9e9..52bf32f 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml @@ -64,4 +64,10 @@ r.create_time DESC </select> + <select id="selectNumberList" resultType="java.lang.String"> + SELECT yp.serial_number FROM t_report r + LEFT JOIN t_yw_point yp ON r.point_id = yp.id + WHERE r.status = #{status} AND + #{date} between r.begin_create_time and r.end_create_time + </select> </mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml index eec44b2..7c796e6 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml @@ -15,7 +15,7 @@ <select id="getPage" resultType="com.ycl.platform.domain.vo.ContractVO"> select a.*, b.unit_name from t_contract a - left join t_yw_unit b on a.unit_id = b.id and b.deleted = 0 + left join t_yw_unit b on a.unit_id = b.id and b.deleted = 0 where a.deleted = 0 <if test="query.name != null and query.name != ''"> and a.name like concat('%', #{query.name}, '%') @@ -23,10 +23,10 @@ <if test="query.status != null and query.status != ''"> <choose> <when test="query.status == 'ACTIVE'"> - and a.start_time < sysdate() and a.end_time > sysdate() + and a.start_time < sysdate() and a.end_time > sysdate() </when> <when test="query.status == 'NOT_START'"> - and a.start_time > sysdate() + and a.start_time > sysdate() </when> <when test="query.status == 'FINISHED'"> and a.end_time < sysdate() @@ -36,4 +36,19 @@ order by create_time desc </select> + <select id="selectByRuleName" resultType="com.ycl.platform.domain.vo.CalculateRuleVO"> + select tc.unit_id ,tcr.* + from t_contract tc + left join t_calculate_rule tcr on tc.id = tcr.contract_id + <where> + tc.deleted =0 and #{time} between tc.start_time and tc.end_time + <if test="ruleName !=null and ruleName!=''"> + tcr.rule_name = #{ruleName} + </if> + <if test="ruleCondition !=null and ruleCondition!=''"> + tcr.rule_condition = #{ruleCondition} + </if> + </where> + + </select> </mapper> -- Gitblit v1.8.0