Merge branch 'dev' into test
This commit is contained in:
581
sql/dm/bpm.sql
Normal file
581
sql/dm/bpm.sql
Normal file
File diff suppressed because one or more lines are too long
@@ -52,6 +52,12 @@
|
|||||||
<scope>provided</scope> <!-- 设置为 provided,只有工具类需要使用到 -->
|
<scope>provided</scope> <!-- 设置为 provided,只有工具类需要使用到 -->
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.data</groupId>
|
||||||
|
<artifactId>spring-data-redis</artifactId>
|
||||||
|
<scope>provided</scope> <!-- 设置为 provided,只有工具类需要使用到 -->
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>jakarta.servlet</groupId>
|
<groupId>jakarta.servlet</groupId>
|
||||||
<artifactId>jakarta.servlet-api</artifactId>
|
<artifactId>jakarta.servlet-api</artifactId>
|
||||||
@@ -151,6 +157,12 @@
|
|||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mockito</groupId>
|
||||||
|
<artifactId>mockito-core</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.zt.plat.framework.common.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标记分页结果中需要求和的字段。
|
||||||
|
* <p>
|
||||||
|
* 未显式指定列名时,会默认使用实体字段对应的数据库列。
|
||||||
|
* <p>
|
||||||
|
* {@link #exist()} 可以用于声明该字段并不存在于表结构中,相当于为字段添加
|
||||||
|
* {@code @TableField(exist = false)},方便在 DO 中声明专用于汇总结果的临时字段。
|
||||||
|
*/
|
||||||
|
@Documented
|
||||||
|
@Target(ElementType.FIELD)
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface PageSum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义求和的数据库列名或表达式,未设置时默认使用实体字段对应的列。
|
||||||
|
*/
|
||||||
|
String column() default "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否在实体字段上声明真实存在的数据库列。
|
||||||
|
* <p>
|
||||||
|
* 设为 {@code false} 时,框架会自动为该字段提供 {@code @TableField(exist = false)} 的能力,
|
||||||
|
* 适用于只在分页响应中返回的临时统计字段。
|
||||||
|
*/
|
||||||
|
boolean exist() default false;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,11 +1,18 @@
|
|||||||
package com.zt.plat.framework.common.pojo;
|
package com.zt.plat.framework.common.pojo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonAlias;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Schema(description = "分页结果")
|
@Schema(description = "分页结果")
|
||||||
@Data
|
@Data
|
||||||
@@ -15,19 +22,31 @@ public final class PageResult<T> implements Serializable {
|
|||||||
private List<T> list;
|
private List<T> list;
|
||||||
|
|
||||||
@Schema(description = "总量", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "总量", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@JsonProperty("total")
|
||||||
|
@JsonAlias({"totalCount"})
|
||||||
private Long total;
|
private Long total;
|
||||||
|
|
||||||
|
@Schema(description = "汇总信息(字段需使用 @PageSum 标注)")
|
||||||
|
@JsonProperty("summary")
|
||||||
|
private Map<String, BigDecimal> summary;
|
||||||
|
|
||||||
public PageResult() {
|
public PageResult() {
|
||||||
|
this.list = new ArrayList<>();
|
||||||
|
this.summary = Collections.emptyMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
public PageResult(List<T> list, Long total) {
|
public PageResult(List<T> list, Long total) {
|
||||||
|
this(list, total, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PageResult(List<T> list, Long total, Map<String, BigDecimal> summary) {
|
||||||
this.list = list;
|
this.list = list;
|
||||||
this.total = total;
|
this.total = total;
|
||||||
|
setSummaryInternal(summary);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PageResult(Long total) {
|
public PageResult(Long total) {
|
||||||
this.list = new ArrayList<>();
|
this(new ArrayList<>(), total, null);
|
||||||
this.total = total;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> PageResult<T> empty() {
|
public static <T> PageResult<T> empty() {
|
||||||
@@ -38,4 +57,30 @@ public final class PageResult<T> implements Serializable {
|
|||||||
return new PageResult<>(total);
|
return new PageResult<>(total);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSummary(Map<String, BigDecimal> summary) {
|
||||||
|
setSummaryInternal(summary);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setSummaryInternal(Map<String, BigDecimal> summary) {
|
||||||
|
if (summary == null || summary.isEmpty()) {
|
||||||
|
this.summary = Collections.emptyMap();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.summary = new LinkedHashMap<>(summary);
|
||||||
|
}
|
||||||
|
|
||||||
|
public <R> PageResult<R> convert(List<R> newList) {
|
||||||
|
return new PageResult<>(newList, total, summary);
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
public Long getTotalCount() {
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
public void setTotalCount(Long totalCount) {
|
||||||
|
this.total = totalCount;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.collection.CollectionUtils;
|
import com.zt.plat.framework.common.util.collection.CollectionUtils;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
@@ -69,10 +70,13 @@ public class BeanUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
List<T> list = toBean(source.getList(), targetType);
|
List<T> list = toBean(source.getList(), targetType);
|
||||||
|
if (list == null) {
|
||||||
|
list = Collections.emptyList();
|
||||||
|
}
|
||||||
if (peek != null) {
|
if (peek != null) {
|
||||||
list.forEach(peek);
|
list.forEach(peek);
|
||||||
}
|
}
|
||||||
return new PageResult<>(list, source.getTotal());
|
return new PageResult<>(list, source.getTotal(), source.getSummary());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void copyProperties(Object source, Object target) {
|
public static void copyProperties(Object source, Object target) {
|
||||||
|
|||||||
@@ -24,10 +24,15 @@ public class TraceFilter extends OncePerRequestFilter {
|
|||||||
@Override
|
@Override
|
||||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
|
||||||
throws IOException, ServletException {
|
throws IOException, ServletException {
|
||||||
// 设置响应 traceId
|
String traceId = TracerUtils.getTraceId();
|
||||||
response.addHeader(HEADER_NAME_TRACE_ID, TracerUtils.getTraceId());
|
try {
|
||||||
// 继续过滤
|
// 设置响应 traceId,便于客户端回溯
|
||||||
chain.doFilter(request, response);
|
response.addHeader(HEADER_NAME_TRACE_ID, traceId);
|
||||||
|
// 继续过滤
|
||||||
|
chain.doFilter(request, response);
|
||||||
|
} finally {
|
||||||
|
TracerUtils.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,6 +107,12 @@
|
|||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user