Browse Source

完善了日期查询文件,和文件上传者信息

Lijiahao 1 day atrás
parent
commit
77eef23488

+ 16 - 2
xzl-admin/src/main/java/com/xzl/web/controller/KnowledgeFileController.java

@@ -38,9 +38,23 @@ public class KnowledgeFileController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('system:user:list')")
     @GetMapping("/list")
-    public TableDataInfo list(KnowledgeFile Knowledge) {
+    public TableDataInfo list(
+            KnowledgeFile knowledge,
+            @RequestParam(value = "folderId", required = false) Long folderId,
+            @RequestParam(value = "beginCreateTime", required = false) String beginCreateTime,
+            @RequestParam(value = "endCreateTime", required = false) String endCreateTime,
+            @RequestParam(value = "beginUpdateTime", required = false) String beginUpdateTime,
+            @RequestParam(value = "endUpdateTime", required = false) String endUpdateTime
+    ) {
+        // 将可选参数设置到对象中
+        knowledge.setFolderId(folderId);
+        knowledge.setBeginCreateTime(beginCreateTime);
+        knowledge.setEndCreateTime(endCreateTime);
+        knowledge.setBeginUpdateTime(beginUpdateTime);
+        knowledge.setEndUpdateTime(endUpdateTime);
+
         startPage();
-        List<KnowledgeFile> list = knowledgeFileService.selectSysFileList(Knowledge);
+        List<KnowledgeFile> list = knowledgeFileService.selectSysFileList(knowledge);
         return getDataTable(list);
     }
 

+ 2 - 1
xzl-admin/src/main/java/com/xzl/web/service/impl/KnowledgeFileServiceImpl.java

@@ -162,6 +162,7 @@ public class KnowledgeFileServiceImpl implements KnowledgeFileService {
         KnowledgeFile knowledgeFile = new KnowledgeFile();
         knowledgeFile.setCreateTime(DateUtils.getNowDate());
         knowledgeFile.setFileName(originalFileName);
+        knowledgeFile.setDeptId(loginUser.getDeptId());
 
         // 从文件名获取文件类型
         dotIndex = originalFileName.lastIndexOf('.');
@@ -176,7 +177,7 @@ public class KnowledgeFileServiceImpl implements KnowledgeFileService {
         knowledgeFile.setFilePath(objectName);
         knowledgeFile.setFileSize(file.getSize());
         knowledgeFile.setDownloadCount(0L);
-        knowledgeFile.setCreateBy(loginUser.getUsername());
+        knowledgeFile.setCreateBy(loginUser.getUser().getNickName());
         knowledgeFile.setStatus("0");
         knowledgeFile.setDelFlag("0");
         // 上传文件到 MinIO

+ 2 - 2
xzl-admin/src/main/resources/application-dev.yml

@@ -6,12 +6,12 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://192.168.1.12:3306/db_mcyc?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
+                url: jdbc:mysql://localhost:3306/db_mcyc?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
 #                url: jdbc:mysql://webapplication.rwlb.rds.aliyuncs.com:3306/xtdb?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
 #                username: jerry
  #               password: zjr38zjR@
                 username: root
-                password: 123456
+                password: root
 #                url: jdbc:mysql://localhost:3306/xtdb?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false
 #                username: root
 #                password: 1234

+ 11 - 1
xzl-admin/src/main/resources/mapper/KnowledgeFileMapper.xml

@@ -18,12 +18,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
+        <result property="deptId"    column="dept_id"    />
         <!-- 添加文件夹名称映射 -->
         <result property="folderName"   column="folder_name"  />
     </resultMap>
 
     <sql id="selectSysFileVo">
-        select file_id, folder_id, file_name, file_type, file_size, file_path, download_count, status, del_flag, create_by, create_time, update_by, update_time from sys_file
+        select file_id, folder_id, file_name, file_type, file_size, file_path, download_count, status, del_flag, create_by, create_time, update_by, update_time,dept_id from sys_file
     </sql>
 
     <select id="selectSysFileList" parameterType="KnowledgeFile" resultMap="SysFileResult">
@@ -40,6 +41,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="filePath != null  and filePath != ''"> and a.file_path = #{filePath}</if>
             <if test="downloadCount != null "> and a.download_count = #{downloadCount}</if>
             <if test="status != null  and status != ''"> and a.status = #{status}</if>
+            <if test="createBy != null and createBy != ''">AND a.create_by LIKE CONCAT('%', #{createBy}, '%')</if>
+            <if test="deptId != null">and a.dept_id = #{deptId}</if>
+            <if test="beginCreateTime != null and beginCreateTime != ''">and a.create_time >= #{beginCreateTime}</if>
+            <if test="endCreateTime != null and endCreateTime != ''">and a.create_time &lt;= #{endCreateTime}</if>
+            <if test="beginUpdateTime != null and beginUpdateTime != ''">and a.update_time &gt;= #{beginUpdateTime}</if>
+            <if test="endUpdateTime != null and endUpdateTime != ''">and a.update_time &lt;= #{endUpdateTime}</if>
         </where>
     </select>
 
@@ -63,6 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time,</if>
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
+            <if test="deptId != null">dept_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="folderId != null">#{folderId},</if>
@@ -77,6 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">#{createTime},</if>
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
+            <if test="deptId != null">#{deptId},</if>
          </trim>
     </insert>
 
@@ -95,6 +104,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
         </trim>
         where file_id = #{fileId}
     </update>

+ 70 - 0
xzl-common/src/main/java/com/xzl/common/core/domain/entity/KnowledgeFile.java

@@ -5,6 +5,7 @@ import com.xzl.common.core.domain.BaseEntity;
 import jdk.nashorn.internal.ir.annotations.Ignore;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * 文件对象 sys_file
@@ -53,6 +54,21 @@ public class KnowledgeFile extends BaseEntity
     @Ignore
     private String folderName;
 
+    private Long deptId;
+
+    private String createBy;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private String beginCreateTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private String endCreateTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private String beginUpdateTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private String endUpdateTime;
     // 省略其他getter和setter
 
     public String getFolderName() {
@@ -161,6 +177,60 @@ public class KnowledgeFile extends BaseEntity
             .append("createTime", getCreateTime())
             .append("updateBy", getUpdateBy())
             .append("updateTime", getUpdateTime())
+                .append("beginCreateTime", getBeginCreateTime())
+                .append("endCreateTime", getEndCreateTime())
+                .append("beginUpdateTime", getBeginUpdateTime())
+                .append("endUpdateTime", getEndUpdateTime())
             .toString();
     }
+
+    public String getBeginCreateTime() {
+        return beginCreateTime;
+    }
+
+    public void setBeginCreateTime(String beginCreateTime) {
+        this.beginCreateTime = beginCreateTime;
+    }
+
+    public String getEndCreateTime() {
+        return endCreateTime;
+    }
+
+    public void setEndCreateTime(String endCreateTime) {
+        this.endCreateTime = endCreateTime;
+    }
+
+    public String getBeginUpdateTime() {
+        return beginUpdateTime;
+    }
+
+    public void setBeginUpdateTime(String beginUpdateTime) {
+        this.beginUpdateTime = beginUpdateTime;
+    }
+
+    public String getEndUpdateTime() {
+        return endUpdateTime;
+    }
+
+    public void setEndUpdateTime(String endUpdateTime) {
+        this.endUpdateTime = endUpdateTime;
+    }
+
+    @Override
+    public String getCreateBy() {
+        return createBy;
+    }
+
+    @Override
+    public void setCreateBy(String createBy) {
+        this.createBy = createBy;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
 }

+ 99 - 42
xzl-ui/src/views/fileTree/folder/index.vue

@@ -98,42 +98,44 @@
       </el-col>
       <!--文件数据-->
       <el-col :span="20" :xs="24">
-        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
-                 label-width="68px">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
           <el-form-item label="文件名称" prop="fileName">
             <el-input
               v-model="queryParams.fileName"
               placeholder="请输入文件名称"
               clearable
-              style="width: 240px"
+              style="width: 180px"
               @keyup.enter.native="handleQuery"
             />
           </el-form-item>
-          <el-form-item label="状态" prop="status">
-            <el-select
-              v-model="queryParams.status"
-              placeholder="文件状态"
+          <el-form-item label="创建者" prop="createBy">
+            <el-input
+              v-model="queryParams.createBy"
+              placeholder="请输入创建者"
               clearable
-              style="width: 240px"
-            >
-              <el-option
-                v-for="dict in dict.type.sys_file_status"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
-              />
-            </el-select>
+              style="width: 150px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="创建时间范围">
+            <el-date-picker
+              v-model="createDateRange" style="width: 220px"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="-"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+            />
           </el-form-item>
-          <el-form-item label="创建时间">
+          <el-form-item label="更新时间范围">
             <el-date-picker
-              v-model="dateRange"
-              style="width: 240px"
+              v-model="updateDateRange" style="width: 220px"
               value-format="yyyy-MM-dd"
-              type="dateRange"
+              type="daterange"
               range-separator="-"
               start-placeholder="开始日期"
               end-placeholder="结束日期"
-            ></el-date-picker>
+            />
           </el-form-item>
           <el-form-item>
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -217,6 +219,11 @@
               <span>{{ parseTime(scope.row.createTime) }}</span>
             </template>
           </el-table-column>
+          <el-table-column label="更新时间" align="center" prop="updateTime" v-if="columns[7].visible" width="160">
+            <template v-slot="scope">
+              <span>{{ parseTime(scope.row.updateTime) }}</span>
+            </template>
+          </el-table-column>
           <el-table-column
             label="操作"
             align="center"
@@ -308,24 +315,21 @@ import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {
   addFolder,
+  checkFolderDeletable,
   delFolder,
+  folderTreeSelectByDeptId,
   getFolder,
-  updateFolder,
-  checkFolderDeletable,
-  folderTreeSelectByDeptId
+  updateFolder
 } from "@/api/system/folder";
-import {addFile, delFile, download, downloadTemplate, listFile, updateFile} from "@/api/system/file";
+import {addFile, delFile, download, downloadTemplate, listFile, updateFile, updateFileStatus} from "@/api/system/file";
 import dict from "@/utils/dict";
 import {parseTime} from "@/utils/xzl";
-import {updateFileStatus} from "@/api/system/file";
 import {listDept} from "@/api/system/dept";
-import {getUser, getUserProfile} from "@/api/system/user";
-import dept from "@/views/system/dept/index.vue";
-
+import {getUserProfile} from "@/api/system/user";
 
 export default {
   name: "File",
-  dicts: ['sys_file_status', 'sys_user_sex'],
+  dicts: ['sys_file_status'],
   components: {Treeselect},
   data() {
     return {
@@ -354,7 +358,11 @@ export default {
       // 默认密码
       initPassword: undefined,
       // 日期范围
-      dateRange: [],
+      daterange: [],
+      //创建日期范围
+      createDateRange: [],
+      //更新日期范围
+      updateDateRange: [],
       //父文件夹名称
       parentFolderCache: [],
       // 用于缓存每个文件夹的 level 值
@@ -424,9 +432,13 @@ export default {
         pageNum: 1,
         pageSize: 10,
         fileName: undefined,
-        fileType: undefined,
         status: undefined,
-        folderId: undefined
+        folderId: undefined,
+        createBy: undefined,
+        beginCreateTime: undefined,
+        endCreateTime: undefined,
+        beginUpdateTime: undefined,
+        endUpdateTime: undefined
       },
       // 列信息
       columns: [
@@ -436,7 +448,8 @@ export default {
         {key: 3, label: `所属文件夹`, visible: true},
         {key: 4, label: `创建者`, visible: true},
         {key: 5, label: `状态`, visible: true},
-        {key: 6, label: `创建时间`, visible: true}
+        {key: 6, label: `创建时间`, visible: true},
+        {key: 7, label: '更新时间', visible: true},
       ],
       // 表单校验
       rules: {
@@ -483,6 +496,7 @@ export default {
     this.getConfigKey("sys.user.initPassword").then(response => {
       this.initPassword = response.msg;
     });
+    console.log('dict.type.sys_file_status:', dict.type.sys_file_status);
   },
   methods: {
     parseTime,
@@ -490,12 +504,33 @@ export default {
     /** 查询文件列表 */
     getList() {
       this.loading = true;
-      listFile(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.fileList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
+      let params = this.queryParams;
+      console.log('当前参数D:', params);
+
+      // 自定义添加时间范围参数(小写开头)
+      if (this.createDateRange && this.createDateRange.length === 2) {
+        params.beginCreateTime = this.createDateRange[0];
+        params.endCreateTime = this.createDateRange[1];
+      } else {
+        delete params.beginCreateTime;
+        delete params.endCreateTime;
+      }
+
+      // 自定义添加更新时间范围参数(小写开头)
+      if (this.updateDateRange && this.updateDateRange.length === 2) {
+        params.beginUpdateTime = this.updateDateRange[0];
+        params.endUpdateTime = this.updateDateRange[1];
+      } else {
+        delete params.beginUpdateTime;
+        delete params.endUpdateTime;
+      }
+
+      console.log('请求参数:', params);
+      listFile(params).then(response => {
+        this.fileList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
     },
     getFileTree() {
       folderTreeSelectByDeptId().then(response => {
@@ -563,11 +598,33 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.dateRange = [];
+      // 清空时间范围选择器
+      this.createDateRange = [];
+      this.updateDateRange = [];
+
+      // 重置表单字段(如文件名称、状态等)
       this.resetForm("queryForm");
+
+      // 清除部门 ID 和树形结构选中状态
       this.queryParams.deptId = undefined;
       this.$refs.tree.setCurrentKey(null);
-      this.handleQuery();
+
+      // 清空其他可能存在的搜索参数
+      this.queryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        fileName: undefined,
+        fileType: undefined,
+        status: undefined,
+        folderId: undefined,
+        beginCreateTime: undefined,
+        endCreateTime: undefined,
+        beginUpdateTime: undefined,
+        endUpdateTime: undefined,
+        createBy: undefined
+      };
+      // 请求全部数据
+      this.getList();
     },
     // 多选框选中数据
     handleSelectionChange(selection) {