提交 a12bb120 authored 作者: 133's avatar 133

修改workservice

上级 9c06afc9
......@@ -6,13 +6,15 @@ import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.file.service.UseReportFIleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.RequestEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.MultipartRequest;
......@@ -21,6 +23,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.tykj.dev.device.file.entity.FileRet;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
......@@ -40,117 +43,42 @@ public class FileController {
public String url;
@Value("${preview.path}")
public String preview;
@Autowired
UseReportFIleService useReportFIleService;
/**
* 文件上传
*/
@ApiOperation(value = "单文件上传")
@PostMapping("/upload")
public ResponseEntity upload(HttpServletRequest request) {
MultipartRequest multiRequest = (MultipartRequest) request;
MultipartFile file = multiRequest.getFile("file");
String originalFilename = file.getOriginalFilename();
System.out.println(originalFilename);
File file1 = new File(url);
if (!file1.exists()) {
file1.mkdirs();
}
FileOutputStream fos = null;
InputStream inputStream = null;
OutputStream os = null;
String[] split = originalFilename.split("\\.");
String newName=UUID.randomUUID().toString()+"."+split[split.length-1];
byte[] typeByte = new byte[1024*1024*10];
try {
inputStream = file.getInputStream();
fos = new FileOutputStream(url+newName);
int i = 0;
while((i=inputStream.read(typeByte))!=-1){
fos.write(typeByte,0,i);
}
fos.flush();
} catch (IOException e) {
e.printStackTrace();
}
if(inputStream!=null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
inputStream = null;
}
}
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
fos = null;
}
}
if(os!=null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
os = null;
}
}
return ResponseEntity.ok(new FileRet(originalFilename,url+newName,preview+newName));
return ResponseEntity.ok(fileUpload(file));
}
/**
* 文件下载
*/
@PostMapping("/download")
public void download(@RequestBody FileRet fileRet, HttpServletResponse response, HttpServletRequest httpServletRequest){
String fileName = fileRet.getName();
response.setHeader("content-type", "application/octet-stream");
response.setContentType("application/octet-stream");
try {
response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
@ApiOperation(value = "文件下载")
@GetMapping("/download")
public void download(@RequestParam String url,@RequestParam String name,HttpServletResponse response, HttpServletRequest httpServletRequest){
setFileDownloadHeader(httpServletRequest, response, fileName);
OutputStream os = null;
InputStream is = null;
BufferedInputStream bs = null;
byte[] buffer = new byte[1024];
try {
is = new FileInputStream(new File(fileRet.getFilePath()));
bs = new BufferedInputStream(is);
os = response.getOutputStream();
int i = bs.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bs.read(buffer);
}
os.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bs.close();
is.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@ApiOperation(value = "多文件上传")
@PostMapping(value = "/many/upload")
public ResponseEntity<List<FileRet>> manyFileUpload(HttpServletRequest request) {
List<FileRet> fileRets=new ArrayList<>();
List<MultipartFile> multipartFiles = ((MultipartHttpServletRequest) request).getFiles("file");
for (MultipartFile file : multipartFiles) {
fileRets.add(fileUpload(file));
}
return ResponseEntity.ok(fileRets);
}
@ApiOperation(value = "上传图片转pdf")
@PostMapping("/print/pdf")
public ResponseEntity fileUpload(HttpServletRequest request) throws IOException, DocumentException {
......@@ -187,24 +115,64 @@ public class FileController {
return ResponseEntity.ok(new FileRet("",url+"print/"+fileName+fileName,preview+"print/"+fileName));
}
/**
* 解决中文名称
*/
private void setFileDownloadHeader(HttpServletRequest request, HttpServletResponse response, String fileName) {
private FileRet fileUpload(MultipartFile file){
String originalFilename = file.getOriginalFilename();
System.out.println(originalFilename);
File file1 = new File(url);
if (!file1.exists()) {
file1.mkdirs();
}
FileOutputStream fos = null;
InputStream inputStream = null;
OutputStream os = null;
String[] split = originalFilename.split("\\.");
String newName=UUID.randomUUID().toString()+"."+split[split.length-1];
byte[] typeByte = new byte[1024*1024*10];
try {
//中文文件名支持
String encodedfileName;
String agent = request.getHeader("USER-AGENT");
if (null != agent && agent.contains("MSIE")) {//IE
encodedfileName = java.net.URLEncoder.encode(fileName, "UTF-8");
} else if (null != agent && agent.contains("Mozilla")) {
encodedfileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
} else {
encodedfileName = java.net.URLEncoder.encode(fileName, "UTF-8");
inputStream = file.getInputStream();
fos = new FileOutputStream(url+newName);
int i = 0;
while((i=inputStream.read(typeByte))!=-1){
fos.write(typeByte,0,i);
}
response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedfileName + "\"");
} catch (UnsupportedEncodingException e) {
fos.flush();
} catch (IOException e) {
e.printStackTrace();
}
if(inputStream!=null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
inputStream = null;
}
}
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
fos = null;
}
}
if(os!=null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
os = null;
}
}
return new FileRet(originalFilename,url+newName,preview+newName);
}
}
package com.tykj.dev.device.file.service.Impl;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
......@@ -8,8 +9,12 @@ import org.springframework.beans.factory.annotation.Value;
import com.tykj.dev.device.file.entity.WrodParameter;
import com.tykj.dev.device.file.service.UseReportFIleService;
import java.io.FileOutputStream;
import java.io.IOException;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.UUID;
/**
* @author zjm
......@@ -18,13 +23,15 @@ import java.io.IOException;
* @Description TODO
* @createTime 2020年09月15日 19:33:00
*/
@Service
@Slf4j
public class UseReportFIleServiceImpl implements UseReportFIleService {
@Value("${file.path}")
public String url;
@Value("${preview.path}")
public String preview;
@Override
public String findToFileService(WrodParameter wrodParameter) throws IOException {
public void findToFileService(WrodParameter wrodParameter, HttpServletResponse response, HttpServletRequest httpServletRequest) throws IOException {
XWPFDocument doc = new XWPFDocument();// 创建Word文件
XWPFParagraph p = doc.createParagraph();// 新建一个段落
// p.setAlignment(ParagraphAlignment.CENTER);// 设置段落的对齐方式
......@@ -76,12 +83,111 @@ public class UseReportFIleServiceImpl implements UseReportFIleService {
p.setAlignment(ParagraphAlignment.RIGHT);
XWPFRun title7 = p.createRun();
title7.setText("2020年12月1日");
FileOutputStream out = new FileOutputStream(url+wrodParameter.getTitle1()+".doc");
String fileName=wrodParameter.getTitle1() +".doc";
url=url+UUID.randomUUID().toString()+".doc";
FileOutputStream out = new FileOutputStream(url);
doc.write(out);
out.close();
return preview+wrodParameter.getTitle1()+".doc";
response.setContentType("application/x-download");
try {
response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
setFileDownloadHeader(httpServletRequest, response, fileName);
OutputStream os = null;
InputStream is = null;
BufferedInputStream bs = null;
byte[] buffer = new byte[1024];
try {
is = new FileInputStream(new File(url));
bs = new BufferedInputStream(is);
os = response.getOutputStream();
int i = bs.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bs.read(buffer);
}
os.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bs.close();
is.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void download(String url, String name, HttpServletResponse response, HttpServletRequest httpServletRequest) {
String fileName =name;
log.info("---------");
// response.setHeader("content-type", "application/octet-stream");
response.setContentType("application/x-download");
try {
response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
setFileDownloadHeader(httpServletRequest, response, fileName);
OutputStream os = null;
InputStream is = null;
BufferedInputStream bs = null;
byte[] buffer = new byte[1024];
try {
is = new FileInputStream(new File(url));
bs = new BufferedInputStream(is);
os = response.getOutputStream();
int i = bs.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bs.read(buffer);
}
os.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bs.close();
is.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 解决中文名称
*/
private void setFileDownloadHeader(HttpServletRequest request, HttpServletResponse response, String fileName) {
try {
//中文文件名支持
String encodedfileName;
String agent = request.getHeader("USER-AGENT");
if (null != agent && agent.contains("MSIE")) {//IE
encodedfileName = java.net.URLEncoder.encode(fileName, "UTF-8");
} else if (null != agent && agent.contains("Mozilla")) {
encodedfileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
} else {
encodedfileName = java.net.URLEncoder.encode(fileName, "UTF-8");
}
response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedfileName + "\"");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
......@@ -2,8 +2,13 @@ package com.tykj.dev.device.file.service;
import com.tykj.dev.device.file.entity.WrodParameter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public interface UseReportFIleService {
String findToFileService(WrodParameter wrodParameter) throws IOException;
void findToFileService(WrodParameter wrodParameter, HttpServletResponse response, HttpServletRequest httpServletRequest) throws IOException;
void download(String url,String name,HttpServletResponse response, HttpServletRequest httpServletRequest);
}
......@@ -338,6 +338,18 @@
</exclusions>
</dependency>
<dependency>
<groupId>com.tykj.dev</groupId>
<artifactId>config</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>com.tykj.dev</groupId>
<artifactId>union</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Spring Security Test -->
<dependency>
<groupId>org.springframework.security</groupId>
......
......@@ -263,11 +263,13 @@ public class UserServiceImpl implements UserService {
HandoverUser handoverUser = userDao.findById(userId).get().toHandoverUserVo();
Mgrcert mgrcert = mgrcertDao.findByUserId(userId);
if (handoverUser.getTrainStatus()!=2) {
handoverUser.setCertName(mgrcert.getCertName());
handoverUser.setCertNum(mgrcert.getCertNum());
handoverUser.setIssueDate(mgrcert.getIssueDate());
handoverUser.setExpiryDate(mgrcert.getExpiryDate());
handoverUser.setIsExpiry(mgrcert.getIsExpiry());
if (mgrcert!=null) {
handoverUser.setCertName(mgrcert.getCertName());
handoverUser.setCertNum(mgrcert.getCertNum());
handoverUser.setIssueDate(mgrcert.getIssueDate());
handoverUser.setExpiryDate(mgrcert.getExpiryDate());
handoverUser.setIsExpiry(mgrcert.getIsExpiry());
}
handoverUser.setUnitsName(unitsService.findById(handoverUser.getUnitsId()).getName());
}
return handoverUser;
......
......@@ -78,11 +78,6 @@
<artifactId>rfid</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.tykj.dev</groupId>
<artifactId>device</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.tykj.dev</groupId>
<artifactId>blockcha</artifactId>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论