From b0ff258970c360c9b6bb36930528a290864052db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= <2270033969@qq.com>
Date: Sun, 1 Sep 2024 13:34:27 +0800
Subject: [PATCH] =?UTF-8?q?refactor(common-excel):=20=E6=94=AF=E6=8C=81?=
=?UTF-8?q?=E5=AD=97=E5=85=B8=E8=87=AA=E5=8A=A8=E8=BD=AC=E6=8D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pig-common/pig-common-bom/pom.xml | 7 +-
.../com/pig4cloud/pig/common/core/util/R.java | 2 +
pig-common/pig-common-excel/pom.xml | 46 ++++++++++
.../common/excel/ExcelAutoConfiguration.java | 30 +++++++
.../provider/RemoteDictDataProvider.java | 83 +++++++++++++++++++
...ot.autoconfigure.AutoConfiguration.imports | 1 +
pig-common/pom.xml | 1 +
pig-upms/pig-upms-api/pom.xml | 6 +-
.../pig/admin/api/vo/UserExcelVO.java | 2 +
9 files changed, 174 insertions(+), 4 deletions(-)
create mode 100755 pig-common/pig-common-excel/pom.xml
create mode 100644 pig-common/pig-common-excel/src/main/java/com/pig4cloud/pig/common/excel/ExcelAutoConfiguration.java
create mode 100644 pig-common/pig-common-excel/src/main/java/com/pig4cloud/pig/common/excel/provider/RemoteDictDataProvider.java
create mode 100644 pig-common/pig-common-excel/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml
index c27625eed..8636b2e5a 100644
--- a/pig-common/pig-common-bom/pom.xml
+++ b/pig-common/pig-common-bom/pom.xml
@@ -28,7 +28,7 @@
9.0.0
4.3.1
1.7.0
- 3.3.0
+ 3.3.1-SNAPSHOT
7.1
3.0.0
2.3.5
@@ -88,6 +88,11 @@
pig-common-xss
${revision}
+
+ com.pig4cloud
+ pig-common-excel
+ ${revision}
+
com.pig4cloud
pig-upms-api
diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/R.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/R.java
index 7b79afa24..1800f16c3 100755
--- a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/R.java
+++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/R.java
@@ -19,6 +19,7 @@
import com.pig4cloud.pig.common.core.constant.CommonConstants;
import lombok.*;
import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
import java.io.Serializable;
@@ -32,6 +33,7 @@
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
+@FieldNameConstants
public class R implements Serializable {
private static final long serialVersionUID = 1L;
diff --git a/pig-common/pig-common-excel/pom.xml b/pig-common/pig-common-excel/pom.xml
new file mode 100755
index 000000000..556aa5d12
--- /dev/null
+++ b/pig-common/pig-common-excel/pom.xml
@@ -0,0 +1,46 @@
+
+
+
+
+ 4.0.0
+
+ com.pig4cloud
+ pig-common
+ ${revision}
+
+
+ pig-common-excel
+ jar
+
+ excel 导入导出处理模块
+
+
+
+
+ com.pig4cloud
+ pig-common-core
+
+
+
+ com.pig4cloud.excel
+ excel-spring-boot-starter
+
+
+
diff --git a/pig-common/pig-common-excel/src/main/java/com/pig4cloud/pig/common/excel/ExcelAutoConfiguration.java b/pig-common/pig-common-excel/src/main/java/com/pig4cloud/pig/common/excel/ExcelAutoConfiguration.java
new file mode 100644
index 000000000..1cdac4bf5
--- /dev/null
+++ b/pig-common/pig-common-excel/src/main/java/com/pig4cloud/pig/common/excel/ExcelAutoConfiguration.java
@@ -0,0 +1,30 @@
+package com.pig4cloud.pig.common.excel;
+
+import com.pig4cloud.pig.common.excel.provider.RemoteDictDataProvider;
+import com.pig4cloud.plugin.excel.handler.DictDataProvider;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * excel 自动装配类
+ *
+ * @author lengleng
+ * @date 2024/9/1
+ */
+@AutoConfiguration
+public class ExcelAutoConfiguration {
+
+ /**
+ * dict 数据提供程序
+ * @param restTemplate REST 模板
+ * @return {@link DictDataProvider }
+ */
+ @Bean
+ @ConditionalOnMissingBean
+ public DictDataProvider dictDataProvider(RestTemplate restTemplate) {
+ return new RemoteDictDataProvider(restTemplate);
+ }
+
+}
diff --git a/pig-common/pig-common-excel/src/main/java/com/pig4cloud/pig/common/excel/provider/RemoteDictDataProvider.java b/pig-common/pig-common-excel/src/main/java/com/pig4cloud/pig/common/excel/provider/RemoteDictDataProvider.java
new file mode 100644
index 000000000..b66ece97a
--- /dev/null
+++ b/pig-common/pig-common-excel/src/main/java/com/pig4cloud/pig/common/excel/provider/RemoteDictDataProvider.java
@@ -0,0 +1,83 @@
+package com.pig4cloud.pig.common.excel.provider;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.map.MapUtil;
+import com.pig4cloud.pig.common.core.constant.SecurityConstants;
+import com.pig4cloud.pig.common.core.constant.ServiceNameConstants;
+import com.pig4cloud.pig.common.core.util.R;
+import com.pig4cloud.pig.common.core.util.SpringContextHolder;
+import com.pig4cloud.plugin.excel.handler.DictDataProvider;
+import com.pig4cloud.plugin.excel.vo.DictEnum;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 远程 dict 数据提供程序
+ *
+ * @author lengleng
+ * @date 2024/09/01
+ */
+@RequiredArgsConstructor
+public class RemoteDictDataProvider implements DictDataProvider {
+
+ private final RestTemplate restTemplate;
+
+ /**
+ * 获取 dict
+ * @param type 类型
+ * @return {@link DictEnum[] }
+ */
+ @Override
+ public DictEnum[] getDict(String type) {
+ // 获取服务URL
+ String serviceUrl = getServiceUrl(type);
+ // 创建请求实体
+ HttpHeaders headers = new HttpHeaders();
+ headers.add(SecurityConstants.FROM, SecurityConstants.FROM_IN);
+ HttpEntity requestEntity = new HttpEntity<>(headers);
+ // 发送HTTP请求并获取响应
+ ResponseEntity
-
+
- com.pig4cloud.excel
- excel-spring-boot-starter
+ com.pig4cloud
+ pig-common-excel
diff --git a/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/vo/UserExcelVO.java b/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/vo/UserExcelVO.java
index eac648774..d897a1b18 100644
--- a/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/vo/UserExcelVO.java
+++ b/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/vo/UserExcelVO.java
@@ -3,6 +3,7 @@
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.pig4cloud.plugin.excel.annotation.DictTypeProperty;
import com.pig4cloud.plugin.excel.annotation.ExcelLine;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@@ -95,6 +96,7 @@ public class UserExcelVO implements Serializable {
* 锁定标记
*/
@ExcelProperty("锁定标记,0:正常,9:已锁定")
+ @DictTypeProperty("lock_flagX")
private String lockFlag;
/**