manage : 添加 文件目录功能

dev_2.1.0
xueqingkun 1 year ago
parent 66bb459c5a
commit 0a199d66a4

@ -0,0 +1,55 @@
package com.supervision.manage.controller.file;
import com.supervision.manage.pojo.vo.DirectoryInfoVo;
import com.supervision.manage.service.DirectoryInfoManageService;
import com.supervision.model.DirectoryInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "文件目录管理")
@RestController
@RequestMapping("/directoryManage")
@RequiredArgsConstructor
public class DirectoryInfoManageController {
private final DirectoryInfoManageService directoryInfoManageService;
@ApiOperation("新增文件目录")
@PostMapping("/addDirectory")
public String addDirectory(@RequestBody DirectoryInfo directoryInfo) {
return directoryInfoManageService.addDirectory(directoryInfo);
}
@ApiOperation("删除文件目录")
@DeleteMapping("/deleteDirectory")
public boolean deleteDirectory(@ApiParam("目录ID") @RequestParam("directoryId") String directoryId) {
return directoryInfoManageService.deleteDirectory(directoryId);
}
@ApiOperation("修改文件目录")
@PutMapping("/updateDirectory")
public boolean updateDirectory(@RequestBody DirectoryInfo directoryInfo) {
return directoryInfoManageService.updateDirectory(directoryInfo);
}
@ApiOperation("查询文件目录")
@GetMapping("/getFileDirectory")
public List<DirectoryInfoVo> getFileDirectory(@ApiParam("父级目录ID") @RequestParam(value = "parentDirId",required = false) String parentDirId) {
return directoryInfoManageService.getFileDirectory(parentDirId);
}
}

@ -0,0 +1,14 @@
package com.supervision.manage.pojo.vo;
import com.supervision.model.DirectoryInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
public class DirectoryInfoVo extends DirectoryInfo {
private List<DirectoryInfo> child;
}

@ -0,0 +1,28 @@
package com.supervision.manage.service;
import com.supervision.manage.pojo.vo.DirectoryInfoVo;
import com.supervision.model.DirectoryInfo;
import java.util.List;
public interface DirectoryInfoManageService {
/**
*
* @param directoryInfo
* @returnid
*/
String addDirectory(DirectoryInfo directoryInfo);
/**
*
* @param directoryId id
* @return true: false:
*/
boolean deleteDirectory(String directoryId);
boolean updateDirectory(DirectoryInfo directoryInfo);
List<DirectoryInfoVo> getFileDirectory(String parentDirId);
}

@ -9,10 +9,9 @@ import com.supervision.vo.manage.DiseasePhysicalResVo;
import com.supervision.vo.manage.DiseaseTreatmentPlanResVo;
import com.supervision.vo.manage.MedicalRecPageResVO;
import com.supervision.model.Disease;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
public interface MedicalRecManageService {
@ -41,4 +40,6 @@ public interface MedicalRecManageService {
void deleteMedicalRec(String id);
List<Disease> querySingleDiseaseListByDropList();
String uploadMaterial(MultipartFile multipartFile, String medicalRecId) throws IOException;
}

@ -0,0 +1,109 @@
package com.supervision.manage.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.supervision.manage.pojo.vo.DirectoryInfoVo;
import com.supervision.manage.service.DirectoryInfoManageService;
import com.supervision.model.DirectoryInfo;
import com.supervision.service.DirectoryInfoService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@RequiredArgsConstructor
public class DirectoryInfoManageServiceImpl implements DirectoryInfoManageService {
private final DirectoryInfoService directoryInfoService;
@Override
public String addDirectory(DirectoryInfo directoryInfo) {
// 判断文件目录是否已经存在
Assert.notEmpty(directoryInfo.getDirectoryName(), "文件目录名称不能为空");
Assert.isTrue(StrUtil.isEmpty(directoryInfo.getId()), "目录id需要为空");
LambdaQueryChainWrapper<DirectoryInfo> wrapper = directoryInfoService.lambdaQuery()
.eq(StrUtil.isNotEmpty(directoryInfo.getParentId()), DirectoryInfo::getParentId, directoryInfo.getParentId())
.eq(DirectoryInfo::getDirectoryName, directoryInfo.getDirectoryName());
if (StrUtil.isEmpty(directoryInfo.getParentId())){
wrapper.isNull(DirectoryInfo::getParentId);
}else {
wrapper.eq(DirectoryInfo::getParentId, directoryInfo.getParentId());
}
Assert.isTrue(wrapper.count() == 0, "文件夹已存在");
// 创建文件目录
directoryInfoService.save(directoryInfo);
return directoryInfo.getId();
}
@Override
public boolean deleteDirectory(String directoryId) {
Assert.notEmpty(directoryId, "文件目录id不能为空");
Integer count = directoryInfoService.lambdaQuery()
.eq(DirectoryInfo::getParentId, directoryId).count();
Assert.isTrue(count == 0, "目录下有子目录,不能删除");
return directoryInfoService.removeById(directoryId);
}
@Override
public boolean updateDirectory(DirectoryInfo directoryInfo) {
Assert.notNull(directoryInfo.getId(), "文件目录id不能为空");
Assert.notEmpty(directoryInfo.getDirectoryName(),"文件名不能为空");
Assert.notNull(directoryInfoService.getById(directoryInfo.getId()),"目录不存在");
return directoryInfoService.updateById(directoryInfo);
}
@Override
public List<DirectoryInfoVo> getFileDirectory(String parentDirId) {
List<DirectoryInfo> directoryInfoList = directoryInfoService.lambdaQuery()
.eq(StrUtil.isNotEmpty(parentDirId), DirectoryInfo::getParentId, parentDirId).list();
if (CollectionUtil.isEmpty(directoryInfoList)){
return new ArrayList<>();
}
return directoryInfoListToTree(directoryInfoList);
}
private List<DirectoryInfoVo> directoryInfoListToTree(List<DirectoryInfo> directoryInfoList) {
ArrayList<DirectoryInfoVo> directoryInfoVos = new ArrayList<>();
for (DirectoryInfo directoryInfo : directoryInfoList) {
if (StrUtil.isNotEmpty(directoryInfo.getParentId())){
// 跳过非顶层的目录
continue;
}
DirectoryInfoVo directoryInfoVo = BeanUtil.toBean(directoryInfo, DirectoryInfoVo.class);
directoryInfoVos.add(directoryInfoVo);
for (DirectoryInfo info : directoryInfoList) {
if (!directoryInfoVo.getId().equals(info.getParentId())){
continue;
}
if (directoryInfoVo.getChild() == null) {
directoryInfoVo.setChild(CollectionUtil.newArrayList(BeanUtil.toBean(info, DirectoryInfoVo.class)));
} else {
directoryInfoVo.getChild().add(BeanUtil.toBean(info, DirectoryInfoVo.class));
}
}
}
return directoryInfoVos;
}
}

@ -24,7 +24,10 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -250,4 +253,19 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService {
public List<Disease> querySingleDiseaseListByDropList() {
return diseaseService.lambdaQuery().eq(Disease::getDiseaseType, 0).list();
}
@Override
public String uploadMaterial(MultipartFile multipartFile, String medicalRecId) throws IOException {
// 读取上传的文件内容
InputStream inputStream = multipartFile.getInputStream();
//查询
return null;
}
}

@ -0,0 +1,18 @@
package com.supervision.mapper;
import com.supervision.model.DirectoryInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Administrator
* @description vp_directory_info()Mapper
* @createDate 2024-01-29 16:17:29
* @Entity com.supervision.model.DirectoryInfo
*/
public interface DirectoryInfoMapper extends BaseMapper<DirectoryInfo> {
}

@ -0,0 +1,57 @@
package com.supervision.model;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
*
* @TableName vp_directory_info
*/
@TableName(value ="vp_directory_info")
@Data
public class DirectoryInfo implements Serializable {
/**
*
*/
private String id;
/**
*
*/
private String directoryName;
/**
* id
*/
private String parentId;
/**
* ID
*/
@TableField(fill = FieldFill.INSERT)
private String createUserId;
/**
*
*/
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
*
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateUserId;
/**
*
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,13 @@
package com.supervision.service;
import com.supervision.model.DirectoryInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Administrator
* @description vp_directory_info()Service
* @createDate 2024-01-29 16:17:29
*/
public interface DirectoryInfoService extends IService<DirectoryInfo> {
}

@ -0,0 +1,22 @@
package com.supervision.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.model.DirectoryInfo;
import com.supervision.service.DirectoryInfoService;
import com.supervision.mapper.DirectoryInfoMapper;
import org.springframework.stereotype.Service;
/**
* @author Administrator
* @description vp_directory_info()Service
* @createDate 2024-01-29 16:17:29
*/
@Service
public class DirectoryInfoServiceImpl extends ServiceImpl<DirectoryInfoMapper, DirectoryInfo>
implements DirectoryInfoService{
}

@ -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.supervision.mapper.DirectoryInfoMapper">
<resultMap id="BaseResultMap" type="com.supervision.model.DirectoryInfo">
<result property="id" column="id" jdbcType="VARCHAR"/>
<result property="directoryName" column="directory_name" jdbcType="VARCHAR"/>
<result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,directory_name,parent_id,
create_user_id,create_time,update_user_id,
update_time
</sql>
</mapper>

@ -85,3 +85,14 @@ alter table vp_file_resource
alter table vp_ask_patient_answer
add answer_type varchar(16) null comment '回答类型 0:默认回答 1:自定义回答' after answer_resource_id;
create table vp_directory_info
(
id varchar(64) not null comment '主键',
directoryName varchar(64) not null comment '目录名称',
parentId varchar(64) not null comment '父级id',
create_user_id varchar(64) null comment '创建人ID',
create_time datetime(0) default CURRENT_TIMESTAMP(0) null comment '创建时间',
update_user_id varchar(64) null comment '更新人',
update_time datetime(0) default CURRENT_TIMESTAMP(0) null comment '更新时间'
)
comment '目录表';
Loading…
Cancel
Save