From 0fa29e0dc36990e5826be5f6d1bcc84c9a13201a Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 08 三月 2024 17:10:19 +0800
Subject: [PATCH] 数据大屏部分接口
---
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerTotalMapper.java | 6 +
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IDataDashboardService.java | 47 +++++++++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/DataDashboardController.java | 72 ++++++++++++++
dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerTotalMapper.xml | 7 +
dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsSceneryOperationDataMapper.xml | 12 ++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsPcrDataMapper.java | 5
dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsPcrDataMapper.xml | 15 ++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsSceneryOperationDataMapper.java | 5
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerTotalDashboardVo.java | 38 +++++++
dujy-admin/src/test/java/org/dromara/test/DemoUnitTest.java | 32 ++++++
dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/DataDashboardServiceImpl.java | 59 +++++++++++
11 files changed, 292 insertions(+), 6 deletions(-)
diff --git a/dujy-admin/src/test/java/org/dromara/test/DemoUnitTest.java b/dujy-admin/src/test/java/org/dromara/test/DemoUnitTest.java
index 5b3dfdc..072226d 100644
--- a/dujy-admin/src/test/java/org/dromara/test/DemoUnitTest.java
+++ b/dujy-admin/src/test/java/org/dromara/test/DemoUnitTest.java
@@ -5,6 +5,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+import java.time.LocalDate;
+import java.time.Month;
import java.util.concurrent.TimeUnit;
/**
@@ -67,4 +69,34 @@
System.out.println("@AfterAll ==================");
}
+ /**
+ * @Description TODO 鑾峰彇鏈搴︾殑绗竴澶╂垨鏈�鍚庝竴澶�
+ * @Param: [today, isFirst: true 琛ㄧず寮�濮嬫椂闂达紝false琛ㄧず缁撴潫鏃堕棿]
+ * @return: java.lang.String
+ */
+ public static String getStartOrEndDayOfQuarter(LocalDate today, Boolean isFirst) {
+ LocalDate resDate = LocalDate.now();
+ if (today == null) {
+ today = resDate;
+ }
+ Month month = today.getMonth();
+ Month firstMonthOfQuarter = month.firstMonthOfQuarter();
+ Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
+ if (isFirst) {
+ resDate = LocalDate.of(today.getYear(), firstMonthOfQuarter, 1);
+ } else {
+ resDate = LocalDate.of(today.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(today.isLeapYear()));
+ }
+ return resDate.toString();
+ }
+
+ public static void main(String[] args) {
+ System.out.println(getStartOrEndDayOfQuarter(LocalDate.parse("2024-05-04"), false));
+ System.out.println(getStartOrEndDayOfQuarter(LocalDate.parse("2024-06-04"), false));
+ System.out.println(getStartOrEndDayOfQuarter(LocalDate.parse("2024-07-04"), false));
+ System.out.println(getStartOrEndDayOfQuarter(LocalDate.parse("2024-01-04"), false));
+ System.out.println(getStartOrEndDayOfQuarter(LocalDate.parse("2024-02-04"), false));
+ }
+
+
}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/DataDashboardController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/DataDashboardController.java
new file mode 100644
index 0000000..e85b8ac
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/DataDashboardController.java
@@ -0,0 +1,72 @@
+package org.dromara.demo.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.demo.domain.bo.RsDangerTotalBo;
+import org.dromara.demo.domain.vo.*;
+import org.dromara.demo.service.IDataDashboardService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author ghl
+ * @since 2024/3/8 涓婂崍 10:57
+ */
+
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/dataDashboard")
+public class DataDashboardController {
+
+ private final IDataDashboardService service;
+
+ /**
+ * 杩�3骞翠氦閫氫簨鏁呮寚鏁�
+ */
+ @SaCheckPermission("rs:trafficIndex:list")
+ @GetMapping("/trafficIndex")
+ public R<RsTrafficIndexVo> getTrafficIndex() {
+ return R.ok(service.getTrafficIndex());
+ }
+
+ /**
+ * 浜鸿溅璺熀纭�淇℃伅
+ */
+ @SaCheckPermission("rs:pcrData:list")
+ @GetMapping("/pcrData")
+ public TableDataInfo<RsPcrDataVo> getPcrData() {
+ return TableDataInfo.build(service.getPcrData());
+ }
+
+ /**
+ * 閲嶇偣鏅尯杩愯鎯呭喌
+ */
+ @SaCheckPermission("demo:sceneryOperationData:list")
+ @GetMapping("/sceneryOperationData")
+ public TableDataInfo<RsSceneryOperationDataVo> getSceneryOperationData() {
+ return TableDataInfo.build(service.getSceneryOperationData());
+ }
+
+ /**
+ * 瀹夊叏闅愭偅鎯呭喌
+ */
+ @SaCheckPermission("demo:dangerInfo:list")
+ @GetMapping("/dangerInfo")
+ public TableDataInfo<RsDangerInfoVo> getDangerInfo() {
+ return TableDataInfo.build(service.getDangerInfo());
+ }
+
+ /**
+ * 瀹夊叏闅愭偅缁熻
+ */
+ @SaCheckPermission("demo:dangerTotal:list")
+ @GetMapping("/dangerTotal")
+ public R<RsDangerTotalDashboardVo> getDangerTotal() {
+ return R.ok(service.getDangerTotal());
+ }
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerTotalDashboardVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerTotalDashboardVo.java
new file mode 100644
index 0000000..1fdac98
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerTotalDashboardVo.java
@@ -0,0 +1,38 @@
+package org.dromara.demo.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.demo.domain.RsDangerTotal;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+ * 瀹夊叏闅愭偅缁熻瑙嗗浘瀵硅薄 rs_danger_total
+ *
+ * @author gonghl
+ * @date 2024-02-29
+ */
+@Data
+@AutoMapper(target = RsDangerTotal.class)
+public class RsDangerTotalDashboardVo implements Serializable {
+
+ /**
+ * 鍙戠幇瀹夊叏闅愭偅
+ */
+ private Long findSecurityRisks;
+
+ /**
+ * 涓嬪彂閫氱煡涔�
+ */
+ private Long issueNotice;
+
+ /**
+ * 澶勭疆瀹夊叏闅愭偅
+ */
+ private Long dealWithSecurityRisks;
+
+ private List<RsDangerTotalVo> list;
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerTotalMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerTotalMapper.java
index 4f2ea63..44e5972 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerTotalMapper.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerTotalMapper.java
@@ -1,6 +1,7 @@
package org.dromara.demo.mapper;
import org.dromara.demo.domain.RsDangerTotal;
+import org.dromara.demo.domain.vo.RsDangerTotalDashboardVo;
import org.dromara.demo.domain.vo.RsDangerTotalVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@@ -12,4 +13,9 @@
*/
public interface RsDangerTotalMapper extends BaseMapperPlus<RsDangerTotal, RsDangerTotalVo> {
+ /**
+ * 鑾峰彇闅愭偅缁熻鏁伴噺
+ * @return 闅愭偅缁熻鏁伴噺
+ */
+ RsDangerTotalDashboardVo getDangerTotalNums();
}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsPcrDataMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsPcrDataMapper.java
index 9e7eb76..e03c1f1 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsPcrDataMapper.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsPcrDataMapper.java
@@ -1,8 +1,10 @@
package org.dromara.demo.mapper;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.demo.domain.RsPcrData;
import org.dromara.demo.domain.vo.RsPcrDataVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+import java.util.List;
/**
* 浜鸿溅璺熀纭�淇℃伅Mapper鎺ュ彛
@@ -12,4 +14,5 @@
*/
public interface RsPcrDataMapper extends BaseMapperPlus<RsPcrData, RsPcrDataVo> {
+ List<RsPcrDataVo> getPcrData();
}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsSceneryOperationDataMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsSceneryOperationDataMapper.java
index 5a029cb..bd837b3 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsSceneryOperationDataMapper.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsSceneryOperationDataMapper.java
@@ -1,8 +1,10 @@
package org.dromara.demo.mapper;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.demo.domain.RsSceneryOperationData;
import org.dromara.demo.domain.vo.RsSceneryOperationDataVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+import java.util.List;
/**
* 鏅尯杩愯鏁版嵁Mapper鎺ュ彛
@@ -12,4 +14,5 @@
*/
public interface RsSceneryOperationDataMapper extends BaseMapperPlus<RsSceneryOperationData, RsSceneryOperationDataVo> {
+ List<RsSceneryOperationDataVo> getSceneryOperationData();
}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IDataDashboardService.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IDataDashboardService.java
new file mode 100644
index 0000000..90eb577
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IDataDashboardService.java
@@ -0,0 +1,47 @@
+package org.dromara.demo.service;
+
+import org.dromara.demo.domain.vo.*;
+
+import java.util.List;
+
+/**
+ * @author ghl
+ * @since 2024/3/8 涓婂崍 10:59
+ */
+public interface IDataDashboardService {
+
+
+ /**
+ * 杩�3骞翠氦閫氫簨鏁呮寚鏁�
+ *
+ * @return 杩�3骞翠氦閫氫簨鏁呮寚鏁�
+ */
+ RsTrafficIndexVo getTrafficIndex();
+
+ /**
+ * 浜鸿溅璺熀纭�淇℃伅
+ *
+ * @return 浜鸿溅璺熀纭�淇℃伅
+ */
+ List<RsPcrDataVo> getPcrData();
+
+ /**
+ * 閲嶇偣鏅尯杩愯鎯呭喌
+ *
+ * @return 閲嶇偣鏅尯杩愯鎯呭喌
+ */
+ List<RsSceneryOperationDataVo> getSceneryOperationData();
+
+ /**
+ * 瀹夊叏闅愭偅鎯呭喌
+ *
+ * @return 瀹夊叏闅愭偅鎯呭喌
+ */
+ List<RsDangerInfoVo> getDangerInfo();
+
+ /**
+ * 瀹夊叏闅愭偅缁熻
+ * @return 瀹夊叏闅愭偅缁熻
+ */
+ RsDangerTotalDashboardVo getDangerTotal();
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/DataDashboardServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/DataDashboardServiceImpl.java
new file mode 100644
index 0000000..eb839b7
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/DataDashboardServiceImpl.java
@@ -0,0 +1,59 @@
+package org.dromara.demo.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.demo.domain.RsDangerInfo;
+import org.dromara.demo.domain.RsTrafficIndex;
+import org.dromara.demo.domain.vo.*;
+import org.dromara.demo.mapper.*;
+import org.dromara.demo.service.IDataDashboardService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author gonghl
+ * @date 2024-3-8
+ */
+@RequiredArgsConstructor
+@Service
+public class DataDashboardServiceImpl implements IDataDashboardService {
+
+ private final RsTrafficIndexMapper trafficIndexMapper;
+ private final RsPcrDataMapper pcrDataMapper;
+ private final RsSceneryOperationDataMapper sceneryOperationDataMapper;
+ private final RsDangerInfoMapper dangerInfoMapper;
+ private final RsDangerTotalMapper dangerTotalMapper;
+
+ @Override
+ public RsTrafficIndexVo getTrafficIndex() {
+ LambdaQueryWrapper<RsTrafficIndex> queryWrapper = Wrappers.lambdaQuery();
+ queryWrapper.eq(RsTrafficIndex::getStatus, 1).orderByDesc(RsTrafficIndex::getCreateTime).last("limit 1");
+ return trafficIndexMapper.selectVoOne(queryWrapper);
+ }
+
+ @Override
+ public List<RsPcrDataVo> getPcrData() {
+ return pcrDataMapper.getPcrData();
+ }
+
+ @Override
+ public List<RsSceneryOperationDataVo> getSceneryOperationData() {
+ return sceneryOperationDataMapper.getSceneryOperationData();
+ }
+
+ @Override
+ public List<RsDangerInfoVo> getDangerInfo() {
+ LambdaQueryWrapper<RsDangerInfo> queryWrapper = Wrappers.lambdaQuery();
+ queryWrapper.eq(RsDangerInfo::getStatus, 1).orderByDesc(RsDangerInfo::getCreateTime);
+ return dangerInfoMapper.selectVoList(queryWrapper);
+ }
+
+ @Override
+ public RsDangerTotalDashboardVo getDangerTotal() {
+ RsDangerTotalDashboardVo dangerTotalDashboardVo = dangerTotalMapper.getDangerTotalNums();
+ // dangerTotalMapper.
+ return dangerTotalDashboardVo;
+ }
+}
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerTotalMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerTotalMapper.xml
index 51741a8..680f7f2 100644
--- a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerTotalMapper.xml
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerTotalMapper.xml
@@ -4,4 +4,11 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.demo.mapper.RsDangerTotalMapper">
+ <select id="getDangerTotalNums" resultType="org.dromara.demo.domain.vo.RsDangerTotalDashboardVo">
+ select sum(find_security_risks) as find_security_risks, sum(issue_notice) as issue_notice, sum(deal_with_security_risks) as deal_with_security_risks
+ from rs_danger_total
+ where status = 1
+ </select>
+
+
</mapper>
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsPcrDataMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsPcrDataMapper.xml
index 89d8e04..bc783f3 100644
--- a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsPcrDataMapper.xml
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsPcrDataMapper.xml
@@ -1,7 +1,18 @@
<?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">
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.demo.mapper.RsPcrDataMapper">
+ <select id="getPcrData" resultType="org.dromara.demo.domain.vo.RsPcrDataVo">
+ select *
+ from (select * from rs_pcr_data where `status` = 1 and mode_name = '閬撹矾閲岀▼鏁伴噺' ORDER BY create_time desc LIMIT 1) a
+ union
+ select *
+ from (select * from rs_pcr_data where `status` = 1 and mode_name = '鏈哄姩杞︿繚鏈夐噺' ORDER BY create_time desc LIMIT 1) b
+ union
+ select *
+ from (select * from rs_pcr_data where `status` = 1 and mode_name = '椹鹃┒浜轰繚鏈夐噺' ORDER BY create_time desc LIMIT 1) c
+ </select>
+
</mapper>
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsSceneryOperationDataMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsSceneryOperationDataMapper.xml
index 8502b2b..9750d73 100644
--- a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsSceneryOperationDataMapper.xml
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsSceneryOperationDataMapper.xml
@@ -1,7 +1,15 @@
<?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">
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.demo.mapper.RsSceneryOperationDataMapper">
+ <select id="getSceneryOperationData" resultType="org.dromara.demo.domain.vo.RsSceneryOperationDataVo">
+ select a.*
+ from rs_scenery_operation_data a
+ inner join rs_scenery_info b on a.scenery_info_name = b.scenery_name
+ where a.status = 1
+ order by b.sequence
+ </select>
+
</mapper>
--
Gitblit v1.8.0