From 2bacd2670e0f1b495e9cfda6023d8bccc32a5572 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期一, 11 三月 2024 16:23:28 +0800
Subject: [PATCH] 数据大屏剩余接口

---
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IDataDashboardService.java             |   25 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficPropagandaMapper.java          |    7 
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerTotalMapper.xml                        |   11 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficIndexMapper.java               |    6 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficIndexVo.java                |    6 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerInfoMapper.java                 |    3 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficAccident.java                  |   45 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsTrafficAccidentService.java         |   49 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficAccidentBo.java             |   48 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficIndexServiceImpl.java    |    1 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficAccidentServiceImpl.java |  111 ++++++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/DataDashboardServiceImpl.java     |   35 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsTrafficAccidentController.java    |  105 ++++++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficAccidentVo.java             |   62 +++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficAccidentMapper.java            |   18 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerInfoVo.java                  |   10 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsGeographyDataMapper.java              |    6 
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficAccidentMapper.xml                    |   10 
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerInfoMapper.xml                         |   15 
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficPropagandaMapper.xml                  |    4 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerTotalMapper.java                |    9 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/util/PeriodDate.java                           |  315 ++++++++++++++++++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsGeographyDataServiceImpl.java   |    2 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/DataDashboardController.java        |   40 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficPropagandaVo.java           |    2 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsPcrDataServiceImpl.java         |    1 
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsGeographyDataMapper.xml                      |   23 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetDataServiceImpl.java        |    1 
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficIndexMapper.xml                       |   10 
 29 files changed, 953 insertions(+), 27 deletions(-)

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
index e85b8ac..bac0e19 100644
--- 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
@@ -3,14 +3,16 @@
 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.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author ghl
@@ -64,9 +66,37 @@
      * 瀹夊叏闅愭偅缁熻
      */
     @SaCheckPermission("demo:dangerTotal:list")
-    @GetMapping("/dangerTotal")
-    public R<RsDangerTotalDashboardVo> getDangerTotal() {
-        return R.ok(service.getDangerTotal());
+    @GetMapping("/dangerTotal/{period}")
+    public R<RsDangerTotalDashboardVo> getDangerTotal(@PathVariable String period) {
+        return R.ok(service.getDangerTotal(period));
     }
 
+    /**
+     * 浜ら�氬浼�
+     */
+    @SaCheckPermission("demo:trafficPropaganda:list")
+    @GetMapping("/trafficPropaganda")
+    public TableDataInfo<RsTrafficPropagandaVo> getTrafficPropaganda() {
+        return TableDataInfo.build(service.getTrafficPropaganda());
+    }
+
+    /**
+     * 浜ら�氫簨鏁�
+     */
+    @SaCheckPermission("demo:trafficAccident:list")
+    @GetMapping("/trafficAccident")
+    public TableDataInfo<RsTrafficAccidentVo> getTrafficAccident() {
+        return TableDataInfo.build(service.getTrafficAccident());
+    }
+
+    /**
+     * 鏁版嵁涓婂浘
+     */
+    @SaCheckPermission("demo:geographyData:list")
+    @GetMapping("/geographyData")
+    public R<List<Map<String, Object>>> getGeographyData() {
+        return R.ok(service.getGeographyData());
+    }
+
+
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsTrafficAccidentController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsTrafficAccidentController.java
new file mode 100644
index 0000000..603c140
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsTrafficAccidentController.java
@@ -0,0 +1,105 @@
+package org.dromara.demo.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.demo.domain.vo.RsTrafficAccidentVo;
+import org.dromara.demo.domain.bo.RsTrafficAccidentBo;
+import org.dromara.demo.service.IRsTrafficAccidentService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 浜ら�氫簨鏁�
+ *
+ * @author gonghl
+ * @date 2024-03-11
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/demo/trafficAccident")
+public class RsTrafficAccidentController extends BaseController {
+
+    private final IRsTrafficAccidentService rsTrafficAccidentService;
+
+    /**
+     * 鏌ヨ浜ら�氫簨鏁呭垪琛�
+     */
+    @SaCheckPermission("demo:trafficAccident:list")
+    @GetMapping("/list")
+    public TableDataInfo<RsTrafficAccidentVo> list(RsTrafficAccidentBo bo, PageQuery pageQuery) {
+        return rsTrafficAccidentService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 瀵煎嚭浜ら�氫簨鏁呭垪琛�
+     */
+    @SaCheckPermission("demo:trafficAccident:export")
+    @Log(title = "浜ら�氫簨鏁�", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(RsTrafficAccidentBo bo, HttpServletResponse response) {
+        List<RsTrafficAccidentVo> list = rsTrafficAccidentService.queryList(bo);
+        ExcelUtil.exportExcel(list, "浜ら�氫簨鏁�", RsTrafficAccidentVo.class, response);
+    }
+
+    /**
+     * 鑾峰彇浜ら�氫簨鏁呰缁嗕俊鎭�
+     *
+     * @param id 涓婚敭
+     */
+    @SaCheckPermission("demo:trafficAccident:query")
+    @GetMapping("/{id}")
+    public R<RsTrafficAccidentVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+                                     @PathVariable String id) {
+        return R.ok(rsTrafficAccidentService.queryById(id));
+    }
+
+    /**
+     * 鏂板浜ら�氫簨鏁�
+     */
+    @SaCheckPermission("demo:trafficAccident:add")
+    @Log(title = "浜ら�氫簨鏁�", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody RsTrafficAccidentBo bo) {
+        return toAjax(rsTrafficAccidentService.insertByBo(bo));
+    }
+
+    /**
+     * 淇敼浜ら�氫簨鏁�
+     */
+    @SaCheckPermission("demo:trafficAccident:edit")
+    @Log(title = "浜ら�氫簨鏁�", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody RsTrafficAccidentBo bo) {
+        return toAjax(rsTrafficAccidentService.updateByBo(bo));
+    }
+
+    /**
+     * 鍒犻櫎浜ら�氫簨鏁�
+     *
+     * @param ids 涓婚敭涓�
+     */
+    @SaCheckPermission("demo:trafficAccident:remove")
+    @Log(title = "浜ら�氫簨鏁�", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+                          @PathVariable String[] ids) {
+        return toAjax(rsTrafficAccidentService.deleteWithValidByIds(List.of(ids), true));
+    }
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficAccident.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficAccident.java
new file mode 100644
index 0000000..fda7ff4
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficAccident.java
@@ -0,0 +1,45 @@
+package org.dromara.demo.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serial;
+import java.util.Date;
+
+/**
+ * 浜ら�氫簨鏁呭璞� rs_traffic_accident
+ *
+ * @author gonghl
+ * @date 2024-03-11
+ */
+@Data
+@TableName("rs_traffic_accident")
+public class RsTrafficAccident {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 缂栧彿
+     */
+    @TableId(value = "id")
+    private String id;
+
+    /**
+     * 鏍囬
+     */
+    private String title;
+
+    /**
+     * 鎺掑簭
+     */
+    private Long sequence;
+
+    /**
+     * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
+     */
+    private Long status;
+
+    private Date createTime;
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficAccidentBo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficAccidentBo.java
new file mode 100644
index 0000000..9e204c8
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficAccidentBo.java
@@ -0,0 +1,48 @@
+package org.dromara.demo.domain.bo;
+
+import org.dromara.demo.domain.RsTrafficAccident;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 浜ら�氫簨鏁呬笟鍔″璞� rs_traffic_accident
+ *
+ * @author gonghl
+ * @date 2024-03-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = RsTrafficAccident.class, reverseConvertGenerate = false)
+public class RsTrafficAccidentBo extends BaseEntity {
+
+    /**
+     * 缂栧彿
+     */
+    @NotBlank(message = "缂栧彿涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private String id;
+
+    /**
+     * 鏍囬
+     */
+    @NotBlank(message = "鏍囬涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String title;
+
+    /**
+     * 鎺掑簭
+     */
+    @NotNull(message = "鎺掑簭涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Long sequence;
+
+    /**
+     * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
+     */
+    @NotNull(message = "鍚敤鐘舵�� 1鍚敤 2鏈惎鐢ㄤ笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private Long status;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerInfoVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerInfoVo.java
index 75ac126..b592b16 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerInfoVo.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerInfoVo.java
@@ -1,17 +1,16 @@
 package org.dromara.demo.domain.vo;
 
-import org.dromara.demo.domain.RsDangerInfo;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
+import org.dromara.demo.domain.RsDangerInfo;
+import org.dromara.system.domain.vo.SysOssVo;
 
 import java.io.Serial;
 import java.io.Serializable;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -75,4 +74,7 @@
      */
     @ExcelProperty(value = "鍒涘缓鏃堕棿")
     private Date createTime;
+
+    private List<SysOssVo> imgList;
+
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficAccidentVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficAccidentVo.java
new file mode 100644
index 0000000..ee3b8ee
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficAccidentVo.java
@@ -0,0 +1,62 @@
+package org.dromara.demo.domain.vo;
+
+import org.dromara.demo.domain.RsTrafficAccident;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 浜ら�氫簨鏁呰鍥惧璞� rs_traffic_accident
+ *
+ * @author gonghl
+ * @date 2024-03-11
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = RsTrafficAccident.class)
+public class RsTrafficAccidentVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 缂栧彿
+     */
+    @ExcelProperty(value = "缂栧彿")
+    private String id;
+
+    /**
+     * 鏍囬
+     */
+    @ExcelProperty(value = "鏍囬")
+    private String title;
+
+    /**
+     * 鎺掑簭
+     */
+    @ExcelProperty(value = "鎺掑簭")
+    private Long sequence;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @ExcelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+
+    /**
+     * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
+     */
+    @ExcelProperty(value = "鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�")
+    private Long status;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficIndexVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficIndexVo.java
index 8eaed8d..f728fc1 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficIndexVo.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficIndexVo.java
@@ -9,7 +9,7 @@
 import java.io.Serial;
 import java.io.Serializable;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -182,5 +182,9 @@
     @ExcelProperty(value = "鍒涘缓鏃堕棿")
     private Date createTime;
 
+    private String targetOneIcon;
+    private String targetTwoIcon;
+    private String targetThreeIcon;
+    private String targetFourIcon;
 
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficPropagandaVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficPropagandaVo.java
index ac93da4..a243221 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficPropagandaVo.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficPropagandaVo.java
@@ -58,4 +58,6 @@
     @ExcelProperty(value = "鍒涘缓鏃堕棿")
     private Date createTime;
 
+    private String url;
+
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerInfoMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerInfoMapper.java
index c8199a4..8073aa9 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerInfoMapper.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsDangerInfoMapper.java
@@ -4,6 +4,8 @@
 import org.dromara.demo.domain.vo.RsDangerInfoVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
+import java.util.List;
+
 /**
  * 瀹夊叏闅愭偅淇℃伅Mapper鎺ュ彛
  *
@@ -12,4 +14,5 @@
  */
 public interface RsDangerInfoMapper extends BaseMapperPlus<RsDangerInfo, RsDangerInfoVo> {
 
+    List<RsDangerInfoVo> getDangerInfo();
 }
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 44e5972..43e955e 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
@@ -5,6 +5,8 @@
 import org.dromara.demo.domain.vo.RsDangerTotalVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
+import java.util.List;
+
 /**
  * 瀹夊叏闅愭偅缁熻Mapper鎺ュ彛
  *
@@ -18,4 +20,11 @@
      * @return 闅愭偅缁熻鏁伴噺
      */
     RsDangerTotalDashboardVo getDangerTotalNums();
+
+    /**
+     * 鑾峰彇闅愭偅缁熻鍒楄〃
+     * @param periodDate 缁熻鍛ㄦ湡
+     * @return 闅愭偅缁熻鍒楄〃
+     */
+    List<RsDangerTotalVo> getDangerTotalInfo(String periodDate);
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsGeographyDataMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsGeographyDataMapper.java
index 32e30ae..d7ededd 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsGeographyDataMapper.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsGeographyDataMapper.java
@@ -1,8 +1,11 @@
 package org.dromara.demo.mapper;
 
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.demo.domain.RsGeographyData;
 import org.dromara.demo.domain.vo.RsGeographyDataVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * 鏁版嵁涓婂浘Mapper鎺ュ彛
@@ -12,4 +15,5 @@
  */
 public interface RsGeographyDataMapper extends BaseMapperPlus<RsGeographyData, RsGeographyDataVo> {
 
+    List<Map<String, Object>> getGeographyData();
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficAccidentMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficAccidentMapper.java
new file mode 100644
index 0000000..9c63fae
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficAccidentMapper.java
@@ -0,0 +1,18 @@
+package org.dromara.demo.mapper;
+
+import org.dromara.demo.domain.RsTrafficAccident;
+import org.dromara.demo.domain.vo.RsTrafficAccidentVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+import java.util.List;
+
+/**
+ * 浜ら�氫簨鏁匨apper鎺ュ彛
+ *
+ * @author gonghl
+ * @date 2024-03-11
+ */
+public interface RsTrafficAccidentMapper extends BaseMapperPlus<RsTrafficAccident, RsTrafficAccidentVo> {
+
+    List<RsTrafficAccidentVo> getTrafficAccident();
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficIndexMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficIndexMapper.java
index f3324d4..92de508 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficIndexMapper.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficIndexMapper.java
@@ -20,4 +20,10 @@
      * @return 鍥炬爣
      */
     List<Map<String, String>> icon();
+
+    /**
+     * 杩�3骞翠氦閫氫簨鏁呮寚鏁�
+     * @return 杩�3骞翠氦閫氫簨鏁呮寚鏁�
+     */
+    RsTrafficIndexVo getTrafficIndex();
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficPropagandaMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficPropagandaMapper.java
index 55f2f6b..424aa84 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficPropagandaMapper.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficPropagandaMapper.java
@@ -4,6 +4,8 @@
 import org.dromara.demo.domain.vo.RsTrafficPropagandaVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
+import java.util.List;
+
 /**
  * 浜ら�氬浼燤apper鎺ュ彛
  *
@@ -19,4 +21,9 @@
      */
     void addSequence(Long sequence, String id);
 
+    /**
+     * 浜ら�氬浼�
+     * @return 浜ら�氬浼�
+     */
+    List<RsTrafficPropagandaVo> getTrafficPropaganda();
 }
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
index 90eb577..546c3ce 100644
--- 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
@@ -3,6 +3,7 @@
 import org.dromara.demo.domain.vo.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author ghl
@@ -41,7 +42,29 @@
 
     /**
      * 瀹夊叏闅愭偅缁熻
+     *
      * @return 瀹夊叏闅愭偅缁熻
      */
-    RsDangerTotalDashboardVo getDangerTotal();
+    RsDangerTotalDashboardVo getDangerTotal(String period);
+
+    /**
+     * 浜ら�氬浼�
+     *
+     * @return 浜ら�氬浼�
+     */
+    List<RsTrafficPropagandaVo> getTrafficPropaganda();
+
+    /**
+     * 浜ら�氫簨鏁�
+     *
+     * @return 浜ら�氫簨鏁�
+     */
+    List<RsTrafficAccidentVo> getTrafficAccident();
+
+    /**
+     * 鏁版嵁涓婂浘
+     *
+     * @return 鏁版嵁涓婂浘
+     */
+    List<Map<String, Object>> getGeographyData();
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsTrafficAccidentService.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsTrafficAccidentService.java
new file mode 100644
index 0000000..89979e6
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsTrafficAccidentService.java
@@ -0,0 +1,49 @@
+package org.dromara.demo.service;
+
+import org.dromara.demo.domain.RsTrafficAccident;
+import org.dromara.demo.domain.vo.RsTrafficAccidentVo;
+import org.dromara.demo.domain.bo.RsTrafficAccidentBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 浜ら�氫簨鏁匰ervice鎺ュ彛
+ *
+ * @author gonghl
+ * @date 2024-03-11
+ */
+public interface IRsTrafficAccidentService {
+
+    /**
+     * 鏌ヨ浜ら�氫簨鏁�
+     */
+    RsTrafficAccidentVo queryById(String id);
+
+    /**
+     * 鏌ヨ浜ら�氫簨鏁呭垪琛�
+     */
+    TableDataInfo<RsTrafficAccidentVo> queryPageList(RsTrafficAccidentBo bo, PageQuery pageQuery);
+
+    /**
+     * 鏌ヨ浜ら�氫簨鏁呭垪琛�
+     */
+    List<RsTrafficAccidentVo> queryList(RsTrafficAccidentBo bo);
+
+    /**
+     * 鏂板浜ら�氫簨鏁�
+     */
+    Boolean insertByBo(RsTrafficAccidentBo bo);
+
+    /**
+     * 淇敼浜ら�氫簨鏁�
+     */
+    Boolean updateByBo(RsTrafficAccidentBo bo);
+
+    /**
+     * 鏍¢獙骞舵壒閲忓垹闄や氦閫氫簨鏁呬俊鎭�
+     */
+    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}
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
index eb839b7..b14b3cb 100644
--- 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
@@ -3,14 +3,15 @@
 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.dromara.demo.util.PeriodDate;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author gonghl
@@ -25,12 +26,13 @@
     private final RsSceneryOperationDataMapper sceneryOperationDataMapper;
     private final RsDangerInfoMapper dangerInfoMapper;
     private final RsDangerTotalMapper dangerTotalMapper;
+    private final RsTrafficPropagandaMapper trafficPropagandaMapper;
+    private final RsTrafficAccidentMapper trafficAccidentMapper;
+    private final RsGeographyDataMapper geographyDataMapper;
 
     @Override
     public RsTrafficIndexVo getTrafficIndex() {
-        LambdaQueryWrapper<RsTrafficIndex> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(RsTrafficIndex::getStatus, 1).orderByDesc(RsTrafficIndex::getCreateTime).last("limit 1");
-        return trafficIndexMapper.selectVoOne(queryWrapper);
+        return trafficIndexMapper.getTrafficIndex();
     }
 
     @Override
@@ -45,15 +47,30 @@
 
     @Override
     public List<RsDangerInfoVo> getDangerInfo() {
-        LambdaQueryWrapper<RsDangerInfo> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(RsDangerInfo::getStatus, 1).orderByDesc(RsDangerInfo::getCreateTime);
-        return dangerInfoMapper.selectVoList(queryWrapper);
+        return dangerInfoMapper.getDangerInfo();
     }
 
     @Override
-    public RsDangerTotalDashboardVo getDangerTotal() {
+    public RsDangerTotalDashboardVo getDangerTotal(String period) {
         RsDangerTotalDashboardVo dangerTotalDashboardVo = dangerTotalMapper.getDangerTotalNums();
-        // dangerTotalMapper.
+        String periodDate = "quarter".equals(period) ? new PeriodDate().firstdateTimSeason : new PeriodDate().MonthFirst;
+        List<RsDangerTotalVo> list = dangerTotalMapper.getDangerTotalInfo(periodDate);
+        dangerTotalDashboardVo.setList(list);
         return dangerTotalDashboardVo;
     }
+
+    @Override
+    public List<RsTrafficPropagandaVo> getTrafficPropaganda() {
+        return trafficPropagandaMapper.getTrafficPropaganda();
+    }
+
+    @Override
+    public List<RsTrafficAccidentVo> getTrafficAccident() {
+        return trafficAccidentMapper.getTrafficAccident();
+    }
+
+    @Override
+    public List<Map<String, Object>> getGeographyData() {
+        return geographyDataMapper.getGeographyData();
+    }
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsGeographyDataServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsGeographyDataServiceImpl.java
index 9d33f18..707ee8a 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsGeographyDataServiceImpl.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsGeographyDataServiceImpl.java
@@ -63,6 +63,7 @@
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<RsGeographyData> lqw = Wrappers.lambdaQuery();
         lqw.like(StringUtils.isNotBlank(bo.getName()), RsGeographyData::getName, bo.getName());
+        lqw.orderByDesc(RsGeographyData::getCreateTime);
         return lqw;
     }
 
@@ -86,7 +87,6 @@
     @Override
     public Boolean updateByBo(RsGeographyDataBo bo) {
         RsGeographyData update = MapstructUtils.convert(bo, RsGeographyData.class);
-        validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
 
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsPcrDataServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsPcrDataServiceImpl.java
index c710eac..598541a 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsPcrDataServiceImpl.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsPcrDataServiceImpl.java
@@ -105,7 +105,6 @@
     @Override
     public Boolean updateByBo(RsPcrDataBo bo) {
         RsPcrData update = MapstructUtils.convert(bo, RsPcrData.class);
-        validEntityBeforeSave(update);
         // 鍚敤鏂版暟鎹皢鍏朵綑鍚岀被鍨嬫暟鎹敼涓虹鐢�
         if (bo.getStatus().equals(1L)) {
             LambdaUpdateWrapper<RsPcrData> updateWrapper = new LambdaUpdateWrapper<>();
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficAccidentServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficAccidentServiceImpl.java
new file mode 100644
index 0000000..c107792
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficAccidentServiceImpl.java
@@ -0,0 +1,111 @@
+package org.dromara.demo.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.demo.domain.RsTrafficAccident;
+import org.dromara.demo.domain.bo.RsTrafficAccidentBo;
+import org.dromara.demo.domain.vo.RsTrafficAccidentVo;
+import org.dromara.demo.mapper.RsTrafficAccidentMapper;
+import org.dromara.demo.service.IRsTrafficAccidentService;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 浜ら�氫簨鏁匰ervice涓氬姟灞傚鐞�
+ *
+ * @author gonghl
+ * @date 2024-03-11
+ */
+@RequiredArgsConstructor
+@Service
+public class RsTrafficAccidentServiceImpl implements IRsTrafficAccidentService {
+
+    private final RsTrafficAccidentMapper baseMapper;
+
+    /**
+     * 鏌ヨ浜ら�氫簨鏁�
+     */
+    @Override
+    public RsTrafficAccidentVo queryById(String id) {
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 鏌ヨ浜ら�氫簨鏁呭垪琛�
+     */
+    @Override
+    public TableDataInfo<RsTrafficAccidentVo> queryPageList(RsTrafficAccidentBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<RsTrafficAccident> lqw = buildQueryWrapper(bo);
+        Page<RsTrafficAccidentVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 鏌ヨ浜ら�氫簨鏁呭垪琛�
+     */
+    @Override
+    public List<RsTrafficAccidentVo> queryList(RsTrafficAccidentBo bo) {
+        LambdaQueryWrapper<RsTrafficAccident> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<RsTrafficAccident> buildQueryWrapper(RsTrafficAccidentBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<RsTrafficAccident> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getTitle()), RsTrafficAccident::getTitle, bo.getTitle());
+        lqw.eq(bo.getStatus() != null, RsTrafficAccident::getStatus, bo.getStatus());
+        lqw.orderByAsc(RsTrafficAccident::getSequence);
+        return lqw;
+    }
+
+    /**
+     * 鏂板浜ら�氫簨鏁�
+     */
+    @Override
+    public Boolean insertByBo(RsTrafficAccidentBo bo) {
+        RsTrafficAccident add = MapstructUtils.convert(bo, RsTrafficAccident.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 淇敼浜ら�氫簨鏁�
+     */
+    @Override
+    public Boolean updateByBo(RsTrafficAccidentBo bo) {
+        RsTrafficAccident update = MapstructUtils.convert(bo, RsTrafficAccident.class);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+     */
+    private void validEntityBeforeSave(RsTrafficAccident entity) {
+        entity.setCreateTime(new Date());
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎浜ら�氫簨鏁�
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
+        if (isValid) {
+            //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficIndexServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficIndexServiceImpl.java
index f78cbd3..ee7123a 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficIndexServiceImpl.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficIndexServiceImpl.java
@@ -116,7 +116,6 @@
     @Override
     public Boolean updateByBo(RsTrafficIndexBo bo) {
         RsTrafficIndex update = MapstructUtils.convert(bo, RsTrafficIndex.class);
-        validEntityBeforeSave(update);
         // 鍚敤鏂版暟鎹皢鎵�鏈夋暟鎹敼涓虹鐢�
         if (bo.getStatus().equals(1)) {
             LambdaUpdateWrapper<RsTrafficIndex> updateWrapper = new LambdaUpdateWrapper<>();
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetDataServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetDataServiceImpl.java
index a7d9e71..971c308 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetDataServiceImpl.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetDataServiceImpl.java
@@ -88,7 +88,6 @@
     @Override
     public Boolean updateByBo(TargetDataBo bo) {
         TargetData update = MapstructUtils.convert(bo, TargetData.class);
-        validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
 
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/util/PeriodDate.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/util/PeriodDate.java
new file mode 100644
index 0000000..50c9b5c
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/util/PeriodDate.java
@@ -0,0 +1,315 @@
+package org.dromara.demo.util;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import org.springframework.util.StringUtils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+public class PeriodDate {
+    public static final String FORMAT_YYYY_MM_DD = "yyyy-MM-dd";
+
+    //浠婂ぉ
+    public String today = DateUtil.today();
+    public DateTime date = DateUtil.date();
+    //鏈湀
+    public String month = DateUtil.format(date, "M");
+    //鏈懆鐨勭涓�澶�
+    public String weekFirst = PeriodDate.getThisWeekOfFirstDate();
+    //鏈懆鐨勬渶鍚庝竴澶�
+    public String weekEnd = DateUtil.format(DateUtil.offsetDay(date, 4), "yyyy-MM-dd");
+    //鏈湀鐨勭涓�澶�
+    public String MonthFirst = PeriodDate.getThisMonthOfFirstDate(0);
+    //鏈湀鐨勬渶鍚庝竴澶�
+    public String MonthEnd = PeriodDate.getThisMouthLastDay();
+    //鏈搴︾殑鏈�鍚庝竴澶�
+    public String lastdateTimSeason = PeriodDate.getCurrQuarter(Integer.valueOf(PeriodDate.getQuarter()))[1];
+    //鏈搴︾殑绗竴澶�
+    public String firstdateTimSeason = PeriodDate.getCurrQuarter(Integer.valueOf(PeriodDate.getQuarter()))[0];
+    //鏈湀澶╂暟
+    public int daysInMonth = PeriodDate.getDaysOfMonth();
+
+    public static String changeSqlNotNull(String sql) {
+        String[] strings = sql.split(",");
+        String returnSql = "";
+        for (String str : strings) {
+            if (str.contains("''")) {
+                returnSql = returnSql + str + ",";
+            } else {
+                returnSql = returnSql + "ifnull(" + str + ",'') " + str + ",";
+
+            }
+        }
+        return returnSql.substring(0, returnSql.length() - 1);
+    }
+
+
+    /**
+     * 鑾峰彇涓や釜鏃ユ湡涔嬮棿鐨勬墍鏈夋棩鏈�(瀛楃涓叉牸寮�, 鎸夊ぉ璁$畻)
+     *
+     * @param startTime String 寮�濮嬫椂闂� yyyy-MM-dd
+     * @param endTime   String 缁撴潫鏃堕棿 yyyy-MM-dd
+     * @return
+     */
+    public static List<String> getBetweenDays(String startTime, String endTime) throws ParseException {
+        if (StringUtils.isEmpty(startTime) || StringUtils.isEmpty(endTime)) {
+            return null;
+        }
+        //1銆佸畾涔夎浆鎹㈡牸寮�
+        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+
+        Date start = df.parse(startTime);
+        Date end = df.parse(endTime);
+        if (StringUtils.isEmpty(start) || StringUtils.isEmpty(end)) {
+            return null;
+        }
+        List<String> result = new ArrayList<String>();
+
+        Calendar tempStart = Calendar.getInstance();
+        tempStart.setTime(start);
+
+        tempStart.add(Calendar.DAY_OF_YEAR, 1);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar tempEnd = Calendar.getInstance();
+        tempEnd.setTime(end);
+        result.add(sdf.format(start));
+        while (tempStart.before(tempEnd) || tempStart.equals(tempEnd)) {
+            result.add(sdf.format(tempStart.getTime()));
+            tempStart.add(Calendar.DAY_OF_YEAR, 1);
+        }
+        return result;
+    }
+
+    /**
+     * 鏈懆鐨勭涓�澶�
+     *
+     * @return
+     */
+    public static String getThisWeekOfFirstDate() {
+        SimpleDateFormat format = new SimpleDateFormat(FORMAT_YYYY_MM_DD);
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+        return format.format(calendar.getTime());
+    }
+
+
+    /**
+     * @param i 涓�0琛ㄧず鏈湀,涓�1琛ㄧず涓嬫湀,涓�-1琛ㄧず涓婃湀
+     * @return
+     * @throws
+     * @Title: DateUtil
+     * @Description: 鑾峰彇鏈湀褰撳墠鏃堕棿(鎴栬�呬笂鏈堜笅鏈�)
+     * @author lin
+     * @since 2019骞�12鏈�5鏃ヤ笅鍗�4:02:44
+     */
+    public static String getTime1(Integer i) {
+        Calendar calendar = Calendar.getInstance();
+        if (i != null) {
+            calendar.add(Calendar.MONTH, i);
+        }
+        int year = calendar.get(Calendar.YEAR);
+        int month = calendar.get(Calendar.MONTH);
+        int day = calendar.get(Calendar.DATE);
+        return year + "-" + (month + 1) + "-" + day;
+    }
+
+    /**
+     * @param //i涓�0琛ㄧず鏈湀涓�1琛ㄧず涓嬫湀
+     * @return
+     * @throws
+     * @Title: DateUtil
+     * @Description: 鑾峰彇鏈湀绗竴澶�(鑾峰彇鏈湀鐨勭涓�澶�)
+     * @author lin
+     * @since 2019骞�12鏈�5鏃ヤ笅鍗�3:59:55
+     */
+    public static String getThisMonthOfFirstDate(Integer i) {
+        SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd");
+        Calendar calendar = Calendar.getInstance();
+        if (i != null) {
+            calendar.add(Calendar.MONTH, i);
+        }
+        calendar.set(Calendar.DAY_OF_MONTH, Calendar.SUNDAY);
+        return format.format(calendar.getTime());
+    }
+
+    /**
+     * 鑾峰彇鏈湀鏈�鍚庝竴澶�
+     *
+     * @return
+     */
+    public static String getThisMouthLastDay() {
+        //璁剧疆鏃堕棿鏍煎紡
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        //鑾峰緱瀹炰綋绫�
+        Calendar ca = Calendar.getInstance();
+        //璁剧疆鏈�鍚庝竴澶�
+        ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
+        //鏈�鍚庝竴澶╂牸寮忓寲
+        String lastDay = format.format(ca.getTime());
+        return lastDay;
+    }
+
+    /**
+     * 鏌愪竴涓湀绗竴澶╁拰鏈�鍚庝竴澶�
+     *
+     * @param date               鎸囧畾鏃ユ湡
+     * @param pattern            鏃ユ湡鏍煎紡
+     * @param //isNeedHms鏄惁闇�瑕佹椂鍒嗙
+     * @return
+     */
+    public static Map<String, Object> getFirstLastDayByMonth(Date date,
+                                                             String pattern, boolean isNeedHms) {
+        SimpleDateFormat df = new SimpleDateFormat(pattern);
+        Calendar calendar = Calendar.getInstance();
+
+        calendar.setTime(date);
+        Date theDate = calendar.getTime();
+
+        // 绗竴澶�
+        GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance();
+        gcLast.setTime(theDate);
+        gcLast.set(Calendar.DAY_OF_MONTH, 1);
+        String day_first = df.format(gcLast.getTime());
+        StringBuffer str = new StringBuffer().append(day_first);
+        if (isNeedHms) {
+            str.append(" 00:00:00");
+        }
+        day_first = str.toString();
+
+        // 鏈�鍚庝竴澶�
+        calendar.add(Calendar.MONTH, 1); // 鍔犱竴涓湀
+        calendar.set(Calendar.DATE, 1); // 璁剧疆涓鸿鏈堢涓�澶�
+        calendar.add(Calendar.DATE, -1); // 鍐嶅噺涓�澶╁嵆涓轰笂涓湀鏈�鍚庝竴澶�
+        String day_last = df.format(calendar.getTime());
+        StringBuffer endStr = new StringBuffer().append(day_last);
+        if (isNeedHms) {
+            endStr.append(" 23:59:59");
+        }
+        day_last = endStr.toString();
+
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("first", day_first);
+        map.put("last", day_last);
+        return map;
+    }
+
+
+    /**
+     * 鑾峰彇褰撳墠瀛e害
+     */
+    public static String getQuarter() {
+        Calendar c = Calendar.getInstance();
+        int month = c.get(Calendar.MONTH) + 1;
+        int quarter = 0;
+        if (month >= 1 && month <= 3) {
+            quarter = 1;
+        } else if (month >= 4 && month <= 6) {
+            quarter = 2;
+        } else if (month >= 7 && month <= 9) {
+            quarter = 3;
+        } else {
+            quarter = 4;
+        }
+        return quarter + "";
+    }
+
+    /**
+     * 鑾峰彇鏌愬搴︾殑绗竴澶╁拰鏈�鍚庝竴澶�
+     *
+     * @param //num绗嚑瀛e害
+     */
+    public static String[] getCurrQuarter(int num) {
+        String[] s = new String[2];
+        String str = "";
+        // 璁剧疆鏈勾鐨勫
+        Calendar quarterCalendar = null;
+        switch (num) {
+            case 1: // 鏈勾鍒扮幇鍦ㄧ粡杩囦簡涓�涓搴︼紝鍦ㄥ姞涓婂墠4涓搴�
+                quarterCalendar = Calendar.getInstance();
+                quarterCalendar.set(Calendar.MONTH, 3);
+                quarterCalendar.set(Calendar.DATE, 1);
+                quarterCalendar.add(Calendar.DATE, -1);
+                str = PeriodDate.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
+                s[0] = str.substring(0, str.length() - 5) + "01-01";
+                s[1] = str;
+                break;
+            case 2: // 鏈勾鍒扮幇鍦ㄧ粡杩囦簡浜屼釜瀛e害锛屽湪鍔犱笂鍓嶄笁涓搴�
+                quarterCalendar = Calendar.getInstance();
+                quarterCalendar.set(Calendar.MONTH, 6);
+                quarterCalendar.set(Calendar.DATE, 1);
+                quarterCalendar.add(Calendar.DATE, -1);
+                str = PeriodDate.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
+                s[0] = str.substring(0, str.length() - 5) + "04-01";
+                s[1] = str;
+                break;
+            case 3:// 鏈勾鍒扮幇鍦ㄧ粡杩囦簡涓変釜瀛e害锛屽湪鍔犱笂鍓嶄簩涓搴�
+                quarterCalendar = Calendar.getInstance();
+                quarterCalendar.set(Calendar.MONTH, 9);
+                quarterCalendar.set(Calendar.DATE, 1);
+                quarterCalendar.add(Calendar.DATE, -1);
+                str = PeriodDate.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
+                s[0] = str.substring(0, str.length() - 5) + "07-01";
+                s[1] = str;
+                break;
+            case 4:// 鏈勾鍒扮幇鍦ㄧ粡杩囦簡鍥涗釜瀛e害锛屽湪鍔犱笂鍓嶄竴涓搴�
+                quarterCalendar = Calendar.getInstance();
+                str = PeriodDate.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
+                s[0] = str.substring(0, str.length() - 5) + "10-01";
+                s[1] = str.substring(0, str.length() - 5) + "12-31";
+                break;
+        }
+        return s;
+    }
+
+    /**
+     * 鐢ㄩ�旓細浠ユ寚瀹氱殑鏍煎紡鏍煎紡鍖栨棩鏈熷瓧绗︿覆
+     *
+     * @param pattern     瀛楃涓茬殑鏍煎紡
+     * @param currentDate 琚牸寮忓寲鏃ユ湡
+     * @return String 宸叉牸寮忓寲鐨勬棩鏈熷瓧绗︿覆
+     * @throws NullPointerException 濡傛灉鍙傛暟涓虹┖
+     */
+    public static String formatDate(Date currentDate, String pattern) {
+        if (currentDate == null || "".equals(pattern) || pattern == null) {
+            return null;
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
+        return sdf.format(currentDate);
+    }
+
+    /**
+     * @return java.util.List<java.lang.String>
+     * @Author Lin
+     * @Description
+     * @Date 2021/3/10 14:17
+     * @Param []
+     **/
+    public static List<String> getStartDateToEndDate(String startDate, String endDate) {
+        List<String> betweenDays = null;
+        try {
+            betweenDays = PeriodDate.getBetweenDays(startDate, endDate);
+            System.out.println(betweenDays);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return betweenDays;
+    }
+
+    /**
+     * @return int
+     * @Author Lin
+     * @Description 鏈湀澶╂暟
+     * @Date 2021/3/10 14:48
+     * @Param [date]
+     **/
+    public static int getDaysOfMonth() {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
+    }
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerInfoMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerInfoMapper.xml
index 1f123df..5f4a3df 100644
--- a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerInfoMapper.xml
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsDangerInfoMapper.xml
@@ -4,4 +4,19 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.demo.mapper.RsDangerInfoMapper">
 
+    <resultMap id="DangerInfoList" type="org.dromara.demo.domain.vo.RsDangerInfoVo">
+        <id column="id" jdbcType="VARCHAR" property="id" />
+        <result column="notification_time" jdbcType="VARCHAR" property="notificationTime" />
+        <result column="danger_type" jdbcType="VARCHAR" property="dangerType" />
+        <result column="accountability_unit" jdbcType="VARCHAR" property="accountabilityUnit" />
+        <result column="rectification_time_limit" jdbcType="VARCHAR" property="rectificationTimeLimit" />
+        <result column="performance" jdbcType="VARCHAR" property="performance" />
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+        <result column="status" jdbcType="INTEGER" property="status" />
+        <collection property="imgList" ofType="org.dromara.system.domain.vo.SysOssVo"/>
+    </resultMap>
+
+    <select id="getDangerInfo" resultMap="DangerInfoList">
+        select * from rs_danger_info a left join sys_oss b on a.id = b.tenant_id where `status` = 1 order by a.create_time, b.create_time
+    </select>
 </mapper>
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 680f7f2..e81c496 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
@@ -1,7 +1,7 @@
 <?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.RsDangerTotalMapper">
 
     <select id="getDangerTotalNums" resultType="org.dromara.demo.domain.vo.RsDangerTotalDashboardVo">
@@ -10,5 +10,12 @@
         where status = 1
     </select>
 
+    <select id="getDangerTotalInfo" resultType="org.dromara.demo.domain.vo.RsDangerTotalVo">
+        select *
+        from rs_danger_total
+        where period_date >= SUBSTRING(#{periodDate}, 1, 7)
+          and status = 1
+        order by create_time desc
+    </select>
 
 </mapper>
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsGeographyDataMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsGeographyDataMapper.xml
index b641182..32f3e24 100644
--- a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsGeographyDataMapper.xml
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsGeographyDataMapper.xml
@@ -4,4 +4,27 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.demo.mapper.RsGeographyDataMapper">
 
+    <select id="getGeographyData" resultType="java.util.Map">
+        select b.type, count(id) as nums
+        from rs_geography_data a
+                 right join (select '浜嬫晠鏄撳彂澶氬彂璺' as type, 1 as sort
+                             union all
+                             select '閲嶇偣鏃呮父閫氶亾' as type, 2 as sort
+                             union all
+                             select '閮芥睙鍫版櫙鍖�' as type, 3 as sort
+                             union all
+                             select '璀﹀姏閰嶅' as type, 4 as sort
+                             union all
+                             select '鎵撳洿鏂藉伐' as type, 5 as sort
+                             union all
+                             select '浜ら�氫簨鏁呮槗鍙戠偣' as type, 6 as sort
+                             union all
+                             select '閲嶇偣杩愯緭浼佷笟' as type, 7 as sort
+                             union all
+                             select '鍏氦绾胯矾' as type, 8 as sort
+                             union all
+                             select '瀹夊叏闅愭偅' as type, 9 as sort) b on a.type = b.type and a.status = 1
+        group by b.type
+        order by b.sort
+    </select>
 </mapper>
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficAccidentMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficAccidentMapper.xml
new file mode 100644
index 0000000..d4fe217
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficAccidentMapper.xml
@@ -0,0 +1,10 @@
+<?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="org.dromara.demo.mapper.RsTrafficAccidentMapper">
+
+    <select id="getTrafficAccident" resultType="org.dromara.demo.domain.vo.RsTrafficAccidentVo">
+        select a.*, b.url from rs_traffic_accident a left join sys_oss b on a.id = b.tenant_id where `status` = 1 order by sequence
+    </select>
+</mapper>
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficIndexMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficIndexMapper.xml
index c928e85..e0d3b36 100644
--- a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficIndexMapper.xml
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficIndexMapper.xml
@@ -8,4 +8,14 @@
         select * from rs_target_icon order by id
     </select>
 
+    <select id="getTrafficIndex" resultType="org.dromara.demo.domain.vo.RsTrafficIndexVo">
+        select
+            *,
+            (select url from rs_target_icon a left join sys_oss b on a.id = b.tenant_id where `name` = '鎸囨爣1鍥炬爣') as target_one_icon,
+            (select url from rs_target_icon a left join sys_oss b on a.id = b.tenant_id where `name` = '鎸囨爣2鍥炬爣') as target_two_icon,
+            (select url from rs_target_icon a left join sys_oss b on a.id = b.tenant_id where `name` = '鎸囨爣3鍥炬爣') as target_three_icon,
+            (select url from rs_target_icon a left join sys_oss b on a.id = b.tenant_id where `name` = '鎸囨爣4鍥炬爣') as target_four_icon
+        from rs_traffic_index where `status` = 1 order by create_time desc limit 1
+    </select>
+
 </mapper>
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficPropagandaMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficPropagandaMapper.xml
index 6203eb7..00aa648 100644
--- a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficPropagandaMapper.xml
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficPropagandaMapper.xml
@@ -8,4 +8,8 @@
         update rs_traffic_propaganda set sequence = sequence + 1 where sequence >= #{sequence} and id != #{id}
     </update>
 
+    <select id="getTrafficPropaganda" resultType="org.dromara.demo.domain.vo.RsTrafficPropagandaVo">
+        select a.*, b.url from rs_traffic_propaganda a left join sys_oss b on a.id = b.tenant_id where `status` = 1 order by sequence
+    </select>
+
 </mapper>

--
Gitblit v1.8.0