From 54441b789704a6ca10247fe44b342801d8a14353 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 12 九月 2025 16:03:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/ruoyi/collaborativeApproval/service/SealApplicationManagementService.java           |   10 
 src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml                                        |    1 
 src/main/java/com/ruoyi/collaborativeApproval/mapper/ReadingStatusMapper.java                         |    9 
 src/main/java/com/ruoyi/collaborativeApproval/service/impl/SealApplicationManagementServiceImpl.java  |   22 
 src/main/java/com/ruoyi/staff/pojo/PersonalAttendanceRecords.java                                     |   52 ++
 src/main/java/com/ruoyi/staff/mapper/PersonalAttendanceRecordsMapper.java                             |    9 
 src/main/java/com/ruoyi/staff/service/impl/PersonalAttendanceRecordsServiceImpl.java                  |   23 
 src/main/java/com/ruoyi/collaborativeApproval/dto/DutyPlanDTO.java                                    |   22 
 src/main/java/com/ruoyi/collaborativeApproval/service/RulesRegulationsManagementService.java          |   11 
 src/main/java/com/ruoyi/staff/service/HolidayApplicationService.java                                  |   10 
 src/main/resources/mapper/collaborativeApproval/SealApplicationManagementMapper.xml                   |   21 
 src/main/resources/mapper/collaborativeApproval/RulesRegulationsManagementMapper.xml                  |   31 +
 src/main/java/com/ruoyi/approve/utils/ListToStringTypeHandler.java                                    |    4 
 src/main/resources/mapper/procurementrecord/GasTankWarningMapper.xml                                  |   23 
 src/main/java/com/ruoyi/collaborativeApproval/service/impl/RulesRegulationsManagementServiceImpl.java |   21 
 src/main/java/com/ruoyi/collaborativeApproval/dto/SealApplicationManagementDTO.java                   |   11 
 src/main/java/com/ruoyi/collaborativeApproval/mapper/DutyPlanMapper.java                              |   20 
 src/main/resources/mapper/staff/HolidayApplicationMapper.xml                                          |    7 
 src/main/java/com/ruoyi/collaborativeApproval/pojo/RulesRegulationsManagement.java                    |  103 ++++
 src/main/java/com/ruoyi/collaborativeApproval/mapper/SealApplicationManagementMapper.java             |   14 
 src/main/java/com/ruoyi/collaborativeApproval/mapper/RulesRegulationsManagementMapper.java            |   14 
 src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementController.java    |   74 ++
 src/main/java/com/ruoyi/collaborativeApproval/controller/SealApplicationManagementController.java     |   50 ++
 src/main/java/com/ruoyi/staff/controller/HolidayApplicationController.java                            |   44 +
 src/main/java/com/ruoyi/collaborativeApproval/service/impl/DutyPlanServiceImpl.java                   |   41 +
 src/main/java/com/ruoyi/collaborativeApproval/pojo/ReadingStatus.java                                 |   70 ++
 src/main/java/com/ruoyi/procurementrecord/controller/GasTankWarningController.java                    |   44 +
 src/main/java/com/ruoyi/procurementrecord/service/GasTankWarningService.java                          |   15 
 src/main/java/com/ruoyi/procurementrecord/mapper/GasTankWarningMapper.java                            |   13 
 src/main/java/com/ruoyi/collaborativeApproval/pojo/DutyPlan.java                                      |  100 ++++
 src/main/java/com/ruoyi/collaborativeApproval/service/DutyPlanService.java                            |   19 
 src/main/java/com/ruoyi/staff/pojo/HolidayApplication.java                                            |   58 ++
 src/main/java/com/ruoyi/collaborativeApproval/controller/DutyPlanController.java                      |   63 ++
 src/main/java/com/ruoyi/staff/mapper/HolidayApplicationMapper.java                                    |    9 
 src/main/java/com/ruoyi/procurementrecord/pojo/GasTankWarning.java                                    |  158 ++++++
 src/main/java/com/ruoyi/collaborativeApproval/pojo/SealApplicationManagement.java                     |   67 ++
 src/main/java/com/ruoyi/staff/service/PersonalAttendanceRecordsService.java                           |   10 
 src/main/resources/mapper/collaborativeApproval/DutyPlanMapper.xml                                    |   40 +
 src/main/java/com/ruoyi/procurementrecord/service/impl/GasTankWarningServiceImpl.java                 |   40 +
 src/main/java/com/ruoyi/collaborativeApproval/dto/RulesRegulationsManagementDTO.java                  |   16 
 src/main/resources/mapper/collaborativeApproval/ReadingStatusMapper.xml                               |    6 
 src/main/java/com/ruoyi/staff/controller/PersonalAttendanceRecordsController.java                     |   47 +
 src/main/java/com/ruoyi/staff/service/impl/HolidayApplicationServiceImpl.java                         |   22 
 src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml                                   |    7 
 44 files changed, 1,451 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/utils/ListToStringTypeHandler.java b/src/main/java/com/ruoyi/approve/utils/ListToStringTypeHandler.java
index 5be97b7..4042a25 100644
--- a/src/main/java/com/ruoyi/approve/utils/ListToStringTypeHandler.java
+++ b/src/main/java/com/ruoyi/approve/utils/ListToStringTypeHandler.java
@@ -20,14 +20,18 @@
 
     @Override
     public void setNonNullParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType) throws SQLException {
+        // 瀛樺偍鏃讹細List 杞�楀彿鍒嗛殧瀛楃涓�
         if (parameter == null) {
             ps.setString(i, null);
         } else {
             ps.setString(i, String.join(SEPARATOR, parameter));
         }
+//        String value = parameter.stream().collect(Collectors.joining(","));
+//        ps.setString(i, value);
     }
     @Override
     public List<String> getNullableResult(ResultSet rs, String columnName) throws SQLException {
+        // 鏌ヨ鏃讹細瀛楃涓茶浆 List
         String value = rs.getString(columnName);
         return value != null && !value.isEmpty() ? Arrays.asList(value.split(SEPARATOR)) : new ArrayList<>();
     }
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/DutyPlanController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/DutyPlanController.java
new file mode 100644
index 0000000..9ad69ee
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/DutyPlanController.java
@@ -0,0 +1,63 @@
+package com.ruoyi.collaborativeApproval.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.collaborativeApproval.dto.DutyPlanDTO;
+import com.ruoyi.collaborativeApproval.mapper.DutyPlanMapper;
+import com.ruoyi.collaborativeApproval.pojo.DutyPlan;
+import com.ruoyi.collaborativeApproval.pojo.RulesRegulationsManagement;
+import com.ruoyi.collaborativeApproval.service.DutyPlanService;
+import com.ruoyi.common.utils.excel.ExcelUtils;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+@RestController
+@RequestMapping("/dutyPlan")
+@AllArgsConstructor
+public class DutyPlanController {
+    @Autowired
+    private DutyPlanService dutyPlanService;
+
+    @GetMapping("/getList")
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    public AjaxResult listPage(Page page, DutyPlanDTO dutyPlanDTO){
+        return AjaxResult.success(dutyPlanService.listPage(page, dutyPlanDTO));
+    }
+    @GetMapping("/getNum")
+    @ApiOperation("鑾峰彇绛夌骇鏁版嵁")
+    public AjaxResult getNum(){
+        return AjaxResult.success(dutyPlanService.getNum());
+    }
+
+    @PostMapping("/add")
+    @ApiOperation("鏂板")
+    public AjaxResult add(@RequestBody DutyPlan dutyPlan){
+        return AjaxResult.success(dutyPlanService.save(dutyPlan));
+    }
+
+    @PostMapping("/update")
+    @ApiOperation("淇敼")
+    public AjaxResult update(@RequestBody DutyPlan dutyPlan){
+        return AjaxResult.success(dutyPlanService.updateById(dutyPlan));
+    }
+
+    @DeleteMapping("/delete")
+    @ApiOperation("鍒犻櫎")
+    public AjaxResult delete(@RequestBody List<Long> ids){
+        if (CollectionUtils.isEmpty(ids)) {
+            throw new RuntimeException("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        }
+        return AjaxResult.success(dutyPlanService.removeBatchByIds(ids));
+    }
+    @PostMapping("/export")
+    @ApiOperation("瀵煎嚭")
+    public void exportData(HttpServletResponse response, DutyPlanDTO dutyPlanDTO){
+        dutyPlanService.exportData(response, dutyPlanDTO);
+    }
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementController.java
new file mode 100644
index 0000000..c977781
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/RulesRegulationsManagementController.java
@@ -0,0 +1,74 @@
+package com.ruoyi.collaborativeApproval.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.collaborativeApproval.mapper.ReadingStatusMapper;
+import com.ruoyi.collaborativeApproval.pojo.ReadingStatus;
+import com.ruoyi.collaborativeApproval.pojo.RulesRegulationsManagement;
+import com.ruoyi.collaborativeApproval.service.RulesRegulationsManagementService;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/rulesRegulationsManagement")
+@AllArgsConstructor
+public class RulesRegulationsManagementController {
+    @Autowired
+    private RulesRegulationsManagementService rulesRegulationsManagementService;
+    @Autowired
+    private ReadingStatusMapper readingStatusMapper;
+
+    @GetMapping("/getList")
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    public AjaxResult listPage(Page page, RulesRegulationsManagement rulesRegulationsManagement){
+        return AjaxResult.success(rulesRegulationsManagementService.listPage(page, rulesRegulationsManagement));
+    }
+
+    @PostMapping("/add")
+    @ApiOperation("鏂板")
+    public AjaxResult add(@RequestBody RulesRegulationsManagement rulesRegulationsManagement){
+        return AjaxResult.success(rulesRegulationsManagementService.save(rulesRegulationsManagement));
+    }
+
+    @PostMapping("/update")
+    @ApiOperation("淇敼")
+    public AjaxResult update(@RequestBody RulesRegulationsManagement rulesRegulationsManagement){
+        return AjaxResult.success(rulesRegulationsManagementService.updateById(rulesRegulationsManagement));
+    }
+
+    @DeleteMapping("/delete")
+    @ApiOperation("鍒犻櫎")
+    public AjaxResult delete(@PathVariable("ids") List<Long> ids){
+        if (CollectionUtils.isEmpty(ids)) {
+            throw new RuntimeException("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        }
+        return AjaxResult.success(rulesRegulationsManagementService.removeBatchByIds(ids));
+    }
+    //瑙勫垯鏌ョ湅鏃舵柊澧為槄璇荤姸鎬�
+    @PostMapping("/addReadingStatus")
+    @ApiOperation("鏂板闃呰鐘舵��")
+    public AjaxResult addReadingStatus(@RequestBody ReadingStatus readingStatus){
+        return AjaxResult.success(readingStatusMapper.insert(readingStatus));
+    }
+    @PostMapping("/updateReadingStatus")
+    @ApiOperation("淇敼闃呰鐘舵��")
+    public AjaxResult updateReadingStatus(@RequestBody ReadingStatus readingStatus){
+        return AjaxResult.success(readingStatusMapper.updateById(readingStatus));
+    }
+    @GetMapping("/getReadingStatusList")
+    @ApiOperation("鍒嗛〉鏌ヨ闃呰鐘舵��")
+    public AjaxResult listPage(Page page, ReadingStatus readingStatus){
+        return AjaxResult.success(readingStatusMapper.selectPage(page,new QueryWrapper<ReadingStatus>(readingStatus)));
+    }
+    @GetMapping("/getReadingStatusByRuleId/{ruleId}")
+    @ApiOperation("鏍规嵁鍒跺害id鏌ヨ闃呰鐘舵��")
+    public AjaxResult getReadingStatusByRuleId(@PathVariable Long ruleId){
+        return AjaxResult.success(readingStatusMapper.selectList(new QueryWrapper<ReadingStatus>().eq("rule_id", ruleId)));
+    }
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/controller/SealApplicationManagementController.java b/src/main/java/com/ruoyi/collaborativeApproval/controller/SealApplicationManagementController.java
new file mode 100644
index 0000000..ef1e7a4
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/controller/SealApplicationManagementController.java
@@ -0,0 +1,50 @@
+package com.ruoyi.collaborativeApproval.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.collaborativeApproval.pojo.SealApplicationManagement;
+import com.ruoyi.collaborativeApproval.service.SealApplicationManagementService;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@AllArgsConstructor
+@RestController
+@RequestMapping("/sealApplicationManagement")
+public class SealApplicationManagementController {
+    @Autowired
+    private SealApplicationManagementService sealApplicationManagementService;
+
+    @GetMapping("/getList")
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    public AjaxResult listPage(Page page, SealApplicationManagement sealApplicationManagement){
+        return AjaxResult.success(sealApplicationManagementService.listPage(page,sealApplicationManagement));
+    }
+
+    @PostMapping("/add")
+    @ApiOperation("鏂板")
+    public AjaxResult add(@RequestBody SealApplicationManagement sealApplicationManagement){
+        return AjaxResult.success(sealApplicationManagementService.save(sealApplicationManagement));
+    }
+
+    @PostMapping("/update")
+    @ApiOperation("淇敼")
+    public AjaxResult update(@RequestBody SealApplicationManagement sealApplicationManagement){
+        return AjaxResult.success(sealApplicationManagementService.updateById(sealApplicationManagement));
+    }
+
+    @DeleteMapping("/delete")
+    @ApiOperation("鍒犻櫎")
+    public AjaxResult delete(@PathVariable("ids") List<Long> ids){
+        if (CollectionUtils.isEmpty(ids)) {
+            throw new RuntimeException("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        }
+        return AjaxResult.success(sealApplicationManagementService.removeBatchByIds(ids));
+    }
+
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/dto/DutyPlanDTO.java b/src/main/java/com/ruoyi/collaborativeApproval/dto/DutyPlanDTO.java
new file mode 100644
index 0000000..4f3936f
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/dto/DutyPlanDTO.java
@@ -0,0 +1,22 @@
+package com.ruoyi.collaborativeApproval.dto;
+
+import org.springframework.format.annotation.DateTimeFormat;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.collaborativeApproval.pojo.DutyPlan;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.List;
+
+@Data
+public class DutyPlanDTO extends DutyPlan {
+    private List<String> tags;
+
+    /**
+     * 鏌ヨ鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate queryDate;
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/dto/RulesRegulationsManagementDTO.java b/src/main/java/com/ruoyi/collaborativeApproval/dto/RulesRegulationsManagementDTO.java
new file mode 100644
index 0000000..61de2e9
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/dto/RulesRegulationsManagementDTO.java
@@ -0,0 +1,16 @@
+package com.ruoyi.collaborativeApproval.dto;
+
+import com.ruoyi.collaborativeApproval.pojo.RulesRegulationsManagement;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class RulesRegulationsManagementDTO extends RulesRegulationsManagement {
+    /**
+     * 鍙戝竷浜哄鍚�
+     */
+    private String createUserName;
+    private List<String> scope;
+
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/dto/SealApplicationManagementDTO.java b/src/main/java/com/ruoyi/collaborativeApproval/dto/SealApplicationManagementDTO.java
new file mode 100644
index 0000000..0dc75a6
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/dto/SealApplicationManagementDTO.java
@@ -0,0 +1,11 @@
+package com.ruoyi.collaborativeApproval.dto;
+
+import com.ruoyi.collaborativeApproval.pojo.SealApplicationManagement;
+import lombok.Data;
+
+@Data
+public class SealApplicationManagementDTO extends SealApplicationManagement {
+    private String createUserName;
+    //鎵�灞為儴闂�
+    private String department;
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/mapper/DutyPlanMapper.java b/src/main/java/com/ruoyi/collaborativeApproval/mapper/DutyPlanMapper.java
new file mode 100644
index 0000000..b9bffe1
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/mapper/DutyPlanMapper.java
@@ -0,0 +1,20 @@
+package com.ruoyi.collaborativeApproval.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.collaborativeApproval.dto.DutyPlanDTO;
+import com.ruoyi.collaborativeApproval.pojo.DutyPlan;
+import io.lettuce.core.dynamic.annotation.Param;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface DutyPlanMapper extends BaseMapper<DutyPlan> {
+    IPage<DutyPlanDTO> listPage(Page page, @Param("dutyPlan") DutyPlanDTO dutyPlan);
+
+
+    List<Map<String, Object>> getNum();
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/mapper/ReadingStatusMapper.java b/src/main/java/com/ruoyi/collaborativeApproval/mapper/ReadingStatusMapper.java
new file mode 100644
index 0000000..84834f9
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/mapper/ReadingStatusMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.collaborativeApproval.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.collaborativeApproval.pojo.ReadingStatus;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ReadingStatusMapper extends BaseMapper<ReadingStatus> {
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/mapper/RulesRegulationsManagementMapper.java b/src/main/java/com/ruoyi/collaborativeApproval/mapper/RulesRegulationsManagementMapper.java
new file mode 100644
index 0000000..d37e631
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/mapper/RulesRegulationsManagementMapper.java
@@ -0,0 +1,14 @@
+package com.ruoyi.collaborativeApproval.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.collaborativeApproval.dto.RulesRegulationsManagementDTO;
+import com.ruoyi.collaborativeApproval.pojo.RulesRegulationsManagement;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface RulesRegulationsManagementMapper extends BaseMapper<RulesRegulationsManagement> {
+    IPage<RulesRegulationsManagementDTO> listPage(Page page,@Param("ew") RulesRegulationsManagement rulesRegulationsManagement);
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/mapper/SealApplicationManagementMapper.java b/src/main/java/com/ruoyi/collaborativeApproval/mapper/SealApplicationManagementMapper.java
new file mode 100644
index 0000000..3b5e55f
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/mapper/SealApplicationManagementMapper.java
@@ -0,0 +1,14 @@
+package com.ruoyi.collaborativeApproval.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.collaborativeApproval.dto.SealApplicationManagementDTO;
+import com.ruoyi.collaborativeApproval.pojo.SealApplicationManagement;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface SealApplicationManagementMapper extends BaseMapper<SealApplicationManagement> {
+    IPage<SealApplicationManagementDTO> listPage(Page page, @Param("ew") SealApplicationManagement sealApplicationManagement);
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/pojo/DutyPlan.java b/src/main/java/com/ruoyi/collaborativeApproval/pojo/DutyPlan.java
new file mode 100644
index 0000000..f8d75b9
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/pojo/DutyPlan.java
@@ -0,0 +1,100 @@
+package com.ruoyi.collaborativeApproval.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.approve.utils.ListToStringTypeHandler;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.ibatis.type.JdbcType;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@TableName("duty_plan")
+public class DutyPlan{
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 璁″垝鏍囬
+     */
+    @Excel(name = "璁″垝鏍囬")
+    @ApiModelProperty("璁″垝鏍囬")
+    private String title;
+    /**
+     * 璁″垝鎻忚堪
+     */
+    @Excel(name = "璁″垝鎻忚堪")
+    @ApiModelProperty("璁″垝鎻忚堪")
+    private String description;
+
+
+    /**
+     * 璁″垝绾у埆
+     */
+    @Excel(name = "璁″垝绾у埆")
+    @ApiModelProperty("璁″垝绾у埆")
+    private String level;
+    /**
+     * 鏃堕棿鍛ㄦ湡
+     */
+    @Excel(name = "鏃堕棿鍛ㄦ湡")
+    @ApiModelProperty("鏃堕棿鍛ㄦ湡")
+    private String period;
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @Excel(name = "寮�濮嬫椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate startDate;
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @Excel(name = "缁撴潫鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate endDate;
+
+    /**
+     * 璐熻矗浜�
+     */
+    @Excel(name = "璐熻矗浜�")
+    @ApiModelProperty("璐熻矗浜�")
+    private String assignee;
+    /**
+     * 鐘舵��
+     */
+    @Excel(name = "鐘舵��")
+    @ApiModelProperty("鐘舵��")
+    private String status;
+    /**
+     * 浼樺厛绾�
+     */
+    @Excel(name = "浼樺厛绾�")
+    @ApiModelProperty("浼樺厛绾�")
+    private String priority;
+    /**
+     * 瀹屾垚搴�
+     */
+    @Excel(name = "瀹屾垚搴�")
+    @ApiModelProperty("瀹屾垚搴�")
+    private Integer progress;
+    /**
+     * 鏍囩
+     */
+    @Excel(name = "鏍囩")
+    @ApiModelProperty("鏍囩")
+    @TableField(value = "tags",typeHandler = ListToStringTypeHandler.class,jdbcType = JdbcType.VARCHAR)
+    private List<String> tags;
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/pojo/ReadingStatus.java b/src/main/java/com/ruoyi/collaborativeApproval/pojo/ReadingStatus.java
new file mode 100644
index 0000000..1aa4892
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/pojo/ReadingStatus.java
@@ -0,0 +1,70 @@
+package com.ruoyi.collaborativeApproval.pojo;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@TableName("reading_status")
+public class ReadingStatus implements Serializable {
+    /**
+     * 涓婚敭
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鍒跺害id
+     */
+    private Long ruleId;
+    /**
+     * 鍛樺伐濮撳悕
+     */
+    private String employee;
+    /**
+     * 閮ㄩ棬
+     */
+    private String department;
+    /**
+     * 纭鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime confirmTime;
+    /**
+     * 闃呰鐘舵��
+     */
+    private String status;
+    /**
+     * 鍒涘缓鑰�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+    /**
+     * 淇敼浜�
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+    /**
+     * 淇敼鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/pojo/RulesRegulationsManagement.java b/src/main/java/com/ruoyi/collaborativeApproval/pojo/RulesRegulationsManagement.java
new file mode 100644
index 0000000..80dc338
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/pojo/RulesRegulationsManagement.java
@@ -0,0 +1,103 @@
+package com.ruoyi.collaborativeApproval.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.approve.utils.ListToStringTypeHandler;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.ibatis.type.JdbcType;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@TableName(value = "rules_regulations_management")
+public class RulesRegulationsManagement {
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鍒跺害缂栧彿
+     */
+    @ApiModelProperty("鍒跺害缂栧彿")
+    private String regulationNum;
+
+    /**
+     * 鏍囬
+     */
+    @ApiModelProperty("鏍囬")
+    private String title;
+    /**
+     * 鍒跺害鍒嗙被
+     */
+    @ApiModelProperty("鍒跺害鍒嗙被")
+    private String category;
+    /**
+     * 鍒跺害鍐呭
+     */
+    @ApiModelProperty("鍒跺害鍐呭")
+    private String content;
+    /**
+     * 鐢熸晥鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime effectiveTime;
+
+    /**
+     * 閫傜敤鑼冨洿
+     */
+    @ApiModelProperty("閫傜敤鑼冨洿")
+    @TableField(value = "scope",typeHandler = ListToStringTypeHandler.class,jdbcType = JdbcType.VARCHAR)
+    private List<String> scope;
+    /**
+     * 鏄惁闇�瑕佺‘璁�
+     */
+    @ApiModelProperty("鏄惁闇�瑕佺‘璁�")
+    private Boolean requireConfirm;
+    /**
+     * 鐗堟湰
+     */
+    @ApiModelProperty("鐗堟湰")
+    private String version;
+    /**
+     * 鐘舵��
+     */
+    @ApiModelProperty("鐘舵��")
+    private String status;
+    /**
+     * 宸茶浜烘暟
+     */
+    @ApiModelProperty("宸茶浜烘暟")
+    private Integer readCount;
+    /**
+     * 鍒涘缓鑰�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+    /**
+     * 淇敼浜�
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+    /**
+     * 淇敼鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/pojo/SealApplicationManagement.java b/src/main/java/com/ruoyi/collaborativeApproval/pojo/SealApplicationManagement.java
new file mode 100644
index 0000000..d7a4222
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/pojo/SealApplicationManagement.java
@@ -0,0 +1,67 @@
+package com.ruoyi.collaborativeApproval.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+@Data
+@TableName("seal_application_management")
+public class SealApplicationManagement {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鐢宠缂栧彿
+     */
+    @ApiModelProperty("鐢宠缂栧彿")
+    private String applicationNum;
+
+    /**
+     * 鍏憡鏍囬
+     */
+    @ApiModelProperty("鍏憡鏍囬")
+    private String title;
+    /**
+     * 鐢ㄥ嵃绫诲瀷
+     */
+    @ApiModelProperty("鐢ㄥ嵃绫诲瀷")
+    private String sealType;
+    /**
+     * 鐢宠鐢ㄥ嵃鍘熷洜
+     */
+    @ApiModelProperty("鐢宠鐢ㄥ嵃鍘熷洜")
+    private String reason;
+
+    /**
+     * 绱ф�ョ▼搴�
+     */
+    @ApiModelProperty("绱ф�ョ▼搴�")
+    private String urgency;
+    /**
+     * 鐘舵��
+     */
+    @ApiModelProperty("鐘舵��")
+    private String status;
+    /**
+     * 鍒涘缓鑰�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/service/DutyPlanService.java b/src/main/java/com/ruoyi/collaborativeApproval/service/DutyPlanService.java
new file mode 100644
index 0000000..67bff22
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/DutyPlanService.java
@@ -0,0 +1,19 @@
+package com.ruoyi.collaborativeApproval.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.collaborativeApproval.dto.DutyPlanDTO;
+import com.ruoyi.collaborativeApproval.pojo.DutyPlan;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+public interface DutyPlanService extends IService<DutyPlan> {
+    IPage listPage(Page page, DutyPlanDTO dutyPlanDTO);
+
+    List<Map<String, Object>> getNum();
+
+    void exportData(HttpServletResponse response, DutyPlanDTO dutyPlan);
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/service/RulesRegulationsManagementService.java b/src/main/java/com/ruoyi/collaborativeApproval/service/RulesRegulationsManagementService.java
new file mode 100644
index 0000000..270fa56
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/RulesRegulationsManagementService.java
@@ -0,0 +1,11 @@
+package com.ruoyi.collaborativeApproval.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.collaborativeApproval.dto.RulesRegulationsManagementDTO;
+import com.ruoyi.collaborativeApproval.pojo.RulesRegulationsManagement;
+
+public interface RulesRegulationsManagementService extends IService<RulesRegulationsManagement> {
+    IPage<RulesRegulationsManagementDTO> listPage(Page page, RulesRegulationsManagement rulesRegulationsManagement);
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/service/SealApplicationManagementService.java b/src/main/java/com/ruoyi/collaborativeApproval/service/SealApplicationManagementService.java
new file mode 100644
index 0000000..d0d931a
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/SealApplicationManagementService.java
@@ -0,0 +1,10 @@
+package com.ruoyi.collaborativeApproval.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.collaborativeApproval.pojo.SealApplicationManagement;
+
+public interface SealApplicationManagementService extends IService<SealApplicationManagement> {
+    IPage listPage(Page page, SealApplicationManagement sealApplicationManagement);
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/service/impl/DutyPlanServiceImpl.java b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/DutyPlanServiceImpl.java
new file mode 100644
index 0000000..b70f67a
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/DutyPlanServiceImpl.java
@@ -0,0 +1,41 @@
+package com.ruoyi.collaborativeApproval.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.collaborativeApproval.dto.DutyPlanDTO;
+import com.ruoyi.collaborativeApproval.mapper.DutyPlanMapper;
+import com.ruoyi.collaborativeApproval.pojo.DutyPlan;
+import com.ruoyi.collaborativeApproval.service.DutyPlanService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class DutyPlanServiceImpl extends ServiceImpl<DutyPlanMapper, DutyPlan> implements DutyPlanService {
+    @Autowired
+    private DutyPlanMapper dutyPlanMapper;
+
+    @Override
+    public IPage listPage(Page page, DutyPlanDTO dutyPlanDTO) {
+        return dutyPlanMapper.listPage(page, dutyPlanDTO);
+    }
+
+    @Override
+    public List<Map<String, Object>> getNum() {
+
+        return dutyPlanMapper.getNum();
+    }
+
+    @Override
+    public void exportData(HttpServletResponse response, DutyPlanDTO dutyPlanDTO) {
+        IPage<DutyPlanDTO> dutyPlans = dutyPlanMapper.listPage(new Page<>(-1, -1), dutyPlanDTO);
+        List<DutyPlanDTO> records = dutyPlans.getRecords();
+        ExcelUtil<DutyPlanDTO> util = new ExcelUtil<>(DutyPlanDTO.class);
+        util.exportExcel(response, records, "璁″垝瀵煎嚭");
+    }
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/service/impl/RulesRegulationsManagementServiceImpl.java b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/RulesRegulationsManagementServiceImpl.java
new file mode 100644
index 0000000..a4f912e
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/RulesRegulationsManagementServiceImpl.java
@@ -0,0 +1,21 @@
+package com.ruoyi.collaborativeApproval.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.collaborativeApproval.dto.RulesRegulationsManagementDTO;
+import com.ruoyi.collaborativeApproval.mapper.RulesRegulationsManagementMapper;
+import com.ruoyi.collaborativeApproval.pojo.RulesRegulationsManagement;
+import com.ruoyi.collaborativeApproval.service.RulesRegulationsManagementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RulesRegulationsManagementServiceImpl extends ServiceImpl<RulesRegulationsManagementMapper, RulesRegulationsManagement> implements RulesRegulationsManagementService {
+    @Autowired
+    private RulesRegulationsManagementMapper rulesRegulationsManagementMapper;
+    @Override
+    public IPage<RulesRegulationsManagementDTO> listPage(Page page, RulesRegulationsManagement rulesRegulationsManagement) {
+        return rulesRegulationsManagementMapper.listPage(page, rulesRegulationsManagement);
+    }
+}
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/service/impl/SealApplicationManagementServiceImpl.java b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/SealApplicationManagementServiceImpl.java
new file mode 100644
index 0000000..6cb8a2b
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/SealApplicationManagementServiceImpl.java
@@ -0,0 +1,22 @@
+package com.ruoyi.collaborativeApproval.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.collaborativeApproval.dto.SealApplicationManagementDTO;
+import com.ruoyi.collaborativeApproval.mapper.SealApplicationManagementMapper;
+import com.ruoyi.collaborativeApproval.pojo.SealApplicationManagement;
+import com.ruoyi.collaborativeApproval.service.SealApplicationManagementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SealApplicationManagementServiceImpl extends ServiceImpl<SealApplicationManagementMapper, SealApplicationManagement> implements SealApplicationManagementService {
+    @Autowired
+    private SealApplicationManagementMapper sealApplicationManagementMapper;
+
+    @Override
+    public IPage<SealApplicationManagementDTO> listPage(Page page, SealApplicationManagement sealApplicationManagement) {
+        return sealApplicationManagementMapper.listPage(page, sealApplicationManagement);
+    }
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/GasTankWarningController.java b/src/main/java/com/ruoyi/procurementrecord/controller/GasTankWarningController.java
new file mode 100644
index 0000000..7646478
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/GasTankWarningController.java
@@ -0,0 +1,44 @@
+package com.ruoyi.procurementrecord.controller;
+
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.procurementrecord.pojo.GasTankWarning;
+import com.ruoyi.procurementrecord.service.GasTankWarningService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+@RestController
+@RequestMapping("/gasTankWarning")
+public class GasTankWarningController {
+    @Autowired
+    private GasTankWarningService gasTankWarningService;
+
+    @GetMapping("/listPage")
+    public AjaxResult listPage(Page page, GasTankWarning gasTankWarning) {
+        return AjaxResult.success(gasTankWarningService.listPage(page, gasTankWarning));
+    }
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody GasTankWarning gasTankWarning) {
+        return AjaxResult.success(gasTankWarningService.save(gasTankWarning));
+    }
+    @PostMapping("update")
+    public AjaxResult update(@RequestBody GasTankWarning gasTankWarning) {
+        return AjaxResult.success(gasTankWarningService.updateById(gasTankWarning));
+    }
+    @DeleteMapping("delete")
+    public AjaxResult delete(@RequestBody List<Long> ids){
+        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+        return AjaxResult.success(gasTankWarningService.removeByIds(ids));
+    }
+    //瀵煎嚭
+    @PostMapping("/export")
+    public void export(HttpServletResponse response,@RequestParam(name = "ids", required = false) List<Long> ids){
+        gasTankWarningService.export(response,ids);
+    }
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/GasTankWarningMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/GasTankWarningMapper.java
new file mode 100644
index 0000000..aab09cb
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/GasTankWarningMapper.java
@@ -0,0 +1,13 @@
+package com.ruoyi.procurementrecord.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.procurementrecord.pojo.GasTankWarning;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface GasTankWarningMapper extends BaseMapper<GasTankWarning> {
+    IPage<GasTankWarning> listPage(Page page, @Param("gasTankWarning") GasTankWarning gasTankWarning);
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/GasTankWarning.java b/src/main/java/com/ruoyi/procurementrecord/pojo/GasTankWarning.java
new file mode 100644
index 0000000..4f95872
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/pojo/GasTankWarning.java
@@ -0,0 +1,158 @@
+package com.ruoyi.procurementrecord.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@TableName("gas_tank_warning")
+public class GasTankWarning implements Serializable {
+    @TableId(value = "id",type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鍌ㄦ皵缃愮紪鐮�
+     */
+    @Excel(name = "鍌ㄦ皵缃愮紪鐮�")
+    private String tankCode;
+    /**
+     * 鍌ㄦ皵缃愬悕绉�
+     */
+    @Excel(name = "鍌ㄦ皵缃愬悕绉�")
+    private String tankName;
+    /**
+     * 鍌ㄦ皵缃愮被鍨�
+     */
+    @Excel(name = "鍌ㄦ皵缃愮被鍨�")
+    private String tankType;
+    /**
+     * 瑙勬牸鍨嬪彿
+     */
+    @Excel(name = "瑙勬牸鍨嬪彿")
+    private String specificationModel;
+    /**
+     * 瀹圭Н(m鲁)
+     */
+    @Excel(name = "瀹圭Н(m鲁)")
+    private Long volume;
+    /**
+     * 褰撳墠姘斾綋姘村钩(m鲁)
+     */
+    @Excel(name = "褰撳墠姘斾綋姘村钩(m鲁)")
+    private Long currentGasLevel;
+    /**
+     * 瀹夊叏姘斾綋姘村钩(m鲁)
+     */
+    @Excel(name = "瀹夊叏姘斾綋姘村钩(m鲁)")
+    private Long safetyGasLevel;
+    /**
+     * 鏈�灏忔皵浣撴按骞�(m鲁)
+     */
+    @Excel(name = "鏈�灏忔皵浣撴按骞�(m鲁)")
+    private Long minGasLevel;
+    /**
+     * 鏈�澶ф皵浣撴按骞�(m鲁)
+     */
+    @Excel(name = "鏈�澶ф皵浣撴按骞�(m鲁)")
+    private Long maxGasLevel;
+    /**
+     * 褰撳墠鍘嬪姏(MPa)
+     */
+    @Excel(name = "褰撳墠鍘嬪姏(MPa)")
+    private Double currentPressure;
+    /**
+     * 棰勮绫诲瀷
+     */
+    @Excel(name = "棰勮绫诲瀷")
+    private String warningType;
+    /**
+     * 棰勮绛夌骇
+     */
+    @Excel(name = "棰勮绛夌骇")
+    private String warningLevel;
+    /**
+     * 棰勮闃堝��
+     */
+    @Excel(name = "棰勮闃堝��")
+    private Long warningThreshold;
+    /**
+     * 鏄惁鍚敤
+     */
+    @Excel(name = "鏄惁鍚敤")
+    private Boolean isEnabled;
+    /**
+     * 棰勮瑙勫垯-褰�???鏃惰Е鍙戦璀�
+     */
+    @Excel(name = "棰勮瑙勫垯")
+    private String warningRule;
+    /**
+     * 棰勮鏃堕棿
+     */
+    @Excel(name = "棰勮鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime warningTime;
+    /**
+     * 棰勮鎸佺画澶╂暟
+     */
+    @Excel(name = "棰勮鎸佺画澶╂暟")
+    private Long warningDuration;
+    /**
+     * 鏈�鍚庢洿鏂版椂闂�
+     */
+    @Excel(name = "鏈�鍚庢洿鏂版椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime lastUpdateTime;
+    /**
+     * 棰勬湡鍏呰鏃堕棿
+     */
+    @Excel(name = "棰勬湡鍏呰鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime expectedRefillTime;
+    /**
+     * 棰勬湡缂烘皵鏃堕棿
+     */
+    @Excel(name = "棰勬湡缂烘皵鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime expectedShortageTime;
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 鍒涘缓浜�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /**
+     * 鏇存柊浜�
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/GasTankWarningService.java b/src/main/java/com/ruoyi/procurementrecord/service/GasTankWarningService.java
new file mode 100644
index 0000000..912fb3c
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/service/GasTankWarningService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.procurementrecord.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.procurementrecord.pojo.GasTankWarning;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+public interface GasTankWarningService extends IService<GasTankWarning> {
+    IPage listPage(Page page, GasTankWarning gasTankWarning);
+
+    void export(HttpServletResponse response, List<Long> ids);
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/GasTankWarningServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/GasTankWarningServiceImpl.java
new file mode 100644
index 0000000..772869b
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/GasTankWarningServiceImpl.java
@@ -0,0 +1,40 @@
+package com.ruoyi.procurementrecord.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
+import com.ruoyi.procurementrecord.mapper.GasTankWarningMapper;
+import com.ruoyi.procurementrecord.pojo.GasTankWarning;
+import com.ruoyi.procurementrecord.service.GasTankWarningService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class GasTankWarningServiceImpl extends ServiceImpl<GasTankWarningMapper, GasTankWarning> implements GasTankWarningService {
+    @Autowired
+    private GasTankWarningMapper gasTankWarningMapper;
+    @Override
+    public IPage listPage(Page page, GasTankWarning gasTankWarning) {
+        return gasTankWarningMapper.listPage(page,gasTankWarning);
+    }
+
+    @Override
+    public void export(HttpServletResponse response, List<Long> ids) {
+        List<GasTankWarning> list = new ArrayList<>();
+        if(CollectionUtils.isEmpty(ids)){
+            list = gasTankWarningMapper.selectList(null);
+        }else {
+            list = gasTankWarningMapper.selectBatchIds(ids);
+        }
+        ExcelUtil<GasTankWarning> util = new ExcelUtil<>(GasTankWarning.class);
+        util.exportExcel(response, list, "鍌ㄦ皵缃愰璀�.xlsx");
+    }
+}
diff --git a/src/main/java/com/ruoyi/staff/controller/HolidayApplicationController.java b/src/main/java/com/ruoyi/staff/controller/HolidayApplicationController.java
new file mode 100644
index 0000000..7ac13bd
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/controller/HolidayApplicationController.java
@@ -0,0 +1,44 @@
+package com.ruoyi.staff.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.staff.pojo.HolidayApplication;
+import com.ruoyi.staff.pojo.PersonalAttendanceRecords;
+import com.ruoyi.staff.service.HolidayApplicationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/staff/holidayApplication")
+public class HolidayApplicationController {
+    @Autowired
+    private HolidayApplicationService holidayApplicationService;
+    /**
+     * 璇峰亣鐢宠鍒嗛〉鏌ヨ
+     */
+    @GetMapping("/listPage")
+    public AjaxResult listPage(Page page, HolidayApplication holidayApplication){
+        return AjaxResult.success(holidayApplicationService.listPage(page, holidayApplication));
+    }
+    /**
+     * 鏂板璇峰亣鐢宠
+     */
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody HolidayApplication holidayApplication){
+        return AjaxResult.success(holidayApplicationService.save(holidayApplication));
+    }
+    /**
+     * 淇敼璇峰亣鐢宠
+     */
+    @PostMapping("/update")
+    public AjaxResult update(@RequestBody HolidayApplication holidayApplication){
+        return AjaxResult.success(holidayApplicationService.updateById(holidayApplication));
+    }
+    /**
+     * 鍒犻櫎璇峰亣鐢宠
+     */
+    @DeleteMapping("/delete/{id}")
+    public AjaxResult delete(@PathVariable("id") Long id){
+        return AjaxResult.success(holidayApplicationService.removeById(id));
+    }
+}
diff --git a/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceRecordsController.java b/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceRecordsController.java
new file mode 100644
index 0000000..2f84699
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/controller/PersonalAttendanceRecordsController.java
@@ -0,0 +1,47 @@
+package com.ruoyi.staff.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.staff.pojo.PersonalAttendanceRecords;
+import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
+import com.ruoyi.staff.pojo.StaffOnJob;
+import com.ruoyi.staff.service.PersonalAttendanceRecordsService;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@AllArgsConstructor
+@RestController
+@RequestMapping("/staff/personalAttendanceRecords")
+public class PersonalAttendanceRecordsController {
+    @Autowired
+    private PersonalAttendanceRecordsService personalAttendanceRecordsService;
+    /**
+     * 涓汉鑰冨嫟璁板綍鍒嗛〉鏌ヨ
+     */
+    @GetMapping("/listPage")
+    public AjaxResult personalAttendanceRecordsListPage(Page page, PersonalAttendanceRecords personalAttendanceRecords) {
+        return AjaxResult.success(personalAttendanceRecordsService.listPage(page, personalAttendanceRecords));
+    }
+    /**
+     * 鏂板涓汉鑰冨嫟璁板綍
+     */
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody PersonalAttendanceRecords personalAttendanceRecords) {
+        return AjaxResult.success(personalAttendanceRecordsService.save(personalAttendanceRecords));
+    }
+    /**
+     * 淇敼涓汉鑰冨嫟璁板綍
+     */
+    @PutMapping("/update")
+    public AjaxResult update(@RequestBody PersonalAttendanceRecords personalAttendanceRecords) {
+        return AjaxResult.success(personalAttendanceRecordsService.updateById(personalAttendanceRecords));
+    }
+    /**
+     * 鍒犻櫎涓汉鑰冨嫟璁板綍
+     */
+    @DeleteMapping("/delete/{id}")
+    public AjaxResult delete(@PathVariable("id") Long id) {
+        return AjaxResult.success(personalAttendanceRecordsService.removeById(id));
+    }
+}
diff --git a/src/main/java/com/ruoyi/staff/mapper/HolidayApplicationMapper.java b/src/main/java/com/ruoyi/staff/mapper/HolidayApplicationMapper.java
new file mode 100644
index 0000000..1b49c6f
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/mapper/HolidayApplicationMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.staff.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.staff.pojo.HolidayApplication;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface HolidayApplicationMapper extends BaseMapper<HolidayApplication> {
+}
diff --git a/src/main/java/com/ruoyi/staff/mapper/PersonalAttendanceRecordsMapper.java b/src/main/java/com/ruoyi/staff/mapper/PersonalAttendanceRecordsMapper.java
new file mode 100644
index 0000000..402bb45
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/mapper/PersonalAttendanceRecordsMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.staff.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.staff.pojo.PersonalAttendanceRecords;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface PersonalAttendanceRecordsMapper extends BaseMapper<PersonalAttendanceRecords> {
+}
diff --git a/src/main/java/com/ruoyi/staff/pojo/HolidayApplication.java b/src/main/java/com/ruoyi/staff/pojo/HolidayApplication.java
new file mode 100644
index 0000000..b76893e
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/pojo/HolidayApplication.java
@@ -0,0 +1,58 @@
+package com.ruoyi.staff.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDate;
+import java.time.LocalTime;
+
+@Data
+@TableName("holiday_application")
+public class HolidayApplication  {
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鍛樺伐id
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long staffId;
+    /**
+     * 鍋囨湡绫诲瀷
+     */
+    private String type;
+    /**
+     * 寮�濮嬫棩鏈�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate startDate;
+    /**
+     * 缁撴潫鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate endDate;
+
+    /**
+     * 鍋囨湡澶╂暟
+     */
+    private Integer days;
+    /**
+     * 鐢宠鐞嗙敱
+     */
+    private String reason;
+    /**
+     * 鐘舵��
+     */
+    private String status;
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/staff/pojo/PersonalAttendanceRecords.java b/src/main/java/com/ruoyi/staff/pojo/PersonalAttendanceRecords.java
new file mode 100644
index 0000000..cbf11b7
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/pojo/PersonalAttendanceRecords.java
@@ -0,0 +1,52 @@
+package com.ruoyi.staff.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalTime;
+
+@Data
+@TableName("personal_attendance_records")
+public class PersonalAttendanceRecords implements Serializable {
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    /**
+     * 鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate date;
+    /**
+     * 绛惧埌鏃堕棿
+     */
+    @JsonFormat(pattern = "HH:mm")
+    @DateTimeFormat(pattern = "HH:mm")
+    private LocalTime checkIn;
+    /**
+     * 绛鹃��鏃堕棿
+     */
+    @JsonFormat(pattern = "HH:mm")
+    @DateTimeFormat(pattern = "HH:mm")
+    private LocalTime checkOut;
+    /**
+     * 宸ヤ綔鏃堕暱
+     */
+    private String workHours;
+    /**
+     * 鐘舵��
+     */
+    private String status;
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/staff/service/HolidayApplicationService.java b/src/main/java/com/ruoyi/staff/service/HolidayApplicationService.java
new file mode 100644
index 0000000..c02519b
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/HolidayApplicationService.java
@@ -0,0 +1,10 @@
+package com.ruoyi.staff.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.staff.pojo.HolidayApplication;
+
+public interface HolidayApplicationService extends IService<HolidayApplication> {
+    IPage listPage(Page page, HolidayApplication holidayApplication);
+}
diff --git a/src/main/java/com/ruoyi/staff/service/PersonalAttendanceRecordsService.java b/src/main/java/com/ruoyi/staff/service/PersonalAttendanceRecordsService.java
new file mode 100644
index 0000000..c39b007
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/PersonalAttendanceRecordsService.java
@@ -0,0 +1,10 @@
+package com.ruoyi.staff.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.staff.pojo.PersonalAttendanceRecords;
+
+public interface PersonalAttendanceRecordsService extends IService<PersonalAttendanceRecords> {
+    IPage listPage(Page page, PersonalAttendanceRecords personalAttendanceRecords);
+}
diff --git a/src/main/java/com/ruoyi/staff/service/impl/HolidayApplicationServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/HolidayApplicationServiceImpl.java
new file mode 100644
index 0000000..8decb71
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/impl/HolidayApplicationServiceImpl.java
@@ -0,0 +1,22 @@
+package com.ruoyi.staff.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.staff.mapper.HolidayApplicationMapper;
+import com.ruoyi.staff.pojo.HolidayApplication;
+import com.ruoyi.staff.service.HolidayApplicationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class HolidayApplicationServiceImpl extends ServiceImpl<HolidayApplicationMapper, HolidayApplication> implements HolidayApplicationService {
+    @Autowired
+    private HolidayApplicationMapper holidayApplicationMapper;
+
+    @Override
+    public IPage listPage(Page page, HolidayApplication holidayApplication) {
+        return holidayApplicationMapper.selectPage(page, new QueryWrapper<>(holidayApplication));
+    }
+}
diff --git a/src/main/java/com/ruoyi/staff/service/impl/PersonalAttendanceRecordsServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/PersonalAttendanceRecordsServiceImpl.java
new file mode 100644
index 0000000..1fc363b
--- /dev/null
+++ b/src/main/java/com/ruoyi/staff/service/impl/PersonalAttendanceRecordsServiceImpl.java
@@ -0,0 +1,23 @@
+package com.ruoyi.staff.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.staff.mapper.PersonalAttendanceRecordsMapper;
+import com.ruoyi.staff.pojo.PersonalAttendanceRecords;
+import com.ruoyi.staff.service.PersonalAttendanceRecordsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PersonalAttendanceRecordsServiceImpl extends ServiceImpl<PersonalAttendanceRecordsMapper, PersonalAttendanceRecords> implements PersonalAttendanceRecordsService {
+    @Autowired
+    private PersonalAttendanceRecordsMapper personalAttendanceRecordsMapper;
+
+    @Override
+    public IPage listPage(Page page, PersonalAttendanceRecords personalAttendanceRecords) {
+//        return personalAttendanceRecordsMapper.ListPage(page, personalAttendanceRecords);
+        return baseMapper.selectPage(page, new QueryWrapper<>(personalAttendanceRecords));
+    }
+}
diff --git a/src/main/resources/mapper/collaborativeApproval/DutyPlanMapper.xml b/src/main/resources/mapper/collaborativeApproval/DutyPlanMapper.xml
new file mode 100644
index 0000000..6c1679d
--- /dev/null
+++ b/src/main/resources/mapper/collaborativeApproval/DutyPlanMapper.xml
@@ -0,0 +1,40 @@
+<?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.ruoyi.collaborativeApproval.mapper.DutyPlanMapper">
+    <resultMap id="DutyPlanDTOMap" type="com.ruoyi.collaborativeApproval.dto.DutyPlanDTO">
+        <result column="id" property="id"/>
+        <result column="tags" property="tags" typeHandler="com.ruoyi.approve.utils.ListToStringTypeHandler"/>
+    </resultMap>
+
+    <select id="listPage" resultMap="DutyPlanDTOMap">
+        select * from duty_plan
+        <where>
+        1=1
+            <if test="dutyPlan.title != null and dutyPlan.title != ''">
+                and title like concat('%',#{dutyPlan.title},'%')
+            </if>
+            <if test="dutyPlan.level != null">
+                and level = #{dutyPlan.level}
+            </if>
+            <if test="dutyPlan.period != null">
+                and period = #{dutyPlan.period}
+            </if>
+            <if test="dutyPlan.queryDate != null">
+                and start_date &lt;= #{dutyPlan.queryDate}
+                and end_date &gt;= #{dutyPlan.queryDate}
+            </if>
+        </where>
+    </select>
+
+    <select id="getNum" resultType="java.util.Map">
+        SELECT
+            level,
+            COUNT(*) AS num,
+            ROUND(COUNT(*) / total.count * 100) AS completion
+        FROM
+            duty_plan,
+            (SELECT COUNT(*) AS count FROM duty_plan) AS total
+        GROUP BY
+            level, total.count
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/collaborativeApproval/ReadingStatusMapper.xml b/src/main/resources/mapper/collaborativeApproval/ReadingStatusMapper.xml
new file mode 100644
index 0000000..c61f17d
--- /dev/null
+++ b/src/main/resources/mapper/collaborativeApproval/ReadingStatusMapper.xml
@@ -0,0 +1,6 @@
+<?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.ruoyi.collaborativeApproval.mapper.ReadingStatusMapper">
+
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/collaborativeApproval/RulesRegulationsManagementMapper.xml b/src/main/resources/mapper/collaborativeApproval/RulesRegulationsManagementMapper.xml
new file mode 100644
index 0000000..03dc024
--- /dev/null
+++ b/src/main/resources/mapper/collaborativeApproval/RulesRegulationsManagementMapper.xml
@@ -0,0 +1,31 @@
+<?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.ruoyi.collaborativeApproval.mapper.RulesRegulationsManagementMapper">
+    <resultMap id="RulesRegulationsManagementDTOMap" type="com.ruoyi.collaborativeApproval.dto.RulesRegulationsManagementDTO">
+        <!-- 鍏朵粬瀛楁鏄犲皠锛堜繚鎸佷笉鍙橈級 -->
+        <result column="id" property="id"/>
+        <result column="regulation_num" property="regulationNum"/>
+        <result column="title" property="title"/>
+        <!-- ... 鐪佺暐鍏朵粬瀛楁 ... -->
+
+        <!-- 鍏抽敭淇锛氫负 scope 瀛楁鎸囧畾绫诲瀷澶勭悊鍣� -->
+        <result column="scope" property="scope" typeHandler="com.ruoyi.approve.utils.ListToStringTypeHandler"/>
+    </resultMap>
+
+    <select id="listPage" resultMap="RulesRegulationsManagementDTOMap">
+        select rrm.*, su.user_name as create_user_name
+        from rules_regulations_management rrm
+        left join sys_user su on rrm.create_user = su.user_id
+        <where>
+            <if test="ew.regulationNum != null and ew.regulationNum != ''">
+                and rrm.regulation_num = #{ew.regulationNum}
+            </if>
+            <if test="ew.title != null and ew.title != ''">
+                and rrm.title like concat('%',#{ew.title},'%')
+            </if>
+            <if test="ew.category != null">
+                and rrm.category = #{ew.category}
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/collaborativeApproval/SealApplicationManagementMapper.xml b/src/main/resources/mapper/collaborativeApproval/SealApplicationManagementMapper.xml
new file mode 100644
index 0000000..b8ad6a7
--- /dev/null
+++ b/src/main/resources/mapper/collaborativeApproval/SealApplicationManagementMapper.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="com.ruoyi.collaborativeApproval.mapper.SealApplicationManagementMapper">
+
+
+    <select id="listPage" resultType="com.ruoyi.collaborativeApproval.dto.SealApplicationManagementDTO">
+        select sam.*, su.user_name as create_user_name, d.dept_name as department
+        from seal_application_management sam
+        left join sys_user su on sam.create_user = su.user_id
+        left join sys_user_dept sud on su.user_id = sud.user_id
+        left join sys_dept d on sud.dept_id = d.dept_id
+        <where>
+            <if test="ew.title != null and ew.title != ''">
+                and sam.title like concat('%',#{ew.title},'%')
+            </if>
+            <if test="ew.status != null">
+                and sam.status = #{ew.status}
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/procurementrecord/GasTankWarningMapper.xml b/src/main/resources/mapper/procurementrecord/GasTankWarningMapper.xml
new file mode 100644
index 0000000..9f06e2c
--- /dev/null
+++ b/src/main/resources/mapper/procurementrecord/GasTankWarningMapper.xml
@@ -0,0 +1,23 @@
+<?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.ruoyi.procurementrecord.mapper.GasTankWarningMapper">
+
+
+    <select id="listPage" resultType="com.ruoyi.procurementrecord.pojo.GasTankWarning">
+        select * from gas_tank_warning
+        where 1=1
+        <if test="gasTankWarning.tankName != null and gasTankWarning.tankName != ''">
+            and tank_name like concat('%', #{gasTankWarning.tankName}, '%')
+        </if>
+        <if test="gasTankWarning.tankType != null">
+            and tank_type = #{gasTankWarning.tankType}
+        </if>
+        <if test="gasTankWarning.warningType != null">
+            and warning_type = #{gasTankWarning.warningType}
+        </if>
+        <if test="gasTankWarning.warningLevel != null">
+            and warning_level = #{gasTankWarning.warningLevel}
+        </if>
+
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/staff/HolidayApplicationMapper.xml b/src/main/resources/mapper/staff/HolidayApplicationMapper.xml
new file mode 100644
index 0000000..b0bda29
--- /dev/null
+++ b/src/main/resources/mapper/staff/HolidayApplicationMapper.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="com.ruoyi.staff.mapper.HolidayApplicationMapper">
+
+
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml b/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml
new file mode 100644
index 0000000..13d3513
--- /dev/null
+++ b/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.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="com.ruoyi.staff.mapper.PersonalAttendanceRecordsMapper">
+
+
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml b/src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml
index 7b11511..d720d37 100644
--- a/src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml
+++ b/src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml
@@ -16,6 +16,7 @@
         <if test="staffJoinLeaveRecord.entryDateEnd != null and staffJoinLeaveRecord.entryDateEnd != '' ">
             and contract_end_time like concat('%',#{staffJoinLeaveRecord.entryDateEnd},'%')
         </if>
+        order by create_time desc
     </select>
     <select id="staffJoinLeaveRecordList" resultType="com.ruoyi.staff.pojo.StaffJoinLeaveRecord">
         SELECT

--
Gitblit v1.9.3