From d8da861e315c42930d2dffae66b90f4e489f9d2b Mon Sep 17 00:00:00 2001
From: yz <yz_0812@outlook.com>
Date: 星期五, 19 二月 2021 00:20:24 +0800
Subject: [PATCH] 修改附件管理
---
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpAccessoryService.java | 14 +
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/LabelServiceImpl.java | 19 +
febs-server/febs-server-hr/src/main/resources/febs-server-hr.properties | 4
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpAccessoryMapper.xml | 2
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IFilesUploadService.java | 2
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FilesUploadServiceImpl.java | 146 +++++----------
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/properties/FebsServerHrProperties.java | 5
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/ILabelService.java | 3
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FolderServiceImpl.java | 8
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/MyUtil.java | 114 ++++++++++++
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/FilesUploadController.java | 14 +
febs-server/febs-server-hr/pom.xml | 18 +
febs-common/febs-common-core/pom.xml | 5
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpAccessory.java | 30 +-
febs-server/febs-server-hr/src/main/resources/bootstrap.yml | 2
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpAccessoryController.java | 26 ++
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpAccessoryServiceImpl.java | 103 ++++++++++-
17 files changed, 369 insertions(+), 146 deletions(-)
diff --git a/febs-common/febs-common-core/pom.xml b/febs-common/febs-common-core/pom.xml
index e7ad386..6766acc 100644
--- a/febs-common/febs-common-core/pom.xml
+++ b/febs-common/febs-common-core/pom.xml
@@ -100,5 +100,10 @@
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
+ <dependency>
+ <groupId>cn.hutool</groupId>
+ <artifactId>hutool-all</artifactId>
+ <version>5.5.8</version>
+ </dependency>
</dependencies>
</project>
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/MyUtil.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/MyUtil.java
new file mode 100644
index 0000000..226d3a1
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/utils/MyUtil.java
@@ -0,0 +1,114 @@
+package cc.mrbird.febs.common.core.utils;
+
+import cc.mrbird.febs.common.core.entity.system.Dic;
+import cc.mrbird.febs.common.core.exception.FebsException;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.lang.Dict;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.multipart.MultipartFile;
+import cn.hutool.core.io.FileUtil;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+@Slf4j
+public class MyUtil {
+
+ public static void download(HttpServletRequest request, HttpServletResponse response, List<File> files , List<String> fileName){
+ //设置压缩包的名字
+ //解决不同浏览器压缩包名字含有中文时乱码的问题
+ String downloadName ="PersonnelInformation-" + DateUtil.format(new Date(), "yyyyMMddhhmmsss") + ".zip";
+ String agent = request.getHeader("USER-AGENT");
+ try {
+ if (agent.contains("MSIE") || agent.contains("Trident")) {
+ downloadName = java.net.URLEncoder.encode(downloadName, "UTF-8");
+ } else {
+ downloadName = new String(downloadName.getBytes("UTF-8"), "ISO-8859-1");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ response.setHeader("Content-Disposition", "attachment;fileName=\"" + downloadName + "\"");
+
+
+ //设置压缩流:直接写入response,实现边压缩边下载
+ ZipOutputStream zipos = null;
+ try {
+ zipos = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream()));
+ //设置压缩方法
+ zipos.setMethod(ZipOutputStream.DEFLATED);
+ } catch (Exception e) {
+ log.error("设置压缩流出现异常" + e);
+ e.printStackTrace();
+ }
+
+ //循环将文件写入压缩流
+ DataOutputStream os = null;
+ for (int i = 0; i < files.size(); i++) {
+ File file = files.get(i);
+ try {
+ //添加ZipEntry,并ZipEntry中写入文件流
+ //这里,加上i是防止要下载的文件有重名的导致下载失败
+ zipos.putNextEntry(new ZipEntry(fileName.get(i)));
+ os = new DataOutputStream(zipos);
+ InputStream is = new FileInputStream(file);
+ byte[] b = new byte[100];
+ int length;
+ while ((length = is.read(b)) != -1) {
+ os.write(b, 0, length);
+ }
+ is.close();
+ zipos.closeEntry();
+ } catch (IOException e) {
+ log.error("循环将文件写入压缩流出现异常" + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ //关闭流
+ try {
+ os.flush();
+ os.close();
+ zipos.close();
+ } catch (IOException e) {
+ log.error("关闭流现异常" + e.getMessage());
+ e.printStackTrace();
+ }
+
+ }
+
+ public static Dict filesUpload(MultipartFile file, String uploadPpath, String nextIdStr) throws FebsException, IOException {
+ if (file.isEmpty()) {
+ throw new FebsException("上传的文件不能为空!请重新上传");
+ }
+ if (file.getSize() <= 0) {
+ throw new FebsException("上传的文件大小需要大于0kb");
+ }
+ if (file.getSize() > 50 * 1024* 1024) {
+ throw new FebsException("上传的文件大于50M");
+ }
+ if (!FileUtil.exist(uploadPpath)) {
+ FileUtil.mkdir(uploadPpath);
+ }
+ //原本名字
+ String fileName = file.getOriginalFilename();
+ String suffix = "";
+ if (fileName.indexOf(".") > 0) {
+ //后缀
+ suffix = fileName.substring(fileName.indexOf("."), fileName.length());
+ }
+ //生成新的名字
+ String newName = nextIdStr + suffix;
+ //上传
+ file.transferTo(new File(uploadPpath + newName));
+ return Dict.create().set("fileName",fileName).set("suffix",suffix).set("newName",newName);
+
+ }
+}
diff --git a/febs-server/febs-server-hr/pom.xml b/febs-server/febs-server-hr/pom.xml
index dfd91b2..bd12f7a 100644
--- a/febs-server/febs-server-hr/pom.xml
+++ b/febs-server/febs-server-hr/pom.xml
@@ -58,23 +58,29 @@
<version>2.2-RELEASE</version>
<scope>compile</scope>
</dependency>
- <dependency>
- <groupId>cn.hutool</groupId>
- <artifactId>hutool-all</artifactId>
- <version>5.5.8</version>
- </dependency>
</dependencies>
<build>
-
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.properties</include>
+ <include>**/*.xml</include>
+ <include>**/*.tld</include>
+ <include>**/*.yml</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ <resource>
<directory>src/main/java</directory>
<includes>
+ <include>**/*.properties</include>
<include>**/*.xml</include>
+ <include>**/*.tld</include>
</includes>
<filtering>false</filtering>
</resource>
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpAccessoryController.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpAccessoryController.java
index 41e93fd..d45dad2 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpAccessoryController.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpAccessoryController.java
@@ -12,8 +12,13 @@
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
import java.util.Map;
/**
@@ -46,9 +51,9 @@
@PostMapping
@PreAuthorize("hasAuthority('empAccessory:add')")
- public void addEmpAccessory(@Valid EmpAccessory empAccessory) throws FebsException {
+ public void addEmpAccessory(@NotNull(message = "{required}") Long labelid,@NotNull(message = "{required}") Long empId, MultipartFile file) throws FebsException {
try {
- this.empAccessoryService.createEmpAccessory(empAccessory);
+ this.empAccessoryService.createEmpAccessory(labelid,file,empId);
} catch (Exception e) {
String message = "新增EmpAccessory失败";
log.error(message, e);
@@ -58,9 +63,9 @@
@DeleteMapping
@PreAuthorize("hasAuthority('empAccessory:delete')")
- public void deleteEmpAccessory(EmpAccessory empAccessory) throws FebsException {
+ public void deleteEmpAccessory(@NotBlank(message = "{required}") String accessoryids) throws FebsException {
try {
- this.empAccessoryService.deleteEmpAccessory(empAccessory);
+ this.empAccessoryService.deleteEmpAccessory(accessoryids);
} catch (Exception e) {
String message = "删除EmpAccessory失败";
log.error(message, e);
@@ -79,4 +84,17 @@
throw new FebsException(message);
}
}
+
+ @PostMapping("/download")
+ @PreAuthorize("hasAuthority('empAccessory:download')")
+ public void download(@NotBlank(message = "{required}") String accessoryids, HttpServletRequest request, HttpServletResponse response) throws FebsException {
+ try {
+ this.empAccessoryService.download(accessoryids,request,response);
+ } catch (Exception e) {
+ String message = "下载文件失败";
+ log.error(message, e);
+ throw new FebsException(message);
+ }
+ }
+
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/FilesUploadController.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/FilesUploadController.java
index 2a61f45..f8d469d 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/FilesUploadController.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/FilesUploadController.java
@@ -50,7 +50,7 @@
@PostMapping
@PreAuthorize("hasAuthority('filesUpload:add')")
- public void addFilesUpload(@NotNull(message = "{required}") Long folderid, MultipartFile file, HttpServletRequest request) throws FebsException {
+ public void addFilesUpload(@NotNull(message = "{required}") Long folderid, MultipartFile file) throws FebsException {
try {
this.filesUploadService.createFilesUpload(folderid, file);
} catch (Exception e) {
@@ -96,4 +96,16 @@
throw new FebsException(message);
}
}
+
+ @PostMapping("/mvFiles")
+ @PreAuthorize("hasAuthority('filesUpload:mv')")
+ public void mvFiles(@NotBlank(message = "{required}") String fileids,@NotNull(message = "{required}") Long folderid) throws FebsException {
+ try {
+ this.filesUploadService.mvFiles(fileids,folderid);
+ } catch (Exception e) {
+ String message = "修改FilesUpload失败";
+ log.error(message, e);
+ throw new FebsException(message);
+ }
+ }
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpAccessory.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpAccessory.java
index cbf4dd1..802e8b0 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpAccessory.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpAccessory.java
@@ -20,14 +20,8 @@
/**
* 附件Id
*/
- @TableId(value = "accessoryId", type = IdType.AUTO)
+ @TableId(value = "accessoryId")
private Long accessoryid;
-
- /**
- * 处罚数量
- */
- @TableField("cf")
- private Integer cf;
/**
* 记录创建时间
@@ -42,17 +36,27 @@
private String creator;
/**
- * 辞职申请数量
- */
- @TableField("czsq")
- private Integer czsq;
-
- /**
* 记录删除标志。0-未删除 1-已删除,默认0
*/
@TableField("delFlag")
private Integer delFlag = 0;
/**
+ * 记录最后更新人
+ */
+ @TableField("modifier")
+ private String modifier;
+ /**
+ * 记录最后更新时间
+ */
+ @TableField("modifyTime")
+ private Date modifytime;
+
+ /**
+ * 记录版本号,用来进行乐观锁控制
+ */
+ @TableField("version")
+ private Integer version;
+ /**
* 员工Id
*/
@TableField("empId")
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpAccessoryMapper.xml b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpAccessoryMapper.xml
index d49f51e..861948d 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpAccessoryMapper.xml
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpAccessoryMapper.xml
@@ -7,7 +7,7 @@
(select dept_Name from t_dept as dept where dept.dept_Id= a.deptId) as deptName,a.jobName,',(SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
- '(SELECT COUNT(1) FROM t_emp_accessory accessory inner join t_label label where label.labelId=accessory.labelId and accessory.delFlag = 0 and label.delFlag = 0) AS ''',
+ '(SELECT COUNT(1) FROM t_emp_accessory accessory inner join t_label label where label.labelId=accessory.labelId and accessory.delFlag = 0 and label.delFlag = 0 and a.empId = accessory.empId and label.labelCode = ''',label.labelCode,''') AS ''',
label.labelCode, ''''
)
)
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/properties/FebsServerHrProperties.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/properties/FebsServerHrProperties.java
index a30c238..9d83604 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/properties/FebsServerHrProperties.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/properties/FebsServerHrProperties.java
@@ -16,5 +16,8 @@
/**
* 文件上传地址
*/
- private String uploadPpath = "D:/upload/hr/";
+ private String uploadCommonPath = "C:/upload/hr/commonfile/";
+
+ private String uploadSinglePath = "C:/upload/hr/singlefile/";
+
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpAccessoryService.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpAccessoryService.java
index 8b64848..6136045 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpAccessoryService.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpAccessoryService.java
@@ -2,11 +2,16 @@
import cc.mrbird.febs.common.core.entity.QueryRequest;
+import cc.mrbird.febs.common.core.exception.FebsException;
import cc.mrbird.febs.server.hr.entity.EmpAccessory;
import cc.mrbird.febs.server.hr.vo.EmpAccessoryVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
import java.util.List;
import java.util.Map;
@@ -36,10 +41,8 @@
/**
* 新增
- *
- * @param empAccessory empAccessory
*/
- void createEmpAccessory(EmpAccessory empAccessory);
+ void createEmpAccessory(Long labelid, MultipartFile file,Long empId) throws FebsException, IOException;
/**
* 修改
@@ -51,7 +54,8 @@
/**
* 删除
*
- * @param empAccessory empAccessory
*/
- void deleteEmpAccessory(EmpAccessory empAccessory);
+ void deleteEmpAccessory(String accessoryids);
+
+ void download(String accessoryids, HttpServletRequest request, HttpServletResponse response);
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IFilesUploadService.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IFilesUploadService.java
index d5bd381..fdfdfec 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IFilesUploadService.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IFilesUploadService.java
@@ -57,4 +57,6 @@
void deleteFilesUpload(String fileids);
void download(String fileids, HttpServletRequest request, HttpServletResponse response);
+
+ void mvFiles(String fileids,Long folderid);
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/ILabelService.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/ILabelService.java
index 6d367d9..d88ec47 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/ILabelService.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/ILabelService.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.common.core.entity.QueryRequest;
+import cc.mrbird.febs.common.core.exception.FebsException;
import cc.mrbird.febs.server.hr.entity.Label;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -37,7 +38,7 @@
*
* @param label label
*/
- void createLabel(Label label);
+ void createLabel(Label label) throws FebsException;
/**
* 修改
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpAccessoryServiceImpl.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpAccessoryServiceImpl.java
index 6503635..1442e08 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpAccessoryServiceImpl.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpAccessoryServiceImpl.java
@@ -1,11 +1,24 @@
package cc.mrbird.febs.server.hr.service.impl;
-import cc.mrbird.febs.server.hr.entity.EmpAccessory;
+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.*;
import cc.mrbird.febs.server.hr.mapper.EmpAccessoryMapper;
+import cc.mrbird.febs.server.hr.properties.FebsServerHrProperties;
import cc.mrbird.febs.server.hr.service.IEmpAccessoryService;
+import cc.mrbird.febs.server.hr.service.IEmpBaseInfoService;
+import cc.mrbird.febs.server.hr.service.ILabelService;
import cc.mrbird.febs.server.hr.vo.EmpAccessoryVO;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.lang.Dict;
+import cn.hutool.core.lang.Snowflake;
+import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Propagation;
@@ -15,9 +28,13 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cc.mrbird.febs.common.core.entity.QueryRequest;
+import org.springframework.web.multipart.MultipartFile;
-import java.util.List;
-import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
/**
* 附件管理 Service实现
@@ -31,6 +48,15 @@
public class EmpAccessoryServiceImpl extends ServiceImpl<EmpAccessoryMapper, EmpAccessory> implements IEmpAccessoryService {
private final EmpAccessoryMapper empAccessoryMapper;
+ private final FebsServerHrProperties properties;
+ private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser())
+ .map(u -> u.getUserId().toString())
+ .orElse("1");
+ private final IEmpBaseInfoService empBaseInfoService;
+ /**
+ * 参数2为数据中心ID 参数1为终端ID
+ */
+ private Snowflake snowflake = IdUtil.getSnowflake(ModuleCode.HR_FIlE, 1);
@Override
public IPage<Map<String,Object>> findEmpAccessorys(QueryRequest request, EmpAccessoryVO vo) {
@@ -99,14 +125,39 @@
@Override
public List<EmpAccessory> findEmpAccessorys(EmpAccessory empAccessory) {
LambdaQueryWrapper<EmpAccessory> queryWrapper = new LambdaQueryWrapper<>();
- // TODO 设置查询条件
+ queryWrapper.eq(EmpAccessory::getDelFlag,0);
+ if (null != empAccessory.getLabelid()) {
+ queryWrapper.eq(EmpAccessory::getLabelid, empAccessory.getLabelid());
+ }
+ if (StrUtil.isNotBlank(empAccessory.getFilesname())) {
+ queryWrapper.like(EmpAccessory::getFilesname, empAccessory.getFilesname());
+ }
+ if (null != empAccessory.getEmpid()) {
+ queryWrapper.eq(EmpAccessory::getEmpid, empAccessory.getEmpid());
+ }
return this.baseMapper.selectList(queryWrapper);
}
@Override
@Transactional(rollbackFor = Exception.class)
- public void createEmpAccessory(EmpAccessory empAccessory) {
- this.save(empAccessory);
+ public void createEmpAccessory(Long labelid, MultipartFile file,Long empId) throws FebsException, IOException {
+ EmpBaseInfo empBaseInfo = empBaseInfoService.getById(empId);
+ String nameAndCertificateNumb = empBaseInfo.getEmpName()+"_"+empBaseInfo.getCertificateNumb()+"/";
+ Dict dict = MyUtil.filesUpload(file,properties.getUploadSinglePath()+nameAndCertificateNumb,snowflake.nextIdStr());
+ EmpAccessory accessory = new EmpAccessory();
+ accessory.setCreatetime(new Date());
+ accessory.setCreator(operatorId);
+ accessory.setDelFlag(0);
+ accessory.setEmpid(empId);
+ accessory.setFilesaddress(dict.getStr("newName"));
+ accessory.setFilesformat(StrUtil.isBlank(dict.getStr("suffix")) ? dict.getStr("suffix") : dict.getStr("suffix").substring(1));
+ accessory.setAccessoryid(SequenceUtil.generateId(0L, ModuleCode.HR_FIlE));
+ accessory.setFilesname(dict.getStr("fileName"));
+ accessory.setLabelid(labelid);
+ accessory.setModifier(operatorId);
+ accessory.setModifytime(new Date());
+ accessory.setVersion(0);
+ this.save(accessory);
}
@Override
@@ -117,9 +168,41 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void deleteEmpAccessory(EmpAccessory empAccessory) {
- LambdaQueryWrapper<EmpAccessory> wapper = new LambdaQueryWrapper<>();
- // TODO 设置删除条件
- this.remove(wapper);
+ public void deleteEmpAccessory(String accessoryids) {
+ String[] arr = accessoryids.split(",");
+ LambdaUpdateWrapper<EmpAccessory> wapper = new LambdaUpdateWrapper<>();
+ wapper.in(EmpAccessory::getAccessoryid,arr);
+ EmpAccessory accessory = new EmpAccessory();
+ accessory.setModifier(operatorId);
+ accessory.setModifytime(new Date());
+ accessory.setDelFlag(1);
+ this.update(accessory,wapper);
+
+ LambdaQueryWrapper<EmpAccessory> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(EmpAccessory::getAccessoryid,arr);
+ List<EmpAccessory> list = this.list(queryWrapper);
+ list.parallelStream().forEach(i-> {
+ EmpBaseInfo empBaseInfo = empBaseInfoService.getById(i.getEmpid());
+ String nameAndCertificateNumb = empBaseInfo.getEmpName()+"_"+empBaseInfo.getCertificateNumb()+"/";
+ FileUtil.del(properties.getUploadSinglePath()+nameAndCertificateNumb+"/" + i.getFilesaddress());
+ });
}
+
+
+ @Override
+ public void download(String accessoryids, HttpServletRequest request, HttpServletResponse response) {
+ String[] arr = accessoryids.split(",");
+ List<File> files = new ArrayList<>();
+ List<String> fileName = new ArrayList<>();
+ Arrays.stream(arr).forEach(i -> {
+ EmpAccessory accessory = this.getById(i);
+ EmpBaseInfo empBaseInfo = empBaseInfoService.getById(accessory.getEmpid());
+ String nameAndCertificateNumb = empBaseInfo.getEmpName()+"_"+empBaseInfo.getCertificateNumb()+"/";
+ files.add(new File(properties.getUploadSinglePath() + nameAndCertificateNumb + accessory.getFilesaddress()));
+ fileName.add(accessory.getFilesname());
+ });
+ MyUtil.download(request, response, files, fileName);
+
+ }
+
}
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 7ca006a..674daa8 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
@@ -6,15 +6,16 @@
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.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.IFilesUploadService;
-import cn.hutool.core.date.DateUtil;
+import cc.mrbird.febs.server.hr.service.IFolderService;
import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.io.file.FileWriter;
+import cn.hutool.core.lang.Dict;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
@@ -32,8 +33,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
/**
* 文件上传 Service实现
@@ -46,7 +45,7 @@
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class FilesUploadServiceImpl extends ServiceImpl<FilesUploadMapper, FilesUpload> implements IFilesUploadService {
- private final FilesUploadMapper filesUploadMapper;
+ private final IFolderService iFolderService;
private final FebsServerHrProperties properties;
private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser())
.map(u -> u.getUserId().toString())
@@ -66,7 +65,7 @@
@Override
public List<FilesUpload> findFilesUploads(FilesUpload filesUpload) {
LambdaQueryWrapper<FilesUpload> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(FilesUpload::getDelFlag,0);
+ queryWrapper.eq(FilesUpload::getDelFlag, 0);
if (null != filesUpload.getFolderid()) {
queryWrapper.eq(FilesUpload::getFolderid, filesUpload.getFolderid());
}
@@ -80,38 +79,16 @@
@Override
@Transactional(rollbackFor = Exception.class)
public void createFilesUpload(Long folderid, MultipartFile file) throws FebsException, IOException {
- if (file.isEmpty()) {
- throw new FebsException("上传的文件不能为空!请重新上传");
- }
- if (file.getSize() <= 0) {
- throw new FebsException("上传的文件大小需要大于0kb");
- }
- if (file.getSize() > 50 * 1024* 1024) {
- throw new FebsException("上传的文件大于50M");
- }
- if (!FileUtil.exist(properties.getUploadPpath())) {
- FileUtil.mkdir(properties.getUploadPpath());
- }
- //原本名字
- String fileName = file.getOriginalFilename();
- String suffix = "";
- if (fileName.indexOf(".") > 0) {
- //后缀
- suffix = fileName.substring(fileName.indexOf("."), fileName.length());
- }
- //生成新的名字
- String newName = snowflake.nextIdStr() + suffix;
- //上传
- file.transferTo(new File(properties.getUploadPpath() + newName));
-
+ Folder folder = iFolderService.getById(folderid);
+ Dict dict = MyUtil.filesUpload(file, properties.getUploadCommonPath() + folder.getFoldername() + "/", snowflake.nextIdStr());
FilesUpload filesUpload = new FilesUpload();
filesUpload.setCreatetime(new Date());
filesUpload.setCreator(operatorId);
filesUpload.setDelFlag(0);
- filesUpload.setFilesaddress(newName);
- filesUpload.setFilesformat(StrUtil.isBlank(suffix) ? suffix : suffix.substring(1));
+ filesUpload.setFilesaddress(dict.getStr("newName"));
+ filesUpload.setFilesformat(StrUtil.isBlank(dict.getStr("suffix")) ? dict.getStr("suffix") : dict.getStr("suffix").substring(1));
filesUpload.setFilesid(SequenceUtil.generateId(0L, ModuleCode.HR_FIlE));
- filesUpload.setFilesname(fileName);
+ filesUpload.setFilesname(dict.getStr("fileName"));
filesUpload.setFolderid(folderid);
filesUpload.setModifier(operatorId);
filesUpload.setModifytime(new Date());
@@ -130,13 +107,20 @@
public void deleteFilesUpload(String fileids) {
String[] arr = fileids.split(",");
LambdaUpdateWrapper<FilesUpload> wapper = new LambdaUpdateWrapper<>();
- wapper.in(FilesUpload::getFilesid,arr).setSql("delFlag = 1");
- this.update(wapper);
+ wapper.in(FilesUpload::getFilesid, arr);
+ FilesUpload filesUpload = new FilesUpload();
+ filesUpload.setModifier(operatorId);
+ filesUpload.setModifytime(new Date());
+ filesUpload.setDelFlag(1);
+ this.update(filesUpload,wapper);
LambdaQueryWrapper<FilesUpload> queryWrapper = new LambdaQueryWrapper<>();
- wapper.in(FilesUpload::getFilesid,arr);
+ queryWrapper.in(FilesUpload::getFilesid, arr);
List<FilesUpload> list = this.list(queryWrapper);
- list.parallelStream().forEach(i-> FileUtil.del(properties.getUploadPpath() + i.getFilesaddress()));
+ list.parallelStream().forEach(i -> {
+ Folder folder = iFolderService.getById(i.getFolderid());
+ FileUtil.del(properties.getUploadCommonPath() + folder.getFoldername() + "/" + i.getFilesaddress());
+ });
}
@@ -147,71 +131,39 @@
List<String> fileName = new ArrayList<>();
Arrays.stream(arr).forEach(i -> {
FilesUpload filesUpload = this.getById(i);
- files.add(new File(properties.getUploadPpath() + filesUpload.getFilesaddress()));
+ Folder folder = iFolderService.getById(filesUpload.getFolderid());
+ files.add(new File(properties.getUploadCommonPath() + folder.getFoldername() + "/" + filesUpload.getFilesaddress()));
fileName.add(filesUpload.getFilesname());
});
- //设置压缩包的名字
- //解决不同浏览器压缩包名字含有中文时乱码的问题
- String downloadName ="PersonnelInformation-" + DateUtil.format(new Date(), "yyyyMMddhhmmsss") + ".zip";
- String agent = request.getHeader("USER-AGENT");
- try {
- if (agent.contains("MSIE") || agent.contains("Trident")) {
- downloadName = java.net.URLEncoder.encode(downloadName, "UTF-8");
- } else {
- downloadName = new String(downloadName.getBytes("UTF-8"), "ISO-8859-1");
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- response.setHeader("Content-Disposition", "attachment;fileName=\"" + downloadName + "\"");
-
-
- //设置压缩流:直接写入response,实现边压缩边下载
- ZipOutputStream zipos = null;
- try {
- zipos = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream()));
- //设置压缩方法
- zipos.setMethod(ZipOutputStream.DEFLATED);
- } catch (Exception e) {
- log.error("设置压缩流出现异常" + e.getMessage());
- e.printStackTrace();
- }
-
- //循环将文件写入压缩流
- DataOutputStream os = null;
- for (int i = 0; i < files.size(); i++) {
- File file = files.get(i);
- try {
- //添加ZipEntry,并ZipEntry中写入文件流
- //这里,加上i是防止要下载的文件有重名的导致下载失败
- zipos.putNextEntry(new ZipEntry(fileName.get(i)));
- os = new DataOutputStream(zipos);
- InputStream is = new FileInputStream(file);
- byte[] b = new byte[100];
- int length;
- while ((length = is.read(b)) != -1) {
- os.write(b, 0, length);
- }
- is.close();
- zipos.closeEntry();
- } catch (IOException e) {
- log.error("循环将文件写入压缩流出现异常" + e.getMessage());
- e.printStackTrace();
- }
- }
-
- //关闭流
- try {
- os.flush();
- os.close();
- zipos.close();
- } catch (IOException e) {
- log.error("关闭流现异常" + e.getMessage());
- e.printStackTrace();
- }
+ MyUtil.download(request, response, files, fileName);
}
+ @Override
+ public void mvFiles(String fileids,Long folderid) {
+ String[] arr = fileids.split(",");
+
+ LambdaQueryWrapper<FilesUpload> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(FilesUpload::getFilesid, arr);
+ List<FilesUpload> list = this.list(queryWrapper);
+ list.parallelStream().forEach(i -> {
+ Folder folder = iFolderService.getById(i.getFolderid());
+ 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);
+ });
+
+ LambdaUpdateWrapper<FilesUpload> wapper = new LambdaUpdateWrapper<>();
+ wapper.in(FilesUpload::getFilesid, arr);
+ FilesUpload filesUpload = new FilesUpload();
+ filesUpload.setModifier(operatorId);
+ filesUpload.setModifytime(new Date());
+ filesUpload.setDelFlag(1);
+ filesUpload.setFolderid(folderid);
+ this.update(filesUpload,wapper);
+
+ }
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FolderServiceImpl.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FolderServiceImpl.java
index cf984dc..82f908f 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FolderServiceImpl.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FolderServiceImpl.java
@@ -73,7 +73,11 @@
@Transactional(rollbackFor = Exception.class)
public void deleteFolder(Folder folder) {
LambdaUpdateWrapper<Folder> wapper = new LambdaUpdateWrapper<>();
- wapper.eq(Folder::getFolderid,folder.getFolderid()).setSql("delFlag = 1");
- this.update(wapper);
+ wapper.eq(Folder::getFolderid,folder.getFolderid());
+ Folder updatefolder = new Folder();
+ updatefolder.setModifier(operatorId);
+ updatefolder.setModifytime(new Date());
+ updatefolder.setDelFlag(1);
+ this.update(updatefolder,wapper);
}
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/LabelServiceImpl.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/LabelServiceImpl.java
index 9fb814f..fdd526d 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/LabelServiceImpl.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/LabelServiceImpl.java
@@ -1,12 +1,14 @@
package cc.mrbird.febs.server.hr.service.impl;
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.SequenceUtil;
import cc.mrbird.febs.server.hr.entity.Folder;
import cc.mrbird.febs.server.hr.entity.Label;
import cc.mrbird.febs.server.hr.mapper.LabelMapper;
import cc.mrbird.febs.server.hr.service.ILabelService;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -55,7 +57,16 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void createLabel(Label label) {
+ public void createLabel(Label label) throws FebsException {
+ LambdaQueryWrapper<Label> queryWrapper = new LambdaQueryWrapper();
+ queryWrapper.eq(Label::getLabelname,label.getLabelname()).or().eq(Label::getLabelcode,label.getLabelcode());
+ Label l = this.getOne(queryWrapper);
+ if(StrUtil.equals(label.getLabelname(),l.getLabelname())){
+ throw new FebsException("标签名字重复");
+ }else if(StrUtil.equals(label.getLabelcode(),l.getLabelcode())){
+ throw new FebsException("标签code重复");
+ }
+
label.setLabelid(SequenceUtil.generateId(0L, ModuleCode.HR_FIlE));
label.setCreator(operatorId);
label.setModifier(operatorId);
@@ -75,7 +86,11 @@
@Transactional(rollbackFor = Exception.class)
public void deleteLabel(Label label) {
LambdaUpdateWrapper<Label> wapper = new LambdaUpdateWrapper<>();
- wapper.eq(Label::getLabelid,label.getLabelid()).setSql("delFlag = 1");
+ wapper.eq(Label::getLabelid,label.getLabelid());
+ Label updateLabel = new Label();
+ updateLabel.setModifier(operatorId);
+ updateLabel.setModifytime(new Date());
+ updateLabel.setDelFlag(1);
this.update(wapper);
}
}
diff --git a/febs-server/febs-server-hr/src/main/resources/bootstrap.yml b/febs-server/febs-server-hr/src/main/resources/bootstrap.yml
index 621e447..052ea73 100644
--- a/febs-server/febs-server-hr/src/main/resources/bootstrap.yml
+++ b/febs-server/febs-server-hr/src/main/resources/bootstrap.yml
@@ -6,7 +6,7 @@
config:
server-addr: ${nacos.url}:8848
group: DEFAULT_GROUP
- prefix: febs-server-Hr
+ prefix: febs-server-hr
file-extension: yaml
discovery:
server-addr: ${nacos.url}:8848
diff --git a/febs-server/febs-server-hr/src/main/resources/febs-server-hr.properties b/febs-server/febs-server-hr/src/main/resources/febs-server-hr.properties
index 157fb3c..47377c8 100644
--- a/febs-server/febs-server-hr/src/main/resources/febs-server-hr.properties
+++ b/febs-server/febs-server-hr/src/main/resources/febs-server-hr.properties
@@ -1,2 +1,2 @@
-# 批量插入单次最大值,比如配置为1000,那么数据库插入1000条数据commit一次
-febs.server.hr.uploadPpath=C:/upload/hr/
+febs.server.hr.uploadCommonPath=C:/upload/hr/commonfile/
+febs.server.hr.uploadSinglePath=C:/upload/hr/singlefile/
--
Gitblit v1.8.0