| 
					
				 | 
			
			
				@@ -1,343 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-package com.fs.his.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Collections; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.common.core.domain.R; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.common.utils.DateUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.common.utils.FileNameExtractor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.common.utils.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.common.utils.file.FileUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.common.utils.file.ImageUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.his.param.FsAttachmentPageParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.beans.BeanUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.his.mapper.FsAttachmentMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.his.domain.FsAttachment; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.fs.his.service.IFsAttachmentService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 附件管理Service业务层处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @author fs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @date 2025-08-23 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-public class FsAttachmentServiceImpl extends ServiceImpl<FsAttachmentMapper, FsAttachment> implements IFsAttachmentService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 查询附件管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param attachmentId 附件管理主键 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @return 附件管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public FsAttachment selectFsAttachmentByAttachmentId(Long attachmentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return baseMapper.selectFsAttachmentByAttachmentId(attachmentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 查询附件管理列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param fsAttachment 附件管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @return 附件管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List<FsAttachment> selectFsAttachmentList(FsAttachment fsAttachment) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return baseMapper.selectFsAttachmentList(fsAttachment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List<FsAttachment> selectFsAttachmentList(FsAttachmentPageParam fsAttachment) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<FsAttachment> list = baseMapper.selectFsAttachmentListPage(fsAttachment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //查询文件夹大小 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (FsAttachment attachment : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            long size = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (attachment.getType() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                FsAttachment queryParam = new FsAttachment(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                queryParam.setParentId(attachment.getAttachmentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                queryParam.setUserId(attachment.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                List<FsAttachment> list1 = baseMapper.selectFsAttachmentList(queryParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                size = size + attachment.getSize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 新增附件管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param fsAttachment 附件管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @return 结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public R insertFsAttachment(FsAttachment fsAttachment) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (fsAttachment.getUserId() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return R.error("未获取到创建人!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Integer type = fsAttachment.getType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //获取文件名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String fileName = fsAttachment.getFileName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //查询文件名是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        FsAttachment queryParam = new FsAttachment(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        queryParam.setUserId(fsAttachment.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        queryParam.setParentId(fsAttachment.getParentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        queryParam.setType(fsAttachment.getType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        queryParam.setFileName(fsAttachment.getFileName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<FsAttachment> list = selectFsAttachmentList(queryParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (type == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return R.error("请选择创建文件还是文件夹!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (type == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(fsAttachment.getUrl())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return R.error("文件不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //上传类型为文件时可获取为文件名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(fileName)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fileName = FileNameExtractor.getFileNameFromUrl(fsAttachment.getUrl()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                list = selectFsAttachmentList(queryParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (list != null && !list.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (fileName.contains(".")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    int index = fileName.lastIndexOf("."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    String name = fileName.substring(0, index); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    fileName = name + "(" + (list.size() + 1) + ")" + "." + fileName.substring(index + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            long size = Objects.requireNonNull(ImageUtils.getImage(fsAttachment.getUrl())).length / 1024; // 单位为 KB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fsAttachment.setSize(size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (type == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //文件夹 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(fsAttachment.getFileName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return R.error("文件夹名称不能为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (list != null && !list.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fileName = fileName + "(" + (list.size() + 1) + ")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (type == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //体检报告 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(fsAttachment.getUrl())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return R.error("体检报告不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(fsAttachment.getFileName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return R.error("名称不能为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (list != null && !list.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fileName = fileName + "(" + (list.size() + 1) + ")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        fsAttachment.setFileName(fileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (fsAttachment.getParentId() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fsAttachment.setParentId(0L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        FsAttachment parentItem = new FsAttachment(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (fsAttachment.getParentId() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //查询父文件是否是文件夹 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parentItem = selectFsAttachmentByAttachmentId(fsAttachment.getParentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (parentItem == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return R.error("上级文件夹不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (parentItem.getType() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return R.error("上级文件夹不存在!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        fsAttachment.setCreateTime(DateUtils.getNowDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        int i = baseMapper.insertFsAttachment(fsAttachment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //修改文件夹大小 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (i>0 && fsAttachment.getType() == 1 && fsAttachment.getParentId() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Long size = parentItem.getSize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parentItem.setSize(size + fsAttachment.getSize()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parentItem.setUpdateTime(fsAttachment.getCreateTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseMapper.updateFsAttachment(parentItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return i>0 ? R.ok() : R.error(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 修改附件管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param fsAttachment 附件管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @return 结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public R updateFsAttachment(FsAttachment fsAttachment) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (fsAttachment.getUserId() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return R.error("未获取到修改人!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        FsAttachment oldAttachment = baseMapper.selectFsAttachmentByAttachmentId(fsAttachment.getAttachmentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (oldAttachment == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return R.error("未查到该文件!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Integer type = fsAttachment.getType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (type == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            type = oldAttachment.getType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fsAttachment.setType(type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!Objects.equals(oldAttachment.getUserId(), fsAttachment.getUserId()) || !Objects.equals(oldAttachment.getType(), type)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return R.error("非本人修改/不支持修改文件类型"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //获取文件名 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String fileName = fsAttachment.getFileName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //查询文件名是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        FsAttachment queryParam = new FsAttachment(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (StringUtils.isNotBlank(fileName) && !oldAttachment.getFileName().equals(fileName)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            queryParam.setUserId(fsAttachment.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            queryParam.setParentId(fsAttachment.getParentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            queryParam.setType(fsAttachment.getType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            queryParam.setFileName(fsAttachment.getFileName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (type == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(fsAttachment.getUrl()) && StringUtils.isBlank(oldAttachment.getUrl())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return R.error("文件不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //上传类型为文件时可获取为文件名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(fileName) && StringUtils.isBlank(oldAttachment.getFileName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fileName = FileNameExtractor.getFileNameFromUrl(fsAttachment.getUrl()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                queryParam.setFileName(fsAttachment.getFileName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                List<FsAttachment> list = selectFsAttachmentList(queryParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (list != null && !list.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (fileName.contains(".")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        int index = fileName.lastIndexOf("."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        String name = fileName.substring(0, index); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        fileName = name + "(" + (list.size() + 1) + ")" + "." + fileName.substring(index + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                long size = Objects.requireNonNull(ImageUtils.getImage(fsAttachment.getUrl())).length / 1024; // 单位为 KB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fsAttachment.setSize(size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fsAttachment.setSize(oldAttachment.getSize()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (type == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //文件夹 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(fsAttachment.getFileName()) && StringUtils.isBlank(oldAttachment.getFileName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return R.error("文件夹名称不能为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            queryParam.setFileName(fsAttachment.getFileName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<FsAttachment> list = selectFsAttachmentList(queryParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (list != null && !list.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fileName = fileName + "(" + (list.size() + 1) + ")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (type == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //体检报告 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(fsAttachment.getUrl()) && StringUtils.isBlank(oldAttachment.getUrl())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return R.error("体检报告不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isBlank(fsAttachment.getFileName()) && StringUtils.isBlank(oldAttachment.getFileName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return R.error("名称不能为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<FsAttachment> list = selectFsAttachmentList(queryParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (list != null && !list.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fileName = fileName + "(" + (list.size() + 1) + ")"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        fsAttachment.setFileName(fileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (fsAttachment.getParentId() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fsAttachment.setParentId(oldAttachment.getParentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        FsAttachment parentItem = selectFsAttachmentByAttachmentId(fsAttachment.getParentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (fsAttachment.getParentId() != null && !fsAttachment.getParentId().equals(oldAttachment.getParentId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (fsAttachment.getParentId() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //查询父文件是否是文件夹 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (parentItem == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return R.error("上级文件夹不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (parentItem.getType() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return R.error("上级文件夹不存在!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        fsAttachment.setUpdateTime(DateUtils.getNowDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        int i = baseMapper.updateFsAttachment(fsAttachment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //修改文件夹大小 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (i>0 && fsAttachment.getType() == 1 && fsAttachment.getParentId() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Long size = parentItem.getSize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parentItem.setSize(size - oldAttachment.getSize() + fsAttachment.getSize()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            parentItem.setUpdateTime(fsAttachment.getUpdateTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseMapper.updateFsAttachment(parentItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return i > 0 ? R.ok() : R.error(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 批量删除附件管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param attachmentIds 需要删除的附件管理主键 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @return 结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public int deleteFsAttachmentByAttachmentIds(Long[] attachmentIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(attachmentIds != null && attachmentIds.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (Long attachmentId : attachmentIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                FsAttachment fsAttachment = baseMapper.selectFsAttachmentByAttachmentId(attachmentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (fsAttachment != null && fsAttachment.getType() == 1 && fsAttachment.getParentId() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    FsAttachment folder = baseMapper.selectFsAttachmentByAttachmentId(fsAttachment.getParentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (folder != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //修改文件夹大小 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Long size = folder.getSize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        folder.setSize(size - fsAttachment.getSize()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        folder.setUpdateTime(DateUtils.getNowDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        baseMapper.updateFsAttachment(folder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return baseMapper.deleteFsAttachmentByAttachmentIds(attachmentIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 删除附件管理信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param attachmentId 附件管理主键 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @return 结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public int deleteFsAttachmentByAttachmentId(Long attachmentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        FsAttachment fsAttachment = baseMapper.selectFsAttachmentByAttachmentId(attachmentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (fsAttachment != null && fsAttachment.getType() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            FsAttachment folder = baseMapper.selectFsAttachmentByAttachmentId(fsAttachment.getParentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //修改文件夹大小 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Long size = folder.getSize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            folder.setSize(size - fsAttachment.getSize()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            folder.setUpdateTime(DateUtils.getNowDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            baseMapper.updateFsAttachment(folder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return baseMapper.deleteFsAttachmentByAttachmentId(attachmentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public FsAttachment selectFsAttachmentByFolderName(String folderName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return baseMapper.selectFsAttachmentByFolderName(folderName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public int deleteFsAttachmentByReportId(Long reportId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return baseMapper.deleteFsAttachmentByReportId(reportId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 |