From b7d3b5954bc0f811c85b0c4efb9c2095ddef9a99 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 26 八月 2025 11:10:10 +0800
Subject: [PATCH] 单据同步功能优化 单据修改接口优化
---
rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java | 105 ++++++++++++++++++++++++++++++----------------------
1 files changed, 60 insertions(+), 45 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java
index 146149b..5f6e0c4 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java
@@ -2,28 +2,21 @@
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.entity.ImportParams;
-import cn.afterturn.easypoi.excel.entity.result.ExcelVerifyHandlerResult;
-import cn.afterturn.easypoi.handler.inter.IExcelDataHandler;
-import com.google.common.collect.Lists;
-import com.vincent.rsf.common.domain.BeanValidators;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.common.Cools;
-import com.vincent.rsf.server.common.handler.AggregationDataHandler;
-import com.vincent.rsf.server.common.handler.ExcelDictHandlerImpl;
+import com.vincent.rsf.framework.common.SpringUtils;
+import com.vincent.rsf.server.manager.entity.excel.MatnrsTemplate;
import com.vincent.rsf.server.manager.entity.excel.annotation.ExcelComment;
+import com.vincent.rsf.server.system.entity.Fields;
+import com.vincent.rsf.server.system.service.FieldsService;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
-import javax.validation.ConstraintViolationException;
-import javax.validation.Validation;
-import javax.validation.Validator;
-import javax.validation.ValidatorFactory;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
@@ -43,20 +36,27 @@
try {
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("export", "UTF-8"));
workbook.write(response.getOutputStream());
- } catch (IOException ignore) {}
+ } catch (IOException ignore) {
+ }
}
public static <T> Workbook create(List<T> list, Class<T> clz) {
- return create(list, clz, false);
+ return create(list, clz, false);
}
public static <T> Workbook create(List<T> list, Class<T> clz, boolean flagTemplate) {
- HSSFWorkbook workbook = new HSSFWorkbook();
+ XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet(clz.getSimpleName());
Row header = sheet.createRow(0);
Field[] fields = Cools.getAllFields(clz);
int headerIdx = 0;
+ FieldsService itemService = SpringUtils.getBean(FieldsService.class);
+ List<Fields> sysFields = itemService.list(new LambdaQueryWrapper<Fields>()
+ .eq(Fields::getStatus, 1)
+ .eq(Fields::getFlagEnable, 1));
+
+
for (Field field : fields) {
if (Modifier.isFinal(field.getModifiers())
|| Modifier.isStatic(field.getModifiers())
@@ -65,9 +65,7 @@
}
String memo = "Undefined";
if (flagTemplate) {
- if (field.isAnnotationPresent(ExcelComment.class)) {
- memo = field.getAnnotation(ExcelComment.class).value();
- }
+ memo = field.getName();
} else {
if (field.isAnnotationPresent(Excel.class)) {
memo = field.getAnnotation(Excel.class).name();
@@ -79,39 +77,53 @@
header.createCell(headerIdx).setCellValue(memo);
headerIdx++;
}
-
- int rowIndex = 1;
- for (T t : list) {
- Row row = sheet.createRow(rowIndex++);
-
- int cellIndex = 0;
- for (Field field : fields) {
- if (Modifier.isFinal(field.getModifiers())
- || Modifier.isStatic(field.getModifiers())
- || Modifier.isTransient(field.getModifiers())) {
- continue;
- }
-
- // 姝よ寰堥噸瑕侊紝鐗瑰埆鏄瓧娈典负private鏃�
- field.setAccessible(true);
- Object value = null;
- try {
- value = field.get(t);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
- if (value != null) {
- if (value instanceof Date) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- row.createCell(cellIndex).setCellValue(sdf.format((Date) value));
+ if (clz.equals(MatnrsTemplate.class)) {
+ //娣诲姞鎵╁睍瀛楁鍒悕
+ if (!sysFields.isEmpty()) {
+ for (Fields field : sysFields) {
+ if (flagTemplate) {
+ header.createCell(headerIdx).setCellValue(field.getFields());
} else {
- row.createCell(cellIndex).setCellValue(value.toString());
+ header.createCell(headerIdx).setCellValue(field.getFieldsAlise());
}
+ headerIdx++;
}
- cellIndex++;
}
}
+ int rowIndex = 1;
+ if (!Objects.isNull(list)) {
+ for (T t : list) {
+ Row row = sheet.createRow(rowIndex++);
+
+ int cellIndex = 0;
+ for (Field field : fields) {
+ if (Modifier.isFinal(field.getModifiers())
+ || Modifier.isStatic(field.getModifiers())
+ || Modifier.isTransient(field.getModifiers())) {
+ continue;
+ }
+
+ // 姝よ寰堥噸瑕侊紝鐗瑰埆鏄瓧娈典负private鏃�
+ field.setAccessible(true);
+ Object value = null;
+ try {
+ value = field.get(t);
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ if (value != null) {
+ if (value instanceof Date) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ row.createCell(cellIndex).setCellValue(sdf.format((Date) value));
+ } else {
+ row.createCell(cellIndex).setCellValue(value.toString());
+ }
+ }
+ cellIndex++;
+ }
+ }
+ }
for (int i = 0; i <= fields.length; i++) {
sheet.autoSizeColumn(i);
}
@@ -122,11 +134,13 @@
/**
* 娣诲姞瀵煎叆excel閰嶇疆鍙傛暟
* 娉細榛樿閰嶇疆鍙弧瓒冲綋鍓嶉渶姹�
+ *
* @return
*/
public static ImportParams getDefaultImportParams() {
ImportParams importParams = new ImportParams();
importParams.setTitleRows(0);
+// importParams.setNeedVerify(true);
importParams.setHeadRows(1);
importParams.setSheetNum(1);
return importParams;
@@ -134,6 +148,7 @@
/**
* 鏍规嵁 {@code tClass} 鐩稿叧鎴愬憳鍙橀噺鐨� {@link ExcelComment#example()} 瀛楁鍒涘缓妯℃嫙鏁版嵁锛屾殏涓嶆敮鎸� 澶嶆潅绫诲瀷
+ *
* @param tClass
* @return
*/
--
Gitblit v1.9.1