Commit 1d869bdd by zhangxingmin

Merge remote-tracking branch 'origin/dev' into prod

# Conflicts:
#	yd-oss-api/yd-oss-api.iml
#	yd-oss-feign/pom.xml
#	yd-oss-feign/yd-oss-feign.iml
#	yd-oss-service/yd-oss-service.iml
parents 9a2e9def 74f31427
......@@ -30,6 +30,7 @@
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2021.0.1.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.4.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.4.2" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.11.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.15" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.4.2" level="project" />
......@@ -63,6 +64,7 @@
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.11" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.11" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.36" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.18" level="project" />
......@@ -128,7 +130,6 @@
<orderEntry type="library" name="Maven: com.yd:yd-question-feign:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: com.yd:yd-base-feign:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-base:4.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.1" level="project" />
<orderEntry type="library" name="Maven: ognl:ognl:3.2.6" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
......@@ -243,16 +244,14 @@
<orderEntry type="library" name="Maven: com.documents4j:documents4j-transformer-api:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-util-all:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-util-transformer-process:1.1.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.11.0" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.21" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.07" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:5.1.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
</component>
</module>
\ No newline at end of file
......@@ -54,10 +54,22 @@
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-poi</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
......@@ -35,8 +35,14 @@ public interface ApiOssFeignClient {
* @param request
* @return
*/
// @PostMapping(value = "/upload/body", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
// Result<ApiUploadResponse> uploadFileBody(@RequestPart("file") MultipartFile file, ApiUploadFileRequest request);
@PostMapping(value = "/upload/body", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<ApiUploadResponse> uploadFileBody(@RequestPart("file") MultipartFile file, ApiUploadFileRequest request);
Result<ApiUploadResponse> uploadFileBody(@RequestPart("file") MultipartFile file,
@RequestPart("request") ApiUploadFileRequest request);
/**
* 下载文件
......@@ -94,9 +100,14 @@ public interface ApiOssFeignClient {
* @param request 批量上传请求参数
* @return 批量上传响应
*/
// @PostMapping(value = "/batch/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
// Result<ApiBatchUploadResponse> batchUploadFiles(
// @RequestPart("files") List<MultipartFile> files,
// ApiUploadFileRequest request);
@PostMapping(value = "/batch/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<ApiBatchUploadResponse> batchUploadFiles(
@RequestPart("files") List<MultipartFile> files,
ApiUploadFileRequest request);
@RequestPart("request") ApiUploadFileRequest request);
}
......@@ -17,6 +17,9 @@
</content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:16.0.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.21" level="project" />
<orderEntry type="library" name="Maven: com.yd:yd-feign:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:3.1.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:3.1.1" level="project" />
......@@ -31,6 +34,7 @@
<orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form-spring:3.8.0" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form:3.8.0" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.3" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.11.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:3.1.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.6.2" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-core:11.8" level="project" />
......@@ -58,6 +62,7 @@
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.6.6" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.11" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.36" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.29" level="project" />
......@@ -99,18 +104,15 @@
<orderEntry type="library" name="Maven: com.yd:yd-user-feign:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: com.yd:yd-base-feign:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-base:4.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.2" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.11" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.11.0" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:5.1.1" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.07" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:16.0.1" level="project" />
<orderEntry type="library" name="Maven: ognl:ognl:3.2.6" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
......
......@@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import com.alibaba.fastjson.JSON;
import com.yd.oss.feign.dto.ExportParam;
import com.yd.oss.feign.dto.ExportResult;
import com.yd.oss.service.dto.OssUploadFileResDto;
......@@ -43,6 +44,9 @@ public class ExcelExportServiceImpl implements ExcelExportService {
*/
@Override
public ExportResult exportAndUploadToOss(List<?> dataList, ExportParam exportParam, Class<?> entityClass) {
log.info("导出Excel并上传到OSS:dataList,{}", JSON.toJSONString(dataList));
log.info("导出Excel并上传到OSS:exportParam,{}", JSON.toJSONString(exportParam));
log.info("导出Excel并上传到OSS:entityClass,{}", JSON.toJSONString(entityClass));
// 添加参数校验
if (exportParam == null) {
return ExportResult.error("导出参数不能为空");
......@@ -231,6 +235,44 @@ public class ExcelExportServiceImpl implements ExcelExportService {
return fieldAnnotationMap;
}
// /**
// * 构建数据Map列表,将对象列表转换为EasyPOI所需的Map结构
// * @param dataList 数据对象列表
// * @param fieldNames 需要导出的字段名称列表
// * @param entityClass 实体类类型
// * @return 数据Map列表
// */
// private List<Map<String, Object>> buildDataMapList(List<?> dataList, List<String> fieldNames, Class<?> entityClass) {
// // 创建数据Map列表
// List<Map<String, Object>> dataMapList = new ArrayList<>();
// if (CollectionUtils.isEmpty(dataList)) {
// return dataMapList;
// }
// // 遍历数据列表中的每个对象
// for (Object data : dataList) {
// // 为每个对象创建字段-值的映射
// Map<String, Object> map = new HashMap<>();
// // 遍历所有需要导出的字段
// for (String fieldName : fieldNames) {
// try {
// // 通过反射获取字段对象
// Field field = entityClass.getDeclaredField(fieldName);
// // 设置字段可访问(突破private限制)
// field.setAccessible(true);
// // 将字段值放入Map,key为字段名,value为字段值
// map.put(fieldName, field.get(data));
// } catch (Exception e) {
// // 如果获取字段值失败,设置为空字符串
// map.put(fieldName, "");
// }
// }
// // 将当前对象的字段映射添加到列表
// dataMapList.add(map);
// }
// return dataMapList;
// }
/**
* 构建数据Map列表,将对象列表转换为EasyPOI所需的Map结构
* @param dataList 数据对象列表
......@@ -239,30 +281,32 @@ public class ExcelExportServiceImpl implements ExcelExportService {
* @return 数据Map列表
*/
private List<Map<String, Object>> buildDataMapList(List<?> dataList, List<String> fieldNames, Class<?> entityClass) {
// 创建数据Map列表
List<Map<String, Object>> dataMapList = new ArrayList<>();
if (CollectionUtils.isEmpty(dataList)) {
return dataMapList;
}
// 遍历数据列表中的每个对象
for (Object data : dataList) {
// 为每个对象创建字段-值的映射
Map<String, Object> map = new HashMap<>();
// 遍历所有需要导出的字段
for (String fieldName : fieldNames) {
try {
// 通过反射获取字段对象
Field field = entityClass.getDeclaredField(fieldName);
// 设置字段可访问(突破private限制)
field.setAccessible(true);
// 将字段值放入Map,key为字段名,value为字段值
map.put(fieldName, field.get(data));
} catch (Exception e) {
// 如果获取字段值失败,设置为空字符串
map.put(fieldName, "");
// 判断是否为 Map 类型(Feign 反序列化结果)
if (data instanceof Map) {
Map<String, Object> dataMap = (Map<String, Object>) data;
for (String fieldName : fieldNames) {
Object value = dataMap.get(fieldName);
map.put(fieldName, value != null ? value : "");
}
} else {
// 原有的反射逻辑,适用于本地直接调用
for (String fieldName : fieldNames) {
try {
Field field = entityClass.getDeclaredField(fieldName);
field.setAccessible(true);
map.put(fieldName, field.get(data));
} catch (Exception e) {
log.warn("字段 {} 获取失败: {}", fieldName, e.getMessage());
map.put(fieldName, "");
}
}
}
// 将当前对象的字段映射添加到列表
dataMapList.add(map);
}
return dataMapList;
......
......@@ -70,7 +70,6 @@
<orderEntry type="library" name="Maven: com.yd:yd-question-feign:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: com.yd:yd-base-feign:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-base:4.4.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.1" level="project" />
<orderEntry type="library" name="Maven: ognl:ognl:3.2.6" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
......@@ -104,6 +103,7 @@
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2021.0.1.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.4.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.4.2" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.11.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.15" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.4.2" level="project" />
......@@ -126,6 +126,7 @@
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.6.6" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.11" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.36" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.29" level="project" />
......@@ -238,17 +239,15 @@
<orderEntry type="library" name="Maven: com.documents4j:documents4j-transformer-api:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-util-all:1.1.12" level="project" />
<orderEntry type="library" name="Maven: com.documents4j:documents4j-util-transformer-process:1.1.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.2" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.11" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.11.0" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.21" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.07" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:5.1.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
</component>
</module>
\ No newline at end of file
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