Commit da4e13f9 authored by hongguangwu's avatar hongguangwu

MVP1.7.11-是否自动生成解除劳动合同书 0否1是

parent 7889ff38
...@@ -2,6 +2,7 @@ package com.yifu.cloud.plus.v1.yifu.social.vo; ...@@ -2,6 +2,7 @@ package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle; import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.util.LocalDateTimeUtils; import com.yifu.cloud.plus.v1.yifu.common.core.util.LocalDateTimeUtils;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
...@@ -559,6 +560,7 @@ public class TPreDispatchExportVo implements Serializable { ...@@ -559,6 +560,7 @@ public class TPreDispatchExportVo implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@HeadFontStyle(fontHeightInPoints = 11) @HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="创建时间") @ExcelProperty(value ="创建时间")
@ExcelAttribute(name = "创建时间", needExport = true, isDate = true, dateFormatExport = LocalDateTimeUtils.DATE_TIME_PATTERN) @ExcelAttribute(name = "创建时间", needExport = true, isDate = true, dateFormatExport = LocalDateTimeUtils.DATE_TIME_PATTERN)
......
...@@ -12,8 +12,13 @@ import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialFriendBackLog; ...@@ -12,8 +12,13 @@ import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialFriendBackLog;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
...@@ -21,6 +26,7 @@ import java.net.URL; ...@@ -21,6 +26,7 @@ import java.net.URL;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.Base64; import java.util.Base64;
import java.util.Iterator;
/** /**
* @Author fxj * @Author fxj
...@@ -64,6 +70,7 @@ public class ExcelToImage { ...@@ -64,6 +70,7 @@ public class ExcelToImage {
// file 压缩到1M以内 // file 压缩到1M以内
backLog.setLogInfo("压缩大小前"); backLog.setLogInfo("压缩大小前");
file = compressImage(projectRoot, toImag, 1024 * 1024); file = compressImage(projectRoot, toImag, 1024 * 1024);
backLog.setLogInfo("压缩大小后");
String key = System.currentTimeMillis() + file.getName(); String key = System.currentTimeMillis() + file.getName();
byte[] fileContent = Files.readAllBytes(file.toPath()); byte[] fileContent = Files.readAllBytes(file.toPath());
String base64String = Base64.getEncoder().encodeToString(fileContent); String base64String = Base64.getEncoder().encodeToString(fileContent);
...@@ -75,6 +82,7 @@ public class ExcelToImage { ...@@ -75,6 +82,7 @@ public class ExcelToImage {
return R.ok(url); return R.ok(url);
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
return R.failed(CommonConstants.RESULT_DATA_FAIL+toImagConvertError+e.getMessage()); return R.failed(CommonConstants.RESULT_DATA_FAIL+toImagConvertError+e.getMessage());
} finally { } finally {
if (file.exists()){ if (file.exists()){
...@@ -91,7 +99,7 @@ public class ExcelToImage { ...@@ -91,7 +99,7 @@ public class ExcelToImage {
return R.failed(CommonConstants.RESULT_DATA_FAIL); return R.failed(CommonConstants.RESULT_DATA_FAIL);
} }
//压缩文件到指定大小 //压缩文件到指定大小
private File compressImage(String projectRoot, String toImag, int maxSize) throws IOException { /*private File compressImage(String projectRoot, String toImag, int maxSize) throws IOException {
File originalFile = Paths.get(projectRoot, toImag).toFile(); File originalFile = Paths.get(projectRoot, toImag).toFile();
BufferedImage image = ImageIO.read(originalFile); BufferedImage image = ImageIO.read(originalFile);
int quality = 100; // 从100%开始 int quality = 100; // 从100%开始
...@@ -107,7 +115,56 @@ public class ExcelToImage { ...@@ -107,7 +115,56 @@ public class ExcelToImage {
compressedFile.delete(); compressedFile.delete();
} }
return originalFile; return originalFile;
}*/
private File compressImage(String projectRoot, String toImag, int maxSize) throws IOException {
File originalFile = Paths.get(projectRoot, toImag).toFile();
BufferedImage image = ImageIO.read(originalFile);
// 使用 jpg 格式以便控制压缩质量
String format = "jpg";
File compressedFile = new File(projectRoot, TO_IMAGE_TEMP);
float quality = 0.9f; // 初始压缩质量 (0.0-1.0)
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
ImageWriter writer = findImageWriter(format);
ImageWriteParam writeParam = writer.getDefaultWriteParam();
writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
writeParam.setCompressionQuality(quality);
ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream(compressedFile);
writer.setOutput(imageOutputStream);
writer.write(null, new IIOImage(image, null, null), writeParam);
writer.dispose();
imageOutputStream.close();
// 如果压缩后仍超过限制,递归降低质量重新压缩
if (compressedFile.length() > maxSize && quality > 0.1) {
quality -= 0.1f;
return compressImage(projectRoot, toImag, maxSize); // 递归压缩
} }
}
// 替换原始文件
if (compressedFile.exists()) {
originalFile.delete();
compressedFile.renameTo(originalFile);
}
return originalFile;
}
// 查找可用的 ImageWriter
private ImageWriter findImageWriter(String format) {
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(format);
if (!writers.hasNext()) {
throw new IllegalStateException("No ImageWriter found for format: " + format);
}
return writers.next();
}
public R<URL> excelToImg(InputStream inputStream ,OSSUtil ossUtil){ public R<URL> excelToImg(InputStream inputStream ,OSSUtil ossUtil){
if (null == inputStream || null == ossUtil){ if (null == inputStream || null == ossUtil){
return R.failed(CommonConstants.RESULT_DATA_FAIL+toImagParamError); return R.failed(CommonConstants.RESULT_DATA_FAIL+toImagParamError);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment