Browse Source

`fix file and project`

wenhongquan 1 year ago
parent
commit
a72c4ec4ae

+ 4 - 0
ruoyi-modules/ruoyi-filemanager/pom.xml

@@ -102,6 +102,10 @@
             <groupId>org.dromara</groupId>
             <artifactId>ruoyi-common-websocket</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-system</artifactId>
+        </dependency>
 
     </dependencies>
 

+ 21 - 7
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/controller/TblArchivesController.java

@@ -5,7 +5,7 @@ import java.util.List;
 import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.system.service.ISysOssService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -36,10 +36,12 @@ public class TblArchivesController extends BaseController {
 
     private final ITblArchivesService tblArchivesService;
 
+
+    private final ISysOssService sysOssService;
+
     /**
      * 查询电子档案列表
      */
-    @SaCheckPermission("system:archives:list")
     @GetMapping("/list")
     public TableDataInfo<TblArchivesVo> list(TblArchivesBo bo, PageQuery pageQuery) {
         return tblArchivesService.queryPageList(bo, pageQuery);
@@ -48,7 +50,6 @@ public class TblArchivesController extends BaseController {
     /**
      * 导出电子档案列表
      */
-    @SaCheckPermission("system:archives:export")
     @Log(title = "电子档案", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(TblArchivesBo bo, HttpServletResponse response) {
@@ -61,7 +62,6 @@ public class TblArchivesController extends BaseController {
      *
      * @param id 主键
      */
-    @SaCheckPermission("system:archives:query")
     @GetMapping("/{id}")
     public R<TblArchivesVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long id) {
@@ -71,18 +71,24 @@ public class TblArchivesController extends BaseController {
     /**
      * 新增电子档案
      */
-    @SaCheckPermission("system:archives:add")
     @Log(title = "电子档案", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping()
     public R<Void> add(@Validated(AddGroup.class) @RequestBody TblArchivesBo bo) {
+        TblArchivesBo b = new TblArchivesBo();
+        List<TblArchivesVo> list =  tblArchivesService.queryList(new TblArchivesBo());
+        if(list.size()>0){
+            if(list.stream().filter(t->t.getQiuquan()!=null && t.getEcode()!=null &&( t.getQiuquan().equals(bo.getQiuquan())||t.getEcode().equals(bo.getEcode()))).toList().size()>0){
+                return R.fail("存在相同丘权或电子编号!");
+            }
+        }
+
         return toAjax(tblArchivesService.insertByBo(bo));
     }
 
     /**
      * 修改电子档案
      */
-    @SaCheckPermission("system:archives:edit")
     @Log(title = "电子档案", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping()
@@ -95,11 +101,19 @@ public class TblArchivesController extends BaseController {
      *
      * @param ids 主键串
      */
-    @SaCheckPermission("system:archives:remove")
     @Log(title = "电子档案", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
                           @PathVariable Long[] ids) {
         return toAjax(tblArchivesService.deleteWithValidByIds(List.of(ids), true));
     }
+
+    @GetMapping("/{id}/files")
+    public R<Void> files(@PathVariable Long id) {
+
+//        sysOssService.queryPageList()
+
+//        return toAjax(tblArchivesService.updateByBo(bo));
+        return R.ok();
+    }
 }

+ 16 - 0
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/domain/TblArchives.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.lang.Nullable;
 
 import java.io.Serial;
 
@@ -32,62 +33,77 @@ public class TblArchives extends BaseEntity {
     /**
      * 区域
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String area;
 
     /**
      * 丘权号
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String qiuquan;
 
     /**
      * 建设单位(或申请单位)
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String buildUnit;
 
     /**
      * 地址(公安门牌)
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String addr;
 
     /**
      * 小区名称
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String community;
 
     /**
      * 成果(建档)日期
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String achievementDate;
 
     /**
      * 保管期限
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String savePeriod;
 
     /**
      * 备注
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String remark;
 
     /**
      * 电子档编号
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String ecode;
 
     /**
      * 存档位置
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String saveAddr;
 
     /**
      * 扩展1
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String ext1;
 
     /**
      * 扩展2
      */
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
     private String ext2;
 
+    @TableField(insertStrategy = FieldStrategy.NOT_NULL)
+    private String status;
+
 
 }

+ 46 - 0
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/domain/TblArchivesFile.java

@@ -0,0 +1,46 @@
+package org.dromara.filemanager.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 项目文件对象 tbl_archives_file
+ *
+ * @author Lion Li
+ * @date 2024-06-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("tbl_archives_file")
+public class TblArchivesFile extends BaseEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 文件编号
+     */
+    private Long ossFileId;
+
+    /**
+     * 项目编号
+     */
+    private Long archiveId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 6 - 13
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/domain/bo/TblArchivesBo.java

@@ -25,80 +25,73 @@ public class TblArchivesBo extends BaseEntity {
     /**
      * 编号
      */
-    @NotNull(message = "编号不能为空", groups = { EditGroup.class })
+
     private Long id;
 
     /**
      * 区域
      */
-    @NotBlank(message = "区域不能为空", groups = { AddGroup.class, EditGroup.class })
     private String area;
 
     /**
      * 丘权号
      */
-    @NotBlank(message = "丘权号不能为空", groups = { AddGroup.class, EditGroup.class })
     private String qiuquan;
 
     /**
      * 建设单位(或申请单位)
      */
-    @NotBlank(message = "建设单位(或申请单位)不能为空", groups = { AddGroup.class, EditGroup.class })
     private String buildUnit;
 
     /**
      * 地址(公安门牌)
      */
-    @NotBlank(message = "地址(公安门牌)不能为空", groups = { AddGroup.class, EditGroup.class })
     private String addr;
 
     /**
      * 小区名称
      */
-    @NotBlank(message = "小区名称不能为空", groups = { AddGroup.class, EditGroup.class })
     private String community;
 
     /**
      * 成果(建档)日期
      */
-    @NotNull(message = "成果(建档)日期不能为空", groups = { AddGroup.class, EditGroup.class })
     private String achievementDate;
 
     /**
      * 保管期限
      */
-    @NotNull(message = "保管期限不能为空", groups = { AddGroup.class, EditGroup.class })
     private String savePeriod;
 
     /**
      * 备注
      */
-    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+
     private String remark;
 
     /**
      * 电子档编号
      */
-    @NotBlank(message = "电子档编号不能为空", groups = { AddGroup.class, EditGroup.class })
     private String ecode;
 
     /**
      * 存档位置
      */
-    @NotBlank(message = "存档位置不能为空", groups = { AddGroup.class, EditGroup.class })
     private String saveAddr;
 
     /**
      * 扩展1
      */
-    @NotBlank(message = "扩展1不能为空", groups = { AddGroup.class, EditGroup.class })
+
     private String ext1;
 
     /**
      * 扩展2
      */
-    @NotBlank(message = "扩展2不能为空", groups = { AddGroup.class, EditGroup.class })
+
     private String ext2;
 
+    private String status;
+
 
 }

+ 48 - 0
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/domain/bo/TblArchivesFileBo.java

@@ -0,0 +1,48 @@
+package org.dromara.filemanager.domain.bo;
+
+import org.dromara.filemanager.domain.TblArchivesFile;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 项目文件业务对象 tbl_archives_file
+ *
+ * @author Lion Li
+ * @date 2024-06-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = TblArchivesFile.class, reverseConvertGenerate = false)
+public class TblArchivesFileBo extends BaseEntity {
+
+    /**
+     * 编号
+     */
+    @NotNull(message = "编号不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 文件编号
+     */
+    @NotNull(message = "文件编号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long ossFileId;
+
+    /**
+     * 项目编号
+     */
+    @NotNull(message = "项目编号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long archiveId;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+
+}

+ 56 - 0
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/domain/vo/TblArchivesFileVo.java

@@ -0,0 +1,56 @@
+package org.dromara.filemanager.domain.vo;
+
+import org.dromara.filemanager.domain.TblArchivesFile;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 项目文件视图对象 tbl_archives_file
+ *
+ * @author Lion Li
+ * @date 2024-06-06
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = TblArchivesFile.class)
+public class TblArchivesFileVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 编号
+     */
+    @ExcelProperty(value = "编号")
+    private Long id;
+
+    /**
+     * 文件编号
+     */
+    @ExcelProperty(value = "文件编号")
+    private Long ossFileId;
+
+    /**
+     * 项目编号
+     */
+    @ExcelProperty(value = "项目编号")
+    private Long archiveId;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 2 - 0
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/domain/vo/TblArchivesVo.java

@@ -111,5 +111,7 @@ public class TblArchivesVo implements Serializable {
     @ExcelProperty(value = "扩展2")
     private String ext2;
 
+    private String status;
+
 
 }

+ 15 - 0
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/mapper/TblArchivesFileMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.filemanager.mapper;
+
+import org.dromara.filemanager.domain.TblArchivesFile;
+import org.dromara.filemanager.domain.vo.TblArchivesFileVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 项目文件Mapper接口
+ *
+ * @author Lion Li
+ * @date 2024-06-06
+ */
+public interface TblArchivesFileMapper extends BaseMapperPlus<TblArchivesFile, TblArchivesFileVo> {
+
+}

+ 49 - 0
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/service/ITblArchivesFileService.java

@@ -0,0 +1,49 @@
+package org.dromara.filemanager.service;
+
+import org.dromara.filemanager.domain.TblArchivesFile;
+import org.dromara.filemanager.domain.vo.TblArchivesFileVo;
+import org.dromara.filemanager.domain.bo.TblArchivesFileBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 项目文件Service接口
+ *
+ * @author Lion Li
+ * @date 2024-06-06
+ */
+public interface ITblArchivesFileService {
+
+    /**
+     * 查询项目文件
+     */
+    TblArchivesFileVo queryById(Long id);
+
+    /**
+     * 查询项目文件列表
+     */
+    TableDataInfo<TblArchivesFileVo> queryPageList(TblArchivesFileBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询项目文件列表
+     */
+    List<TblArchivesFileVo> queryList(TblArchivesFileBo bo);
+
+    /**
+     * 新增项目文件
+     */
+    Boolean insertByBo(TblArchivesFileBo bo);
+
+    /**
+     * 修改项目文件
+     */
+    Boolean updateByBo(TblArchivesFileBo bo);
+
+    /**
+     * 校验并批量删除项目文件信息
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 110 - 0
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/service/impl/TblArchivesFileServiceImpl.java

@@ -0,0 +1,110 @@
+package org.dromara.filemanager.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.dromara.filemanager.domain.bo.TblArchivesFileBo;
+import org.dromara.filemanager.domain.vo.TblArchivesFileVo;
+import org.dromara.filemanager.domain.TblArchivesFile;
+import org.dromara.filemanager.mapper.TblArchivesFileMapper;
+import org.dromara.filemanager.service.ITblArchivesFileService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 项目文件Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2024-06-06
+ */
+@RequiredArgsConstructor
+@Service
+public class TblArchivesFileServiceImpl implements ITblArchivesFileService {
+
+    private final TblArchivesFileMapper baseMapper;
+
+    /**
+     * 查询项目文件
+     */
+    @Override
+    public TblArchivesFileVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 查询项目文件列表
+     */
+    @Override
+    public TableDataInfo<TblArchivesFileVo> queryPageList(TblArchivesFileBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<TblArchivesFile> lqw = buildQueryWrapper(bo);
+        Page<TblArchivesFileVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询项目文件列表
+     */
+    @Override
+    public List<TblArchivesFileVo> queryList(TblArchivesFileBo bo) {
+        LambdaQueryWrapper<TblArchivesFile> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<TblArchivesFile> buildQueryWrapper(TblArchivesFileBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<TblArchivesFile> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getOssFileId() != null, TblArchivesFile::getOssFileId, bo.getOssFileId());
+        lqw.eq(bo.getArchiveId() != null, TblArchivesFile::getArchiveId, bo.getArchiveId());
+        return lqw;
+    }
+
+    /**
+     * 新增项目文件
+     */
+    @Override
+    public Boolean insertByBo(TblArchivesFileBo bo) {
+        TblArchivesFile add = MapstructUtils.convert(bo, TblArchivesFile.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改项目文件
+     */
+    @Override
+    public Boolean updateByBo(TblArchivesFileBo bo) {
+        TblArchivesFile update = MapstructUtils.convert(bo, TblArchivesFile.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(TblArchivesFile entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除项目文件
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

+ 8 - 0
ruoyi-modules/ruoyi-filemanager/src/main/java/org/dromara/filemanager/service/impl/TblArchivesServiceImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.filemanager.service.impl;
 
+import cn.hutool.core.util.StrUtil;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -62,6 +63,7 @@ public class TblArchivesServiceImpl implements ITblArchivesService {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<TblArchives> lqw = Wrappers.lambdaQuery();
         lqw.eq(StringUtils.isNotBlank(bo.getArea()), TblArchives::getArea, bo.getArea());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), TblArchives::getStatus, bo.getStatus());
         lqw.like(StringUtils.isNotBlank(bo.getQiuquan()), TblArchives::getQiuquan, bo.getQiuquan());
 //        lqw.eq(StringUtils.isNotBlank(bo.getQiuquan()), TblArchives::getQiuquan, bo.getQiuquan());
         lqw.like(StringUtils.isNotBlank(bo.getBuildUnit()), TblArchives::getBuildUnit, bo.getBuildUnit());
@@ -81,6 +83,12 @@ public class TblArchivesServiceImpl implements ITblArchivesService {
      */
     @Override
     public Boolean insertByBo(TblArchivesBo bo) {
+        if(StrUtil.isEmptyIfStr(bo.getExt1())){
+            bo.setExt1("{}");
+        }
+        if(StrUtil.isEmptyIfStr(bo.getExt2())){
+            bo.setExt2("{}");
+        }
         TblArchives add = MapstructUtils.convert(bo, TblArchives.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;

+ 7 - 0
ruoyi-modules/ruoyi-filemanager/src/main/resources/mapper/filemanager/TblArchivesFileMapper.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="org.dromara.filemanager.mapper.TblArchivesFileMapper">
+
+</mapper>