diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsDeclarationRecordsController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsDeclarationRecordsController.java
index 0efe894..53af339 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsDeclarationRecordsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/declaration/controller/BmsDeclarationRecordsController.java
@@ -21,9 +21,7 @@ import com.ruoyi.jjh.declaration.mapper.BmsDeclarationRecordsMapper;
 import com.ruoyi.jjh.declaration.service.IBmsDeclarationRecordsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.core.io.FileSystemResource;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -64,6 +62,7 @@ public class BmsDeclarationRecordsController extends BaseController {
      * @author emiya.xie
      * @create 2023/9/9 14:41
      */
+    @ApiOperation(value = "审核列表")
     @GetMapping("/approvalList")
     public TableDataInfo approvalList(ApprovalDeclarationRecordsQueryDto approvalDeclarationRecordsQueryDto) {
         startPage();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JPolicyFileController.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JPolicyFileController.java
new file mode 100644
index 0000000..6d96391
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/controller/JPolicyFileController.java
@@ -0,0 +1,93 @@
+package com.ruoyi.jjh.ent.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.jjh.ent.entity.JPolicyFile;
+import com.ruoyi.jjh.ent.entity.request.JPolicyFileRequest;
+import com.ruoyi.jjh.ent.service.JPolicyFileService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+
+/**
+ * 政策文件(j_policy_file)表控制层
+ * @author du
+ * @since 2024/5/6 11:16
+ */
+@RestController
+@RequestMapping("/jjh/jPolicyFile")
+@Api(tags = "政策文件表")
+public class JPolicyFileController extends BaseController {
+
+    /**
+     * 服务对象
+     */
+    @Resource
+    private JPolicyFileService jPolicyFileService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param page               分页对象
+     * @param jPolicyFileRequest 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据", response = JPolicyFile.class)
+    @GetMapping
+    public AjaxResult selectAll(Page<JPolicyFile> page, JPolicyFileRequest jPolicyFileRequest) {
+        return success(jPolicyFileService.page(page, jPolicyFileRequest));
+    }
+
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "通过主键查询单条数据", response = JPolicyFile.class)
+    @GetMapping("{id}")
+    public AjaxResult selectOne(@PathVariable Serializable id) {
+        return success(jPolicyFileService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param jPolicyFile 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public AjaxResult insert(@RequestBody JPolicyFile jPolicyFile) {
+        return success(jPolicyFileService.save(jPolicyFile));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param jPolicyFile 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PutMapping
+    public AjaxResult update(@RequestBody JPolicyFile jPolicyFile) {
+        return success(jPolicyFileService.updateById(jPolicyFile));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除数据")
+    @DeleteMapping
+    public AjaxResult delete(@RequestParam("id") Long id) {
+        return success(jPolicyFileService.removeById(id));
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/entity/JPolicyFile.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/entity/JPolicyFile.java
new file mode 100644
index 0000000..9b7d678
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/entity/JPolicyFile.java
@@ -0,0 +1,90 @@
+package com.ruoyi.jjh.ent.entity;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.jjh.common.entity.BaseInfoEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 政策文件(j_policy_file)表实体类
+ * @author du
+ * @since 2024/5/6 14:15
+ */
+@Data
+@ApiModel("政策文件表")
+@TableName(value = "j_policy_file")
+public class JPolicyFile  extends BaseInfoEntity {
+
+    /**
+     * Id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty("Id")
+    private Long id;
+
+    /**
+     * 政策文件名称
+     */
+    @Excel(name = "政策文件名称")
+    @ApiModelProperty("政策文件名称")
+    private String name;
+
+    /**
+     * 发文单位
+     */
+    @Excel(name = "发文单位")
+    @ApiModelProperty("发文单位")
+    private String enterUnit;
+
+    /**
+     * 关联项目
+     */
+    @Excel(name = "关联项目")
+    @ApiModelProperty("关联项目")
+    private Long joinProject;
+
+    /**
+     * 政策等级
+     */
+    @Excel(name = "政策等级")
+    @ApiModelProperty("政策等级")
+    private String policyLevel;
+
+    /**
+     * 发文时间
+     */
+    @Excel(name = "发文时间")
+    @ApiModelProperty("发文时间")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date enterTime;
+
+
+    /**
+     * 发文内容
+     */
+    @Excel(name = "发文内容")
+    @ApiModelProperty("发文内容")
+    private String enterContent;
+
+    /**
+     * 创建id
+     */
+    @JSONField(serialize=false)
+    @TableField(fill = FieldFill.INSERT)
+    private Long createId;
+
+    /**
+     * 更新id
+     */
+    @JSONField(serialize=false)
+    @TableField(fill = FieldFill.UPDATE)
+    private Long updateId;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/entity/request/JPolicyFileRequest.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/entity/request/JPolicyFileRequest.java
new file mode 100644
index 0000000..e2670f2
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/entity/request/JPolicyFileRequest.java
@@ -0,0 +1,34 @@
+package com.ruoyi.jjh.ent.entity.request;
+
+import com.ruoyi.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 政策文件请求类
+ * @author du
+ * @since 2024/5/6 14:34
+ */
+@Data
+@ApiModel("政策文件请求类")
+public class JPolicyFileRequest {
+    /**
+     * 政策文件名称
+     */
+    @ApiModelProperty("政策文件名称")
+    private String name;
+
+    /**
+     * 发文单位
+     */
+    @ApiModelProperty("政策文件名称")
+    private String enterUnit;
+
+    /**
+     * 政策等级
+     */
+    @Excel(name = "政策等级")
+    @ApiModelProperty("政策等级")
+    private String policyLevel;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/mapper/JPolicyFileMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/mapper/JPolicyFileMapper.java
new file mode 100644
index 0000000..59f81ba
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/mapper/JPolicyFileMapper.java
@@ -0,0 +1,24 @@
+package com.ruoyi.jjh.ent.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.jjh.ent.entity.JPolicyFile;
+import com.ruoyi.jjh.ent.entity.request.JPolicyFileRequest;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 政策文件(j_policy_file)表数据层
+ * @author du
+ * @since 2024/5/6 13:57
+ */
+public interface JPolicyFileMapper extends BaseMapper<JPolicyFile> {
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param page        分页对象
+     * @param jPolicyFileRequest 查询实体
+     * @return 所有数据
+     */
+    Page<JPolicyFile> page(Page<JPolicyFile> page,@Param("req") JPolicyFileRequest jPolicyFileRequest);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/JPolicyFileService.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/JPolicyFileService.java
new file mode 100644
index 0000000..d132f1b
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/JPolicyFileService.java
@@ -0,0 +1,26 @@
+package com.ruoyi.jjh.ent.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.jjh.ent.entity.JMemorandum;
+import com.ruoyi.jjh.ent.entity.JPolicyFile;
+import com.ruoyi.jjh.ent.entity.JProject;
+import com.ruoyi.jjh.ent.entity.request.JPolicyFileRequest;
+
+/**
+ * 政策文件(j_policy_file)表业务层
+ * @author du
+ * @since 2024/5/6 14:10
+ */
+public interface JPolicyFileService extends IService<JPolicyFile> {
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param page     分页对象
+     * @param jPolicyFileRequest 查询实体
+     * @return 所有数据
+     */
+    Page<JPolicyFile> page(Page<JPolicyFile> page, JPolicyFileRequest jPolicyFileRequest);
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/impl/JPolicyFileServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/impl/JPolicyFileServiceImpl.java
new file mode 100644
index 0000000..74f6cbf
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/jjh/ent/service/impl/JPolicyFileServiceImpl.java
@@ -0,0 +1,30 @@
+package com.ruoyi.jjh.ent.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.jjh.ent.entity.JPolicyFile;
+import com.ruoyi.jjh.ent.entity.request.JPolicyFileRequest;
+import com.ruoyi.jjh.ent.mapper.JPolicyFileMapper;
+import com.ruoyi.jjh.ent.service.JPolicyFileService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 政策文件(j_policy_file)表业务处理层
+ * @author du
+ * @since 2024/5/6 14:12
+ */
+@Service("jPolicyFileServiceImpl")
+public class JPolicyFileServiceImpl extends ServiceImpl<JPolicyFileMapper, JPolicyFile> implements JPolicyFileService {
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param page        分页对象
+     * @param jPolicyFileRequest 查询实体
+     * @return 所有数据
+     */
+    @Override
+    public Page<JPolicyFile> page(Page<JPolicyFile> page, JPolicyFileRequest jPolicyFileRequest) {
+        return baseMapper.page(page,jPolicyFileRequest);
+    }
+}
diff --git a/ruoyi-admin/src/main/resources/mapper/jjh/ent/JPolicyFileMapper.xml b/ruoyi-admin/src/main/resources/mapper/jjh/ent/JPolicyFileMapper.xml
new file mode 100644
index 0000000..7872d00
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/jjh/ent/JPolicyFileMapper.xml
@@ -0,0 +1,22 @@
+<?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.jjh.ent.mapper.JPolicyFileMapper">
+
+    <select id="page" resultType="com.ruoyi.jjh.ent.entity.JPolicyFile">
+        select * from j_policy_file
+        <where>
+            <if test="req.name != null and req.name != '' ">
+                and name like concat('%',#{req.name},'%')
+            </if>
+            <if test="req.enterUnit != null and req.enterUnit != '' ">
+                and enter_unit like concat('%',#{req.enterUnit},'%')
+            </if>
+            <if test="req.policyLevel != null and req.policyLevel != '' ">
+                and policy_level like concat('%',#{req.policyLevel},'%')
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+</mapper>