Quellcode durchsuchen

提交新增合同文件校验

chenxiaofei vor 1 Monat
Ursprung
Commit
e45906576a

+ 1 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/RemoteFleetService.java

@@ -109,4 +109,5 @@ public interface RemoteFleetService {
     List<RTruckVo> findTruckByTruckIds(List<Long> truckIds);
 
     List<RFleetVo> findFleetByIds(Set<Long> fleetIds);
+    RFleetVo findFleetByTruckId(Long truckId, Long entId);
 }

+ 31 - 30
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/param/AddLogisticOrderParam.java

@@ -41,7 +41,7 @@ public class AddLogisticOrderParam implements Serializable {
      * 托运单位id
      */
     @NotBlank(message = "托运单位id不能为空")
-    private String consignCompanyId;
+    private Long consignCompanyId;
 
     /**
      * 托运联系电话
@@ -59,7 +59,7 @@ public class AddLogisticOrderParam implements Serializable {
      * 托运联系人id
      */
     @NotBlank(message = "托运联系人id不能为空")
-    private String consignContactsId;
+    private Long consignContactsId;
 
 
 
@@ -67,7 +67,7 @@ public class AddLogisticOrderParam implements Serializable {
     * 货物id
     */
     @NotNull(message = "货物id不能为空")
-    private String goodsId;
+    private Long goodsId;
     /**
      * 货物名称
      */
@@ -124,6 +124,29 @@ public class AddLogisticOrderParam implements Serializable {
     @NotBlank(message = "装货详细地址不能为空")
     private String loadDetailAddress;
 
+    /**
+     *卸货地址id
+     */
+    private Long unloadId;
+
+    /**
+     *卸货地址名称
+     */
+    private String unloadName;
+
+    /**
+     * 卸货城市编码
+     */
+    @NotNull(message = "卸货城市编码不能为空")
+    @Min(value = 0, message = "卸货城市编码必须大于等于{value}")
+    @Max(value = 1000000, message = "卸货城市编码必须小于等于{value}")
+    private Integer unloadCityCode;
+
+    /**
+     * 卸货城市名称
+     */
+    @NotBlank(message = "卸货城市名称不能为空")
+    private String unloadCityName;
 
     @Data
     public static class LogisticInfo {
@@ -131,7 +154,7 @@ public class AddLogisticOrderParam implements Serializable {
          * 合同id
          */
         @NotNull(message = "合同id不能为空")
-        private String contractId;
+        private Long contractId;
 
         /**
          * 合同编号
@@ -148,7 +171,7 @@ public class AddLogisticOrderParam implements Serializable {
          * 承运单位ID
          */
         @NotBlank(message = "承运单位ID不能为空")
-        private String acceptCompanyId;
+        private Long acceptCompanyId;
 
         /**
          * 承运联系电话
@@ -167,7 +190,7 @@ public class AddLogisticOrderParam implements Serializable {
          * 承运联系人id
          */
         @NotBlank(message = "承运联系人id不能为空")
-        private String acceptContactsId;
+        private Long acceptContactsId;
 
         /**
          * 承运单位
@@ -201,29 +224,7 @@ public class AddLogisticOrderParam implements Serializable {
         @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
         private LocalDate startTime;
 
-        /**
-         *卸货地址id
-         */
-        private String unloadId;
-
-        /**
-         *卸货地址名称
-         */
-        private String unloadName;
 
-        /**
-         * 卸货城市编码
-         */
-        @NotNull(message = "卸货城市编码不能为空")
-        @Min(value = 0, message = "卸货城市编码必须大于等于{value}")
-        @Max(value = 1000000, message = "卸货城市编码必须小于等于{value}")
-        private Integer unloadCityCode;
-
-        /**
-         * 卸货城市名称
-         */
-        @NotBlank(message = "卸货城市名称不能为空")
-        private String unloadCityName;
 
         /**
          * 卸货联系人
@@ -273,7 +274,7 @@ public class AddLogisticOrderParam implements Serializable {
          * 签约方式
          */
         @NotNull(message = "签约方式不能为空")
-        private String signingWay;
+        private Integer signingWay;
 
         /**
          * 合理损耗单位
@@ -293,7 +294,7 @@ public class AddLogisticOrderParam implements Serializable {
         /**
          * 订单创建类型(1.贸易订单生成,2自建订单生成)
          */
-        private String type;
+        private Integer type;
 
     }
 }

+ 34 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -43,6 +43,7 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
     private final KwfFleetTruckRepository kwfFleetTruckRepository;
     private final KwfTruckRouteRepository kwfTruckRouteRepository;
     private final KwfTruckAxleNumRepository kwfTruckAxleNumRepository;
+    private final KwfFleetRepository kwfFleetRepository;
 
     /**
      * @param driverIds 司机档案主键id,多个已逗号隔开
@@ -412,6 +413,39 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
                 .collect(Collectors.toList());
     }
 
+    @Override
+    public RFleetVo findFleetByTruckId(Long truckId, Long entId) {
+        KwfFleetTruck fleetByTruckId = kwfFleetTruckRepository.findFleetByTruckId(truckId, entId);
+        if(Objects.isNull(fleetByTruckId)){
+            return new RFleetVo();
+        }
+        KwfFleet fleet = kwfFleetRepository.queryByFleetId(fleetByTruckId.getFleetId());
+        if (Objects.isNull(fleet)){
+            return new RFleetVo();
+        }
+        return getFleetVo(fleet);
+    }
+
+    @NotNull
+    private static RFleetVo getFleetVo(KwfFleet fleet) {
+        RFleetVo rFleetVo = new RFleetVo();
+        rFleetVo.setId(fleet.getId());
+        rFleetVo.setRemark(fleet.getRemark());
+        rFleetVo.setStatus(fleet.getStatus());
+        rFleetVo.setCreateBy(fleet.getCreateBy());
+        rFleetVo.setCreateTime(fleet.getCreateTime());
+        rFleetVo.setUpdateBy(fleet.getUpdateBy());
+        rFleetVo.setUpdateTime(fleet.getUpdateTime());
+        rFleetVo.setDelFlag(fleet.getDelFlag());
+        rFleetVo.setEntId(fleet.getEntId());
+        rFleetVo.setCaptainId(fleet.getCaptainId());
+        rFleetVo.setName(fleet.getName());
+        rFleetVo.setContacts(fleet.getContacts());
+        rFleetVo.setPhone(fleet.getPhone());
+
+        return rFleetVo;
+    }
+
     @NotNull
     private static RFleetVo getRFleetVo(KwfFleet fleet) {
         RFleetVo rFleetVo = new RFleetVo();

+ 9 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/repository/KwfFleetTruckRepository.java

@@ -35,4 +35,13 @@ public class KwfFleetTruckRepository extends ServiceImpl<KwfFleetTruckMapper, Kw
                 .eq(BaseModel::getDelFlag,0).
                 in(KwfFleetTruck::getTruckId, truckIds));
     }
+
+    public KwfFleetTruck findFleetByTruckId(Long truckId, Long entId) {
+        return getOne(Wrappers.<KwfFleetTruck>lambdaQuery()
+                .eq(BaseModel::getDelFlag,0)
+                .eq(KwfFleetTruck::getTruckId, truckId)
+                .eq(KwfFleetTruck::getEntId,entId)
+                .orderByDesc(BaseModel::getId)
+                .last("limit 1"));
+    }
 }

+ 8 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dubbo/TransportServiceImpl.java

@@ -1122,6 +1122,10 @@ public class TransportServiceImpl implements TransportRemoteService {
         addLogisticOrderDTO.setLoadContacts(param.getLoadContacts());
         addLogisticOrderDTO.setLoadPhone(param.getLoadPhone());
         addLogisticOrderDTO.setLoadDetailAddress(param.getLoadDetailAddress());
+        addLogisticOrderDTO.setUnloadId(param.getUnloadId());
+        addLogisticOrderDTO.setUnloadName(param.getUnloadName());
+        addLogisticOrderDTO.setUnloadCityCode(param.getUnloadCityCode());
+        addLogisticOrderDTO.setUnloadCityName(param.getUnloadCityName());
         return addLogisticOrderDTO;
     }
 
@@ -1139,10 +1143,10 @@ public class TransportServiceImpl implements TransportRemoteService {
         info.setPriceType(logistic.getPriceType());
         info.setEndTime(logistic.getEndTime());
         info.setStartTime(logistic.getStartTime());
-        info.setUnloadId(logistic.getUnloadId());
-        info.setUnloadName(logistic.getUnloadName());
-        info.setUnloadCityCode(logistic.getUnloadCityCode());
-        info.setUnloadCityName(logistic.getUnloadCityName());
+//        info.setUnloadId(logistic.getUnloadId());
+//        info.setUnloadName(logistic.getUnloadName());
+//        info.setUnloadCityCode(logistic.getUnloadCityCode());
+//        info.setUnloadCityName(logistic.getUnloadCityName());
         info.setUnloadContacts(logistic.getUnloadContacts());
         info.setUnloadPhone(logistic.getUnloadPhone());
         info.setUnloadDetailAddress(logistic.getUnloadDetailAddress());

+ 31 - 29
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddLogisticOrderDTO.java

@@ -38,7 +38,7 @@ public class AddLogisticOrderDTO implements Serializable {
      * 托运单位id
      */
     @NotBlank(message = "托运单位id不能为空")
-    private String consignCompanyId;
+    private Long consignCompanyId;
 
     /**
      * 托运联系电话
@@ -56,7 +56,7 @@ public class AddLogisticOrderDTO implements Serializable {
      * 托运联系人id
      */
     @NotBlank(message = "托运联系人id不能为空")
-    private String consignContactsId;
+    private Long consignContactsId;
 
 
 
@@ -64,7 +64,7 @@ public class AddLogisticOrderDTO implements Serializable {
     * 货物id
     */
     @NotNull(message = "货物id不能为空")
-    private String goodsId;
+    private Long goodsId;
     /**
      * 货物名称
      */
@@ -121,6 +121,29 @@ public class AddLogisticOrderDTO implements Serializable {
     @NotBlank(message = "装货详细地址不能为空")
     private String loadDetailAddress;
 
+    /**
+     *卸货地址id
+     */
+    private Long unloadId;
+
+    /**
+     *卸货地址名称
+     */
+    private String unloadName;
+
+    /**
+     * 卸货城市编码
+     */
+    @NotNull(message = "卸货城市编码不能为空")
+    @Min(value = 0, message = "卸货城市编码必须大于等于{value}")
+    @Max(value = 1000000, message = "卸货城市编码必须小于等于{value}")
+    private Integer unloadCityCode;
+
+    /**
+     * 卸货城市名称
+     */
+    @NotBlank(message = "卸货城市名称不能为空")
+    private String unloadCityName;
 
     @Data
     public static class LogisticInfo {
@@ -128,7 +151,7 @@ public class AddLogisticOrderDTO implements Serializable {
          * 合同id
          */
         @NotNull(message = "合同id不能为空")
-        private String contractId;
+        private Long contractId;
 
         /**
          * 合同编号
@@ -145,7 +168,7 @@ public class AddLogisticOrderDTO implements Serializable {
          * 承运单位ID
          */
         @NotBlank(message = "承运单位ID不能为空")
-        private String acceptCompanyId;
+        private Long acceptCompanyId;
 
         /**
          * 承运联系电话
@@ -164,7 +187,7 @@ public class AddLogisticOrderDTO implements Serializable {
          * 承运联系人id
          */
         @NotBlank(message = "承运联系人id不能为空")
-        private String acceptContactsId;
+        private Long acceptContactsId;
 
         /**
          * 承运单位
@@ -198,29 +221,8 @@ public class AddLogisticOrderDTO implements Serializable {
         @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
         private LocalDate startTime;
 
-        /**
-         *卸货地址id
-         */
-        private String unloadId;
-
-        /**
-         *卸货地址名称
-         */
-        private String unloadName;
 
-        /**
-         * 卸货城市编码
-         */
-        @NotNull(message = "卸货城市编码不能为空")
-        @Min(value = 0, message = "卸货城市编码必须大于等于{value}")
-        @Max(value = 1000000, message = "卸货城市编码必须小于等于{value}")
-        private Integer unloadCityCode;
 
-        /**
-         * 卸货城市名称
-         */
-        @NotBlank(message = "卸货城市名称不能为空")
-        private String unloadCityName;
 
         /**
          * 卸货联系人
@@ -270,7 +272,7 @@ public class AddLogisticOrderDTO implements Serializable {
          * 签约方式
          */
         @NotNull(message = "签约方式不能为空")
-        private String signingWay;
+        private Integer signingWay;
 
         /**
          * 合理损耗单位
@@ -290,7 +292,7 @@ public class AddLogisticOrderDTO implements Serializable {
         /**
          * 订单创建类型(1.贸易订单生成,2自建订单生成)
          */
-        private String type;
+        private Integer type;
 
     }
 }

+ 2 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderGoodsRepository.java

@@ -30,9 +30,9 @@ public class KwtLogisticsOrderGoodsRepository extends ServiceImpl<KwtLogisticsOr
         );
     }
 
-    public KwtLogisticsOrderGoods queryByLogOrderId(Long id) {
+    public KwtLogisticsOrderGoods queryByLogOrderId(Long logOrderId) {
         return getOne(Wrappers.<KwtLogisticsOrderGoods>lambdaQuery()
-                .eq(KwtLogisticsOrderGoods::getId,id)
+                .eq(KwtLogisticsOrderGoods::getLOrderId,logOrderId)
                 .eq(KwtLogisticsOrderGoods::getDelFlag,0)
                 .orderByDesc(KwtLogisticsOrderGoods::getId)
                 .last("limit 1")

+ 2 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderTicketRepository.java

@@ -6,9 +6,8 @@ import com.sckw.transport.dao.KwtWaybillOrderTicketMapper;
 import com.sckw.transport.model.KwtWaybillOrderTicket;
 import org.springframework.stereotype.Repository;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author :chenXiaoFei

+ 15 - 16
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtAcceptCarriageOrderService.java

@@ -3193,8 +3193,7 @@ public class KwtAcceptCarriageOrderService {
             throw new BusinessException("物流信息不能为空");
         }
         List<Long> contractIds = logisticInfo.stream()
-                .filter(x-> org.apache.commons.lang3.StringUtils.isNotBlank(x.getContractId()))
-                .map(x->Long.parseLong(x.getContractId()))
+                .map(AddLogisticOrderDTO.LogisticInfo::getContractId)
                 .collect(Collectors.toList());
         Map<Long, ContractCommonInfoResDto> longContractCommonInfoResDtoMap = remoteContractService.queryContractBaseInfo(contractIds);
         if (MapUtils.isEmpty(longContractCommonInfoResDtoMap)) {
@@ -3239,16 +3238,16 @@ public class KwtAcceptCarriageOrderService {
         consignUnit.setId(new IdWorker(NumberConstant.ONE).nextId());
         consignUnit.setLOrderId(lOrderId);
         consignUnit.setUnitType(NumberConstant.ONE);
-        consignUnit.setEntId(Long.parseLong(orderDTO.getConsignCompanyId()));
+        consignUnit.setEntId(orderDTO.getConsignCompanyId());
         List<Long> entIds = new ArrayList<>();
-        entIds.add(Long.parseLong(orderDTO.getConsignCompanyId()));
-        entIds.add(Long.parseLong(x.getAcceptCompanyId()));
+        entIds.add(orderDTO.getConsignCompanyId());
+        entIds.add(x.getAcceptCompanyId());
         Map<Long, EntCacheResDto> entMap = remoteSystemService.queryEntTreeByIds(entIds);
-        EntCacheResDto ent = entMap.get(Long.parseLong(orderDTO.getConsignCompanyId()));
+        EntCacheResDto ent = entMap.get(orderDTO.getConsignCompanyId());
         if (Objects.isNull(ent)) {
             throw new BusinessException("企业:" + orderDTO.getConsignCompany() + "的一级企业信息不存在!");
         }
-        consignUnit.setContactsId(Long.parseLong(orderDTO.getConsignContactsId()));
+        consignUnit.setContactsId(orderDTO.getConsignContactsId());
         consignUnit.setTopEntId(ent.getId());
         consignUnit.setFirmName(orderDTO.getConsignCompany());
         consignUnit.setContacts(orderDTO.getConsignContacts());
@@ -3265,12 +3264,12 @@ public class KwtAcceptCarriageOrderService {
         unit.setId(new IdWorker(NumberConstant.TWO).nextId());
         unit.setLOrderId(lOrderId);
         unit.setUnitType(NumberConstant.TWO);
-        unit.setEntId(Long.parseLong(x.getAcceptCompanyId()));
-        EntCacheResDto ent1 = entMap.get(Long.parseLong(x.getAcceptCompanyId()));
+        unit.setEntId(x.getAcceptCompanyId());
+        EntCacheResDto ent1 = entMap.get(x.getAcceptCompanyId());
         if (Objects.isNull(ent1)) {
             throw new BusinessException("企业:" + x.getAcceptCompany() + "的一级企业信息不存在!");
         }
-        unit.setContactsId(Long.parseLong(x.getAcceptContactsId()));
+        unit.setContactsId(x.getAcceptContactsId());
         unit.setTopEntId(ent1.getId());
         unit.setFirmName(x.getAcceptCompany());
         unit.setContacts(x.getAcceptContacts());
@@ -3287,11 +3286,11 @@ public class KwtAcceptCarriageOrderService {
     private static void setLogisticContractInfo(AddLogisticOrderDTO.LogisticInfo x, Long lOrderId, List<KwtLogisticsOrderContract> saveContractList) {
         KwtLogisticsOrderContract contract = new KwtLogisticsOrderContract();
         contract.setId(new IdWorker(NumberConstant.ONE).nextId());
-        contract.setContractId(Long.parseLong(x.getContractId()));
+        contract.setContractId(x.getContractId());
         contract.setLOrderId(lOrderId);
         contract.setContractNo(x.getContractNo());
         contract.setContractName(x.getContractName());
-        contract.setSigningWay(x.getSigningWay());
+        contract.setSigningWay(String.valueOf(x.getSigningWay()));
         contract.setCreateBy(LoginUserHolder.getUserId());
         contract.setCreateTime(new Date());
         contract.setUpdateBy(LoginUserHolder.getUserId());
@@ -3339,12 +3338,12 @@ public class KwtAcceptCarriageOrderService {
         unloadAddress.setId(new IdWorker(NumberConstant.TWO).nextId());
         unloadAddress.setLOrderId(lOrderId);
         unloadAddress.setAddressType(NumberConstant.TWO);
-        unloadAddress.setName(x.getUnloadName());
+        unloadAddress.setName(orderDTO.getUnloadName());
 //        unloadAddress.setType();
         unloadAddress.setContacts(x.getUnloadContacts());
         unloadAddress.setPhone(x.getUnloadPhone());
-        unloadAddress.setCityCode(x.getUnloadCityCode());
-        unloadAddress.setCityName(x.getUnloadCityName());
+        unloadAddress.setCityCode(orderDTO.getUnloadCityCode());
+        unloadAddress.setCityName(orderDTO.getUnloadCityName());
         unloadAddress.setDetailAddress(x.getUnloadDetailAddress());
         unloadAddress.setEntryType(NumberConstant.FOUR);
         unloadAddress.setStatus(NumberConstant.ZERO);
@@ -3359,7 +3358,7 @@ public class KwtAcceptCarriageOrderService {
         KwtLogisticsOrder kwtLogisticsOrder = new KwtLogisticsOrder();
         kwtLogisticsOrder.setId(lOrderId);
         kwtLogisticsOrder.setEntId(LoginUserHolder.getEntId());
-        kwtLogisticsOrder.setType(x.getType());
+        kwtLogisticsOrder.setType(String.valueOf(x.getType()));
         kwtLogisticsOrder.setTOrderId(orderDTO.getTradeOrderId());
         kwtLogisticsOrder.setTOrderNo(orderDTO.getTradeOrderNo());
         kwtLogisticsOrder.setLOrderNo(lOrderNo);

+ 30 - 11
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -3283,24 +3283,41 @@ public class KwtWaybillOrderV1Service {
         Long fleetId = Objects.nonNull(truck) && org.apache.commons.lang3.StringUtils.isNotBlank(truck.getFleetId()) ?
                 Long.parseLong(truck.getFleetId()) : null;
 
-        RFleetVo fleet = remoteFleetService.findFleetById(fleetId);
+
+        RFleetVo fleet = null;
+        try {
+            fleet = remoteFleetService.findFleetByTruckId(billOrder.getTruckId(),LoginUserHolder.getEntId());
+        } catch (Exception e) {
+            log.info("查询车队信息异常:{}",  e.getMessage());
+        }
 
         //查询商品信息
         KwtLogisticsOrderGoods goods = kwtLogisticsOrderGoodsRepository.queryByLogOrderId(logOrder.getId());
+        KwpGoods kwpGoods = null;
+        if(Objects.nonNull(goods)){
+            kwpGoods = goodsInfoService.getGoodsById(goods.getGoodsId());
+        }
         //查询运单装货地址卸货地址
         List<KwtWaybillOrderAddress> kwtWaybillOrderAddresses = waybillOrderAddressRepository.queryByWOrderId(billOrder.getId());
         Map<String, KwtWaybillOrderAddress> keyAndAddressMap = Maps.newHashMap() ;
         if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(kwtWaybillOrderAddresses)){
             keyAndAddressMap = kwtWaybillOrderAddresses.stream()
-                    .collect(Collectors.toMap(x -> x.getId() + "-" + x.getAddressType(),
+                    .collect(Collectors.toMap(x -> x.getWOrderId() + "-" + x.getAddressType(),
                     Function.identity(), (x, y) -> x));
         }
 
-        return getWaybillOrderDetailResp(billOrder, logOrder, truck, fleet, goods, keyAndAddressMap);
+        return getWaybillOrderDetailResp( subtask,billOrder, logOrder, truck, fleet, goods,
+                keyAndAddressMap,kwpGoods);
     }
 
     @NotNull
-    private static WaybillOrderDetailResp getWaybillOrderDetailResp(KwtWaybillOrder billOrder, KwtLogisticsOrder logOrder, RTruckVo truck, RFleetVo fleet, KwtLogisticsOrderGoods goods, Map<String, KwtWaybillOrderAddress> keyAndAddressMap) {
+    private static WaybillOrderDetailResp getWaybillOrderDetailResp( KwtWaybillOrderSubtask subtask,
+                                                                     KwtWaybillOrder billOrder,
+                                                                     KwtLogisticsOrder logOrder,
+                                                                     RTruckVo truck, RFleetVo fleet,
+                                                                     KwtLogisticsOrderGoods goods,
+                                                                     Map<String, KwtWaybillOrderAddress> keyAndAddressMap,
+                                                                     KwpGoods kwpGoods ) {
         WaybillOrderDetailResp waybillOrderDetailResp = new WaybillOrderDetailResp();
         waybillOrderDetailResp.setWaybillOrderId(String.valueOf(billOrder.getId()));
         waybillOrderDetailResp.setLogisticOrderNo(logOrder.getLOrderNo());
@@ -3310,19 +3327,21 @@ public class KwtWaybillOrderV1Service {
         waybillOrderDetailResp.setDriverName(billOrder.getDriverName());
         waybillOrderDetailResp.setDriverPhone(billOrder.getDriverPhone());
         waybillOrderDetailResp.setDriverIdCard(billOrder.getDriverIdcard());
-        waybillOrderDetailResp.setGoodsName(Optional.ofNullable(goods).map(KwtLogisticsOrderGoods::getGoodsName).orElse( ""));
+        if (Objects.nonNull(kwpGoods)){
+            waybillOrderDetailResp.setGoodsName(kwpGoods.getName()+ "/" +goods.getGoodsType()+"/"+ kwpGoods.getSpec());
+        }
         KwtWaybillOrderAddress loadAdd = keyAndAddressMap.getOrDefault(billOrder.getId() + "-" + AddressTypeEnum.SHIPMENT.getCode(), new KwtWaybillOrderAddress());
         waybillOrderDetailResp.setLoadAddress(loadAdd.getDetailAddress());
         KwtWaybillOrderAddress unLoadAdd =
                 keyAndAddressMap.getOrDefault(billOrder.getId() + "-" + AddressTypeEnum.TAKE.getCode(),
                         new KwtWaybillOrderAddress());
         waybillOrderDetailResp.setUnloadAddress(unLoadAdd.getDetailAddress());
-        waybillOrderDetailResp.setTaskVolume(Objects.nonNull(billOrder.getEntrustAmount()) ?
-                billOrder.getEntrustAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "");
-        waybillOrderDetailResp.setLoadAmount(Objects.nonNull(billOrder.getLoadAmount()) ?
-                billOrder.getLoadAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "");
-        waybillOrderDetailResp.setUnloadAmount(Objects.nonNull(billOrder.getUnloadAmount()) ?
-                billOrder.getUnloadAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "");
+        waybillOrderDetailResp.setTaskVolume(Objects.nonNull(subtask.getEntrustAmount()) ?
+                subtask.getEntrustAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "");
+        waybillOrderDetailResp.setLoadAmount(Objects.nonNull(subtask.getLoadAmount()) ?
+                subtask.getLoadAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "");
+        waybillOrderDetailResp.setUnloadAmount(Objects.nonNull(subtask.getUnloadAmount()) ?
+                subtask.getUnloadAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "");
         return waybillOrderDetailResp;
     }