feat(order-ship): 更新发货单据字段并支持文件存储
- 将原有的 document 字段拆分为 pdfUrl 和 picUrl 两个独立字段 - 新增 OrderShipFileDO 类用于封装发货单文件信息 - 使用 JacksonTypeHandler 支持 file 字段的 JSON 格式存储 - 更新 Mapper 配置以适配新的字段结构和转换逻辑 - 移除不再使用的 PurchaseOrderMapper 引用 - 添加日期格式化注解确保 LocalDate 正确序列化 - 调整数据库映射配置启用 autoResultMap 以支持复杂类型处理
This commit is contained in:
parent
be12b0d883
commit
67fea6e500
@ -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_已完结;
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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<OrderShipDO> {
|
||||
|
||||
@ -118,10 +119,10 @@ public class OrderShipDO extends BaseDO<OrderShipDO> {
|
||||
private OrderShipStateEnum state;
|
||||
|
||||
/**
|
||||
* 发货单据
|
||||
* 发货单文件
|
||||
*/
|
||||
@TableField(value = "document")
|
||||
private String document;
|
||||
@TableField(value = "file", typeHandler = JacksonTypeHandler.class)
|
||||
private OrderShipFileDO file;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -19,7 +19,8 @@
|
||||
column="estimated_arrival_date"/>
|
||||
<result property="watermelonGrade" column="watermelon_grade"/>
|
||||
<result property="farmerInfo" column="farmer_info"/>
|
||||
<result property="document" column="document"/>
|
||||
<result property="file" column="file"
|
||||
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
|
||||
<result property="state" column="state"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createdBy" column="created_by"/>
|
||||
|
||||
@ -51,9 +51,15 @@ public class OrderShipGenerateDocumentCmd extends Command {
|
||||
private List<OrderShipItem> orderShipItemList;
|
||||
|
||||
/**
|
||||
* 发货单据
|
||||
* PDF 文件地址
|
||||
*/
|
||||
@Schema(title = "发货单据")
|
||||
private String document;
|
||||
@Schema(title = "PDF 文件地址")
|
||||
private String pdfUrl;
|
||||
|
||||
/**
|
||||
* 图片文件地址
|
||||
*/
|
||||
@Schema(title = "图片文件地址")
|
||||
private String picUrl;
|
||||
}
|
||||
|
||||
|
||||
@ -63,8 +63,14 @@ public class OrderShipUpdateCmd extends Command {
|
||||
private List<OrderShipItem> orderShipItemList;
|
||||
|
||||
/**
|
||||
* 发货单据
|
||||
* PDF 文件地址
|
||||
*/
|
||||
@Schema(title = "发货单据")
|
||||
private String document;
|
||||
@Schema(title = "PDF 文件地址")
|
||||
private String pdfUrl;
|
||||
|
||||
/**
|
||||
* 图片文件地址
|
||||
*/
|
||||
@Schema(title = "图片文件地址")
|
||||
private String picUrl;
|
||||
}
|
||||
|
||||
@ -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<OrderShipItem> orderShipItemList;
|
||||
|
||||
/**
|
||||
* PDF 文件地址
|
||||
*/
|
||||
@Schema(title = "PDF 文件地址")
|
||||
private String pdfUrl;
|
||||
|
||||
/**
|
||||
* 图片文件地址
|
||||
*/
|
||||
@Schema(title = "图片文件地址")
|
||||
private String picUrl;
|
||||
}
|
||||
|
||||
@ -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_已完结;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user