From 5051c4082a91cbab723445dcfcea2d85770a8c97 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期二, 09 九月 2025 16:17:59 +0800
Subject: [PATCH] 用印管理修改,接口值班与计划

---
 src/main/java/com/ruoyi/collaborativeApproval/pojo/SealApplicationManagement.java    |    4 
 src/main/resources/mapper/collaborativeApproval/DutyPlanMapper.xml                   |   40 ++++++
 src/main/java/com/ruoyi/collaborativeApproval/service/impl/DutyPlanServiceImpl.java  |   41 ++++++
 src/main/java/com/ruoyi/collaborativeApproval/mapper/DutyPlanMapper.java             |   20 +++
 src/main/java/com/ruoyi/collaborativeApproval/dto/DutyPlanDTO.java                   |   22 +++
 src/main/java/com/ruoyi/collaborativeApproval/pojo/DutyPlan.java                     |  100 ++++++++++++++++
 src/main/java/com/ruoyi/collaborativeApproval/pojo/RulesRegulationsManagement.java   |    4 
 src/main/java/com/ruoyi/collaborativeApproval/service/DutyPlanService.java           |   19 +++
 src/main/java/com/ruoyi/collaborativeApproval/controller/DutyPlanController.java     |   63 ++++++++++
 src/main/resources/mapper/collaborativeApproval/RulesRegulationsManagementMapper.xml |    3 
 10 files changed, 316 insertions(+), 0 deletions(-)

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/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/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/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/RulesRegulationsManagement.java b/src/main/java/com/ruoyi/collaborativeApproval/pojo/RulesRegulationsManagement.java
index 6f5ea51..80dc338 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/pojo/RulesRegulationsManagement.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/pojo/RulesRegulationsManagement.java
@@ -80,6 +80,8 @@
      * 鍒涘缓鏃堕棿
      */
     @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
     /**
      * 淇敼浜�
@@ -90,6 +92,8 @@
      * 淇敼鏃堕棿
      */
     @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
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/pojo/SealApplicationManagement.java b/src/main/java/com/ruoyi/collaborativeApproval/pojo/SealApplicationManagement.java
index 6525fc3..d7a4222 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/pojo/SealApplicationManagement.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/pojo/SealApplicationManagement.java
@@ -1,8 +1,10 @@
 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;
 
@@ -54,6 +56,8 @@
      * 鍒涘缓鏃堕棿
      */
     @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
     /**
      * 绉熸埛ID
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/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/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/RulesRegulationsManagementMapper.xml b/src/main/resources/mapper/collaborativeApproval/RulesRegulationsManagementMapper.xml
index c34b460..03dc024 100644
--- a/src/main/resources/mapper/collaborativeApproval/RulesRegulationsManagementMapper.xml
+++ b/src/main/resources/mapper/collaborativeApproval/RulesRegulationsManagementMapper.xml
@@ -17,6 +17,9 @@
         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>

--
Gitblit v1.9.3