♻️ 运次分档改由服务层只读推导,不再由库层判据决定

库层只负责取回收口与筛选命中的可见运单行,分组、分档、筛选、排序与分页
全部在服务层算完再做,Tab 与卡片由同一份推导得出;接单需求改取项目生效中
的过程配置(与单票路径同口径,仅写回内存不落库),否则快照缺接单节点的
运次会被误判成进行中。筛选只决定哪些运次在范围内,分档永远看整趟车,
避免筛选缩小子单集合后把运输中的车算进已完成。SQL 分档渲染与重复的分组
键声明一并删除,管理端两类筛选合成一条取数路径。
This commit is contained in:
2026-10-17 20:40:57 +08:00
parent e8196e7ef7
commit 076d04471f
9 changed files with 771 additions and 462 deletions
@@ -27,6 +27,9 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* 运次查询条件
@@ -53,9 +56,30 @@ public class TripQueryVO implements Serializable {
@Schema(description = "状态:0待接单/1进行中/2已完成/3已取消,不传为全部(不含已取消)")
private Integer status;
@Schema(description = "多档状态:同上取值,非空时优先于 status(待处理列表要待接单与进行中两档)")
private List<Integer> statuses;
@Schema(description = "关键字:运单号 / 配载单号 / 起终点 / 车牌")
private String keyword;
@Schema(description = "运输组织类型:load 公路配载 / common 普通运输,不传为全部(按子单行筛选)")
private String transportOrgType;
@Schema(description = "异常筛选:exception 只看命中异常的子单 / normal 只看未命中的,不传为全部(按子单行筛选)")
private String exception;
@Schema(description = "有未完成异常的子运单主键集合,配合 exception 使用(按子单行筛选)")
private Set<Long> exceptionWaybillIds;
@Schema(description = "创建时间下界,按子单行筛选")
private Date createdFrom;
@Schema(description = "创建时间上界,按子单行筛选")
private Date createdTo;
@Schema(description = "是否排除「有子单被拒且这趟车还没结束」的运次(待处理列表用)")
private boolean excludeRejectedTrips;
@Schema(description = "当前页,从 1 开始")
private Integer current;