From 67fea6e5004c397746e69c89e46ba062f5756269 Mon Sep 17 00:00:00 2001 From: shenyifei Date: Mon, 22 Dec 2025 14:53:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(order-ship):=20=E6=9B=B4=E6=96=B0=E5=8F=91?= =?UTF-8?q?=E8=B4=A7=E5=8D=95=E6=8D=AE=E5=AD=97=E6=AE=B5=E5=B9=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=96=87=E4=BB=B6=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将原有的 document 字段拆分为 pdfUrl 和 picUrl 两个独立字段 - 新增 OrderShipFileDO 类用于封装发货单文件信息 - 使用 JacksonTypeHandler 支持 file 字段的 JSON 格式存储 - 更新 Mapper 配置以适配新的字段结构和转换逻辑 - 移除不再使用的 PurchaseOrderMapper 引用 - 添加日期格式化注解确保 LocalDate 正确序列化 - 调整数据库映射配置启用 autoResultMap 以支持复杂类型处理 --- .../turbo/biz/domain/entity/OrderShip.java | 9 +++++-- .../convert/OrderShipConvert.java | 22 ++++++++++++++++- .../infrastructure/entity/OrderShipDO.java | 9 +++---- .../entity/OrderShipFileDO.java | 23 ++++++++++++++++++ .../gateway/OrderShipGatewayImpl.java | 6 +++-- .../main/resources/mapper/OrderShipMapper.xml | 3 ++- .../dto/cmd/OrderShipGenerateDocumentCmd.java | 12 +++++++--- .../api/biz/dto/cmd/OrderShipUpdateCmd.java | 12 +++++++--- .../turbo/api/biz/dto/common/OrderShip.java | 24 ++++++++++++++----- .../erp/turbo/api/biz/dto/vo/OrderShipVO.java | 14 +++++++---- 10 files changed, 108 insertions(+), 26 deletions(-) create mode 100644 erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipFileDO.java diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderShip.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderShip.java index 3909ef9..e6a01ed 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderShip.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/domain/entity/OrderShip.java @@ -92,9 +92,14 @@ public class OrderShip extends DTO { private String watermelonGrade; /** - * 发货单据 + * PDF 文件地址 */ - private String document; + private String pdfUrl; + + /** + * 图片文件地址 + */ + private String picUrl; /** * 发货单状态:0_草稿;1_待发货;2_待回款;3_待改签;4_部分回款;5_已回款;6_拒收完结;7_已完结; diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderShipConvert.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderShipConvert.java index e39e689..9742dcf 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderShipConvert.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/convert/OrderShipConvert.java @@ -5,6 +5,7 @@ import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderShipGenerateDocumentCmd; import com.xunhong.erp.turbo.api.biz.dto.cmd.OrderShipUpdateCmd; import com.xunhong.erp.turbo.api.biz.dto.common.OrderShip; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderShipDO; +import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderShipFileDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.MappingTarget; @@ -16,17 +17,21 @@ import org.mapstruct.NullValueCheckStrategy; @Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) public interface OrderShipConvert { + @Mapping(target = "picUrl", source = "file.picUrl") + @Mapping(target = "pdfUrl", source = "file.pdfUrl") @Mapping(target = "orderVehicle", source = "orderVehicleDO") @Mapping(target = "orderCostList", source = "orderCostDOList") @Mapping(target = "orderShipItemList", source = "orderShipItemDOList") com.xunhong.erp.turbo.biz.domain.entity.OrderShip toOrderShip(OrderShipDO orderShipDO); + @Mapping(target = "file", ignore = true) + @Mapping(target = "dealerName", ignore = true) + @Mapping(target = "dealerId", ignore = true) @Mapping(target = "orderVehicleDO", ignore = true) @Mapping(target = "orderCostDOList", ignore = true) @Mapping(target = "warehouseName", ignore = true) @Mapping(target = "warehouseId", ignore = true) @Mapping(target = "state", ignore = true) - @Mapping(target = "document", ignore = true) @Mapping(target = "orderShipItemDOList", ignore = true) @Mapping(target = "version", ignore = true) @Mapping(target = "updatedAt", ignore = true) @@ -34,6 +39,9 @@ public interface OrderShipConvert { @Mapping(target = "createdAt", ignore = true) OrderShipDO toOrderShipDO(OrderShipCreateCmd orderShipCreateCmd); + @Mapping(target = "file", ignore = true) + @Mapping(target = "dealerName", ignore = true) + @Mapping(target = "dealerId", ignore = true) @Mapping(target = "orderVehicleDO", ignore = true) @Mapping(target = "orderId", ignore = true) @Mapping(target = "orderCostDOList", ignore = true) @@ -51,6 +59,9 @@ public interface OrderShipConvert { @Mapping(target = "createdAt", ignore = true) void toOrderShipDO(@MappingTarget OrderShipDO orderShipDO, OrderShipUpdateCmd orderShipUpdateCmd); + @Mapping(target = "file", expression = "java(this.toOrderShipFileDO(orderShipGenerateDocumentCmd))") + @Mapping(target = "dealerName", ignore = true) + @Mapping(target = "dealerId", ignore = true) @Mapping(target = "orderVehicleDO", ignore = true) @Mapping(target = "orderId", ignore = true) @Mapping(target = "orderCostDOList", ignore = true) @@ -70,6 +81,15 @@ public interface OrderShipConvert { @Mapping(target = "createdAt", ignore = true) void toOrderShipDO(@MappingTarget OrderShipDO orderShipDO, OrderShipGenerateDocumentCmd orderShipGenerateDocumentCmd); + @SuppressWarnings("unused") + default OrderShipFileDO toOrderShipFileDO(OrderShipGenerateDocumentCmd orderShipGenerateDocumentCmd) { + OrderShipFileDO orderShipFileDO = new OrderShipFileDO(); + orderShipFileDO.setPicUrl(orderShipGenerateDocumentCmd.getPicUrl()); + orderShipFileDO.setPdfUrl(orderShipGenerateDocumentCmd.getPdfUrl()); + return orderShipFileDO; + } + + @Mapping(target = "file", ignore = true) @Mapping(target = "orderVehicleDO", ignore = true) @Mapping(target = "orderCostDOList", ignore = true) @Mapping(target = "orderShipItemDOList", ignore = true) diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipDO.java index 4785a37..4c5ba9a 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipDO.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipDO.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.xunhong.erp.turbo.api.biz.dto.enums.OrderShipStateEnum; import com.xunhong.erp.turbo.datasource.domain.entity.BaseDO; import lombok.Data; @@ -16,7 +17,7 @@ import java.util.List; * @author shenyifei */ @Data -@TableName(value = "order_ship") +@TableName(value = "order_ship", autoResultMap = true) @EqualsAndHashCode(callSuper = true) public class OrderShipDO extends BaseDO { @@ -118,10 +119,10 @@ public class OrderShipDO extends BaseDO { private OrderShipStateEnum state; /** - * 发货单据 + * 发货单文件 */ - @TableField(value = "document") - private String document; + @TableField(value = "file", typeHandler = JacksonTypeHandler.class) + private OrderShipFileDO file; /** * 备注 diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipFileDO.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipFileDO.java new file mode 100644 index 0000000..32a3b04 --- /dev/null +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/entity/OrderShipFileDO.java @@ -0,0 +1,23 @@ +package com.xunhong.erp.turbo.biz.infrastructure.entity; + +import com.alibaba.cola.dto.DTO; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author shenyifei + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OrderShipFileDO extends DTO { + + /** + * PDF 文件地址 + */ + private String pdfUrl; + + /** + * 图片文件地址 + */ + private String picUrl; +} diff --git a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderShipGatewayImpl.java b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderShipGatewayImpl.java index d952aa1..84d96fb 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderShipGatewayImpl.java +++ b/erp-turbo-business/erp-turbo-biz/src/main/java/com/xunhong/erp/turbo/biz/infrastructure/gateway/OrderShipGatewayImpl.java @@ -22,7 +22,10 @@ import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderCostDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderShipDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderShipItemDO; import com.xunhong.erp.turbo.biz.infrastructure.entity.OrderVehicleDO; -import com.xunhong.erp.turbo.biz.infrastructure.mapper.*; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderCostMapper; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderShipItemMapper; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderShipMapper; +import com.xunhong.erp.turbo.biz.infrastructure.mapper.OrderVehicleMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; @@ -44,7 +47,6 @@ public class OrderShipGatewayImpl implements OrderShipGateway { private final OrderShipItemMapper orderShipItemMapper; private final OrderCostMapper orderCostMapper; - private final PurchaseOrderMapper purchaseOrderMapper; private final OrderVehicleMapper orderVehicleMapper; diff --git a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderShipMapper.xml b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderShipMapper.xml index 9290545..55bd9ac 100644 --- a/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderShipMapper.xml +++ b/erp-turbo-business/erp-turbo-biz/src/main/resources/mapper/OrderShipMapper.xml @@ -19,7 +19,8 @@ column="estimated_arrival_date"/> - + diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderShipGenerateDocumentCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderShipGenerateDocumentCmd.java index 897fcec..be07cc2 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderShipGenerateDocumentCmd.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderShipGenerateDocumentCmd.java @@ -51,9 +51,15 @@ public class OrderShipGenerateDocumentCmd extends Command { private List orderShipItemList; /** - * 发货单据 + * PDF 文件地址 */ - @Schema(title = "发货单据") - private String document; + @Schema(title = "PDF 文件地址") + private String pdfUrl; + + /** + * 图片文件地址 + */ + @Schema(title = "图片文件地址") + private String picUrl; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderShipUpdateCmd.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderShipUpdateCmd.java index 993c6a1..e247ede 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderShipUpdateCmd.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/cmd/OrderShipUpdateCmd.java @@ -63,8 +63,14 @@ public class OrderShipUpdateCmd extends Command { private List orderShipItemList; /** - * 发货单据 + * PDF 文件地址 */ - @Schema(title = "发货单据") - private String document; + @Schema(title = "PDF 文件地址") + private String pdfUrl; + + /** + * 图片文件地址 + */ + @Schema(title = "图片文件地址") + private String picUrl; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderShip.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderShip.java index b1eb655..4f591ec 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderShip.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/common/OrderShip.java @@ -1,10 +1,12 @@ package com.xunhong.erp.turbo.api.biz.dto.common; +import com.fasterxml.jackson.annotation.JsonFormat; import com.xunhong.erp.turbo.api.biz.dto.enums.OrderShipStateEnum; import com.xunhong.erp.turbo.base.dto.Command; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; import java.util.List; @@ -87,12 +89,16 @@ public class OrderShip extends Command { * 发货日期 */ @Schema(title = "发货日期", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate shippingDate; /** * 预计到仓时间 */ @Schema(title = "预计到仓时间", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate estimatedArrivalDate; /** @@ -107,12 +113,6 @@ public class OrderShip extends Command { @Schema(title = "瓜农姓名逗号隔开") private String farmerInfo; - /** - * 发货单据 - */ - @Schema(title = "发货单据", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) - private String document; - /** * 发货单状态:0_草稿;1_待发货;2_待回款;3_待改签;4_部分回款;5_已回款;6_拒收完结;7_已完结; */ @@ -130,4 +130,16 @@ public class OrderShip extends Command { */ @Schema(title = "发货单明细") private List orderShipItemList; + + /** + * PDF 文件地址 + */ + @Schema(title = "PDF 文件地址") + private String pdfUrl; + + /** + * 图片文件地址 + */ + @Schema(title = "图片文件地址") + private String picUrl; } diff --git a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderShipVO.java b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderShipVO.java index d7f2a07..d574093 100644 --- a/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderShipVO.java +++ b/erp-turbo-common/erp-turbo-api/src/main/java/com/xunhong/erp/turbo/api/biz/dto/vo/OrderShipVO.java @@ -34,7 +34,7 @@ public class OrderShipVO extends DTO { */ @Schema(title = "采购单ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED) private Long orderId; - + /** * 经销商ID */ @@ -118,10 +118,16 @@ public class OrderShipVO extends DTO { private String farmerInfo; /** - * 发货单据 + * PDF 文件地址 */ - @Schema(title = "发货单据") - private String document; + @Schema(title = "PDF 文件地址") + private String pdfUrl; + + /** + * 图片文件地址 + */ + @Schema(title = "图片文件地址") + private String picUrl; /** * 发货单状态:0_草稿;1_待发货;2_待回款;3_待改签;4_部分回款;5_已回款;6_拒收完结;7_已完结;