From 800be390ac246656b4f8d5803cfbb7602c476c4b Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 07 三月 2024 10:44:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java |   38 +
 ycl-pojo/src/main/java/com/ycl/platform/domain/query/CheckRuleQuery.java               |   44 +
 ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java         |   46 ++
 ycl-server/src/main/java/com/ycl/platform/service/CheckRuleService.java                |   65 ++
 pom.xml                                                                                |    8 
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTemplateVO.java                 |   51 ++
 ycl-server/src/main/java/com/ycl/config/MybatisPlusConfig.java                         |   25 +
 ycl-server/src/main/resources/mapper/zgyw/CheckTemplateMapper.xml                      |   15 
 ycl-common/src/main/java/utils/DateUtils.java                                          |   41 +
 ycl-server/src/main/java/com/ycl/platform/mapper/CheckRuleMapper.java                  |   19 
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckRule.java                   |   46 ++
 ycl-server/src/main/java/com/ycl/platform/controller/CheckRuleController.java          |   73 +++
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/RuleItemVO.java                      |   24 +
 ycl-pojo/src/main/java/com/ycl/platform/domain/form/DefaultAuditForm.java              |   27 +
 ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java    |   11 
 ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml                    |   34 +
 ycl-pojo/src/main/java/com/ycl/platform/domain/query/CheckTemplateQuery.java           |   43 +
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckRuleVO.java                     |   47 ++
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckRuleServiceImpl.java       |  160 ++++++
 ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java          |    8 
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java               |   13 
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckTemplate.java               |   48 ++
 ycl-server/src/main/java/com/ycl/platform/mapper/CheckTemplateMapper.java              |   19 
 ycl-server/src/main/java/com/ycl/platform/controller/CheckTemplateController.java      |   75 +++
 ycl-pojo/src/main/java/com/ycl/platform/domain/form/CheckRuleForm.java                 |   56 ++
 ycl-server/src/main/java/com/ycl/platform/service/CheckTemplateService.java            |   65 ++
 ycl-pojo/src/main/java/com/ycl/platform/domain/form/CheckTemplateForm.java             |   62 ++
 ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java            |    6 
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java   |  154 ++++++
 ycl-server/src/main/resources/mapper/zgyw/CheckRuleMapper.xml                          |   17 
 30 files changed, 1,321 insertions(+), 19 deletions(-)

diff --git a/pom.xml b/pom.xml
index c6df984..99a7e90 100644
--- a/pom.xml
+++ b/pom.xml
@@ -176,6 +176,12 @@
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper-spring-boot-starter</artifactId>
             <version>${pagehelper.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>jsqlparser</artifactId>
+                    <groupId>com.github.jsqlparser</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
@@ -289,4 +295,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/ycl-common/src/main/java/utils/DateUtils.java b/ycl-common/src/main/java/utils/DateUtils.java
index 131b9ce..77b3e6c 100644
--- a/ycl-common/src/main/java/utils/DateUtils.java
+++ b/ycl-common/src/main/java/utils/DateUtils.java
@@ -2,15 +2,18 @@
 
 import org.apache.commons.lang3.time.DateFormatUtils;
 
+import javax.annotation.Nullable;
 import java.lang.management.ManagementFactory;
+import java.sql.Timestamp;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.*;
 import java.util.Date;
+import java.util.Objects;
 
 /**
  * 鏃堕棿宸ュ叿绫�
- * 
+ *
  * @author ruoyi
  */
 public class DateUtils extends org.apache.commons.lang3.time.DateUtils
@@ -26,13 +29,13 @@
     public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
 
     private static String[] parsePatterns = {
-            "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", 
+            "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
             "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
             "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
 
     /**
      * 鑾峰彇褰撳墠Date鍨嬫棩鏈�
-     * 
+     *
      * @return Date() 褰撳墠鏃ユ湡
      */
     public static Date getNowDate()
@@ -42,7 +45,7 @@
 
     /**
      * 鑾峰彇褰撳墠鏃ユ湡, 榛樿鏍煎紡涓簓yyy-MM-dd
-     * 
+     *
      * @return String
      */
     public static String getDate()
@@ -185,4 +188,34 @@
         ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
         return Date.from(zdt.toInstant());
     }
+
+    /**
+     * 鑾峰彇鏌愬ぉ鐨勫紑濮嬫椂闂�
+     *
+     * @param date
+     * @return 2023-01-01 00:00:00
+     */
+    public static Date getDayStart(@Nullable Date date) {
+        if (Objects.isNull(date)) {
+            date = new Date();
+        }
+        LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.of("GMT+8"));
+        LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 0, 0, 0);
+        return Timestamp.valueOf(of);
+    }
+
+    /**
+     * 鑾峰彇鏌愬ぉ鐨勭粨鏉熸椂闂�
+     *
+     * @param date
+     * @return 2023-01-01 23:59:59
+     */
+    public static Date getDayEnd(@Nullable Date date) {
+        if (Objects.isNull(date)) {
+            date = new Date();
+        }
+        LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
+        LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 23, 59, 59);
+        return Timestamp.valueOf(of);
+    }
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckRule.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckRule.java
new file mode 100644
index 0000000..bd2d147
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckRule.java
@@ -0,0 +1,46 @@
+package com.ycl.platform.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.platform.base.AbsEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 鑰冩牳瑙勫垯
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Data
+@Accessors(chain = true)
+@TableName("t_check_rule")
+@ApiModel(value = "CheckRule瀵硅薄", description = "鑰冩牳瑙勫垯")
+public class CheckRule extends AbsEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("瑙勫垯鍚嶇О")
+    @TableField("rule_name")
+    private String ruleName;
+
+    @ApiModelProperty("瑙勫垯鎻忚堪")
+    @TableField("rule_detail")
+    private String ruleDetail;
+
+    @ApiModelProperty("澶╃綉瑙嗛鐐逛綅鏁�")
+    @TableField("video_point_num")
+    private Integer videoPointNum;
+
+    @ApiModelProperty("杞﹁締鍗″彛鐐逛綅鏁�")
+    @TableField("vehicle_checkpoint_num")
+    private Integer vehicleCheckpointNum;
+
+    @ApiModelProperty("浜鸿劯鍗″彛鐐逛綅鏁�")
+    @TableField("face_chceckpoint_num")
+    private Integer faceChceckpointNum;
+
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckTemplate.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckTemplate.java
new file mode 100644
index 0000000..bc3dc30
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckTemplate.java
@@ -0,0 +1,48 @@
+package com.ycl.platform.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ycl.platform.base.AbsEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * 鑰冩牳妯℃澘
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Data
+@Accessors(chain = true)
+@TableName("t_check_template")
+@ApiModel(value = "CheckTemplate瀵硅薄", description = "鑰冩牳妯℃澘")
+public class CheckTemplate extends AbsEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 妯℃澘鍚嶇О
+     */
+    @TableField("template_name")
+    private String templateName;
+
+    @ApiModelProperty("璋冩暣绯绘暟")
+    @TableField("adjust_coefficient")
+    private BigDecimal adjustCoefficient;
+
+    /**
+     * 璋冩暣绯绘暟鐨勬柟寮忥細涔橀櫎
+     */
+    @TableField("adjust_way")
+    private String adjustWay;
+
+    @ApiModelProperty("鐘舵��")
+    @TableField("status")
+    private String status;
+
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CheckRuleForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CheckRuleForm.java
new file mode 100644
index 0000000..384d989
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CheckRuleForm.java
@@ -0,0 +1,56 @@
+package com.ycl.platform.domain.form;
+
+import com.ycl.system.domain.group.Update;
+import com.ycl.system.domain.group.Add;
+import com.ycl.platform.base.AbsForm;
+import com.ycl.platform.domain.entity.CheckRule;
+import java.time.LocalDateTime;
+import org.springframework.beans.BeanUtils;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import org.springframework.lang.NonNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 鑰冩牳瑙勫垯琛ㄥ崟
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "CheckRule琛ㄥ崟", description = "鑰冩牳瑙勫垯琛ㄥ崟")
+public class CheckRuleForm extends AbsForm {
+
+    @NotBlank(message = "瑙勫垯鍚嶇О涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("瑙勫垯鍚嶇О")
+    private String ruleName;
+
+    @NotBlank(message = "瑙勫垯鎻忚堪涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("瑙勫垯鎻忚堪")
+    private String ruleDetail;
+
+    @NotNull(message = "澶╃綉瑙嗛鐐逛綅鏁颁笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("澶╃綉瑙嗛鐐逛綅鏁�")
+    private Integer videoPointNum;
+
+    @NotNull(message = "杞﹁締鍗″彛鐐逛綅鏁颁笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("杞﹁締鍗″彛鐐逛綅鏁�")
+    private Integer vehicleCheckpointNum;
+
+    @NotNull(message = "浜鸿劯鍗″彛鐐逛綅鏁颁笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("浜鸿劯鍗″彛鐐逛綅鏁�")
+    private Integer faceChceckpointNum;
+
+    public static CheckRule getEntityByForm(@NonNull CheckRuleForm form, CheckRule entity) {
+        if(entity == null) {
+          entity = new CheckRule();
+        }
+        BeanUtils.copyProperties(form, entity);
+        return entity;
+    }
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CheckTemplateForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CheckTemplateForm.java
new file mode 100644
index 0000000..d3b4890
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CheckTemplateForm.java
@@ -0,0 +1,62 @@
+package com.ycl.platform.domain.form;
+
+import com.ycl.platform.domain.vo.RuleItemVO;
+import com.ycl.system.domain.group.Update;
+import com.ycl.system.domain.group.Add;
+import com.ycl.platform.base.AbsForm;
+import com.ycl.platform.domain.entity.CheckTemplate;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import jakarta.validation.constraints.NotEmpty;
+import org.springframework.beans.BeanUtils;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import org.springframework.lang.NonNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 鑰冩牳妯℃澘琛ㄥ崟
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "CheckTemplate琛ㄥ崟", description = "鑰冩牳妯℃澘琛ㄥ崟")
+public class CheckTemplateForm extends AbsForm {
+
+    @NotNull(message = "妯℃澘鍚嶇О涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("妯℃澘鍚嶇О")
+    private String templateName;
+
+    @NotNull(message = "璋冩暣绯绘暟涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("璋冩暣绯绘暟")
+    private BigDecimal adjustCoefficient;
+
+    @NotNull(message = "璋冩暣绯绘暟璁$畻鏂瑰紡涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+    @ApiModelProperty("璋冩暣绯绘暟璁$畻鏂瑰紡")
+    private String adjustWay;
+
+    @NotBlank(message = "鐘舵�佷笉鑳戒负绌�", groups = {Add.class, Update.class})
+    @ApiModelProperty("鐘舵��")
+    private String status;
+
+    @NotEmpty(message = "鑰冩牳瑙勫垯涓嶈兘涓虹┖")
+    @ApiModelProperty("鑰冩牳瑙勫垯")
+    private List<RuleItemVO> ruleFormList;
+
+    public static CheckTemplate getEntityByForm(@NonNull CheckTemplateForm form, CheckTemplate entity) {
+        if(entity == null) {
+          entity = new CheckTemplate();
+        }
+        BeanUtils.copyProperties(form, entity);
+        return entity;
+    }
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/DefaultAuditForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/DefaultAuditForm.java
new file mode 100644
index 0000000..030c5a6
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/DefaultAuditForm.java
@@ -0,0 +1,27 @@
+package com.ycl.platform.domain.form;
+
+import com.ycl.platform.base.AbsForm;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * 杩濈害瀹℃牳琛ㄥ崟
+ *
+ * @author锛歺p
+ * @date锛�2024/3/6 8:59
+ */
+@Data
+public class DefaultAuditForm extends AbsForm {
+
+    /**
+     * 瀹℃牳缁撴灉
+     */
+    @NotBlank(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖")
+    private String auditingResult;
+
+    /**
+     * 瀹℃牳璇存槑
+     */
+    private String remark;
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CheckRuleQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CheckRuleQuery.java
new file mode 100644
index 0000000..a266cd1
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CheckRuleQuery.java
@@ -0,0 +1,44 @@
+package com.ycl.platform.domain.query;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ycl.platform.base.AbsQuery;
+
+import java.util.Date;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import jakarta.validation.constraints.NotBlank;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 鑰冩牳瑙勫垯鏌ヨ
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "CheckRule鏌ヨ", description = "鑰冩牳瑙勫垯鏌ヨ")
+public class CheckRuleQuery extends AbsQuery {
+
+    /**
+     * 瑙勫垯鍚嶇О
+     */
+    private String ruleName;
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date start;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date end;
+
+}
+
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CheckTemplateQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CheckTemplateQuery.java
new file mode 100644
index 0000000..5e37380
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CheckTemplateQuery.java
@@ -0,0 +1,43 @@
+package com.ycl.platform.domain.query;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ycl.platform.base.AbsQuery;
+
+import java.util.Date;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import jakarta.validation.constraints.NotBlank;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 鑰冩牳妯℃澘鏌ヨ
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "CheckTemplate鏌ヨ", description = "鑰冩牳妯℃澘鏌ヨ")
+public class CheckTemplateQuery extends AbsQuery {
+
+    /**
+     * 妯℃澘鍚嶇О
+     */
+    private String templateName;
+
+    /**
+     * 鐘舵��
+     */
+    private String status;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date start;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date end;
+
+}
+
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java
index 85b4f21..96576ba 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java
@@ -1,13 +1,19 @@
 package com.ycl.platform.domain.query;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.platform.base.AbsQuery;
+
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
+
 import org.springframework.lang.NonNull;
 import jakarta.validation.constraints.NotBlank;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
+import utils.DateUtils;
 
 /**
  * 杩濊瀹℃牳鏌ヨ
@@ -19,5 +25,45 @@
 @Accessors(chain = true)
 @ApiModel(value = "DefaultAuditing鏌ヨ", description = "杩濊瀹℃牳鏌ヨ")
 public class DefaultAuditingQuery extends AbsQuery {
+
+    /**
+     * 杩濊鍗曚綅
+     */
+    private Integer unitId;
+
+    /**
+     * 瀹℃牳鏃堕棿鑼冨洿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date auditingStartTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date auditingEndTime;
+
+    /**
+     * 鍒涘缓鏃堕棿鑼冨洿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createStartTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createEndTime;
+
+    /**
+     * 璁剧疆鏃堕棿锛屼娇鍏跺寘鍚粖澶�
+     */
+    public void setTime() {
+        if (Objects.nonNull(auditingStartTime)) {
+            auditingStartTime = DateUtils.getDayStart(auditingStartTime);
+        }
+        if (Objects.nonNull(auditingEndTime)) {
+            auditingEndTime = DateUtils.getDayEnd(auditingEndTime);
+        }
+        if (Objects.nonNull(createStartTime)) {
+            createStartTime = DateUtils.getDayStart(createStartTime);
+        }
+        if (Objects.nonNull(createEndTime)) {
+            createEndTime = DateUtils.getDayEnd(createEndTime);
+        }
+    }
+
 }
 
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckRuleVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckRuleVO.java
new file mode 100644
index 0000000..a075183
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckRuleVO.java
@@ -0,0 +1,47 @@
+package com.ycl.platform.domain.vo;
+
+import com.ycl.platform.base.AbsVo;
+import com.ycl.platform.domain.entity.CheckRule;
+import java.util.List;
+import java.time.LocalDateTime;
+import org.springframework.lang.NonNull;
+import org.springframework.beans.BeanUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 鑰冩牳瑙勫垯灞曠ず
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Data
+@Accessors(chain = true)
+public class CheckRuleVO extends AbsVo {
+
+    /** 瑙勫垯鍚嶇О */
+    private String ruleName;
+
+    /** 瑙勫垯鎻忚堪 */
+    private String ruleDetail;
+
+    /** 澶╃綉瑙嗛鐐逛綅鏁� */
+    private Integer videoPointNum;
+
+    /** 杞﹁締鍗″彛鐐逛綅鏁� */
+    private Integer vehicleCheckpointNum;
+
+    /** 浜鸿劯鍗″彛鐐逛綅鏁� */
+    private Integer faceChceckpointNum;
+
+    public static CheckRuleVO getVoByEntity(@NonNull CheckRule entity, CheckRuleVO vo) {
+        if(vo == null) {
+            vo = new CheckRuleVO();
+        }
+        BeanUtils.copyProperties(entity, vo);
+        return vo;
+    }
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTemplateVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTemplateVO.java
new file mode 100644
index 0000000..1e2f7a2
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTemplateVO.java
@@ -0,0 +1,51 @@
+package com.ycl.platform.domain.vo;
+
+import com.ycl.platform.base.AbsVo;
+import com.ycl.platform.domain.entity.CheckTemplate;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.time.LocalDateTime;
+
+import com.ycl.platform.domain.form.CheckTemplateForm;
+import org.springframework.lang.NonNull;
+import org.springframework.beans.BeanUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 鑰冩牳妯℃澘灞曠ず
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Data
+@Accessors(chain = true)
+public class CheckTemplateVO extends AbsVo {
+
+    /** 妯℃澘鍚嶇О */
+    private String templateName;
+
+    /** 璋冩暣绯绘暟 */
+    private BigDecimal adjustCoefficient;
+
+    /** 璋冩暣绯绘暟鐨勬柟寮忥細涔橀櫎 */
+    private String adjustWay;
+
+    /** 鐘舵�� */
+    private String status;
+
+    /** 瑙勫垯鍒楄〃 */
+    private List<RuleItemVO> ruleFormList;
+
+    public static CheckTemplateVO getVoByEntity(@NonNull CheckTemplate entity, CheckTemplateVO vo) {
+        if(vo == null) {
+            vo = new CheckTemplateVO();
+        }
+        BeanUtils.copyProperties(entity, vo);
+        return vo;
+    }
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java
index 3a5fde8..da99993 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java
@@ -1,5 +1,6 @@
 package com.ycl.platform.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ycl.platform.base.AbsVo;
 import com.ycl.platform.domain.entity.DefaultAuditing;
 import java.util.List;
@@ -24,6 +25,16 @@
     /** 杩濊 */
     private Integer defaultId;
 
+    /**
+     * 杩濈害瑙勫垯鍚�
+     */
+    private String defaultRuleName;
+
+    /**
+     * 杩濈害杩愮淮鍗曚綅
+     */
+    private String unitName;
+
     /** 瀹℃牳鐘舵�� */
     private String auditingStatus;
 
@@ -31,10 +42,12 @@
     private String remark;
 
     /** 瀹℃牳鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime auditingTime;
 
     /** 瀹℃牳浜� */
     private Integer auditingUser;
+    private String auditingUserName;
 
     public static DefaultAuditingVO getVoByEntity(@NonNull DefaultAuditing entity, DefaultAuditingVO vo) {
         if(vo == null) {
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/RuleItemVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/RuleItemVO.java
new file mode 100644
index 0000000..c0241ed
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/RuleItemVO.java
@@ -0,0 +1,24 @@
+package com.ycl.platform.domain.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/3/7 9:24
+ */
+@Data
+public class RuleItemVO {
+
+    /**
+     * 瑙勫垯
+     */
+    private Integer ruleId;
+
+    /**
+     * 鏉冮噸
+     */
+    private BigDecimal weight;
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/config/MybatisPlusConfig.java b/ycl-server/src/main/java/com/ycl/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..aa79139
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/config/MybatisPlusConfig.java
@@ -0,0 +1,25 @@
+package com.ycl.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author xp
+ * @date 2024/3/6
+ */
+@Configuration
+public class MybatisPlusConfig {
+
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+
+        // 閰嶇疆鍒嗛〉鎻掍欢
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        return interceptor;
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CheckRuleController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CheckRuleController.java
new file mode 100644
index 0000000..8fd63eb
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/CheckRuleController.java
@@ -0,0 +1,73 @@
+package com.ycl.platform.controller;
+
+import com.ycl.system.domain.group.Update;
+import com.ycl.system.domain.group.Add;
+import org.springframework.validation.annotation.Validated;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import jakarta.validation.constraints.NotEmpty;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.ycl.platform.service.CheckRuleService;
+import com.ycl.system.Result;
+import com.ycl.platform.domain.form.CheckRuleForm;
+import com.ycl.platform.domain.query.CheckRuleQuery;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 鑰冩牳瑙勫垯 鍓嶇鎺у埗鍣�
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "鑰冩牳瑙勫垯", tags = "鑰冩牳瑙勫垯绠$悊")
+@RestController
+@RequestMapping("/check-rule")
+public class CheckRuleController {
+
+    private final CheckRuleService checkRuleService;
+
+    @PostMapping
+    @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+    public Result add(@RequestBody @Validated(Add.class) CheckRuleForm form) {
+        return checkRuleService.add(form);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "淇敼", notes = "淇敼")
+    public Result update(@RequestBody @Validated(Update.class) CheckRuleForm form) {
+        return checkRuleService.update(form);
+    }
+
+    @DeleteMapping("/{id}")
+    @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+    public Result removeById(@PathVariable("id") String id) {
+        return checkRuleService.removeById(id);
+    }
+
+    @DeleteMapping("/batch")
+    @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+    public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+        return checkRuleService.remove(ids);
+    }
+
+    @PostMapping("/page")
+    @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+    public Result page(@RequestBody CheckRuleQuery query) {
+        return checkRuleService.page(query);
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+    public Result detail(@PathVariable("id") String id) {
+        return checkRuleService.detail(id);
+    }
+
+    @GetMapping("/list")
+    @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+    public Result list() {
+        return checkRuleService.all();
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CheckTemplateController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CheckTemplateController.java
new file mode 100644
index 0000000..749448a
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/CheckTemplateController.java
@@ -0,0 +1,75 @@
+package com.ycl.platform.controller;
+
+import com.ycl.system.domain.group.Update;
+import com.ycl.system.domain.group.Add;
+import org.springframework.validation.annotation.Validated;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.validation.annotation.Validated;
+import jakarta.validation.constraints.NotEmpty;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.ycl.platform.service.CheckTemplateService;
+import com.ycl.system.Result;
+import com.ycl.platform.domain.form.CheckTemplateForm;
+import com.ycl.platform.domain.query.CheckTemplateQuery;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 鑰冩牳妯℃澘 鍓嶇鎺у埗鍣�
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "鑰冩牳妯℃澘", tags = "鑰冩牳妯℃澘绠$悊")
+@RestController
+@RequestMapping("/check-template")
+public class CheckTemplateController {
+
+    private final CheckTemplateService checkTemplateService;
+
+    @PostMapping
+    @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+    public Result add(@RequestBody @Validated(Add.class) CheckTemplateForm form) {
+        return checkTemplateService.add(form);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "淇敼", notes = "淇敼")
+    public Result update(@RequestBody @Validated(Update.class) CheckTemplateForm form) {
+        return checkTemplateService.update(form);
+    }
+
+    @DeleteMapping("/{id}")
+    @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+    public Result removeById(@PathVariable("id") String id) {
+        return checkTemplateService.removeById(id);
+    }
+
+    @DeleteMapping("/batch")
+    @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+    public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+        return checkTemplateService.remove(ids);
+    }
+
+    @PostMapping("/page")
+    @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+    public Result page(@RequestBody CheckTemplateQuery query) {
+        return checkTemplateService.page(query);
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+    public Result detail(@PathVariable("id") String id) {
+        return checkTemplateService.detail(id);
+    }
+
+    @GetMapping("/list")
+    @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+    public Result list() {
+        return checkTemplateService.all();
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java b/ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java
index cb99f29..1f3003b 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java
@@ -1,5 +1,6 @@
 package com.ycl.platform.controller;
 
+import com.ycl.platform.domain.form.DefaultAuditForm;
 import com.ycl.system.domain.group.Update;
 import com.ycl.system.domain.group.Add;
 import org.springframework.validation.annotation.Validated;
@@ -55,9 +56,9 @@
         return defaultAuditingService.remove(ids);
     }
 
-    @GetMapping("/page")
+    @PostMapping("/page")
     @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
-    public Result page(DefaultAuditingQuery query) {
+    public Result page(@RequestBody DefaultAuditingQuery query) {
         return defaultAuditingService.page(query);
     }
 
@@ -72,4 +73,10 @@
     public Result list() {
         return defaultAuditingService.all();
     }
+
+    @PostMapping("/auditing")
+    @ApiOperation(value = "瀹℃牳", notes = "瀹℃牳")
+    public Result auditing(@RequestBody @Validated DefaultAuditForm form) {
+        return defaultAuditingService.auditing(form);
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckRuleMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckRuleMapper.java
new file mode 100644
index 0000000..44c50ee
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckRuleMapper.java
@@ -0,0 +1,19 @@
+package com.ycl.platform.mapper;
+
+import com.ycl.platform.domain.entity.CheckRule;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.platform.domain.vo.CheckRuleVO;
+import com.ycl.platform.domain.form.CheckRuleForm;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 鑰冩牳瑙勫垯 Mapper 鎺ュ彛
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Mapper
+public interface CheckRuleMapper extends BaseMapper<CheckRule> {
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckTemplateMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckTemplateMapper.java
new file mode 100644
index 0000000..ca49830
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckTemplateMapper.java
@@ -0,0 +1,19 @@
+package com.ycl.platform.mapper;
+
+import com.ycl.platform.domain.entity.CheckTemplate;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.platform.domain.vo.CheckTemplateVO;
+import com.ycl.platform.domain.form.CheckTemplateForm;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 鑰冩牳妯℃澘 Mapper 鎺ュ彛
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Mapper
+public interface CheckTemplateMapper extends BaseMapper<CheckTemplate> {
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java
index 3877306..2b76016 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java
@@ -1,11 +1,15 @@
 package com.ycl.platform.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ycl.platform.domain.entity.DefaultAuditing;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.platform.domain.query.DefaultAuditingQuery;
 import com.ycl.platform.domain.vo.DefaultAuditingVO;
 import com.ycl.platform.domain.form.DefaultAuditingForm;
 import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 杩濊瀹℃牳 Mapper 鎺ュ彛
@@ -16,4 +20,6 @@
 @Mapper
 public interface DefaultAuditingMapper extends BaseMapper<DefaultAuditing> {
 
+    Page page(IPage page, @Param("query") DefaultAuditingQuery query);
 }
+
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/CheckRuleService.java b/ycl-server/src/main/java/com/ycl/platform/service/CheckRuleService.java
new file mode 100644
index 0000000..8c0de70
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/service/CheckRuleService.java
@@ -0,0 +1,65 @@
+package com.ycl.platform.service;
+
+import com.ycl.platform.domain.entity.CheckRule;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.system.Result;
+import com.ycl.platform.domain.form.CheckRuleForm;
+import com.ycl.platform.domain.query.CheckRuleQuery;
+import java.util.List;
+
+/**
+ * 鑰冩牳瑙勫垯 鏈嶅姟绫�
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+public interface CheckRuleService extends IService<CheckRule> {
+
+    /**
+     * 娣诲姞
+     * @param form
+     * @return
+     */
+    Result add(CheckRuleForm form);
+
+    /**
+     * 淇敼
+     * @param form
+     * @return
+     */
+    Result update(CheckRuleForm form);
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    Result remove(List<String> ids);
+
+    /**
+     * id鍒犻櫎
+     * @param id
+     * @return
+     */
+    Result removeById(String id);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    Result page(CheckRuleQuery query);
+
+    /**
+     * 鏍规嵁id鏌ユ壘
+     * @param id
+     * @return
+     */
+    Result detail(String id);
+
+    /**
+     * 鍒楄〃
+     * @return
+     */
+    Result all();
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/CheckTemplateService.java b/ycl-server/src/main/java/com/ycl/platform/service/CheckTemplateService.java
new file mode 100644
index 0000000..d6b845c
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/service/CheckTemplateService.java
@@ -0,0 +1,65 @@
+package com.ycl.platform.service;
+
+import com.ycl.platform.domain.entity.CheckTemplate;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.system.Result;
+import com.ycl.platform.domain.form.CheckTemplateForm;
+import com.ycl.platform.domain.query.CheckTemplateQuery;
+import java.util.List;
+
+/**
+ * 鑰冩牳妯℃澘 鏈嶅姟绫�
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+public interface CheckTemplateService extends IService<CheckTemplate> {
+
+    /**
+     * 娣诲姞
+     * @param form
+     * @return
+     */
+    Result add(CheckTemplateForm form);
+
+    /**
+     * 淇敼
+     * @param form
+     * @return
+     */
+    Result update(CheckTemplateForm form);
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    Result remove(List<String> ids);
+
+    /**
+     * id鍒犻櫎
+     * @param id
+     * @return
+     */
+    Result removeById(String id);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    Result page(CheckTemplateQuery query);
+
+    /**
+     * 鏍规嵁id鏌ユ壘
+     * @param id
+     * @return
+     */
+    Result detail(String id);
+
+    /**
+     * 鍒楄〃
+     * @return
+     */
+    Result all();
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java b/ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java
index 16f1a18..39906f9 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java
@@ -2,6 +2,7 @@
 
 import com.ycl.platform.domain.entity.DefaultAuditing;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.platform.domain.form.DefaultAuditForm;
 import com.ycl.system.Result;
 import com.ycl.platform.domain.form.DefaultAuditingForm;
 import com.ycl.platform.domain.query.DefaultAuditingQuery;
@@ -62,4 +63,11 @@
      * @return
      */
     Result all();
+
+    /**
+     * 瀹℃牳
+     * @param form
+     * @return
+     */
+    Result auditing(DefaultAuditForm form);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckRuleServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckRuleServiceImpl.java
new file mode 100644
index 0000000..c357e57
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckRuleServiceImpl.java
@@ -0,0 +1,160 @@
+package com.ycl.platform.service.impl;
+
+import com.ycl.platform.base.BaseSelect;
+import com.ycl.platform.domain.entity.CheckRule;
+import com.ycl.platform.domain.entity.YwUnit;
+import com.ycl.platform.mapper.CheckRuleMapper;
+import com.ycl.platform.service.CheckRuleService;
+import com.ycl.system.Result;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.platform.domain.form.CheckRuleForm;
+import com.ycl.platform.domain.vo.CheckRuleVO;
+import com.ycl.platform.domain.query.CheckRuleQuery;
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.system.page.PageUtil;
+import com.ycl.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.Assert;
+import java.util.ArrayList;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.util.StringUtils;
+
+/**
+ * 鑰冩牳瑙勫垯 鏈嶅姟瀹炵幇绫�
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Service
+@RequiredArgsConstructor
+public class CheckRuleServiceImpl extends ServiceImpl<CheckRuleMapper, CheckRule> implements CheckRuleService {
+
+    private final CheckRuleMapper checkRuleMapper;
+
+    /**
+     * 娣诲姞
+     * @param form
+     * @return
+     */
+    @Override
+    public Result add(CheckRuleForm form) {
+        CheckRule entity = CheckRuleForm.getEntityByForm(form, null);
+        if(baseMapper.insert(entity) > 0) {
+            return Result.ok("娣诲姞鎴愬姛");
+        }
+        return Result.error("娣诲姞澶辫触");
+    }
+
+    /**
+     * 淇敼
+     * @param form
+     * @return
+     */
+    @Override
+    public Result update(CheckRuleForm form) {
+
+        CheckRule entity = baseMapper.selectById(form.getId());
+
+        // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+        Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+        BeanUtils.copyProperties(form, entity);
+        if (baseMapper.updateById(entity) > 0) {
+            return Result.ok("淇敼鎴愬姛");
+        }
+        return Result.error("淇敼澶辫触");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @Override
+    public Result remove(List<String> ids) {
+        if(baseMapper.deleteBatchIds(ids) > 0) {
+            return Result.ok("鍒犻櫎鎴愬姛");
+        }
+        return Result.error("鍒犻櫎澶辫触");
+    }
+
+    /**
+     * id鍒犻櫎
+     * @param id
+     * @return
+     */
+    @Override
+    public Result removeById(String id) {
+        if(baseMapper.deleteById(id) > 0) {
+            return Result.ok("鍒犻櫎鎴愬姛");
+        }
+        return Result.error("鍒犻櫎澶辫触");
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    @Override
+    public Result page(CheckRuleQuery query) {
+
+        IPage<CheckRule> page = new LambdaQueryChainWrapper<>(baseMapper)
+                .like(StringUtils.hasText(query.getRuleName()), CheckRule::getRuleName, query.getRuleName())
+                .between(Objects.nonNull(query.getStart()) && Objects.nonNull(query.getEnd()),
+                        CheckRule::getCreateTime,
+                        DateUtils.getDayStart(query.getStart()),
+                        DateUtils.getDayEnd(query.getEnd()))
+                .orderByDesc(CheckRule::getCreateTime)
+                .page(PageUtil.getPage(query, CheckRule.class));
+
+        List<CheckRuleVO> vos = page.getRecords().stream()
+                .map(
+                        entity -> CheckRuleVO.getVoByEntity(entity, null)
+                )
+                .collect(Collectors.toList());
+        return Result.ok().data(vos).total(page.getTotal());
+    }
+
+    /**
+     * 鏍规嵁id鏌ユ壘
+     * @param id
+     * @return
+     */
+    @Override
+    public Result detail(String id) {
+
+        CheckRule entity = baseMapper.selectById(id);
+        Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+        CheckRuleVO vo = CheckRuleVO.getVoByEntity(entity, null);
+        return Result.ok().data(vo);
+    }
+
+    /**
+     * 鍒楄〃
+     * @return
+     */
+    @Override
+    public Result all() {
+        List<CheckRule> entities = baseMapper.selectList(null);
+        List<BaseSelect> vos = entities.stream()
+                .map(
+                        entity -> {
+                            BaseSelect vo = new BaseSelect();
+                            vo.setId(entity.getId());
+                            vo.setValue(entity.getRuleName());
+                            return vo;
+                        }
+                )
+                .collect(Collectors.toList());
+        return Result.ok().data(vos);
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java
new file mode 100644
index 0000000..c08db94
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckTemplateServiceImpl.java
@@ -0,0 +1,154 @@
+package com.ycl.platform.service.impl;
+
+import com.ycl.platform.domain.entity.CheckTemplate;
+import com.ycl.platform.domain.entity.YwUnit;
+import com.ycl.platform.mapper.CheckTemplateMapper;
+import com.ycl.platform.service.CheckTemplateService;
+import com.ycl.system.Result;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.platform.domain.form.CheckTemplateForm;
+import com.ycl.platform.domain.vo.CheckTemplateVO;
+import com.ycl.platform.domain.query.CheckTemplateQuery;
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.system.page.PageUtil;
+import com.ycl.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.Assert;
+import java.util.ArrayList;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.util.StringUtils;
+
+/**
+ * 鑰冩牳妯℃澘 鏈嶅姟瀹炵幇绫�
+ *
+ * @author xp
+ * @since 2024-03-06
+ */
+@Service
+@RequiredArgsConstructor
+public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateMapper, CheckTemplate> implements CheckTemplateService {
+
+    private final CheckTemplateMapper checkTemplateMapper;
+
+    /**
+     * 娣诲姞
+     * @param form
+     * @return
+     */
+    @Override
+    public Result add(CheckTemplateForm form) {
+        CheckTemplate entity = CheckTemplateForm.getEntityByForm(form, null);
+        if(baseMapper.insert(entity) > 0) {
+            return Result.ok("娣诲姞鎴愬姛");
+        }
+        return Result.error("娣诲姞澶辫触");
+    }
+
+    /**
+     * 淇敼
+     * @param form
+     * @return
+     */
+    @Override
+    public Result update(CheckTemplateForm form) {
+
+        CheckTemplate entity = baseMapper.selectById(form.getId());
+
+        // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+        Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+        BeanUtils.copyProperties(form, entity);
+        if (baseMapper.updateById(entity) > 0) {
+            return Result.ok("淇敼鎴愬姛");
+        }
+        return Result.error("淇敼澶辫触");
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @Override
+    public Result remove(List<String> ids) {
+        if(baseMapper.deleteBatchIds(ids) > 0) {
+            return Result.ok("鍒犻櫎鎴愬姛");
+        }
+        return Result.error("鍒犻櫎澶辫触");
+    }
+
+    /**
+     * id鍒犻櫎
+     * @param id
+     * @return
+     */
+    @Override
+    public Result removeById(String id) {
+        if(baseMapper.deleteById(id) > 0) {
+            return Result.ok("鍒犻櫎鎴愬姛");
+        }
+        return Result.error("鍒犻櫎澶辫触");
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     * @return
+     */
+    @Override
+    public Result page(CheckTemplateQuery query) {
+        IPage<CheckTemplate> page = new LambdaQueryChainWrapper<>(baseMapper)
+                .like(StringUtils.hasText(query.getTemplateName()), CheckTemplate::getTemplateName, query.getTemplateName())
+                .eq(StringUtils.hasText(query.getStatus()), CheckTemplate::getStatus, query.getStatus())
+                .between(Objects.nonNull(query.getStart()) && Objects.nonNull(query.getEnd()),
+                        CheckTemplate::getCreateTime,
+                        DateUtils.getDayStart(query.getStart()),
+                        DateUtils.getDayEnd(query.getEnd()))
+                .orderByDesc(CheckTemplate::getCreateTime)
+                .page(PageUtil.getPage(query, CheckTemplate.class));
+
+        List<CheckTemplateVO> vos = page.getRecords().stream()
+                .map(
+                        entity -> CheckTemplateVO.getVoByEntity(entity, null)
+                )
+                .collect(Collectors.toList());
+        return Result.ok().data(vos).total(page.getTotal());
+    }
+
+    /**
+     * 鏍规嵁id鏌ユ壘
+     * @param id
+     * @return
+     */
+    @Override
+    public Result detail(String id) {
+
+        CheckTemplate entity = baseMapper.selectById(id);
+        Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+        CheckTemplateVO vo = CheckTemplateVO.getVoByEntity(entity, null);
+        return Result.ok().data(vo);
+    }
+
+    /**
+     * 鍒楄〃
+     * @return
+     */
+    @Override
+    public Result all() {
+        List<CheckTemplate> entities = baseMapper.selectList(null);
+        List<CheckTemplateVO> vos = entities.stream()
+                .map(
+                        entity -> CheckTemplateVO.getVoByEntity(entity, null)
+                )
+                .collect(Collectors.toList());
+        return Result.ok().data(vos);
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java
index 0e4dda4..000eadd 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java
@@ -1,6 +1,8 @@
 package com.ycl.platform.service.impl;
 
+import com.ycl.exception.ServiceException;
 import com.ycl.platform.domain.entity.DefaultAuditing;
+import com.ycl.platform.domain.form.DefaultAuditForm;
 import com.ycl.platform.mapper.DefaultAuditingMapper;
 import com.ycl.platform.service.DefaultAuditingService;
 import com.ycl.system.Result;
@@ -8,6 +10,9 @@
 import com.ycl.platform.domain.form.DefaultAuditingForm;
 import com.ycl.platform.domain.vo.DefaultAuditingVO;
 import com.ycl.platform.domain.query.DefaultAuditingQuery;
+
+import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.List;
 import org.apache.commons.lang3.StringUtils;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -18,6 +23,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 import java.util.ArrayList;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
@@ -101,17 +107,10 @@
      */
     @Override
     public Result page(DefaultAuditingQuery query) {
-
-        IPage<DefaultAuditing> page = new LambdaQueryChainWrapper<>(baseMapper)
-                .orderByDesc(DefaultAuditing::getCreateTime)
-                .page(PageUtil.getPage(query, DefaultAuditing.class));
-
-        List<DefaultAuditingVO> vos = page.getRecords().stream()
-                .map(
-                        entity -> DefaultAuditingVO.getVoByEntity(entity, null)
-                )
-                .collect(Collectors.toList());
-        return Result.ok().data(vos).total(page.getTotal());
+        query.setTime();
+        IPage page = PageUtil.getPage(query, DefaultAuditing.class);
+        baseMapper.page(page, query);
+        return Result.ok().data(page.getRecords()).total(page.getTotal());
     }
 
     /**
@@ -142,4 +141,21 @@
                 .collect(Collectors.toList());
         return Result.ok().data(vos);
     }
+
+    @Override
+    public Result auditing(DefaultAuditForm form) {
+        DefaultAuditing defaultAuditing = baseMapper.selectById(form.getId());
+        if (Objects.isNull(defaultAuditing)) {
+            throw new ServiceException("璇ヨ繚绾︿笉瀛樺湪");
+        }
+        if ("pass".equals(form.getAuditingResult())) {
+            defaultAuditing.setAuditingStatus("瀹℃牳閫氳繃");
+        } else {
+            defaultAuditing.setAuditingStatus("瀹℃牳鏈�氳繃");
+        }
+        BeanUtils.copyProperties(form, defaultAuditing);
+        defaultAuditing.setAuditingTime(LocalDateTime.now());
+        baseMapper.updateById(defaultAuditing);
+        return Result.ok("鎿嶄綔鎴愬姛");
+    }
 }
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckRuleMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckRuleMapper.xml
new file mode 100644
index 0000000..fd4157c
--- /dev/null
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckRuleMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.platform.mapper.CheckRuleMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.CheckRuleVO">
+        <result column="id" property="id" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="rule_name" property="ruleName" />
+        <result column="rule_detail" property="ruleDetail" />
+        <result column="video_point_num" property="videoPointNum" />
+        <result column="vehicle_checkpoint_num" property="vehicleCheckpointNum" />
+        <result column="face_chceckpoint_num" property="faceChceckpointNum" />
+    </resultMap>
+
+</mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckTemplateMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckTemplateMapper.xml
new file mode 100644
index 0000000..545dd3e
--- /dev/null
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckTemplateMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.platform.mapper.CheckTemplateMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.CheckTemplateVO">
+        <result column="id" property="id" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="adjust_coefficient" property="adjustCoefficient" />
+        <result column="adjust_way" property="adjustWay" />
+        <result column="status" property="status" />
+    </resultMap>
+
+</mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml
index bf1ba09..49132a1 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml
@@ -10,7 +10,39 @@
         <result column="auditing_status" property="auditingStatus" />
         <result column="remark" property="remark" />
         <result column="auditing_time" property="auditingTime" />
-        <result column="auditing_user" property="auditingUser" />
+        <result column="nick_name" property="auditingUserName" />
+        <result column="rule_name" property="defaultRuleName" />
+        <result column="unit_name" property="unitName" />
     </resultMap>
 
+    <select id="page" resultMap="BaseResultMap">
+        SELECT
+               tda.id,
+               tda.create_time,
+               tda.default_id,
+               tda.auditing_status,
+               tda.remark,
+               tda.auditing_time,
+               tda.auditing_user,
+               su.nick_name,
+               (SELECT unit_name FROM t_yw_unit WHERE id = tdr.unit_id AND deleted = 0) as unit_name,
+               (SELECT rule_name FROM t_default_rule WHERE id = tdr.default_rule_id AND deleted = 0) as rule_name
+        FROM
+             t_default_auditing tda
+              INNER JOIN t_default_record tdr ON tda.default_id = tdr.id AND tda.deleted = 0 AND tdr.deleted = 0
+              LEFT JOIN sys_user su ON tda.auditing_user = su.user_id
+        <where>
+
+            <if test="query.unitId != null and query.unitId != ''">
+                AND tdr.unit_id = #{query.unitId}
+            </if>
+            <if test="query.auditingStartTime != null and query.auditingEndTime != null">
+                AND tda.auditing_time BETWEEN #{query.auditingStartTime} AND #{query.auditingEndTime}
+            </if>
+            <if test="query.createStartTime != null and query.createEndTime != null">
+                AND tda.create_time BETWEEN #{query.createStartTime} AND #{query.createEndTime}
+            </if>
+        </where>
+    </select>
+
 </mapper>

--
Gitblit v1.8.0