diff --git a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderAdjustService.java b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderAdjustService.java index fb81d9d13..68de46eed 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderAdjustService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/application/service/businessDocumentOrder/BusinessDocumentOrderAdjustService.java @@ -36,6 +36,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -250,11 +251,27 @@ public class BusinessDocumentOrderAdjustService { /** * 按业务单查询调整记录(供订单详情页"调整记录"Tab用) + * 每条记录同时带出调整后明细快照(detail),前端可自包含展示,无需再单独调详情接口 */ public List listAdjustRecordByOrder(Long orderId) { BusinessDocumentOrderAdjustQueryDTO query = new BusinessDocumentOrderAdjustQueryDTO(); query.setOrderId(orderId); - return listAdjustRecord(query); + List list = listAdjustRecord(query); + if (list == null || list.isEmpty()) { + return list; + } + // 批量取明细快照按 adjust_id 一次性拼上,避免 N+1 + List adjustIds = list.stream() + .map(BusinessDocumentOrderAdjustRecordDTO::getId) + .collect(Collectors.toList()); + List details = adjustDetailMapper.selectList( + new LambdaQueryWrapper() + .in(BusinessDocumentOrderAdjustDetail::getAdjustId, adjustIds) + .eq(BusinessDocumentOrderAdjustDetail::getDelFlag, 1)); + Map detailMap = details.stream() + .collect(Collectors.toMap(BusinessDocumentOrderAdjustDetail::getAdjustId, d -> d, (a, b) -> a)); + list.forEach(vo -> vo.setDetail(detailMap.get(vo.getId()))); + return list; } /** diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrderAdjustDetail/entity/BusinessDocumentOrderAdjustDetail.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrderAdjustDetail/entity/BusinessDocumentOrderAdjustDetail.java index 178d53c4b..2587cb23d 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrderAdjustDetail/entity/BusinessDocumentOrderAdjustDetail.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrderAdjustDetail/entity/BusinessDocumentOrderAdjustDetail.java @@ -3,6 +3,8 @@ package com.mhd.oms.domain.businessDocumentOrderAdjustDetail.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -24,9 +26,11 @@ public class BusinessDocumentOrderAdjustDetail implements Serializable { @ApiModelProperty("主键") @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; @ApiModelProperty("关联调整主记录ID") + @JsonSerialize(using = ToStringSerializer.class) private Long adjustId; @ApiModelProperty("业务单ID") diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrderAdjust/BusinessDocumentOrderAdjustRecordDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrderAdjust/BusinessDocumentOrderAdjustRecordDTO.java index 1a5a73888..239c67d04 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrderAdjust/BusinessDocumentOrderAdjustRecordDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrderAdjust/BusinessDocumentOrderAdjustRecordDTO.java @@ -1,5 +1,7 @@ package com.mhd.oms.interfaces.dto.businessDocumentOrderAdjust; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.mhd.oms.domain.businessDocumentOrderAdjustDetail.entity.BusinessDocumentOrderAdjustDetail; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,6 +18,7 @@ public class BusinessDocumentOrderAdjustRecordDTO implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("主记录ID") + @JsonSerialize(using = ToStringSerializer.class) private Long id; @ApiModelProperty("业务单ID")