Quellcode durchsuchen

订单合同新增接口

chenxiaofei vor 2 Monaten
Ursprung
Commit
ef8f125287

+ 2 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/dubbo/TradeOrderInfoService.java

@@ -116,4 +116,6 @@ public interface TradeOrderInfoService {
      * @return: java.lang.Boolean
      */
     Boolean associateEnt(Long firstEntId,Long secondEntId);
+
+    OrderDetailVo queryByTradeOrderId(Long tradeOrderId);
 }

+ 332 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/OrderDetailVo.java

@@ -0,0 +1,332 @@
+package com.sckw.order.api.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @desc: 订单详情响应参数
+ * @author: yzc
+ * @date: 2023-07-07 15:35
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class OrderDetailVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -2951319997472302360L;
+    private Long entId;
+
+    /**
+     * 订单编号
+     */
+    private String tOrderNo;
+
+    /**
+     * 货物数量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 单位(吨、方、件、箱、其他)
+     */
+    private String unit;
+
+    /**
+     * 价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+
+    /**
+     * 提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+
+    /**
+     * 交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+
+    /**
+     * 开始日期
+     */
+    private Date startTime;
+
+    /**
+     * 结束日期
+     */
+    private Date endTime;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 实际交付量
+     */
+    private BigDecimal actualAmount;
+
+    /**
+     * 是否关联对账单:0未关联,1已关联
+     */
+    private Integer associateStatement;
+
+    /**
+     * 订单创建来源类型(1采购下单/2销售代客下单)
+     */
+    private String source;
+
+    /**
+     * 计费方式
+     */
+    private Integer chargeType;
+
+    /**
+     * 托运方式
+     */
+    private Integer consignmentWay;
+    /**
+     * 商品信息
+     */
+    private GoodsInfo goodsInfo;
+
+
+    /**
+     * 单位信息
+     */
+    private List<UnitInfo> unitInfo;
+
+    /**
+     * 地址信息
+     */
+    private List<AddressInfo> addressInfo;
+
+    /**
+     * 合同信息
+     */
+    private TradeContractInfo contractInfo;
+    @Data
+    public static class GoodsInfo implements Serializable{
+        @Serial
+        private static final long serialVersionUID = -3701264190688407033L;
+        /**
+         * 交易订单id
+         */
+
+        private Long tOrderId;
+
+        /**
+         * 订单编号
+         */
+
+        private String tOrderNo;
+
+        /**
+         * 商品id
+         */
+        private Long goodsId;
+
+        /**
+         * 商品类型
+         */
+        private String goodsType;
+
+        /**
+         * sku
+         */
+        private Long skuId;
+
+        /**
+         * 单位(吨、方、件、箱、其他)
+         */
+        private String unit;
+
+        /**
+         * 商品成交单价
+         */
+        private BigDecimal unitPrice;
+
+        /**
+         * kwp_goods_price_range表主键ID
+         */
+        private Long priceRangeId;
+        /**
+         * 商品名称
+         */
+
+        private String goodsName ;
+    }
+    @Data
+    public static class UnitInfo implements Serializable {
+        @Serial
+        private static final long serialVersionUID = -449419330867155453L;
+
+        /**
+         * 交易订单id
+         */
+        @JsonProperty("tOrderId")
+        private Long tOrderId;
+
+        /**
+         * 订单编号
+         */
+        @JsonProperty("tOrderNo")
+        private String tOrderNo;
+
+        /**
+         * 单位类型(1采购单位、2销售单位)
+         */
+        private String unitType;
+
+        /**
+         * 企业id
+         */
+        private Long entId;
+
+        /**
+         * 顶级企业ID
+         */
+        private Long topEntId;
+
+        /**
+         * 企业名称
+         */
+        private String firmName;
+
+        /**
+         * 联系人id
+         */
+        private Long contactsId;
+
+        /**
+         * 联系人姓名
+         */
+        private String contacts;
+
+        /**
+         * 联系电话
+         */
+        private String phone;
+        @TableField(exist = false)
+        private String tradeOrderIdAndUnitType;
+    }
+    @Data
+    public static class AddressInfo implements Serializable{
+        @Serial
+        private static final long serialVersionUID = 8189538973212791861L;
+        /**
+         * 交易订单id
+         */
+        private Long tOrderId;
+
+        /**
+         * 订单编号
+         */
+        private String tOrderNo;
+
+        /**
+         * 地址类型(1装货地址、2卸货地址)
+         */
+        private String addressType;
+
+        /**
+         * 地址名称
+         */
+        private String name;
+
+        /**
+         * 地址类型
+         */
+        private String type;
+
+        /**
+         * 联系人姓名
+         */
+        private String contacts;
+
+        /**
+         * 联系电话
+         */
+        private String phone;
+
+        /**
+         * 所在地区
+         */
+        private Integer cityCode;
+
+        /**
+         * 所属区域名称
+         */
+        private String cityName;
+
+        /**
+         * 详细地址
+         */
+        private String detailAddress;
+
+        /**
+         * 纬度
+         */
+        private String lat;
+
+        /**
+         * 经度
+         */
+        private String lng;
+
+        /**
+         * 电子围栏
+         */
+        private String fence;
+
+        /**
+         * 排序(升序)
+         */
+        private Integer sort;
+
+        @TableField(exist = false)
+        private String tradeOrderIdTypeKey;
+    }
+    @Data
+    public static class TradeContractInfo implements Serializable{
+        @Serial
+        private static final long serialVersionUID = -2341220780405247730L;
+        /**
+         * 合同id
+         */
+        private Long contractId;
+
+        /**
+         * 合同编号
+         */
+        private String contractNo;
+
+        /**
+         * 订单id(销售订单/采购订单)
+         */
+        private Long tOrderId;
+
+        /**
+         * 订单编号(销售订单/采购订单)
+         */
+        private String tOrderNo;
+    }
+}

+ 38 - 38
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTradeOrder.java

@@ -70,42 +70,42 @@ public class KwcContractTradeOrder implements Serializable {
      * 是否删除(0未删除,1删除)
      */
     private Integer delFlag;
-    /**
-     * 商品id
-     */
-    @TableField("goods_id")
-    private Long goodsId;
-
-    /**
-     * 计费方式 1:按卸货量 2:按装货量
-     */
-    @TableField("billing_way")
-    private Integer billingWay;
-    /**
-     * 下单量
-     */
-    @TableField("amount")
-    private BigDecimal amount;
-    /**
-     * 累计装货量
-     */
-    @TableField("load_amount")
-    private BigDecimal loadAmount;
-
-    /**
-     * 累计卸货量
-     */
-    @TableField("unload_amount")
-    private BigDecimal unloadAmount;
-    /**
-     * 装货地址
-     */
-    @TableField("load_address")
-    private String loadAddress;
-    /**
-     * 卸货地址
-     *
-     */
-    @TableField("unload_address")
-    private String unloadAddress;
+//    /**
+//     * 商品id
+//     */
+//    @TableField("goods_id")
+//    private Long goodsId;
+//
+//    /**
+//     * 计费方式 1:按卸货量 2:按装货量
+//     */
+//    @TableField("billing_way")
+//    private Integer billingWay;
+//    /**
+//     * 下单量
+//     */
+//    @TableField("amount")
+//    private BigDecimal amount;
+//    /**
+//     * 累计装货量
+//     */
+//    @TableField("load_amount")
+//    private BigDecimal loadAmount;
+//
+//    /**
+//     * 累计卸货量
+//     */
+//    @TableField("unload_amount")
+//    private BigDecimal unloadAmount;
+//    /**
+//     * 装货地址
+//     */
+//    @TableField("load_address")
+//    private String loadAddress;
+//    /**
+//     * 卸货地址
+//     *
+//     */
+//    @TableField("unload_address")
+//    private String unloadAddress;
 }

+ 63 - 23
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractTradeService.java

@@ -25,10 +25,7 @@ import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
-import com.sckw.core.model.enums.ContractStatusEnum;
-import com.sckw.core.model.enums.ContractTrackEnum;
-import com.sckw.core.model.enums.CooperateTypeEnum;
-import com.sckw.core.model.enums.EntTypeEnum;
+import com.sckw.core.model.enums.*;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.*;
@@ -38,6 +35,7 @@ import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.ContractSignCompletedParam;
+import com.sckw.order.api.model.OrderDetailVo;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.enums.MessageEnum;
@@ -46,6 +44,7 @@ import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.RemoteUserService;
 import com.sckw.system.api.model.dto.res.*;
 import com.sckw.transport.api.dubbo.TransportRemoteService;
+import com.sckw.transport.api.model.vo.RWaybillSubOrderVo;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
@@ -57,8 +56,8 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.xml.crypto.dsig.TransformService;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -1379,6 +1378,16 @@ public class KwcContractTradeService {
         KwcContractTradeOrder kwcContractTradeOrder =
                 kwcContractTradeOrderRepository.queryByContractId(kwcContractTrade.getId());
 
+        //根据贸易订单号查询贸易订单信息
+        OrderDetailVo orderDetailVo = tradeOrderInfoService.queryByTradeOrderId(kwcContractTrade.getId());
+        //查询运单信息
+        List<RWaybillSubOrderVo> rWaybillSubOrderVos = transportRemoteService.queryWaybillOrderByTradeOrderIds(Set.of(kwcContractTrade.getId()));
+        Map<Long, RWaybillSubOrderVo> tradeOrderIdAndSubOrderVoMap = Maps.newHashMap();
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(rWaybillSubOrderVos)){
+           tradeOrderIdAndSubOrderVoMap =
+                    rWaybillSubOrderVos.stream().collect(Collectors.toMap(RWaybillSubOrderVo::getTradeId, Function.identity(), (k1, k2) -> k1));
+        }
+
         //查询物流合同
         List<KwcContractLogisticsUnit> kwcContractLogisticsUnits = kwcContractLogisticsUnitRepository.queryByContractId(kwcContractTrade.getId());
         //合同id和单位类型组合成key映射物流对象
@@ -1411,7 +1420,10 @@ public class KwcContractTradeService {
             contractDetailResp.setGoodsInfo(tradeGoodsInfos);
         }
         //获取关联贸易订单
-        ContractDetailResp.AssociatedOrder associatedOrder = getAssociateOrder(kwcContractTradeOrder, ctTypeKeyAndUnitMap, kwcContractTrade, contractIdUnitTypeKeyAndUnitMap, goodsIdAndGoodsMap, contractIdGoodsIdKeyAndGoodsMap);
+        ContractDetailResp.AssociatedOrder associatedOrder = getAssociateOrder(kwcContractTradeOrder,orderDetailVo,
+                ctTypeKeyAndUnitMap,
+                kwcContractTrade, contractIdUnitTypeKeyAndUnitMap, goodsIdAndGoodsMap,
+                contractIdGoodsIdKeyAndGoodsMap,tradeOrderIdAndSubOrderVoMap);
         contractDetailResp.setAssociatedOrder(associatedOrder);
 
         contractDetailResp.setRemark(kwcContractTrade.getRemark());
@@ -1419,7 +1431,10 @@ public class KwcContractTradeService {
         return contractDetailResp;
     }
 
-    private static ContractDetailResp.AssociatedOrder getAssociateOrder(KwcContractTradeOrder kwcContractTradeOrder, Map<String, KwcContractTradeUnit> ctTypeKeyAndUnitMap, KwcContractTrade kwcContractTrade, Map<String, KwcContractLogisticsUnit> contractIdUnitTypeKeyAndUnitMap, Map<Long, KwpGoods> goodsIdAndGoodsMap, Map<String, KwcContractLogisticsGoods> contractIdGoodsIdKeyAndGoodsMap) {
+    private static ContractDetailResp.AssociatedOrder getAssociateOrder(KwcContractTradeOrder kwcContractTradeOrder,OrderDetailVo orderDetailVo, Map<String,
+            KwcContractTradeUnit> ctTypeKeyAndUnitMap, KwcContractTrade kwcContractTrade, Map<String, KwcContractLogisticsUnit> contractIdUnitTypeKeyAndUnitMap,
+                                                                        Map<Long, KwpGoods> goodsIdAndGoodsMap, Map<String, KwcContractLogisticsGoods> contractIdGoodsIdKeyAndGoodsMap
+    ,Map<Long, RWaybillSubOrderVo> tradeOrderIdAndSubOrderVoMap) {
         ContractDetailResp.AssociatedOrder associatedOrder = new ContractDetailResp.AssociatedOrder();
         if (Objects.nonNull(kwcContractTradeOrder)){
             associatedOrder.setOrderId(kwcContractTradeOrder.getOrderId());
@@ -1449,25 +1464,50 @@ public class KwcContractTradeService {
                 associatedOrder.setTransportEntId(logisticsCarrigeUnit.getEntId());
                 associatedOrder.setTransportEntName(logisticsCarrigeUnit.getFirmName());
             }
+            OrderDetailVo.GoodsInfo goodsInfo = orderDetailVo.getGoodsInfo();
+            if (Objects.nonNull(goodsInfo)){
+                associatedOrder.setGoodsId(goodsInfo.getGoodsId());
+                KwpGoods goods = goodsIdAndGoodsMap.getOrDefault(goodsInfo.getGoodsId(), new KwpGoods());
+                associatedOrder.setGoodsName(goods.getName());
+            }
 
 
-            associatedOrder.setGoodsId(kwcContractTradeOrder.getGoodsId());
-            KwpGoods goods = goodsIdAndGoodsMap.getOrDefault(kwcContractTradeOrder.getGoodsId(), new KwpGoods());
-            associatedOrder.setGoodsName(goods.getName());
-            associatedOrder.setBillingWay(kwcContractTradeOrder.getBillingWay());
+            associatedOrder.setBillingWay(orderDetailVo.getChargeType());
             associatedOrder.setBillingWayDesc(DictEnum.getLabel(DictTypeEnum.CHARGING_TYPE.getType(),
-                    String.valueOf(kwcContractTradeOrder.getBillingWay())));
-            associatedOrder.setAmount(Objects.nonNull(kwcContractTradeOrder.getAmount()) ?
-                    kwcContractTradeOrder.getAmount().toPlainString() : null);
-            associatedOrder.setLoadAmount(Objects.nonNull(kwcContractTradeOrder.getLoadAmount()) ?
-                    kwcContractTradeOrder.getLoadAmount().toPlainString() : null);
-            associatedOrder.setUnloadAmount(Objects.nonNull(kwcContractTradeOrder.getUnloadAmount()) ?
-                    kwcContractTradeOrder.getUnloadAmount().toPlainString() : null);
-            KwcContractLogisticsGoods logisticsGoods =
-                    contractIdGoodsIdKeyAndGoodsMap.getOrDefault(kwcContractTradeOrder.getContractId() + "-" + kwcContractTradeOrder.getGoodsId(), new KwcContractLogisticsGoods());
-            associatedOrder.setTransportPrice(Objects.nonNull(logisticsGoods.getPrice()) ? logisticsGoods.getPrice().toPlainString() : null);
-            associatedOrder.setLoadAddress(kwcContractTradeOrder.getLoadAddress());
-            associatedOrder.setUnloadAddress(kwcContractTradeOrder.getUnloadAddress());
+                    String.valueOf(orderDetailVo.getChargeType())));
+            associatedOrder.setAmount(Objects.nonNull(orderDetailVo.getAmount()) ?
+                    orderDetailVo.getAmount().toPlainString() : null);
+            RWaybillSubOrderVo rWaybillSubOrderVo = tradeOrderIdAndSubOrderVoMap.get(kwcContractTrade.getId());
+            List<RWaybillSubOrderVo.BillSubOrder> subOrders = rWaybillSubOrderVo.getSubOrders();
+
+            if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(subOrders)){
+                String loadAmount = subOrders.stream()
+                        .map(RWaybillSubOrderVo.BillSubOrder::getLoadAmount)
+                        .filter(Objects::nonNull)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add).toPlainString();
+                associatedOrder.setLoadAmount(loadAmount);
+                String unloadAmount = subOrders.stream()
+                        .map(RWaybillSubOrderVo.BillSubOrder::getUnloadAmount)
+                        .filter(Objects::nonNull)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add).toPlainString();
+                associatedOrder.setUnloadAmount(unloadAmount);
+            }
+
+
+            List<OrderDetailVo.AddressInfo> addressInfos = orderDetailVo.getAddressInfo();
+            Map<String, OrderDetailVo.AddressInfo> tradeOrderIdAndUnitTypeKeyAndUnitMap = Maps.newHashMap() ;
+            if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(addressInfos)){
+               tradeOrderIdAndUnitTypeKeyAndUnitMap =
+                        addressInfos.stream().peek(x -> x.setTradeOrderIdTypeKey(x.getTOrderId() + "-" + x.getAddressType()))
+                        .collect(Collectors.toMap(OrderDetailVo.AddressInfo::getTradeOrderIdTypeKey, Function.identity(), (x, y) -> x));
+            }
+
+            associatedOrder.setTransportPrice(Objects.nonNull(orderDetailVo.getPrice()) ?
+                    orderDetailVo.getPrice().setScale(2, RoundingMode.HALF_UP).toPlainString() : null);
+            OrderDetailVo.AddressInfo loadAdd = tradeOrderIdAndUnitTypeKeyAndUnitMap.getOrDefault(kwcContractTradeOrder.getContractId() + "-" + AddressTypeEnum.SHIPMENT.getCode(), new OrderDetailVo.AddressInfo());
+            associatedOrder.setLoadAddress(loadAdd.getDetailAddress());
+            OrderDetailVo.AddressInfo unloadAdd = tradeOrderIdAndUnitTypeKeyAndUnitMap.getOrDefault(kwcContractTradeOrder.getContractId() + "-" + AddressTypeEnum.SHIPMENT.getCode(), new OrderDetailVo.AddressInfo());
+            associatedOrder.setUnloadAddress(unloadAdd.getDetailAddress());
         }
         return associatedOrder;
     }

+ 111 - 4
sckw-modules/sckw-order/src/main/java/com/sckw/order/dubbo/TradeOrderInfoServiceImpl.java

@@ -15,15 +15,14 @@ import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.*;
 import com.sckw.order.enums.DeliveryTypeEnum;
 import com.sckw.order.enums.OrderStatusEnum;
-import com.sckw.order.model.KwoTradeOrder;
-import com.sckw.order.model.KwoTradeOrderContract;
-import com.sckw.order.model.KwoTradeOrderGoodsUnit;
-import com.sckw.order.model.KwoTradeOrderTrack;
+import com.sckw.order.model.*;
 import com.sckw.order.model.vo.res.AddressInfoDetailRes;
+import com.sckw.order.repository.*;
 import com.sckw.order.serivce.*;
 import com.sckw.redis.constant.RedisConstant;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.stream.model.SckwBusSum;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,10 +31,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.ZoneId;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * @desc: 订单dubbo实现
@@ -44,6 +45,7 @@ import java.util.Set;
  */
 @DubboService(group = "design", version = "1.0.0")
 @Slf4j
+@RequiredArgsConstructor
 public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
 
     @Autowired
@@ -61,6 +63,12 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
     @Autowired
     private KwoTradeOrderGoodsUnitService tradeOrderGoodsUnitService;
 
+    private final KwoTradeOrderRepository kwoTradeOrderRepository;
+    private final KwoTradeOrderGoodsRepository kwoTradeOrderGoodsRepository;
+    private final KwoTradeOrderUnitRepository kwoTradeOrderUnitRepository;
+    private final KwoTradeOrderAddressRepository kwoTradeOrderAddressRepository;
+    private final KwoTradeOrderContractRepository kwoTradeOrderContractRepository;
+
     @Override
     public OrderDetailRes getOrderDetailById(Long tOrderId) {
         OrderDetailRes order = BeanUtil.copyProperties(kwoTradeOrderService.detail(tOrderId), OrderDetailRes.class);
@@ -453,6 +461,105 @@ public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
         return CollUtil.isNotEmpty(list);
     }
 
+    @Override
+    public OrderDetailVo queryByTradeOrderId(Long tradeOrderId) {
+        //根据贸易订单id查询订单
+        KwoTradeOrder kwoTradeOrder = kwoTradeOrderRepository.queryByTradeOrderId(tradeOrderId);
+        if (Objects.isNull(kwoTradeOrder)){
+            return new OrderDetailVo();
+        }
+        //根据贸易订单id查询贸易商品
+        KwoTradeOrderGoods kwoTradeOrderGoods = kwoTradeOrderGoodsRepository.queryByOrderId(tradeOrderId);
+        //根据贸易订单号查询企业信息
+        List<KwoTradeOrderUnit> kwoTradeOrderUnits = kwoTradeOrderUnitRepository.queryByOrderId(tradeOrderId);
+        //根据贸易订单id查询贸易订单地址
+        List<KwoTradeOrderAddress> kwoTradeOrderAddresses = kwoTradeOrderAddressRepository.queryByOrderId(tradeOrderId);
+        //查询合同信息
+        KwoTradeOrderContract kwoTradeOrderContract = kwoTradeOrderContractRepository.queryByTradeOrderId(tradeOrderId);
+
+        OrderDetailVo orderDetailRes = new OrderDetailVo();
+        orderDetailRes.setEntId(kwoTradeOrder.getEntId());
+        orderDetailRes.setTOrderNo(kwoTradeOrder.getTOrderNo());
+        orderDetailRes.setAmount(kwoTradeOrder.getAmount());
+        orderDetailRes.setUnit(kwoTradeOrder.getUnit());
+        orderDetailRes.setPrice(kwoTradeOrder.getPrice());
+        orderDetailRes.setTrading(kwoTradeOrder.getTrading());
+        orderDetailRes.setPickupType(kwoTradeOrder.getPickupType());
+        orderDetailRes.setDeliveryType(kwoTradeOrder.getDeliveryType());
+        orderDetailRes.setStartTime(kwoTradeOrder.getStartTime());
+        orderDetailRes.setEndTime(kwoTradeOrder.getEndTime());
+        orderDetailRes.setEntrustAmount(kwoTradeOrder.getEntrustAmount());
+        orderDetailRes.setActualAmount(kwoTradeOrder.getActualAmount());
+        orderDetailRes.setAssociateStatement(kwoTradeOrder.getAssociateStatement());
+        orderDetailRes.setSource(kwoTradeOrder.getSource());
+        orderDetailRes.setChargeType(kwoTradeOrder.getChargeType());
+        orderDetailRes.setConsignmentWay(kwoTradeOrder.getConsignmentWay());
+
+        if (Objects.nonNull(kwoTradeOrderGoods)){
+            OrderDetailVo.GoodsInfo goodsInfo = new OrderDetailVo.GoodsInfo();
+            goodsInfo.setTOrderId(kwoTradeOrderGoods.getTOrderId());
+            goodsInfo.setTOrderNo(kwoTradeOrderGoods.getTOrderNo());
+            goodsInfo.setGoodsId(kwoTradeOrderGoods.getGoodsId());
+            goodsInfo.setGoodsType(kwoTradeOrderGoods.getGoodsType());
+            goodsInfo.setSkuId(kwoTradeOrderGoods.getSkuId());
+            goodsInfo.setUnit(kwoTradeOrderGoods.getUnit());
+            goodsInfo.setUnitPrice(kwoTradeOrderGoods.getUnitPrice());
+            goodsInfo.setPriceRangeId(kwoTradeOrderGoods.getPriceRangeId());
+            goodsInfo.setGoodsName(kwoTradeOrderGoods.getGoodsName());
+            orderDetailRes.setGoodsInfo(goodsInfo);
+        }
+
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(kwoTradeOrderUnits)){
+            orderDetailRes.setUnitInfo(kwoTradeOrderUnits.stream()
+                    .map(u -> {
+                        OrderDetailVo.UnitInfo unitInfo = new OrderDetailVo.UnitInfo();
+                        unitInfo.setTOrderId(u.getTOrderId());
+                        unitInfo.setTOrderNo(u.getTOrderNo());
+                        unitInfo.setUnitType(u.getUnitType());
+                        unitInfo.setEntId(u.getEntId());
+                        unitInfo.setTopEntId(u.getTopEntId());
+                        unitInfo.setFirmName(u.getFirmName());
+                        unitInfo.setContactsId(u.getContactsId());
+                        unitInfo.setContacts(u.getContacts());
+                        unitInfo.setPhone(u.getPhone());
+                        return unitInfo;
+                    }).collect(Collectors.toList())
+            );
+        }
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(kwoTradeOrderAddresses)){
+            List<OrderDetailVo.AddressInfo> addressInfos= kwoTradeOrderAddresses.stream()
+                    .map(a -> {
+                        OrderDetailVo.AddressInfo addressInfo = new OrderDetailVo.AddressInfo();
+                        addressInfo.setTOrderId(a.getTOrderId());
+                        addressInfo.setTOrderNo(a.getTOrderNo());
+                        addressInfo.setAddressType(a.getAddressType());
+                        addressInfo.setName(a.getName());
+                        addressInfo.setType(a.getType());
+                        addressInfo.setContacts(a.getContacts());
+                        addressInfo.setPhone(a.getPhone());
+                        addressInfo.setCityCode(a.getCityCode());
+                        addressInfo.setCityName(a.getCityName());
+                        addressInfo.setDetailAddress(a.getDetailAddress());
+                        addressInfo.setLat(a.getLat());
+                        addressInfo.setLng(a.getLng());
+                        addressInfo.setFence(a.getFence());
+                        addressInfo.setSort(a.getSort());
+                        return addressInfo;
+                    }).collect(Collectors.toList());
+            orderDetailRes.setAddressInfo(addressInfos);
+        }
+        if (Objects.nonNull(kwoTradeOrderContract)){
+            OrderDetailVo.TradeContractInfo tradeContractInfo = new OrderDetailVo.TradeContractInfo();
+            tradeContractInfo.setContractId(kwoTradeOrderContract.getContractId());
+            tradeContractInfo.setContractNo(kwoTradeOrderContract.getContractNo());
+            tradeContractInfo.setTOrderId(kwoTradeOrderContract.getTOrderId());
+            tradeContractInfo.setTOrderNo(kwoTradeOrderContract.getTOrderNo());
+
+            orderDetailRes.setContractInfo(tradeContractInfo);
+        }
+        return orderDetailRes;
+    }
+
     /**
      * @desc: mq保存mongodb
      * @author: yzc

+ 9 - 9
sql/2025/11/30/2025_11_30_cxf_alert.sql

@@ -13,15 +13,15 @@ ALTER TABLE kwc_contract_trade_goods ADD start_time date NOT NULL default '1000-
 
 ALTER TABLE kwc_contract_trade_goods ADD end_time date NOT NULL default '1000-01-01'  comment '结束日期';
 
-ALTER TABLE kwc_contract_trade_order ADD goods_id  bigint NOT NULL default '0'  comment '商品id';
-ALTER TABLE kwc_contract_trade_order ADD billing_way  bigint NOT NULL default '0'  comment '计费方式';
-ALTER TABLE kwc_contract_trade_order ADD amount decimal(10, 2)  NOT NULL default '0'  comment '下单量';
-ALTER TABLE kwc_contract_trade_order ADD load_amount  decimal(10, 2) NOT NULL default '0'  comment '累计装货量';
-ALTER TABLE kwc_contract_trade_order ADD unload_amount  decimal(10, 2) NOT NULL default '0'  comment '累计卸货量';
-ALTER TABLE kwc_contract_trade_order ADD load_address  varchar(255) NOT NULL default ''  comment '装货地址';
-ALTER TABLE kwc_contract_trade_order ADD unload_address  varchar(255) NOT NULL default ''  comment '卸货地址';
-
-ALTER TABLE kwc_contract_logistics_goods ADD price decimal(10, 2)  NOT NULL default '0'  comment '运输单价';
+# ALTER TABLE kwc_contract_trade_order ADD goods_id  bigint NOT NULL default '0'  comment '商品id';
+# ALTER TABLE kwc_contract_trade_order ADD billing_way  bigint NOT NULL default '0'  comment '计费方式';
+# ALTER TABLE kwc_contract_trade_order ADD amount decimal(10, 2)  NOT NULL default '0'  comment '下单量';
+# ALTER TABLE kwc_contract_trade_order ADD load_amount  decimal(10, 2) NOT NULL default '0'  comment '累计装货量';
+# ALTER TABLE kwc_contract_trade_order ADD unload_amount  decimal(10, 2) NOT NULL default '0'  comment '累计卸货量';
+# ALTER TABLE kwc_contract_trade_order ADD load_address  varchar(255) NOT NULL default ''  comment '装货地址';
+# ALTER TABLE kwc_contract_trade_order ADD unload_address  varchar(255) NOT NULL default ''  comment '卸货地址';
+
+# ALTER TABLE kwc_contract_logistics_goods ADD price decimal(10, 2)  NOT NULL default '0'  comment '运输单价';
 
 ALTER TABLE kwc_contract_logistics_goods ADD common_price decimal(10, 2)  NOT NULL default '0'  comment '通用价格';