From cd26732c2a34dbc3f24b0cca8d82e8a365fcba7b Mon Sep 17 00:00:00 2001
From: 孔祥富 <kongxf@daryun.com>
Date: 星期六, 13 三月 2021 19:00:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FilesUploadServiceImpl.java |   69 +++++++++++++++++++++++++++++-----
 1 files changed, 58 insertions(+), 11 deletions(-)

diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FilesUploadServiceImpl.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FilesUploadServiceImpl.java
index 0de6f5a..5d2e1c7 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FilesUploadServiceImpl.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FilesUploadServiceImpl.java
@@ -2,16 +2,20 @@
 
 import java.io.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import cc.mrbird.febs.common.core.constant.ModuleCode;
 import cc.mrbird.febs.common.core.exception.FebsException;
 import cc.mrbird.febs.common.core.utils.FebsUtil;
 import cc.mrbird.febs.common.core.utils.MyUtil;
 import cc.mrbird.febs.common.core.utils.SequenceUtil;
+import cc.mrbird.febs.server.hr.entity.EmpAccessory;
+import cc.mrbird.febs.server.hr.entity.EmpBaseInfo;
 import cc.mrbird.febs.server.hr.entity.FilesUpload;
 import cc.mrbird.febs.server.hr.entity.Folder;
 import cc.mrbird.febs.server.hr.mapper.FilesUploadMapper;
 import cc.mrbird.febs.server.hr.properties.FebsServerHrProperties;
+import cc.mrbird.febs.server.hr.service.IEmpBaseInfoService;
 import cc.mrbird.febs.server.hr.service.IFilesUploadService;
 import cc.mrbird.febs.server.hr.service.IFolderService;
 import cn.hutool.core.io.FileUtil;
@@ -47,6 +51,7 @@
 
     private final IFolderService iFolderService;
     private final FebsServerHrProperties properties;
+    private final IEmpBaseInfoService empBaseInfoService;
     private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser())
             .map(u -> u.getUserId().toString())
             .orElse("1");
@@ -98,8 +103,14 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void updateFilesUpload(FilesUpload filesUpload) {
-        this.saveOrUpdate(filesUpload);
+    public void updateFilesUpload(FilesUpload filesUpload) throws FebsException {
+        if ( filesUpload.getFilesname().indexOf(".")<=0){
+            throw  new FebsException("文件名格式错误");
+        }
+        LambdaUpdateWrapper<FilesUpload> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(FilesUpload::getFilesid,filesUpload.getFilesid())
+                .set(FilesUpload::getFilesname,filesUpload.getFilesname()).set(FilesUpload::getFilesformat,  filesUpload.getFilesname().substring( filesUpload.getFilesname().indexOf(".")+1));
+        this.update(wrapper);
     }
 
     @Override
@@ -108,9 +119,9 @@
         String[] arr = fileids.split(",");
         LambdaUpdateWrapper<FilesUpload> wapper = new LambdaUpdateWrapper<>();
         wapper.in(FilesUpload::getFilesid, arr);
-        wapper.set(FilesUpload::getDelFlag,1);
-        wapper.set(FilesUpload::getModifier,operatorId);
-        wapper.set(FilesUpload::getModifytime,new Date());
+        wapper.set(FilesUpload::getDelFlag, 1);
+        wapper.set(FilesUpload::getModifier, operatorId);
+        wapper.set(FilesUpload::getModifytime, new Date());
         this.update(wapper);
 
         LambdaQueryWrapper<FilesUpload> queryWrapper = new LambdaQueryWrapper<>();
@@ -128,18 +139,24 @@
         String[] arr = fileids.split(",");
         List<File> files = new ArrayList<>();
         List<String> fileName = new ArrayList<>();
+
         Arrays.stream(arr).forEach(i -> {
             FilesUpload filesUpload = this.getById(i);
             Folder folder = iFolderService.getById(filesUpload.getFolderid());
             files.add(new File(properties.getUploadCommonPath() + folder.getFoldername() + "/" + filesUpload.getFilesaddress()));
-            fileName.add(filesUpload.getFilesname());
+            if (fileName.parallelStream().filter(filter -> StrUtil.equals(filesUpload.getFilesname(), filter)).count() == 0) {
+                fileName.add(filesUpload.getFilesname());
+            } else {
+                fileName.add(filesUpload.getFilesname() + fileName.parallelStream().filter(filter -> StrUtil.equals(filesUpload.getFilesname(), filter)).count() + 1);
+            }
+
         });
         MyUtil.download(request, response, files, fileName);
 
     }
 
     @Override
-    public void mvFiles(String fileids,Long folderid) {
+    public void mvFiles(String fileids, Long folderid) {
         String[] arr = fileids.split(",");
 
         LambdaQueryWrapper<FilesUpload> queryWrapper = new LambdaQueryWrapper<>();
@@ -150,17 +167,47 @@
             Folder newfolder = iFolderService.getById(folderid);
             File oldfile = new File(properties.getUploadCommonPath() + folder.getFoldername() + "/" + i.getFilesaddress());
             File newfile = new File(properties.getUploadCommonPath() + newfolder.getFoldername() + "/" + i.getFilesaddress());
-            FileUtil.move(oldfile,newfile,true);
+            FileUtil.move(oldfile, newfile, true);
         });
 
         LambdaUpdateWrapper<FilesUpload> wapper = new LambdaUpdateWrapper<>();
         wapper.in(FilesUpload::getFilesid, arr);
-        wapper.set(FilesUpload::getFolderid,fileids);
-        wapper.set(FilesUpload::getModifier,operatorId);
-        wapper.set(FilesUpload::getModifytime,new Date());
+        wapper.set(FilesUpload::getFolderid, fileids);
+        wapper.set(FilesUpload::getModifier, operatorId);
+        wapper.set(FilesUpload::getModifytime, new Date());
         this.update(wapper);
 
     }
+    @Override
+    public void getImage(String filesid, HttpServletResponse response) throws Exception {
+        FilesUpload filesUpload = this.getById(filesid);
+        if (StrUtil.isBlank(filesUpload.getFilesaddress())) {
+            return;
+        }
+        Folder folder = iFolderService.getById(filesUpload.getFolderid());
+        String path = properties.getUploadCommonPath() + folder.getFoldername() + "/" + filesUpload.getFilesaddress();
+        try (InputStream inputStream = new FileInputStream(path); OutputStream out = response.getOutputStream()) {
+            //byte数组用于存放图片字节数据
+            byte[] buff = new byte[inputStream.available()];
+            inputStream.read(buff);
+            inputStream.close();
+            if (filesUpload.getFilesformat().equals("tif")){
+                //设置发送到客户端的响应内容类型
+                response.setContentType("image/tiff");
+            }else if (filesUpload.getFilesformat().equals("bmp")){
+                response.setContentType("application/x-bmp");
+            }else if (filesUpload.getFilesformat().equals("jpg")){
+                response.setContentType("image/jpeg");
+            }else if (filesUpload.getFilesformat().equals("png")){
+                response.setContentType("image/png");
+            }else if (filesUpload.getFilesformat().equals("gif")){
+                response.setContentType("image/gif");
+            }
+            out.write(buff);
+        }
+    }
+
+
 
 
 }

--
Gitblit v1.8.0