From 118be4ee52ea71cfc3d8ab702bc1702aa4286335 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 20 九月 2024 14:36:43 +0800
Subject: [PATCH] 运行监控导出优化
---
ycl-server/src/main/java/com/ycl/task/FaceTask.java | 5 ++
ycl-pojo/src/main/java/com/ycl/platform/domain/form/VideoExportForm.java | 29 ++++++++++++++
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 3 +
ycl-server/src/main/java/com/ycl/task/CarTask.java | 5 ++
ycl-server/src/main/java/com/ycl/task/VideoTask.java | 5 ++
ycl-server/src/main/java/com/ycl/task/MonitorTask.java | 3 -
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 12 ++++++
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java | 56 ++++++++++++++++++++++++---
8 files changed, 105 insertions(+), 13 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/VideoExportForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/VideoExportForm.java
index f7f10cb..b2818ca 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/VideoExportForm.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/VideoExportForm.java
@@ -3,6 +3,7 @@
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
+import org.springframework.util.CollectionUtils;
import java.util.List;
@@ -12,4 +13,32 @@
private String month;
@NotEmpty(message = "閮ㄩ棬涓嶈兘涓虹┖")
private List<Integer> deptIds;
+ // 0/1/2/3 鐪佸巺銆侀噸鐐圭偣浣嶃�侀噸鐐规寚鎸ュ浘鍍忋�侀儴绾�
+ private List<Integer> tags;
+
+ //璁惧绫诲瀷 1/2/3 瑙嗛銆佽溅杈嗐�佷汉鑴�
+ private Integer cameraFunType;
+ private Boolean provinceTag;
+ private Boolean importantTag;
+ private Boolean importantCommandImageTag;
+ private Boolean deptTag;
+
+ //瑁呴厤tag鏌ヨ鏉′欢
+ public static void convertTags(VideoExportForm form){
+ List<Integer> tags = form.getTags();
+ if(!CollectionUtils.isEmpty(tags)){
+ if(tags.contains(0)){
+ form.setProvinceTag(true);
+ }
+ if(tags.contains(1)){
+ form.setImportantTag(true);
+ }
+ if(tags.contains(2)){
+ form.setImportantCommandImageTag(true);
+ }
+ if(tags.contains(3)){
+ form.setDeptTag(true);
+ }
+ }
+ }
}
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 d3d00c5..dae63c3 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
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.form.VideoExportForm;
import com.ycl.platform.domain.query.DashboardQuery;
import com.ycl.platform.domain.query.DataCenterQuery;
import com.ycl.platform.domain.query.HomeQuery;
@@ -173,5 +174,5 @@
* @param tMonitor 璁惧璧勪骇
* @return 璁惧璧勪骇闆嗗悎
*/
- public List<TMonitorResult> selectMonitorResult(@Param("cameraFunType") Short cameraFunType,@Param("deptIds") List<Integer> deptIds);
+ public List<TMonitorResult> selectMonitorResult(VideoExportForm exportForm);
}
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 00739dc..710cd87 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
@@ -387,7 +387,9 @@
@Override
public void exportVideoTotal(HttpServletResponse response, VideoExportForm exportForm) throws IOException {
List<ExcelExp> mysheet = new ArrayList<>();
- List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(CheckConstants.Rule_Category_Video, exportForm.getDeptIds());
+ exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video+""));
+ VideoExportForm.convertTags(exportForm);
+ List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm);
List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
Query query = getQuery(deviceIds, exportForm.getMonth());
//鏈堜唤姣忔棩鍦ㄧ嚎鏁版嵁
@@ -469,11 +471,15 @@
@Override
public void exportVideoOnline(HttpServletResponse response, VideoExportForm exportForm) throws IOException, NoSuchFieldException, IllegalAccessException {
List<ExcelExp> mysheet = new ArrayList<>();
- List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(CheckConstants.Rule_Category_Video, exportForm.getDeptIds());
+ exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video+""));
+ VideoExportForm.convertTags(exportForm);
+ List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm);
List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
Query query = getQuery(deviceIds, exportForm.getMonth());
//鏈堜唤姣忔棩鍦ㄧ嚎鏁版嵁
List<TMonitorResult> onlineResult = mongoTemplate.find(query, TMonitorResult.class);
+ //鍏ㄩ噺琛�
+ List<VideoDailyExp> totalExps = new ArrayList<>();
for (Integer deptId : exportForm.getDeptIds()) {
List<VideoDailyExp> videoDailyExps = new ArrayList<>();
//浠庢暟鎹簱闆嗗悎绛涢�夐儴闂ㄦ暟鎹�
@@ -488,13 +494,22 @@
videoDailyExp.setSerialNumber(result.getNo());
videoDailyExp.setDeviceName(result.getName());
videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName());
- videoDailyExp.setTag("" + (result.getProvinceTag() ? "鐪佸巺" : "") + (result.getImportantTag() ? "銆侀噸鐐圭偣浣�" : "") + (result.getImportantCommandImageTag() ? "銆侀噸鐐规寚鎸ュ浘鍍�" : "") + (result.getDeptTag() ? "銆侀儴绾�" : ""));
+ String tag ="" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : "");
+ // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲��
+ if (tag.endsWith("銆�")) {
+ tag = tag.substring(0, tag.length() - 1);
+ }
+ videoDailyExp.setTag(tag);
setOnlineDaily(videoDailyExp, result, onlines);
videoDailyExps.add(videoDailyExp);
+ //鍏ㄩ噺琛�
+ totalExps.add(videoDailyExp);
}
ExcelExp excelExp = new ExcelExp(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName(), videoDailyExps, VideoDailyExp.class);
mysheet.add(excelExp);
}
+ ExcelExp excelExp = new ExcelExp("鍏ㄩ噺", totalExps, VideoDailyExp.class);
+ mysheet.add(excelExp);
ExcelUtilManySheet<List<ExcelExp>> util = new ExcelUtilManySheet<>(mysheet);
util.exportExcelManySheet(response, mysheet);
}
@@ -506,11 +521,15 @@
@Override
public void exportVideoRecord(HttpServletResponse response, VideoExportForm exportForm) throws IOException, NoSuchFieldException, IllegalAccessException {
List<ExcelExp> mysheet = new ArrayList<>();
- List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(CheckConstants.Rule_Category_Video, exportForm.getDeptIds());
+ exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video+""));
+ VideoExportForm.convertTags(exportForm);
+ List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm);
List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
Query query = getQuery(deviceIds, exportForm.getMonth());
//鏈堜唤姣忔棩褰曞儚绾挎暟鎹�
List<RecordMetaDSumResult> recordResult = mongoTemplate.find(query, RecordMetaDSumResult.class);
+ //鍏ㄩ噺琛�
+ List<VideoDailyExp> totalExps = new ArrayList<>();
for (Integer deptId : exportForm.getDeptIds()) {
List<VideoDailyExp> videoDailyExps = new ArrayList<>();
//浠庢暟鎹簱闆嗗悎绛涢�夐儴闂ㄦ暟鎹�
@@ -525,13 +544,23 @@
videoDailyExp.setSerialNumber(result.getNo());
videoDailyExp.setDeviceName(result.getName());
videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName());
- videoDailyExp.setTag("" + (result.getProvinceTag() ? "鐪佸巺" : "") + (result.getImportantTag() ? "銆侀噸鐐圭偣浣�" : "") + (result.getImportantCommandImageTag() ? "銆侀噸鐐规寚鎸ュ浘鍍�" : "") + (result.getDeptTag() ? "銆侀儴绾�" : ""));
+ String tag ="" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : "");
+ // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲��
+ if (tag.endsWith("銆�")) {
+ tag = tag.substring(0, tag.length() - 1);
+ }
+ videoDailyExp.setTag(tag);
setRecordDaily(videoDailyExp, result, records);
+ //鍖哄幙琛�
videoDailyExps.add(videoDailyExp);
+ //鍏ㄩ噺琛�
+ totalExps.add(videoDailyExp);
}
ExcelExp excelExp = new ExcelExp(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName(), videoDailyExps, VideoDailyExp.class);
mysheet.add(excelExp);
}
+ ExcelExp excelExp = new ExcelExp("鍏ㄩ噺", totalExps, VideoDailyExp.class);
+ mysheet.add(excelExp);
ExcelUtilManySheet<List<ExcelExp>> util = new ExcelUtilManySheet<>(mysheet);
util.exportExcelManySheet(response, mysheet);
}
@@ -542,11 +571,15 @@
@Override
public void exportVideoLoseTime(HttpServletResponse response, VideoExportForm exportForm) throws NoSuchFieldException, IllegalAccessException, IOException {
List<ExcelExp> mysheet = new ArrayList<>();
- List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(CheckConstants.Rule_Category_Video, exportForm.getDeptIds());
+ exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video+""));
+ VideoExportForm.convertTags(exportForm);
+ List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm);
List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
Query query = getQuery(deviceIds, exportForm.getMonth());
//鏈堜唤姣忔棩褰曞儚绾挎暟鎹�
List<RecordMetaDSumResult> recordResult = mongoTemplate.find(query, RecordMetaDSumResult.class);
+ //鍏ㄩ噺琛�
+ List<VideoDailyExp> totalExps = new ArrayList<>();
for (Integer deptId : exportForm.getDeptIds()) {
List<VideoDailyExp> videoDailyExps = new ArrayList<>();
//浠庢暟鎹簱闆嗗悎绛涢�夐儴闂ㄦ暟鎹�
@@ -561,13 +594,22 @@
videoDailyExp.setSerialNumber(result.getNo());
videoDailyExp.setDeviceName(result.getName());
videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName());
- videoDailyExp.setTag("" + (result.getProvinceTag() ? "鐪佸巺" : "") + (result.getImportantTag() ? "銆侀噸鐐圭偣浣�" : "") + (result.getImportantCommandImageTag() ? "銆侀噸鐐规寚鎸ュ浘鍍�" : "") + (result.getDeptTag() ? "銆侀儴绾�" : ""));
+ String tag ="" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : "");
+ // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲��
+ if (tag.endsWith("銆�")) {
+ tag = tag.substring(0, tag.length() - 1);
+ }
+ videoDailyExp.setTag(tag);
setLoseDaily(videoDailyExp, result, records);
videoDailyExps.add(videoDailyExp);
+ //鍏ㄩ噺琛�
+ totalExps.add(videoDailyExp);
}
ExcelExp excelExp = new ExcelExp(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName(), videoDailyExps, VideoDailyExp.class);
mysheet.add(excelExp);
}
+ ExcelExp excelExp = new ExcelExp("鍏ㄩ噺", totalExps, VideoDailyExp.class);
+ mysheet.add(excelExp);
ExcelUtilManySheet<List<ExcelExp>> util = new ExcelUtilManySheet<>(mysheet);
util.exportExcelManySheet(response, mysheet);
}
diff --git a/ycl-server/src/main/java/com/ycl/task/CarTask.java b/ycl-server/src/main/java/com/ycl/task/CarTask.java
index c245663..b91432e 100644
--- a/ycl-server/src/main/java/com/ycl/task/CarTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/CarTask.java
@@ -5,6 +5,7 @@
import com.ycl.calculate.CalculationStrategy;
import com.ycl.factory.IndexCalculationFactory;
import com.ycl.platform.domain.entity.YwPoint;
+import com.ycl.platform.domain.form.VideoExportForm;
import com.ycl.platform.domain.result.HK.*;
import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.result.UY.MonitorQualifyResult;
@@ -43,7 +44,9 @@
private YwPointMapper pointMapper;
public void siteOnlineTask() {
log.info("寮�濮嬭绠楃偣浣嶅湪绾跨巼");
- List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(CheckConstants.Rule_Category_Car,null);
+ VideoExportForm form = new VideoExportForm();
+ form.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Car+""));
+ List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(form);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_SiteOnline);
calculator.calculate(tMonitorResults);
log.info("缁撴潫璁$畻瑙嗗浘搴撳鎺ョǔ瀹氭��");
diff --git a/ycl-server/src/main/java/com/ycl/task/FaceTask.java b/ycl-server/src/main/java/com/ycl/task/FaceTask.java
index 4db5a56..aaca386 100644
--- a/ycl-server/src/main/java/com/ycl/task/FaceTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/FaceTask.java
@@ -3,6 +3,7 @@
import com.ycl.calculate.CalculationStrategy;
import com.ycl.factory.IndexCalculationFactory;
+import com.ycl.platform.domain.form.VideoExportForm;
import com.ycl.platform.domain.result.HK.*;
import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.result.UY.MonitorQualifyResult;
@@ -39,7 +40,9 @@
public void siteOnlineTask() {
log.info("寮�濮嬭绠楃偣浣嶅湪绾跨巼");
- List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(CheckConstants.Rule_Category_Face,null);
+ VideoExportForm form = new VideoExportForm();
+ form.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Face+""));
+ List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(form);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_SiteOnline);
calculator.calculate(tMonitorResults);
log.info("缁撴潫璁$畻瑙嗗浘搴撳鎺ョǔ瀹氭��");
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 c22d088..eb38895 100644
--- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -62,10 +62,9 @@
private RedisTemplate redisTemplate;
//鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo
- //TODO锛氬姞瀹氭椂浠诲姟12.杩囧紑濮�
public void siteOnline() {
log.info("寮�濮嬪悓姝ョ偣浣嶅湪绾跨巼鍒癿ongo");
- List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(null,null);
+ List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(null);
if (!CollectionUtils.isEmpty(tMonitorResults)) {
//濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
diff --git a/ycl-server/src/main/java/com/ycl/task/VideoTask.java b/ycl-server/src/main/java/com/ycl/task/VideoTask.java
index edbee39..cd921d7 100644
--- a/ycl-server/src/main/java/com/ycl/task/VideoTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/VideoTask.java
@@ -6,6 +6,7 @@
import com.ycl.platform.domain.entity.CheckIndexVideo;
import com.ycl.platform.domain.entity.ImageResourceSecurity;
import com.ycl.platform.domain.entity.ImageResourceSecurityDetail;
+import com.ycl.platform.domain.form.VideoExportForm;
import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.result.UY.*;
import com.ycl.platform.domain.vo.PlatformOnlineVO;
@@ -57,7 +58,9 @@
public void siteOnlineTask() {
log.info("寮�濮嬭绠楃偣浣嶅湪绾跨巼");
- List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(CheckConstants.Rule_Category_Video,null);
+ VideoExportForm form = new VideoExportForm();
+ form.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video+""));
+ List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(form);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_SiteOnline);
calculator.calculate(tMonitorResults);
log.info("缁撴潫璁$畻鐐逛綅鍦ㄧ嚎鐜�");
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index fd81b85..193ef44 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -182,6 +182,18 @@
#{deptId}
</foreach>
</if>
+ <if test="provinceTag!=null">
+ and p.province_tag = #{provinceTag}
+ </if>
+ <if test="importantTag!=null">
+ and p.important_tag = #{importantTag}
+ </if>
+ <if test="importantCommandImageTag!=null">
+ and p.important_command_image_tag = #{importantCommandImageTag}
+ </if>
+ <if test="deptTag!=null">
+ and p.dept_tag =#{deptTag}
+ </if>
</where>
</select>
<select id="selectTMonitorById" parameterType="Long" resultType="com.ycl.platform.domain.vo.TMonitorVO">
--
Gitblit v1.8.0