|
|
@@ -1110,15 +1110,16 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
|
|
|
Page<OrderListVo> orderListVoPage;
|
|
|
if (baseController.getUserSystemCode().equals("APP")) {
|
|
|
- // 手动分页:以主订单为主,按车牌+状态分组去重,先统计总数再取当前页(避免 MP 自动 count 解析窗口函数报错)
|
|
|
+ // APP 端统一走手动分页:按车牌+状态分组去重(避免 MP 自动 count 解析窗口函数报错)。
|
|
|
+ // SQL 中根据 isLargeOrder 动态切换 parent_id 条件:大订单查主订单(parent_id='0'),否则只查从订单(parent_id!='0')
|
|
|
Page<OrderListVo> page = insOrdersParam.getPage();
|
|
|
long current = page.getCurrent();
|
|
|
long size = page.getSize();
|
|
|
long offset = (current - 1) * size;
|
|
|
long total = insOrdersMapper.countOrderListDistinct(insOrdersParam);
|
|
|
List<OrderListVo> records = insOrdersMapper.queryOrderListDistinct(insOrdersParam, offset, size);
|
|
|
- // 以主订单为主:查询主订单下的从订单并挂载
|
|
|
- if (CollUtil.isNotEmpty(records)) {
|
|
|
+ // 大订单:以主订单为主,查询主订单下的从订单并挂载
|
|
|
+ if (StringUtils.equals("1", insOrdersParam.getIsLargeOrder()) && CollUtil.isNotEmpty(records)) {
|
|
|
List<String> parentIds = records.stream().map(OrderListVo::getOrderNo).collect(Collectors.toList());
|
|
|
List<OrderListVo> childOrders = insOrdersMapper.queryChildOrderListByParentIds(parentIds, insOrdersParam);
|
|
|
if (CollUtil.isNotEmpty(childOrders)) {
|
|
|
@@ -1130,7 +1131,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
orderListVoPage = new Page<>(current, size, total);
|
|
|
orderListVoPage.setRecords(records != null ? records : java.util.Collections.emptyList());
|
|
|
} else {
|
|
|
- // 非 APP 走原 MP 自动分页查询
|
|
|
+ // 非 APP 走原 MP 自动分页查询(queryOrderList 仅查询从订单 parent_id != '0',不查主订单)
|
|
|
orderListVoPage = insOrdersMapper.queryOrderList(insOrdersParam.getPage(), insOrdersParam);
|
|
|
}
|
|
|
// modify by lipf, 2026年4月29日11:06:02 解决业务员类型缺失的问题
|