From 42757e99e1e4509bc178d3ba175be8e342de7567 Mon Sep 17 00:00:00 2001
From: 幻雨堂 <13281837894@163.com>
Date: 星期二, 27 二月 2024 14:31:52 +0800
Subject: [PATCH] 道安办以及禁毒办部分

---
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsPcrDataService.java               |   49 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/ITargetManageService.java            |   50 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/TargetManageBo.java                |   62 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/TargetData.java                       |   49 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/ITargetDataService.java              |   49 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsPcrDataMapper.java                  |   15 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficIndexMapper.java             |   15 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TargetManageController.java       |  122 ++
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsPcrDataMapper.xml                          |    7 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsTrafficIndexController.java     |  105 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TargetDataController.java         |  105 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficIndexVo.java              |  189 +++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsPcrData.java                        |   97 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/TargetDataBo.java                  |   51 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/JdCruxIndexDataBo.java             |   42 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/TargetManageVo.java                |   74 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/TargetManage.java                     |   61 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/JdCruxIndexDataMapper.java            |   18 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IJdCruxIndexDataService.java         |   48 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficIndexServiceImpl.java  |  132 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsPcrDataController.java          |  105 ++
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/TargetDataMapper.xml                         |    7 
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/TargetManageMapper.xml                       |   21 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsTrafficIndexService.java          |   49 +
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/JdCruxIndexDataMapper.xml                    |    7 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficIndexBo.java              |  180 +++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsPcrDataBo.java                   |  109 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/JdCruxIndexDataController.java    |  106 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/TargetDataMapper.java                 |   18 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetManageServiceImpl.java    |  131 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/JdCruxIndexDataVo.java             |   51 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficIndex.java                   |  158 +++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/TargetDataVo.java                  |   59 +
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/JdCruxIndexDataServiceImpl.java |  111 ++
 dujy-modules/dujy-demo/pom.xml                                                                     |    4 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsPcrDataServiceImpl.java       |  121 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetDataServiceImpl.java      |  112 ++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/TargetManageMapper.java               |   21 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/JdCruxIndexData.java                  |   41 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsPcrDataVo.java                   |  117 ++
 dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficIndexMapper.xml                     |    7 
 41 files changed, 2,875 insertions(+), 0 deletions(-)

diff --git a/dujy-modules/dujy-demo/pom.xml b/dujy-modules/dujy-demo/pom.xml
index 5d233dd..5193b1e 100644
--- a/dujy-modules/dujy-demo/pom.xml
+++ b/dujy-modules/dujy-demo/pom.xml
@@ -119,6 +119,10 @@
             <groupId>org.springframework.graphql</groupId>
             <artifactId>spring-graphql</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.dujy</groupId>
+            <artifactId>dujy-system</artifactId>
+        </dependency>
 
     </dependencies>
 
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/JdCruxIndexDataController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/JdCruxIndexDataController.java
new file mode 100644
index 0000000..645fcf5
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/JdCruxIndexDataController.java
@@ -0,0 +1,106 @@
+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.dromara.demo.domain.bo.JdCruxIndexDataBo;
+import org.dromara.demo.domain.vo.JdCruxIndexDataVo;
+import org.dromara.demo.service.IJdCruxIndexDataService;
+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.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/jd/cid")
+public class JdCruxIndexDataController extends BaseController {
+
+    private final IJdCruxIndexDataService jdCruxIndexDataService;
+
+    /**
+     * 鏌ヨ鍏抽敭鎸囨爣鏁版嵁(鍗$墖)鍒楄〃
+     */
+    @SaCheckPermission("jd:cruxIndexData:list")
+    @GetMapping("/list")
+    public TableDataInfo<JdCruxIndexDataVo> list(JdCruxIndexDataBo bo, PageQuery pageQuery) {
+        return jdCruxIndexDataService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 瀵煎嚭鍏抽敭鎸囨爣鏁版嵁(鍗$墖)鍒楄〃
+     */
+    @SaCheckPermission("jd:cruxIndexData:export")
+    @Log(title = "鍏抽敭鎸囨爣鏁版嵁(鍗$墖)", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(JdCruxIndexDataBo bo, HttpServletResponse response) {
+        List<JdCruxIndexDataVo> list = jdCruxIndexDataService.queryList(bo);
+        ExcelUtil.exportExcel(list, "鍏抽敭鎸囨爣鏁版嵁(鍗$墖)", JdCruxIndexDataVo.class, response);
+    }
+
+    /**
+     * 鑾峰彇鍏抽敭鎸囨爣鏁版嵁(鍗$墖)璇︾粏淇℃伅
+     *
+     * @param id 涓婚敭
+     */
+    @SaCheckPermission("jd:cruxIndexData:query")
+    @GetMapping("/{id}")
+    public R<JdCruxIndexDataVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+                                     @PathVariable Long id) {
+        return R.ok(jdCruxIndexDataService.queryById(id));
+    }
+
+    /**
+     * 鏂板鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+     */
+    @SaCheckPermission("jd:cruxIndexData:add")
+    @Log(title = "鍏抽敭鎸囨爣鏁版嵁(鍗$墖)", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody JdCruxIndexDataBo bo) {
+        return toAjax(jdCruxIndexDataService.insertByBo(bo));
+    }
+
+    /**
+     * 淇敼鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+     */
+    @SaCheckPermission("jd:cruxIndexData:edit")
+    @Log(title = "鍏抽敭鎸囨爣鏁版嵁(鍗$墖)", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody JdCruxIndexDataBo bo) {
+        return toAjax(jdCruxIndexDataService.updateByBo(bo));
+    }
+
+    /**
+     * 鍒犻櫎鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+     *
+     * @param ids 涓婚敭涓�
+     */
+    @SaCheckPermission("jd:cruxIndexData:remove")
+    @Log(title = "鍏抽敭鎸囨爣鏁版嵁(鍗$墖)", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+                          @PathVariable Long[] ids) {
+        return toAjax(jdCruxIndexDataService.deleteWithValidByIds(List.of(ids), true));
+    }
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsPcrDataController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsPcrDataController.java
new file mode 100644
index 0000000..b3c35f5
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsPcrDataController.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.RsPcrDataVo;
+import org.dromara.demo.domain.bo.RsPcrDataBo;
+import org.dromara.demo.service.IRsPcrDataService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 浜鸿溅璺熀纭�淇℃伅
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/rs/pcrData")
+public class RsPcrDataController extends BaseController {
+
+    private final IRsPcrDataService rsPcrDataService;
+
+    /**
+     * 鏌ヨ浜鸿溅璺熀纭�淇℃伅鍒楄〃
+     */
+    @SaCheckPermission("rs:pcrData:list")
+    @GetMapping("/list")
+    public TableDataInfo<RsPcrDataVo> list(RsPcrDataBo bo, PageQuery pageQuery) {
+        return rsPcrDataService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 瀵煎嚭浜鸿溅璺熀纭�淇℃伅鍒楄〃
+     */
+    @SaCheckPermission("rs:pcrData:export")
+    @Log(title = "浜鸿溅璺熀纭�淇℃伅", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(RsPcrDataBo bo, HttpServletResponse response) {
+        List<RsPcrDataVo> list = rsPcrDataService.queryList(bo);
+        ExcelUtil.exportExcel(list, "浜鸿溅璺熀纭�淇℃伅", RsPcrDataVo.class, response);
+    }
+
+    /**
+     * 鑾峰彇浜鸿溅璺熀纭�淇℃伅璇︾粏淇℃伅
+     *
+     * @param id 涓婚敭
+     */
+    @SaCheckPermission("rs:pcrData:query")
+    @GetMapping("/{id}")
+    public R<RsPcrDataVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+                                     @PathVariable Long id) {
+        return R.ok(rsPcrDataService.queryById(id));
+    }
+
+    /**
+     * 鏂板浜鸿溅璺熀纭�淇℃伅
+     */
+    @SaCheckPermission("rs:pcrData:add")
+    @Log(title = "浜鸿溅璺熀纭�淇℃伅", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody RsPcrDataBo bo) {
+        return toAjax(rsPcrDataService.insertByBo(bo));
+    }
+
+    /**
+     * 淇敼浜鸿溅璺熀纭�淇℃伅
+     */
+    @SaCheckPermission("rs:pcrData:edit")
+    @Log(title = "浜鸿溅璺熀纭�淇℃伅", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody RsPcrDataBo bo) {
+        return toAjax(rsPcrDataService.updateByBo(bo));
+    }
+
+    /**
+     * 鍒犻櫎浜鸿溅璺熀纭�淇℃伅
+     *
+     * @param ids 涓婚敭涓�
+     */
+    @SaCheckPermission("rs:pcrData:remove")
+    @Log(title = "浜鸿溅璺熀纭�淇℃伅", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+                          @PathVariable Long[] ids) {
+        return toAjax(rsPcrDataService.deleteWithValidByIds(List.of(ids), true));
+    }
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsTrafficIndexController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsTrafficIndexController.java
new file mode 100644
index 0000000..f108ff9
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsTrafficIndexController.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.RsTrafficIndexVo;
+import org.dromara.demo.domain.bo.RsTrafficIndexBo;
+import org.dromara.demo.service.IRsTrafficIndexService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 浜ら�氭寚鏁�
+ *
+ * @author Lion Li
+ * @date 2024-02-26
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/rs/trafficIndex")
+public class RsTrafficIndexController extends BaseController {
+
+    private final IRsTrafficIndexService rsTrafficIndexService;
+
+    /**
+     * 鏌ヨ浜ら�氭寚鏁板垪琛�
+     */
+    @SaCheckPermission("rs:trafficIndex:list")
+    @GetMapping("/list")
+    public TableDataInfo<RsTrafficIndexVo> list(RsTrafficIndexBo bo, PageQuery pageQuery) {
+        return rsTrafficIndexService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 瀵煎嚭浜ら�氭寚鏁板垪琛�
+     */
+    @SaCheckPermission("rs:trafficIndex:export")
+    @Log(title = "浜ら�氭寚鏁�", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(RsTrafficIndexBo bo, HttpServletResponse response) {
+        List<RsTrafficIndexVo> list = rsTrafficIndexService.queryList(bo);
+        ExcelUtil.exportExcel(list, "浜ら�氭寚鏁�", RsTrafficIndexVo.class, response);
+    }
+
+    /**
+     * 鑾峰彇浜ら�氭寚鏁拌缁嗕俊鎭�
+     *
+     * @param id 涓婚敭
+     */
+    @SaCheckPermission("rs:trafficIndex:query")
+    @GetMapping("/{id}")
+    public R<RsTrafficIndexVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+                                     @PathVariable Long id) {
+        return R.ok(rsTrafficIndexService.queryById(id));
+    }
+
+    /**
+     * 鏂板浜ら�氭寚鏁�
+     */
+    @SaCheckPermission("rs:trafficIndex:add")
+    @Log(title = "浜ら�氭寚鏁�", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody RsTrafficIndexBo bo) {
+        return toAjax(rsTrafficIndexService.insertByBo(bo));
+    }
+
+    /**
+     * 淇敼浜ら�氭寚鏁�
+     */
+    @SaCheckPermission("rs:trafficIndex:edit")
+    @Log(title = "浜ら�氭寚鏁�", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody RsTrafficIndexBo bo) {
+        return toAjax(rsTrafficIndexService.updateByBo(bo));
+    }
+
+    /**
+     * 鍒犻櫎浜ら�氭寚鏁�
+     *
+     * @param ids 涓婚敭涓�
+     */
+    @SaCheckPermission("rs:trafficIndex:remove")
+    @Log(title = "浜ら�氭寚鏁�", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+                          @PathVariable Long[] ids) {
+        return toAjax(rsTrafficIndexService.deleteWithValidByIds(List.of(ids), true));
+    }
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TargetDataController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TargetDataController.java
new file mode 100644
index 0000000..7f6dccf
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TargetDataController.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.dromara.demo.domain.bo.TargetDataBo;
+import org.dromara.demo.domain.vo.TargetDataVo;
+import org.dromara.demo.service.ITargetDataService;
+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.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 鎸囨爣鏁版嵁
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/td/data")
+public class TargetDataController extends BaseController {
+
+    private final ITargetDataService targetDataService;
+
+    /**
+     * 鏌ヨ鎸囨爣鏁版嵁鍒楄〃
+     */
+    @SaCheckPermission("td:data:list")
+    @GetMapping("/list")
+    public TableDataInfo<TargetDataVo> list(TargetDataBo bo, PageQuery pageQuery) {
+        return targetDataService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 瀵煎嚭鎸囨爣鏁版嵁鍒楄〃
+     */
+    @SaCheckPermission("td:data:export")
+    @Log(title = "鎸囨爣鏁版嵁", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(TargetDataBo bo, HttpServletResponse response) {
+        List<TargetDataVo> list = targetDataService.queryList(bo);
+        ExcelUtil.exportExcel(list, "鎸囨爣鏁版嵁", TargetDataVo.class, response);
+    }
+
+    /**
+     * 鑾峰彇鎸囨爣鏁版嵁璇︾粏淇℃伅
+     *
+     * @param id 涓婚敭
+     */
+    @SaCheckPermission("td:data:query")
+    @GetMapping("/{id}")
+    public R<TargetDataVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+                                     @PathVariable Long id) {
+        return R.ok(targetDataService.queryById(id));
+    }
+
+    /**
+     * 鏂板鎸囨爣鏁版嵁
+     */
+    @SaCheckPermission("td:data:add")
+    @Log(title = "鎸囨爣鏁版嵁", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody TargetDataBo bo) {
+        return toAjax(targetDataService.insertByBo(bo));
+    }
+
+    /**
+     * 淇敼鎸囨爣鏁版嵁
+     */
+    @SaCheckPermission("td:data:edit")
+    @Log(title = "鎸囨爣鏁版嵁", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TargetDataBo bo) {
+        return toAjax(targetDataService.updateByBo(bo));
+    }
+
+    /**
+     * 鍒犻櫎鎸囨爣鏁版嵁
+     *
+     * @param ids 涓婚敭涓�
+     */
+    @SaCheckPermission("td:data:remove")
+    @Log(title = "鎸囨爣鏁版嵁", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+                          @PathVariable Long[] ids) {
+        return toAjax(targetDataService.deleteWithValidByIds(List.of(ids), true));
+    }
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TargetManageController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TargetManageController.java
new file mode 100644
index 0000000..6a02334
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/TargetManageController.java
@@ -0,0 +1,122 @@
+package org.dromara.demo.controller;
+
+import java.util.Date;
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.common.core.domain.model.LoginUser;
+import org.dromara.common.satoken.utils.LoginHelper;
+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.TargetManageVo;
+import org.dromara.demo.domain.bo.TargetManageBo;
+import org.dromara.demo.service.ITargetManageService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 銆愭寚鏍囩鐞嗐��
+ *
+ * @author Lion Li
+ * @date 2024-02-20
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/tg/manage")
+public class TargetManageController extends BaseController {
+
+    private final ITargetManageService targetManageService;
+
+    /**
+     * 鏌ヨ銆愭寚鏍囩鐞嗐�戝垪琛�
+     */
+    @SaCheckPermission("tg:manage:list")
+    @GetMapping("/list")
+    public TableDataInfo<TargetManageVo> list(TargetManageBo bo, PageQuery pageQuery) {
+
+        return targetManageService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 瀵煎嚭銆愭寚鏍囩鐞嗐�戝垪琛�
+     *
+     */
+    @SaCheckPermission("tg:manage:export")
+    @Log(title = "瀵煎嚭銆愭寚鏍囩鐞嗐�戝垪琛�", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(TargetManageBo bo, HttpServletResponse response) {
+        List<TargetManageVo> list = targetManageService.queryList(bo);
+        ExcelUtil.exportExcel(list, "銆愭寚鏍囩鐞嗐��", TargetManageVo.class, response);
+    }
+
+    /**
+     * 鑾峰彇銆愭寚鏍囩鐞嗐�戣缁嗕俊鎭�
+     *
+     * @param tgId 涓婚敭
+     */
+    @SaCheckPermission("tg:manage:query")
+    @GetMapping("/{tgId}")
+    public R<TargetManageVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+                                     @PathVariable Long tgId) {
+        return R.ok(targetManageService.queryById(tgId));
+    }
+
+    /**
+     * 鏂板銆愭寚鏍囩鐞嗐��
+     */
+    @SaCheckPermission("tg:manage:add")
+    @Log(title = "鏂板銆愭寚鏍囩鐞嗐��", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody TargetManageBo bo) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        loginUser.getNickname();
+        System.out.println("鐧诲綍浜哄憳"+loginUser);
+        bo.setUserId(loginUser.getUserId());
+        bo.setTgCreateTime(new Date());
+        return toAjax(targetManageService.insertByBo(bo));
+    }
+
+    /**
+     * 淇敼銆愭寚鏍囩鐞嗐��
+     */
+    @SaCheckPermission("tg:manage:edit")
+    @Log(title = "淇敼銆愭寚鏍囩鐞嗐��", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TargetManageBo bo) {
+        return toAjax(targetManageService.updateByBo(bo));
+    }
+    @Log(title = "淇敼銆愬惎鐢ㄧ姸鎬併��", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping("/update/{id}")
+    public R<Void> updateStatus(@PathVariable Long id) {
+        targetManageService.updateStatus(id);
+        return  R.ok("鐘舵�佽皟鏁存垚鍔�");
+    }
+
+    /**
+     * 鍒犻櫎銆愭寚鏍囩鐞嗐��
+     *
+     * @param tgIds 涓婚敭涓�
+     */
+    @SaCheckPermission("tg:manage:remove")
+    @Log(title = "鍒犻櫎銆愭寚鏍囩鐞嗐��", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{tgIds}")
+    public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+                          @PathVariable Long[] tgIds) {
+        return toAjax(targetManageService.deleteWithValidByIds(List.of(tgIds), true));
+    }
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/JdCruxIndexData.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/JdCruxIndexData.java
new file mode 100644
index 0000000..d9dd15a
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/JdCruxIndexData.java
@@ -0,0 +1,41 @@
+package org.dromara.demo.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 鍏抽敭鎸囨爣鏁版嵁(鍗$墖)瀵硅薄 jd_crux_index_data
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Data
+//@EqualsAndHashCode(callSuper = true)
+@TableName("jd_crux_index_data")
+public class JdCruxIndexData  {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 鍏抽敭鍚嶇О
+     */
+    private String cruxName;
+
+    /**
+     * 鎺у埗鐨勬寚鏍�
+     */
+    private String targetValue;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsPcrData.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsPcrData.java
new file mode 100644
index 0000000..e1c0b81
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsPcrData.java
@@ -0,0 +1,97 @@
+package org.dromara.demo.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.math.BigDecimal;
+
+import java.io.Serial;
+
+/**
+ * 浜鸿溅璺熀纭�淇℃伅瀵硅薄 rs_pcr_data
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("rs_pcr_data")
+public class RsPcrData extends BaseEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 妯″潡鍚嶇О
+     */
+    private String modeName;
+
+    /**
+     * 鍛ㄦ湡
+     */
+    private String periodName;
+
+    /**
+     * 鍛ㄦ湡骞�
+     */
+    private String periodYear;
+
+    /**
+     * 鍛ㄦ湡鏈�
+     */
+    private Long periodMonth;
+
+    /**
+     * 鎸囨爣1鍚嶇О
+     */
+    private String indexOneName;
+
+    /**
+     * 鎸囨爣1鍊�
+     */
+    private BigDecimal indexOneValue;
+
+    /**
+     * 鎸囨爣2鍚嶇О
+     */
+    private String indexTwoName;
+
+    /**
+     * 鎸囨爣2鍊�
+     */
+    private BigDecimal indexTwoValue;
+
+    /**
+     * 鎸囨爣3鍚嶇О
+     */
+    private String indexThreeName;
+
+    /**
+     * 鎸囨爣3鍊�
+     */
+    private BigDecimal indexThreeValue;
+
+    /**
+     * 鎸囨爣4鍚嶇О
+     */
+    private String indexFourName;
+
+    /**
+     * 鎸囨爣4鍊�
+     */
+    private BigDecimal indexFourValue;
+
+    /**
+     * 鐘舵��  1鍚敤   0鏈惎鐢�
+     */
+    private Long status;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficIndex.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficIndex.java
new file mode 100644
index 0000000..2a9e811
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/RsTrafficIndex.java
@@ -0,0 +1,158 @@
+package org.dromara.demo.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.math.BigDecimal;
+
+import java.io.Serial;
+
+/**
+ * 浜ら�氭寚鏁板璞� rs_traffic_index
+ *
+ * @author Lion Li
+ * @date 2024-02-26
+ */
+@Data
+//@EqualsAndHashCode(callSuper = true)
+@TableName("rs_traffic_index")
+public class RsTrafficIndex  {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭id
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 妯″潡鍚嶇О
+     */
+    private String modeName;
+
+    /**
+     * 鎸囨爣1鍚嶇О
+     */
+    private String targetOneName;
+
+    /**
+     * 鎸囨爣1鍊�
+     */
+    private BigDecimal targetOneValue;
+
+    /**
+     * 鎸囨爣1鍗曚綅
+     */
+    private String targetOneUnit;
+
+    /**
+     * 鎸囨爣1鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    private Integer targetOneStatus;
+
+    /**
+     * 鎸囨爣1涓婃诞鎴栦笅闄嶅��
+     */
+    private BigDecimal targetOneCompareValue;
+
+    /**
+     * 鎸囨爣2鍚嶇О
+     */
+    private String targetTwoName;
+
+    /**
+     * 鎸囨爣2鍊�
+     */
+    private BigDecimal targetTwoValue;
+
+    /**
+     * 鎸囨爣2鍗曚綅
+     */
+    private String targetTwoUnit;
+
+    /**
+     * 鎸囨爣2鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    private Integer targetTwoStatus;
+
+    /**
+     * 鎸囨爣2涓婃诞鎴栦笅闄嶅��
+     */
+    private BigDecimal targetTwoCompareValue;
+
+    /**
+     * 鎸囨爣3鍚嶇О
+     */
+    private String targetThreeName;
+
+    /**
+     * 鎸囨爣3鍊�
+     */
+    private BigDecimal targetThreeValue;
+
+    /**
+     * 鎸囨爣3鍗曚綅
+     */
+    private String targetThreeUnit;
+
+    /**
+     * 鎸囨爣3鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    private Integer targetThreeStatus;
+
+    /**
+     * 鎸囨爣3涓婃诞鎴栦笅闄嶅��
+     */
+    private BigDecimal targetThreeCompareValue;
+
+    /**
+     * 鎸囨爣4鍚嶇О
+     */
+    private String targetFourName;
+
+    /**
+     * 鎸囨爣4鍊�
+     */
+    private BigDecimal targetFourValue;
+
+    /**
+     * 鎸囨爣4鍗曚綅
+     */
+    private String targetFourUnit;
+
+    /**
+     * 鎸囨爣4鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    private Integer targetFourStatus;
+
+    /**
+     * 鎸囨爣4涓婃诞鎴栦笅闄嶅��
+     */
+    private BigDecimal targetFourCompareValue;
+
+    /**
+     * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
+     */
+    private Integer status;
+
+    /**
+     * 鍛ㄦ湡
+     */
+    private String periodName;
+
+    /**
+     * 鍛ㄦ湡骞�
+     */
+    private Integer periodYear;
+    /**
+     * 鍛ㄦ湡鏈�
+     */
+    private Integer periodMonth;
+
+
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/TargetData.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/TargetData.java
new file mode 100644
index 0000000..186796f
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/TargetData.java
@@ -0,0 +1,49 @@
+package org.dromara.demo.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serial;
+
+/**
+ * 鎸囨爣鏁版嵁瀵硅薄 target_data
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Data
+
+@TableName("target_data")
+public class TargetData  {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭
+     */
+    @TableId(value = "id",type=IdType.AUTO)
+    private Long id;
+
+    /**
+     * 琛屾斂鍖哄垝
+     */
+    private String areaName;
+
+    /**
+     * 鍖哄垝浠g爜
+     */
+    private Long areaCode;
+
+    /**
+     * 缁熻鏃堕棿
+     */
+
+    private Date collectTime;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/TargetManage.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/TargetManage.java
new file mode 100644
index 0000000..326df52
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/TargetManage.java
@@ -0,0 +1,61 @@
+package org.dromara.demo.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.common.tenant.core.TenantEntity;
+import org.dromara.system.domain.SysUser;
+
+import java.io.Serial;
+
+/**
+ * 銆愯濉啓鍔熻兘鍚嶇О銆戝璞� target_manage
+ *
+ * @author Lion Li
+ * @date 2024-02-20
+ */
+@Data
+@TableName("target_manage")
+public class TargetManage  {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鏄惁鍚敤鐘舵��   0 鏈惎鐢�   1宸插惎鐢�
+     */
+    private Integer tgStatus;
+
+    /**
+     * 1 鍖哄幙  2 琛楅亾 3 鍖哄幙浠ュ強琛楅亾
+     */
+    private Integer tgType;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date tgCreateTime;
+
+    /**
+      涓婚敭id
+     */
+    @TableId(value = "tg_id",type = IdType.AUTO)
+    private Long tgId;
+
+    /**
+     *鍒涘缓浜虹殑id
+     */
+    private Long userId;
+
+    /**
+     * 鎸囨爣鍚嶇О
+     */
+    private String tgName;
+    @TableField(exist = false)
+    private SysUser sysUser;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/JdCruxIndexDataBo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/JdCruxIndexDataBo.java
new file mode 100644
index 0000000..60b9ecc
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/JdCruxIndexDataBo.java
@@ -0,0 +1,42 @@
+package org.dromara.demo.domain.bo;
+
+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.*;
+import org.dromara.demo.domain.JdCruxIndexData;
+
+/**
+ * 鍏抽敭鎸囨爣鏁版嵁(鍗$墖)涓氬姟瀵硅薄 jd_crux_index_data
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = JdCruxIndexData.class, reverseConvertGenerate = false)
+public class JdCruxIndexDataBo extends BaseEntity {
+
+    /**
+     *
+     */
+    @NotNull(message = "涓婚敭id涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 鍏抽敭鍚嶇О
+     */
+    @NotBlank(message = "鍏抽敭鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String cruxName;
+
+    /**
+     * 鎺у埗鐨勬寚鏍�
+     */
+    @NotBlank(message = "鎺у埗鐨勬寚鏍囦笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private String targetValue;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsPcrDataBo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsPcrDataBo.java
new file mode 100644
index 0000000..96900e0
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsPcrDataBo.java
@@ -0,0 +1,109 @@
+package org.dromara.demo.domain.bo;
+
+import org.dromara.demo.domain.RsPcrData;
+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.*;
+import java.math.BigDecimal;
+
+/**
+ * 浜鸿溅璺熀纭�淇℃伅涓氬姟瀵硅薄 rs_pcr_data
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = RsPcrData.class, reverseConvertGenerate = false)
+public class RsPcrDataBo extends BaseEntity {
+
+    /**
+     *
+     */
+    @NotNull(message = "涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 妯″潡鍚嶇О
+     */
+    @NotBlank(message = "妯″潡鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String modeName;
+
+    /**
+     * 鍛ㄦ湡
+     */
+    @NotBlank(message = "鍛ㄦ湡涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String periodName;
+
+    /**
+     * 鍛ㄦ湡骞�
+     */
+    @NotBlank(message = "鍛ㄦ湡骞翠笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private String periodYear;
+
+    /**
+     * 鍛ㄦ湡鏈�
+     */
+    @NotNull(message = "鍛ㄦ湡鏈堜笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private Long periodMonth;
+
+    /**
+     * 鎸囨爣1鍚嶇О
+     */
+    @NotBlank(message = "鎸囨爣1鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String indexOneName;
+
+    /**
+     * 鎸囨爣1鍊�
+     */
+    @NotNull(message = "鎸囨爣1鍊间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal indexOneValue;
+
+    /**
+     * 鎸囨爣2鍚嶇О
+     */
+    @NotBlank(message = "鎸囨爣2鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String indexTwoName;
+
+    /**
+     * 鎸囨爣2鍊�
+     */
+    @NotNull(message = "鎸囨爣2鍊间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal indexTwoValue;
+
+    /**
+     * 鎸囨爣3鍚嶇О
+     */
+    @NotBlank(message = "鎸囨爣3鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String indexThreeName;
+
+    /**
+     * 鎸囨爣3鍊�
+     */
+    @NotNull(message = "鎸囨爣3鍊间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal indexThreeValue;
+
+    /**
+     * 鎸囨爣4鍚嶇О
+     */
+    @NotBlank(message = "鎸囨爣4鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String indexFourName;
+
+    /**
+     * 鎸囨爣4鍊�
+     */
+    @NotNull(message = "鎸囨爣4鍊间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal indexFourValue;
+
+    /**
+     * 鐘舵��  1鍚敤   0鏈惎鐢�
+     */
+    @NotNull(message = "鐘舵��  1鍚敤   0鏈惎鐢ㄤ笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private Long status;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficIndexBo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficIndexBo.java
new file mode 100644
index 0000000..2c12827
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/RsTrafficIndexBo.java
@@ -0,0 +1,180 @@
+package org.dromara.demo.domain.bo;
+
+import org.dromara.demo.domain.RsTrafficIndex;
+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.*;
+import java.math.BigDecimal;
+
+/**
+ * 浜ら�氭寚鏁颁笟鍔″璞� rs_traffic_index
+ *
+ * @author Lion Li
+ * @date 2024-02-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = RsTrafficIndex.class, reverseConvertGenerate = false)
+public class RsTrafficIndexBo extends BaseEntity {
+
+    /**
+     * 涓婚敭id
+     */
+    @NotNull(message = "涓婚敭id涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 妯″潡鍚嶇О
+     */
+    @NotBlank(message = "妯″潡鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String modeName;
+
+    /**
+     * 鎸囨爣1鍚嶇О
+     */
+    @NotBlank(message = "鎸囨爣1鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String targetOneName;
+
+    /**
+     * 鎸囨爣1鍊�
+     */
+    @NotNull(message = "鎸囨爣1鍊间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal targetOneValue;
+
+    /**
+     * 鎸囨爣1鍗曚綅
+     */
+    @NotBlank(message = "鎸囨爣1鍗曚綅涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String targetOneUnit;
+
+    /**
+     * 鎸囨爣1鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    @NotNull(message = "鎸囨爣1鐘舵�� 1 涓婃诞 2涓嬮檷涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Integer targetOneStatus;
+
+    /**
+     * 鎸囨爣1涓婃诞鎴栦笅闄嶅��
+     */
+    @NotNull(message = "鎸囨爣1涓婃诞鎴栦笅闄嶅�间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal targetOneCompareValue;
+
+    /**
+     * 鎸囨爣2鍚嶇О
+     */
+    @NotBlank(message = "鎸囨爣2鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String targetTwoName;
+
+    /**
+     * 鎸囨爣2鍊�
+     */
+    @NotNull(message = "鎸囨爣2鍊间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal targetTwoValue;
+
+    /**
+     * 鎸囨爣2鍗曚綅
+     */
+    @NotBlank(message = "鎸囨爣2鍗曚綅涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String targetTwoUnit;
+
+    /**
+     * 鎸囨爣2鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    @NotNull(message = "鎸囨爣2鐘舵�� 1 涓婃诞 2涓嬮檷涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Integer targetTwoStatus;
+
+    /**
+     * 鎸囨爣2涓婃诞鎴栦笅闄嶅��
+     */
+    @NotNull(message = "鎸囨爣2涓婃诞鎴栦笅闄嶅�间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal targetTwoCompareValue;
+
+    /**
+     * 鎸囨爣3鍚嶇О
+     */
+    @NotBlank(message = "鎸囨爣3鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String targetThreeName;
+
+    /**
+     * 鎸囨爣3鍊�
+     */
+    @NotNull(message = "鎸囨爣3鍊间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal targetThreeValue;
+
+    /**
+     * 鎸囨爣3鍗曚綅
+     */
+    @NotBlank(message = "鎸囨爣3鍗曚綅涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String targetThreeUnit;
+
+    /**
+     * 鎸囨爣3鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    @NotNull(message = "鎸囨爣3鐘舵�� 1 涓婃诞 2涓嬮檷涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Integer targetThreeStatus;
+
+    /**
+     * 鎸囨爣3涓婃诞鎴栦笅闄嶅��
+     */
+    @NotNull(message = "鎸囨爣3涓婃诞鎴栦笅闄嶅�间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal targetThreeCompareValue;
+
+    /**
+     * 鎸囨爣4鍚嶇О
+     */
+    @NotBlank(message = "鎸囨爣4鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String targetFourName;
+
+    /**
+     * 鎸囨爣4鍊�
+     */
+    @NotNull(message = "鎸囨爣4鍊间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal targetFourValue;
+
+    /**
+     * 鎸囨爣4鍗曚綅
+     */
+    @NotBlank(message = "鎸囨爣4鍗曚綅涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String targetFourUnit;
+
+    /**
+     * 鎸囨爣4鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    @NotNull(message = "鎸囨爣4鐘舵�� 1 涓婃诞 2涓嬮檷涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Integer targetFourStatus;
+
+    /**
+     * 鎸囨爣4涓婃诞鎴栦笅闄嶅��
+     */
+    @NotNull(message = "鎸囨爣4涓婃诞鎴栦笅闄嶅�间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private BigDecimal targetFourCompareValue;
+
+    /**
+     * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
+     */
+    @NotNull(message = "鍚敤鐘舵�� 1鍚敤 2鏈惎鐢ㄤ笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private Integer status;
+
+    /**
+     * 鍛ㄦ湡 1 鏈�  2骞�
+     */
+    @NotBlank(message = "鍛ㄦ湡 1 鏈�  2骞翠笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private String periodName;
+
+    /**
+     * 鍛ㄦ湡骞�
+     */
+    @NotNull(message = "鍛ㄦ湡骞翠笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private Integer periodYear;
+    /**
+     * 鍛ㄦ湡鏈�
+     */
+//    @NotNull(message = "鍛ㄦ湡鍊间笉鑳戒负绌�", groups = { AddGroup.class, EditGroup.class })
+    private Integer periodMonth;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/TargetDataBo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/TargetDataBo.java
new file mode 100644
index 0000000..c25b163
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/TargetDataBo.java
@@ -0,0 +1,51 @@
+package org.dromara.demo.domain.bo;
+
+
+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.*;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.demo.domain.TargetData;
+
+/**
+ * 鎸囨爣鏁版嵁涓氬姟瀵硅薄 target_data
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = TargetData.class, reverseConvertGenerate = false)
+public class TargetDataBo extends BaseEntity {
+
+    /**
+     * 涓婚敭
+     */
+    @NotNull(message = "涓婚敭涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 琛屾斂鍖哄垝
+     */
+    @NotBlank(message = "琛屾斂鍖哄垝涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String areaName;
+
+    /**
+     * 鍖哄垝浠g爜
+     */
+    @NotNull(message = "鍖哄垝浠g爜涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Long areaCode;
+
+    /**
+     * 缁熻鏃堕棿
+     */
+    @NotNull(message = "缁熻鏃堕棿涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Date collectTime;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/TargetManageBo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/TargetManageBo.java
new file mode 100644
index 0000000..1365308
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/bo/TargetManageBo.java
@@ -0,0 +1,62 @@
+package org.dromara.demo.domain.bo;
+
+import org.dromara.demo.domain.TargetManage;
+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.*;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * 銆愯濉啓鍔熻兘鍚嶇О銆戜笟鍔″璞� target_manage
+ *
+ * @author Lion Li
+ * @date 2024-02-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = TargetManage.class, reverseConvertGenerate = false)
+public class TargetManageBo extends BaseEntity {
+
+    /**
+     *
+     */
+
+    private Integer tgStatus=0;
+
+    /**
+     *
+     */
+    @NotNull(message = "鎸囨爣绫诲瀷涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Integer tgType;
+
+    /**
+     *
+     */
+
+    private Date tgCreateTime;
+
+    /**
+     *
+     */
+//    @NotNull(message = "涓嶈兘涓虹┖", groups = { EditGroup.class })
+    private Long tgId;
+
+    /**
+     *
+     */
+//    @NotNull(message = "涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private Long userId;
+
+    /**
+     *
+     */
+    @NotBlank(message = "鎸囨爣鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
+    private String tgName;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/JdCruxIndexDataVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/JdCruxIndexDataVo.java
new file mode 100644
index 0000000..f370bcf
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/JdCruxIndexDataVo.java
@@ -0,0 +1,51 @@
+package org.dromara.demo.domain.vo;
+
+
+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.JdCruxIndexData;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 鍏抽敭鎸囨爣鏁版嵁(鍗$墖)瑙嗗浘瀵硅薄 jd_crux_index_data
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = JdCruxIndexData.class)
+public class JdCruxIndexDataVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @ExcelProperty(value = "id")
+    private Long id;
+
+    /**
+     * 鍏抽敭鍚嶇О
+     */
+    @ExcelProperty(value = "鍏抽敭鍚嶇О")
+    private String cruxName;
+
+    /**
+     * 鎺у埗鐨勬寚鏍�
+     */
+    @ExcelProperty(value = "鎺у埗鐨勬寚鏍�")
+    private String targetValue;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsPcrDataVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsPcrDataVo.java
new file mode 100644
index 0000000..76f66b2
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsPcrDataVo.java
@@ -0,0 +1,117 @@
+package org.dromara.demo.domain.vo;
+
+import java.math.BigDecimal;
+import org.dromara.demo.domain.RsPcrData;
+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_pcr_data
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = RsPcrData.class)
+public class RsPcrDataVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @ExcelProperty(value = "")
+    private Long id;
+
+    /**
+     * 妯″潡鍚嶇О
+     */
+    @ExcelProperty(value = "妯″潡鍚嶇О")
+    private String modeName;
+
+    /**
+     * 鍛ㄦ湡
+     */
+    @ExcelProperty(value = "鍛ㄦ湡")
+    private String periodName;
+
+    /**
+     * 鍛ㄦ湡骞�
+     */
+    @ExcelProperty(value = "鍛ㄦ湡骞�")
+    private String periodYear;
+
+    /**
+     * 鍛ㄦ湡鏈�
+     */
+    @ExcelProperty(value = "鍛ㄦ湡鏈�")
+    private Long periodMonth;
+
+    /**
+     * 鎸囨爣1鍚嶇О
+     */
+    @ExcelProperty(value = "鎸囨爣1鍚嶇О")
+    private String indexOneName;
+
+    /**
+     * 鎸囨爣1鍊�
+     */
+    @ExcelProperty(value = "鎸囨爣1鍊�")
+    private BigDecimal indexOneValue;
+
+    /**
+     * 鎸囨爣2鍚嶇О
+     */
+    @ExcelProperty(value = "鎸囨爣2鍚嶇О")
+    private String indexTwoName;
+
+    /**
+     * 鎸囨爣2鍊�
+     */
+    @ExcelProperty(value = "鎸囨爣2鍊�")
+    private BigDecimal indexTwoValue;
+
+    /**
+     * 鎸囨爣3鍚嶇О
+     */
+    @ExcelProperty(value = "鎸囨爣3鍚嶇О")
+    private String indexThreeName;
+
+    /**
+     * 鎸囨爣3鍊�
+     */
+    @ExcelProperty(value = "鎸囨爣3鍊�")
+    private BigDecimal indexThreeValue;
+
+    /**
+     * 鎸囨爣4鍚嶇О
+     */
+    @ExcelProperty(value = "鎸囨爣4鍚嶇О")
+    private String indexFourName;
+
+    /**
+     * 鎸囨爣4鍊�
+     */
+    @ExcelProperty(value = "鎸囨爣4鍊�")
+    private BigDecimal indexFourValue;
+
+    /**
+     * 鐘舵��  1鍚敤   0鏈惎鐢�
+     */
+    @ExcelProperty(value = "鐘舵��  1鍚敤   0鏈惎鐢�")
+    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
new file mode 100644
index 0000000..ea25de1
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsTrafficIndexVo.java
@@ -0,0 +1,189 @@
+package org.dromara.demo.domain.vo;
+
+import java.math.BigDecimal;
+import org.dromara.demo.domain.RsTrafficIndex;
+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_index
+ *
+ * @author Lion Li
+ * @date 2024-02-26
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = RsTrafficIndex.class)
+public class RsTrafficIndexVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭id
+     */
+    @ExcelProperty(value = "涓婚敭id")
+    private Long id;
+
+    /**
+     * 妯″潡鍚嶇О
+     */
+    @ExcelProperty(value = "妯″潡鍚嶇О")
+    private String modeName;
+
+    /**
+     * 鎸囨爣1鍚嶇О
+     */
+    @ExcelProperty(value = "鎸囨爣1鍚嶇О")
+    private String targetOneName;
+
+    /**
+     * 鎸囨爣1鍊�
+     */
+    @ExcelProperty(value = "鎸囨爣1鍊�")
+    private BigDecimal targetOneValue;
+
+    /**
+     * 鎸囨爣1鍗曚綅
+     */
+    @ExcelProperty(value = "鎸囨爣1鍗曚綅")
+    private String targetOneUnit;
+
+    /**
+     * 鎸囨爣1鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    @ExcelProperty(value = "鎸囨爣1鐘舵�� 1 涓婃诞 2涓嬮檷")
+    private Integer targetOneStatus;
+
+    /**
+     * 鎸囨爣1涓婃诞鎴栦笅闄嶅��
+     */
+    @ExcelProperty(value = "鎸囨爣1涓婃诞鎴栦笅闄嶅��")
+    private BigDecimal targetOneCompareValue;
+
+    /**
+     * 鎸囨爣2鍚嶇О
+     */
+    @ExcelProperty(value = "鎸囨爣2鍚嶇О")
+    private String targetTwoName;
+
+    /**
+     * 鎸囨爣2鍊�
+     */
+    @ExcelProperty(value = "鎸囨爣2鍊�")
+    private BigDecimal targetTwoValue;
+
+    /**
+     * 鎸囨爣2鍗曚綅
+     */
+    @ExcelProperty(value = "鎸囨爣2鍗曚綅")
+    private String targetTwoUnit;
+
+    /**
+     * 鎸囨爣2鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    @ExcelProperty(value = "鎸囨爣2鐘舵�� 1 涓婃诞 2涓嬮檷")
+    private Integer targetTwoStatus;
+
+    /**
+     * 鎸囨爣2涓婃诞鎴栦笅闄嶅��
+     */
+    @ExcelProperty(value = "鎸囨爣2涓婃诞鎴栦笅闄嶅��")
+    private BigDecimal targetTwoCompareValue;
+
+    /**
+     * 鎸囨爣3鍚嶇О
+     */
+    @ExcelProperty(value = "鎸囨爣3鍚嶇О")
+    private String targetThreeName;
+
+    /**
+     * 鎸囨爣3鍊�
+     */
+    @ExcelProperty(value = "鎸囨爣3鍊�")
+    private BigDecimal targetThreeValue;
+
+    /**
+     * 鎸囨爣3鍗曚綅
+     */
+    @ExcelProperty(value = "鎸囨爣3鍗曚綅")
+    private String targetThreeUnit;
+
+    /**
+     * 鎸囨爣3鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    @ExcelProperty(value = "鎸囨爣3鐘舵�� 1 涓婃诞 2涓嬮檷")
+    private Integer targetThreeStatus;
+
+    /**
+     * 鎸囨爣3涓婃诞鎴栦笅闄嶅��
+     */
+    @ExcelProperty(value = "鎸囨爣3涓婃诞鎴栦笅闄嶅��")
+    private BigDecimal targetThreeCompareValue;
+
+    /**
+     * 鎸囨爣4鍚嶇О
+     */
+    @ExcelProperty(value = "鎸囨爣4鍚嶇О")
+    private String targetFourName;
+
+    /**
+     * 鎸囨爣4鍊�
+     */
+    @ExcelProperty(value = "鎸囨爣4鍊�")
+    private BigDecimal targetFourValue;
+
+    /**
+     * 鎸囨爣4鍗曚綅
+     */
+    @ExcelProperty(value = "鎸囨爣4鍗曚綅")
+    private String targetFourUnit;
+
+    /**
+     * 鎸囨爣4鐘舵�� 1 涓婃诞 2涓嬮檷
+     */
+    @ExcelProperty(value = "鎸囨爣4鐘舵�� 1 涓婃诞 2涓嬮檷")
+    private Integer targetFourStatus;
+
+    /**
+     * 鎸囨爣4涓婃诞鎴栦笅闄嶅��
+     */
+    @ExcelProperty(value = "鎸囨爣4涓婃诞鎴栦笅闄嶅��")
+    private BigDecimal targetFourCompareValue;
+
+    /**
+     * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
+     */
+    @ExcelProperty(value = "鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�")
+    private Integer status;
+
+    /**
+     * 鍛ㄦ湡
+     */
+    @ExcelProperty(value = "鍛ㄦ湡")
+    private String periodName;
+
+    /**
+     * 鍛ㄦ湡鏈�
+     */
+    @ExcelProperty(value = "鍛ㄦ湡鍊�")
+    private Integer periodMonth;
+    /**
+     * 鍛ㄦ湡骞�
+     */
+    @ExcelProperty(value = "鍛ㄦ湡鍊�")
+    private Integer periodYear;
+
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/TargetDataVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/TargetDataVo.java
new file mode 100644
index 0000000..f3e4bcf
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/TargetDataVo.java
@@ -0,0 +1,59 @@
+package org.dromara.demo.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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.TargetData;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 鎸囨爣鏁版嵁瑙嗗浘瀵硅薄 target_data
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = TargetData.class)
+public class TargetDataVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭
+     */
+    @ExcelProperty(value = "涓婚敭")
+    private Long id;
+
+    /**
+     * 琛屾斂鍖哄垝
+     */
+    @ExcelProperty(value = "琛屾斂鍖哄垝")
+    private String areaName;
+
+    /**
+     * 鍖哄垝浠g爜
+     */
+    @ExcelProperty(value = "鍖哄垝浠g爜")
+    private Long areaCode;
+
+    /**
+     * 缁熻鏃堕棿
+     */
+    @ExcelProperty(value = "缁熻鏃堕棿")
+    private Date collectTime;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/TargetManageVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/TargetManageVo.java
new file mode 100644
index 0000000..b064b84
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/TargetManageVo.java
@@ -0,0 +1,74 @@
+package org.dromara.demo.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.demo.domain.TargetManage;
+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.system.domain.SysUser;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 銆愯濉啓鍔熻兘鍚嶇О銆戣鍥惧璞� target_manage
+ *
+ * @author Lion Li
+ * @date 2024-02-20
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = TargetManage.class)
+public class TargetManageVo  implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     *
+     */
+    @ExcelProperty(value = "")
+    private Integer tgStatus;
+
+    /**
+     *
+     */
+    @ExcelProperty(value = "")
+    private Integer tgType;
+
+    /**
+     *
+     */
+    @ExcelProperty(value = "")
+    private Date tgCreateTime;
+
+    /**
+     *
+     */
+    @ExcelProperty(value = "")
+    private Long tgId;
+
+    /**
+     *
+     */
+    @ExcelProperty(value = "")
+    private Long userId;
+
+    /**
+     *
+     */
+    @ExcelProperty(value = "")
+    private String tgName;
+
+    private SysUser sysUser;
+
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/JdCruxIndexDataMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/JdCruxIndexDataMapper.java
new file mode 100644
index 0000000..312c8ec
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/JdCruxIndexDataMapper.java
@@ -0,0 +1,18 @@
+package org.dromara.demo.mapper;
+
+
+import org.apache.ibatis.annotations.Mapper;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.demo.domain.JdCruxIndexData;
+import org.dromara.demo.domain.vo.JdCruxIndexDataVo;
+
+/**
+ * 鍏抽敭鎸囨爣鏁版嵁(鍗$墖)Mapper鎺ュ彛
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Mapper
+public interface JdCruxIndexDataMapper extends BaseMapperPlus<JdCruxIndexData, JdCruxIndexDataVo> {
+
+}
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
new file mode 100644
index 0000000..9e7eb76
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsPcrDataMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.demo.mapper;
+
+import org.dromara.demo.domain.RsPcrData;
+import org.dromara.demo.domain.vo.RsPcrDataVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 浜鸿溅璺熀纭�淇℃伅Mapper鎺ュ彛
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+public interface RsPcrDataMapper extends BaseMapperPlus<RsPcrData, RsPcrDataVo> {
+
+}
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
new file mode 100644
index 0000000..8ea1f34
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/RsTrafficIndexMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.demo.mapper;
+
+import org.dromara.demo.domain.RsTrafficIndex;
+import org.dromara.demo.domain.vo.RsTrafficIndexVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 浜ら�氭寚鏁癕apper鎺ュ彛
+ *
+ * @author Lion Li
+ * @date 2024-02-26
+ */
+public interface RsTrafficIndexMapper extends BaseMapperPlus<RsTrafficIndex, RsTrafficIndexVo> {
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/TargetDataMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/TargetDataMapper.java
new file mode 100644
index 0000000..de8bf6f
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/TargetDataMapper.java
@@ -0,0 +1,18 @@
+package org.dromara.demo.mapper;
+
+
+import org.apache.ibatis.annotations.Mapper;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.demo.domain.TargetData;
+import org.dromara.demo.domain.vo.TargetDataVo;
+
+/**
+ * 鎸囨爣鏁版嵁Mapper鎺ュ彛
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Mapper
+public interface TargetDataMapper extends BaseMapperPlus<TargetData, TargetDataVo> {
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/TargetManageMapper.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/TargetManageMapper.java
new file mode 100644
index 0000000..89d2dd9
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/mapper/TargetManageMapper.java
@@ -0,0 +1,21 @@
+package org.dromara.demo.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.dromara.demo.domain.TargetManage;
+import org.dromara.demo.domain.bo.TargetManageBo;
+import org.dromara.demo.domain.vo.TargetManageVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+import java.util.List;
+
+/**
+ * 銆愯濉啓鍔熻兘鍚嶇О銆慚apper鎺ュ彛
+ *
+ * @author Lion Li
+ * @date 2024-02-20
+ */
+@Mapper
+public interface TargetManageMapper extends BaseMapperPlus<TargetManage, TargetManageVo> {
+
+    List<TargetManageVo> selectTargetManageInfo(TargetManageBo bo);
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IJdCruxIndexDataService.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IJdCruxIndexDataService.java
new file mode 100644
index 0000000..71122ab
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IJdCruxIndexDataService.java
@@ -0,0 +1,48 @@
+package org.dromara.demo.service;
+
+
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.demo.domain.bo.JdCruxIndexDataBo;
+import org.dromara.demo.domain.vo.JdCruxIndexDataVo;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 鍏抽敭鎸囨爣鏁版嵁(鍗$墖)Service鎺ュ彛
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+public interface IJdCruxIndexDataService {
+
+    /**
+     * 鏌ヨ鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+     */
+    JdCruxIndexDataVo queryById(Long id);
+
+    /**
+     * 鏌ヨ鍏抽敭鎸囨爣鏁版嵁(鍗$墖)鍒楄〃
+     */
+    TableDataInfo<JdCruxIndexDataVo> queryPageList(JdCruxIndexDataBo bo, PageQuery pageQuery);
+
+    /**
+     * 鏌ヨ鍏抽敭鎸囨爣鏁版嵁(鍗$墖)鍒楄〃
+     */
+    List<JdCruxIndexDataVo> queryList(JdCruxIndexDataBo bo);
+
+    /**
+     * 鏂板鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+     */
+    Boolean insertByBo(JdCruxIndexDataBo bo);
+
+    /**
+     * 淇敼鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+     */
+    Boolean updateByBo(JdCruxIndexDataBo bo);
+
+    /**
+     * 鏍¢獙骞舵壒閲忓垹闄ゅ叧閿寚鏍囨暟鎹�(鍗$墖)淇℃伅
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsPcrDataService.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsPcrDataService.java
new file mode 100644
index 0000000..89342b2
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsPcrDataService.java
@@ -0,0 +1,49 @@
+package org.dromara.demo.service;
+
+import org.dromara.demo.domain.RsPcrData;
+import org.dromara.demo.domain.vo.RsPcrDataVo;
+import org.dromara.demo.domain.bo.RsPcrDataBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 浜鸿溅璺熀纭�淇℃伅Service鎺ュ彛
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+public interface IRsPcrDataService {
+
+    /**
+     * 鏌ヨ浜鸿溅璺熀纭�淇℃伅
+     */
+    RsPcrDataVo queryById(Long id);
+
+    /**
+     * 鏌ヨ浜鸿溅璺熀纭�淇℃伅鍒楄〃
+     */
+    TableDataInfo<RsPcrDataVo> queryPageList(RsPcrDataBo bo, PageQuery pageQuery);
+
+    /**
+     * 鏌ヨ浜鸿溅璺熀纭�淇℃伅鍒楄〃
+     */
+    List<RsPcrDataVo> queryList(RsPcrDataBo bo);
+
+    /**
+     * 鏂板浜鸿溅璺熀纭�淇℃伅
+     */
+    Boolean insertByBo(RsPcrDataBo bo);
+
+    /**
+     * 淇敼浜鸿溅璺熀纭�淇℃伅
+     */
+    Boolean updateByBo(RsPcrDataBo bo);
+
+    /**
+     * 鏍¢獙骞舵壒閲忓垹闄や汉杞﹁矾鍩虹淇℃伅淇℃伅
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsTrafficIndexService.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsTrafficIndexService.java
new file mode 100644
index 0000000..4389028
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsTrafficIndexService.java
@@ -0,0 +1,49 @@
+package org.dromara.demo.service;
+
+import org.dromara.demo.domain.RsTrafficIndex;
+import org.dromara.demo.domain.vo.RsTrafficIndexVo;
+import org.dromara.demo.domain.bo.RsTrafficIndexBo;
+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 Lion Li
+ * @date 2024-02-26
+ */
+public interface IRsTrafficIndexService {
+
+    /**
+     * 鏌ヨ浜ら�氭寚鏁�
+     */
+    RsTrafficIndexVo queryById(Long id);
+
+    /**
+     * 鏌ヨ浜ら�氭寚鏁板垪琛�
+     */
+    TableDataInfo<RsTrafficIndexVo> queryPageList(RsTrafficIndexBo bo, PageQuery pageQuery);
+
+    /**
+     * 鏌ヨ浜ら�氭寚鏁板垪琛�
+     */
+    List<RsTrafficIndexVo> queryList(RsTrafficIndexBo bo);
+
+    /**
+     * 鏂板浜ら�氭寚鏁�
+     */
+    Boolean insertByBo(RsTrafficIndexBo bo);
+
+    /**
+     * 淇敼浜ら�氭寚鏁�
+     */
+    Boolean updateByBo(RsTrafficIndexBo bo);
+
+    /**
+     * 鏍¢獙骞舵壒閲忓垹闄や氦閫氭寚鏁颁俊鎭�
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/ITargetDataService.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/ITargetDataService.java
new file mode 100644
index 0000000..16913c3
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/ITargetDataService.java
@@ -0,0 +1,49 @@
+package org.dromara.demo.service;
+
+
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.demo.domain.bo.TargetDataBo;
+import org.dromara.demo.domain.vo.TargetDataVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 鎸囨爣鏁版嵁Service鎺ュ彛
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+public interface ITargetDataService {
+
+    /**
+     * 鏌ヨ鎸囨爣鏁版嵁
+     */
+    TargetDataVo queryById(Long id);
+
+    /**
+     * 鏌ヨ鎸囨爣鏁版嵁鍒楄〃
+     */
+    TableDataInfo<TargetDataVo> queryPageList(TargetDataBo bo, PageQuery pageQuery);
+
+    /**
+     * 鏌ヨ鎸囨爣鏁版嵁鍒楄〃
+     */
+    List<TargetDataVo> queryList(TargetDataBo bo);
+
+    /**
+     * 鏂板鎸囨爣鏁版嵁
+     */
+    Boolean insertByBo(TargetDataBo bo);
+
+    /**
+     * 淇敼鎸囨爣鏁版嵁
+     */
+    Boolean updateByBo(TargetDataBo bo);
+
+    /**
+     * 鏍¢獙骞舵壒閲忓垹闄ゆ寚鏍囨暟鎹俊鎭�
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/ITargetManageService.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/ITargetManageService.java
new file mode 100644
index 0000000..1b4bab0
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/ITargetManageService.java
@@ -0,0 +1,50 @@
+package org.dromara.demo.service;
+
+import org.dromara.demo.domain.vo.TargetManageVo;
+import org.dromara.demo.domain.bo.TargetManageBo;
+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 Lion Li
+ * @date 2024-02-20
+ */
+public interface ITargetManageService {
+
+    /**
+     * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆�
+     */
+    TargetManageVo queryById(Long tgId);
+
+    /**
+     * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�
+     */
+    TableDataInfo<TargetManageVo> queryPageList(TargetManageBo bo, PageQuery pageQuery);
+
+    /**
+     * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�
+     */
+    List<TargetManageVo> queryList(TargetManageBo bo);
+
+    /**
+     * 鏂板銆愯濉啓鍔熻兘鍚嶇О銆�
+     */
+    Boolean insertByBo(TargetManageBo bo);
+
+    /**
+     * 淇敼銆愯濉啓鍔熻兘鍚嶇О銆�
+     */
+    Boolean updateByBo(TargetManageBo bo);
+
+    /**
+     * 鏍¢獙骞舵壒閲忓垹闄ゃ�愯濉啓鍔熻兘鍚嶇О銆戜俊鎭�
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    void updateStatus(Long id);
+}
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/JdCruxIndexDataServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/JdCruxIndexDataServiceImpl.java
new file mode 100644
index 0000000..c8d655f
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/JdCruxIndexDataServiceImpl.java
@@ -0,0 +1,111 @@
+package org.dromara.demo.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.demo.domain.JdCruxIndexData;
+import org.dromara.demo.domain.bo.JdCruxIndexDataBo;
+import org.dromara.demo.domain.vo.JdCruxIndexDataVo;
+import org.dromara.demo.mapper.JdCruxIndexDataMapper;
+import org.dromara.demo.service.IJdCruxIndexDataService;
+import org.springframework.stereotype.Service;
+
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 鍏抽敭鎸囨爣鏁版嵁(鍗$墖)Service涓氬姟灞傚鐞�
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@RequiredArgsConstructor
+@Service
+public class JdCruxIndexDataServiceImpl implements IJdCruxIndexDataService {
+
+    private final JdCruxIndexDataMapper baseMapper;
+
+    /**
+     * 鏌ヨ鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+     */
+    @Override
+    public JdCruxIndexDataVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 鏌ヨ鍏抽敭鎸囨爣鏁版嵁(鍗$墖)鍒楄〃
+     */
+    @Override
+    public TableDataInfo<JdCruxIndexDataVo> queryPageList(JdCruxIndexDataBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<JdCruxIndexData> lqw = buildQueryWrapper(bo);
+        Page<JdCruxIndexDataVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 鏌ヨ鍏抽敭鎸囨爣鏁版嵁(鍗$墖)鍒楄〃
+     */
+    @Override
+    public List<JdCruxIndexDataVo> queryList(JdCruxIndexDataBo bo) {
+        LambdaQueryWrapper<JdCruxIndexData> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<JdCruxIndexData> buildQueryWrapper(JdCruxIndexDataBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<JdCruxIndexData> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getCruxName()), JdCruxIndexData::getCruxName, bo.getCruxName());
+        lqw.eq(StringUtils.isNotBlank(bo.getTargetValue()), JdCruxIndexData::getTargetValue, bo.getTargetValue());
+        return lqw;
+    }
+
+    /**
+     * 鏂板鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+     */
+    @Override
+    public Boolean insertByBo(JdCruxIndexDataBo bo) {
+        JdCruxIndexData add = MapstructUtils.convert(bo, JdCruxIndexData.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 淇敼鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+     */
+    @Override
+    public Boolean updateByBo(JdCruxIndexDataBo bo) {
+        JdCruxIndexData update = MapstructUtils.convert(bo, JdCruxIndexData.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+     */
+    private void validEntityBeforeSave(JdCruxIndexData entity){
+        //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鍏抽敭鎸囨爣鏁版嵁(鍗$墖)
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> 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/RsPcrDataServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsPcrDataServiceImpl.java
new file mode 100644
index 0000000..ddb6161
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsPcrDataServiceImpl.java
@@ -0,0 +1,121 @@
+package org.dromara.demo.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.dromara.demo.domain.bo.RsPcrDataBo;
+import org.dromara.demo.domain.vo.RsPcrDataVo;
+import org.dromara.demo.domain.RsPcrData;
+import org.dromara.demo.mapper.RsPcrDataMapper;
+import org.dromara.demo.service.IRsPcrDataService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 浜鸿溅璺熀纭�淇℃伅Service涓氬姟灞傚鐞�
+ *
+ * @author Lion Li
+ * @date 2024-02-27
+ */
+@RequiredArgsConstructor
+@Service
+public class RsPcrDataServiceImpl implements IRsPcrDataService {
+
+    private final RsPcrDataMapper baseMapper;
+
+    /**
+     * 鏌ヨ浜鸿溅璺熀纭�淇℃伅
+     */
+    @Override
+    public RsPcrDataVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 鏌ヨ浜鸿溅璺熀纭�淇℃伅鍒楄〃
+     */
+    @Override
+    public TableDataInfo<RsPcrDataVo> queryPageList(RsPcrDataBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<RsPcrData> lqw = buildQueryWrapper(bo);
+        Page<RsPcrDataVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 鏌ヨ浜鸿溅璺熀纭�淇℃伅鍒楄〃
+     */
+    @Override
+    public List<RsPcrDataVo> queryList(RsPcrDataBo bo) {
+        LambdaQueryWrapper<RsPcrData> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<RsPcrData> buildQueryWrapper(RsPcrDataBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<RsPcrData> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getModeName()), RsPcrData::getModeName, bo.getModeName());
+        lqw.like(StringUtils.isNotBlank(bo.getPeriodName()), RsPcrData::getPeriodName, bo.getPeriodName());
+        lqw.eq(StringUtils.isNotBlank(bo.getPeriodYear()), RsPcrData::getPeriodYear, bo.getPeriodYear());
+        lqw.eq(bo.getPeriodMonth() != null, RsPcrData::getPeriodMonth, bo.getPeriodMonth());
+        lqw.like(StringUtils.isNotBlank(bo.getIndexOneName()), RsPcrData::getIndexOneName, bo.getIndexOneName());
+        lqw.eq(bo.getIndexOneValue() != null, RsPcrData::getIndexOneValue, bo.getIndexOneValue());
+        lqw.like(StringUtils.isNotBlank(bo.getIndexTwoName()), RsPcrData::getIndexTwoName, bo.getIndexTwoName());
+        lqw.eq(bo.getIndexTwoValue() != null, RsPcrData::getIndexTwoValue, bo.getIndexTwoValue());
+        lqw.like(StringUtils.isNotBlank(bo.getIndexThreeName()), RsPcrData::getIndexThreeName, bo.getIndexThreeName());
+        lqw.eq(bo.getIndexThreeValue() != null, RsPcrData::getIndexThreeValue, bo.getIndexThreeValue());
+        lqw.like(StringUtils.isNotBlank(bo.getIndexFourName()), RsPcrData::getIndexFourName, bo.getIndexFourName());
+        lqw.eq(bo.getIndexFourValue() != null, RsPcrData::getIndexFourValue, bo.getIndexFourValue());
+        lqw.eq(bo.getStatus() != null, RsPcrData::getStatus, bo.getStatus());
+        return lqw;
+    }
+
+    /**
+     * 鏂板浜鸿溅璺熀纭�淇℃伅
+     */
+    @Override
+    public Boolean insertByBo(RsPcrDataBo bo) {
+        RsPcrData add = MapstructUtils.convert(bo, RsPcrData.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 淇敼浜鸿溅璺熀纭�淇℃伅
+     */
+    @Override
+    public Boolean updateByBo(RsPcrDataBo bo) {
+        RsPcrData update = MapstructUtils.convert(bo, RsPcrData.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+     */
+    private void validEntityBeforeSave(RsPcrData entity){
+        //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎浜鸿溅璺熀纭�淇℃伅
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> 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
new file mode 100644
index 0000000..4ace7ea
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsTrafficIndexServiceImpl.java
@@ -0,0 +1,132 @@
+package org.dromara.demo.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.dromara.demo.domain.bo.RsTrafficIndexBo;
+import org.dromara.demo.domain.vo.RsTrafficIndexVo;
+import org.dromara.demo.domain.RsTrafficIndex;
+import org.dromara.demo.mapper.RsTrafficIndexMapper;
+import org.dromara.demo.service.IRsTrafficIndexService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 浜ら�氭寚鏁癝ervice涓氬姟灞傚鐞�
+ *
+ * @author Lion Li
+ * @date 2024-02-26
+ */
+@RequiredArgsConstructor
+@Service
+public class RsTrafficIndexServiceImpl implements IRsTrafficIndexService {
+
+    private final RsTrafficIndexMapper baseMapper;
+
+    /**
+     * 鏌ヨ浜ら�氭寚鏁�
+     */
+    @Override
+    public RsTrafficIndexVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 鏌ヨ浜ら�氭寚鏁板垪琛�
+     */
+    @Override
+    public TableDataInfo<RsTrafficIndexVo> queryPageList(RsTrafficIndexBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<RsTrafficIndex> lqw = buildQueryWrapper(bo);
+        Page<RsTrafficIndexVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 鏌ヨ浜ら�氭寚鏁板垪琛�
+     */
+    @Override
+    public List<RsTrafficIndexVo> queryList(RsTrafficIndexBo bo) {
+        LambdaQueryWrapper<RsTrafficIndex> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<RsTrafficIndex> buildQueryWrapper(RsTrafficIndexBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<RsTrafficIndex> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getModeName()), RsTrafficIndex::getModeName, bo.getModeName());
+        lqw.like(StringUtils.isNotBlank(bo.getTargetOneName()), RsTrafficIndex::getTargetOneName, bo.getTargetOneName());
+        lqw.eq(bo.getTargetOneValue() != null, RsTrafficIndex::getTargetOneValue, bo.getTargetOneValue());
+        lqw.eq(StringUtils.isNotBlank(bo.getTargetOneUnit()), RsTrafficIndex::getTargetOneUnit, bo.getTargetOneUnit());
+        lqw.eq(bo.getTargetOneStatus() != null, RsTrafficIndex::getTargetOneStatus, bo.getTargetOneStatus());
+        lqw.eq(bo.getTargetOneCompareValue() != null, RsTrafficIndex::getTargetOneCompareValue, bo.getTargetOneCompareValue());
+        lqw.like(StringUtils.isNotBlank(bo.getTargetTwoName()), RsTrafficIndex::getTargetTwoName, bo.getTargetTwoName());
+        lqw.eq(bo.getTargetTwoValue() != null, RsTrafficIndex::getTargetTwoValue, bo.getTargetTwoValue());
+        lqw.eq(StringUtils.isNotBlank(bo.getTargetTwoUnit()), RsTrafficIndex::getTargetTwoUnit, bo.getTargetTwoUnit());
+        lqw.eq(bo.getTargetTwoStatus() != null, RsTrafficIndex::getTargetTwoStatus, bo.getTargetTwoStatus());
+        lqw.eq(bo.getTargetTwoCompareValue() != null, RsTrafficIndex::getTargetTwoCompareValue, bo.getTargetTwoCompareValue());
+        lqw.like(StringUtils.isNotBlank(bo.getTargetThreeName()), RsTrafficIndex::getTargetThreeName, bo.getTargetThreeName());
+        lqw.eq(bo.getTargetThreeValue() != null, RsTrafficIndex::getTargetThreeValue, bo.getTargetThreeValue());
+        lqw.eq(StringUtils.isNotBlank(bo.getTargetThreeUnit()), RsTrafficIndex::getTargetThreeUnit, bo.getTargetThreeUnit());
+        lqw.eq(bo.getTargetThreeStatus() != null, RsTrafficIndex::getTargetThreeStatus, bo.getTargetThreeStatus());
+        lqw.eq(bo.getTargetThreeCompareValue() != null, RsTrafficIndex::getTargetThreeCompareValue, bo.getTargetThreeCompareValue());
+        lqw.like(StringUtils.isNotBlank(bo.getTargetFourName()), RsTrafficIndex::getTargetFourName, bo.getTargetFourName());
+        lqw.eq(bo.getTargetFourValue() != null, RsTrafficIndex::getTargetFourValue, bo.getTargetFourValue());
+        lqw.eq(StringUtils.isNotBlank(bo.getTargetFourUnit()), RsTrafficIndex::getTargetFourUnit, bo.getTargetFourUnit());
+        lqw.eq(bo.getTargetFourStatus() != null, RsTrafficIndex::getTargetFourStatus, bo.getTargetFourStatus());
+        lqw.eq(bo.getTargetFourCompareValue() != null, RsTrafficIndex::getTargetFourCompareValue, bo.getTargetFourCompareValue());
+        lqw.eq(bo.getStatus() != null, RsTrafficIndex::getStatus, bo.getStatus());
+        lqw.like(StringUtils.isNotBlank(bo.getPeriodName()), RsTrafficIndex::getPeriodName, bo.getPeriodName());
+
+        return lqw;
+    }
+
+    /**
+     * 鏂板浜ら�氭寚鏁�
+     */
+    @Override
+    public Boolean insertByBo(RsTrafficIndexBo bo) {
+        RsTrafficIndex add = MapstructUtils.convert(bo, RsTrafficIndex.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 淇敼浜ら�氭寚鏁�
+     */
+    @Override
+    public Boolean updateByBo(RsTrafficIndexBo bo) {
+        RsTrafficIndex update = MapstructUtils.convert(bo, RsTrafficIndex.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+     */
+    private void validEntityBeforeSave(RsTrafficIndex entity){
+        //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎浜ら�氭寚鏁�
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> 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/TargetDataServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetDataServiceImpl.java
new file mode 100644
index 0000000..a7d9e71
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetDataServiceImpl.java
@@ -0,0 +1,112 @@
+package org.dromara.demo.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.demo.domain.TargetData;
+import org.dromara.demo.domain.bo.TargetDataBo;
+import org.dromara.demo.domain.vo.TargetDataVo;
+import org.dromara.demo.mapper.TargetDataMapper;
+import org.dromara.demo.service.ITargetDataService;
+import org.springframework.stereotype.Service;
+
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 鎸囨爣鏁版嵁Service涓氬姟灞傚鐞�
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@RequiredArgsConstructor
+@Service
+public class TargetDataServiceImpl implements ITargetDataService {
+
+    private final TargetDataMapper baseMapper;
+
+    /**
+     * 鏌ヨ鎸囨爣鏁版嵁
+     */
+    @Override
+    public TargetDataVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 鏌ヨ鎸囨爣鏁版嵁鍒楄〃
+     */
+    @Override
+    public TableDataInfo<TargetDataVo> queryPageList(TargetDataBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<TargetData> lqw = buildQueryWrapper(bo);
+        Page<TargetDataVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 鏌ヨ鎸囨爣鏁版嵁鍒楄〃
+     */
+    @Override
+    public List<TargetDataVo> queryList(TargetDataBo bo) {
+        LambdaQueryWrapper<TargetData> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TargetData> buildQueryWrapper(TargetDataBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TargetData> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getAreaName()), TargetData::getAreaName, bo.getAreaName());
+        lqw.eq(bo.getAreaCode() != null, TargetData::getAreaCode, bo.getAreaCode());
+        lqw.eq(bo.getCollectTime() != null, TargetData::getCollectTime, bo.getCollectTime());
+        return lqw;
+    }
+
+    /**
+     * 鏂板鎸囨爣鏁版嵁
+     */
+    @Override
+    public Boolean insertByBo(TargetDataBo bo) {
+        TargetData add = MapstructUtils.convert(bo, TargetData.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 淇敼鎸囨爣鏁版嵁
+     */
+    @Override
+    public Boolean updateByBo(TargetDataBo bo) {
+        TargetData update = MapstructUtils.convert(bo, TargetData.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+     */
+    private void validEntityBeforeSave(TargetData entity){
+        //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鎸囨爣鏁版嵁
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> 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/TargetManageServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetManageServiceImpl.java
new file mode 100644
index 0000000..37fbc65
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/TargetManageServiceImpl.java
@@ -0,0 +1,131 @@
+package org.dromara.demo.service.impl;
+
+import jakarta.transaction.Transactional;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.dromara.demo.domain.bo.TargetManageBo;
+import org.dromara.demo.domain.vo.TargetManageVo;
+import org.dromara.demo.domain.TargetManage;
+import org.dromara.demo.mapper.TargetManageMapper;
+import org.dromara.demo.service.ITargetManageService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 銆愯濉啓鍔熻兘鍚嶇О銆慡ervice涓氬姟灞傚鐞�
+ *
+ * @author Lion Li
+ * @date 2024-02-20
+ */
+@RequiredArgsConstructor
+@Service
+public class TargetManageServiceImpl implements ITargetManageService {
+
+    private final TargetManageMapper baseMapper;
+
+    /**
+     * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆�
+     */
+    @Override
+    public TargetManageVo queryById(Long tgId){
+        return baseMapper.selectVoById(tgId);
+    }
+
+    /**
+     * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�
+     */
+    @Override
+    public TableDataInfo<TargetManageVo> queryPageList(TargetManageBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<TargetManage> lqw = buildQueryWrapper(bo);
+        Page<TargetManageVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        List<TargetManageVo> targetManageVoss= baseMapper.selectTargetManageInfo(bo);
+        result.setRecords(targetManageVoss);
+        result.setTotal(targetManageVoss.size());
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�
+     */
+    @Override
+    public List<TargetManageVo> queryList(TargetManageBo bo) {
+        LambdaQueryWrapper<TargetManage> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TargetManage> buildQueryWrapper(TargetManageBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TargetManage> lqw =  new LambdaQueryWrapper<>();
+        lqw.eq(bo.getTgStatus() != null, TargetManage::getTgStatus, bo.getTgStatus());
+        lqw.eq(bo.getTgType() != null, TargetManage::getTgType, bo.getTgType());
+        lqw.eq(bo.getTgCreateTime() != null, TargetManage::getTgCreateTime, bo.getTgCreateTime());
+        lqw.eq(bo.getUserId() != null, TargetManage::getUserId, bo.getUserId());
+        lqw.like(StringUtils.isNotBlank(bo.getTgName()), TargetManage::getTgName, bo.getTgName());
+        return lqw;
+    }
+
+    /**
+     * 鏂板銆愯濉啓鍔熻兘鍚嶇О銆�
+     */
+    @Override
+    public Boolean insertByBo(TargetManageBo bo) {
+        TargetManage add = MapstructUtils.convert(bo, TargetManage.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setTgId(add.getTgId());
+        }
+        return flag;
+    }
+
+    /**
+     * 淇敼銆愯濉啓鍔熻兘鍚嶇О銆�
+     */
+    @Override
+    public Boolean updateByBo(TargetManageBo bo) {
+        TargetManage update = MapstructUtils.convert(bo, TargetManage.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
+     */
+    private void validEntityBeforeSave(TargetManage entity){
+        //TODO 鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆�
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+
+    @Override
+    @Transactional
+    public void updateStatus(Long id) {
+        TargetManage targetManage = baseMapper.selectOne(new LambdaQueryWrapper<TargetManage>().eq(TargetManage::getTgId, id));
+        if(targetManage.getTgStatus()==1){
+            targetManage.setTgStatus(0);
+
+        }else {
+            targetManage.setTgStatus(1);
+
+        }
+        baseMapper.updateById(targetManage);
+    }
+
+}
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/JdCruxIndexDataMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/JdCruxIndexDataMapper.xml
new file mode 100644
index 0000000..b43ab49
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/JdCruxIndexDataMapper.xml
@@ -0,0 +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">
+<mapper namespace="org.dromara.demo.mapper.JdCruxIndexDataMapper">
+
+</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
new file mode 100644
index 0000000..89d8e04
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsPcrDataMapper.xml
@@ -0,0 +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">
+<mapper namespace="org.dromara.demo.mapper.RsPcrDataMapper">
+
+</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
new file mode 100644
index 0000000..e0a30b7
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/RsTrafficIndexMapper.xml
@@ -0,0 +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">
+<mapper namespace="org.dromara.system.mapper.RsTrafficIndexMapper">
+
+</mapper>
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/TargetDataMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/TargetDataMapper.xml
new file mode 100644
index 0000000..fd92065
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/TargetDataMapper.xml
@@ -0,0 +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">
+<mapper namespace="org.dromara.demo.mapper.TargetDataMapper">
+
+</mapper>
diff --git a/dujy-modules/dujy-demo/src/main/resources/mapper/demo/TargetManageMapper.xml b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/TargetManageMapper.xml
new file mode 100644
index 0000000..a2d282f
--- /dev/null
+++ b/dujy-modules/dujy-demo/src/main/resources/mapper/demo/TargetManageMapper.xml
@@ -0,0 +1,21 @@
+<?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.TargetManageMapper">
+   <select id="selectTargetManageInfo" resultMap="Usermap">
+       select * from target_manage tm inner join sys_user su on tm.user_id=su.user_id
+   </select>
+    <resultMap id="Usermap" type="org.dromara.demo.domain.vo.TargetManageVo">
+        <id column="tg_id" property="tgId"></id>
+        <result property="tgName" column="tg_name"></result>
+        <result property="tgCreateTime" column="tg_create_time"></result>
+        <result column="tg_type" property="tgType"></result>
+        <result column="tg_status" property="tgStatus"></result>
+        <result property="userId" column="user_id"></result>
+        <association property="sysUser" javaType="org.dromara.system.domain.SysUser" >
+            <id column="user_id" property="userId"></id>
+            <result property="userName" column="user_name"></result>
+        </association>
+    </resultMap>
+</mapper>

--
Gitblit v1.8.0