Переглянути джерело

Merge remote-tracking branch 'origin/dev_20251130' into dev_20251130

# Conflicts:
#	sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractTradeService.java
xucaiqin 1 місяць тому
батько
коміт
d32ca3c1fb

+ 4 - 0
sckw-modules-api/sckw-contract-api/src/main/java/com/sckw/contract/api/model/dto/res/ContractTradeOrderInfo.java

@@ -153,4 +153,8 @@ public class ContractTradeOrderInfo implements Serializable {
      */
 
     private String salesmanPhone;
+    /**
+     * 签约价格
+     */
+    private BigDecimal signPrice;
 }

+ 54 - 51
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractTradeService.java

@@ -121,51 +121,35 @@ public class KwcContractTradeService {
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
     private TransportRemoteService transportRemoteService;
 
-    /**
-     * 销售合同
-     */
+    /**销售合同*/
     @Value(value = "${jumpUrl.saleSendContract}")
     private String saleSendContract;
 
-    /**
-     * 采购合同
-     */
+    /**采购合同*/
     @Value(value = "${jumpUrl.purchaseSendContract}")
     private String purchaseSendContract;
 
-    /**
-     * 托运合同
-     */
+    /**托运合同*/
     @Value(value = "${jumpUrl.consignmentSendContract}")
     private String consignmentSendContract;
 
-    /**
-     * 承运合同
-     */
+    /**承运合同*/
     @Value(value = "${jumpUrl.acceptanceSendContract}")
     private String acceptanceSendContract;
 
-    /**
-     * app销售合同
-     */
+    /**app销售合同*/
     @Value(value = "${jumpUrl.appSaleSendContract}")
     private String appSaleSendContract;
 
-    /**
-     * app采购合同
-     */
+    /**app采购合同*/
     @Value(value = "${jumpUrl.appPurchaseSendContract}")
     private String appPurchaseSendContract;
 
-    /**
-     * app托运合同
-     */
+    /**app托运合同*/
     @Value(value = "${jumpUrl.appConsignmentSendContract}")
     private String appConsignmentSendContract;
 
-    /**
-     * app承运合同
-     */
+    /**app承运合同*/
     @Value(value = "${jumpUrl.appAcceptanceSendContract}")
     private String appAcceptanceSendContract;
 
@@ -201,8 +185,8 @@ public class KwcContractTradeService {
      * @author: czh
      * @date: 2023/7/18
      */
-    private List<QueryListResVo> getQueryListResVos(List<QueryListResDto> queryListResDtos, Map<Long,
-            List<KwcContractTradeGoods>> contractIdGoodsIdKeyAndGoodsMap, Map<String, KwcContractTradeUnit> contractUnitTypeKeyAndUnitMap) {
+    private List<QueryListResVo> getQueryListResVos(List<QueryListResDto> queryListResDtos,Map<Long,
+            List<KwcContractTradeGoods>> contractIdGoodsIdKeyAndGoodsMap,Map<String, KwcContractTradeUnit> contractUnitTypeKeyAndUnitMap ) {
         Map<Long, UserCacheResDto> longUserCacheResDtoMap = new HashMap<>(8);
         List<Long> initiateByList = queryListResDtos.stream().map(QueryListResDto::getInitiateBy).toList();
         if (CollectionUtils.isNotEmpty(initiateByList)) {
@@ -219,9 +203,9 @@ public class KwcContractTradeService {
                 queryListResVo.setProvideEntName(queryListResDto.getUnitType().compareTo(EntTypeEnum.SUPPLIER.getCode()) == 0 ? queryListResDto.getEntName() : queryListResDto.getTargetEntName());
                 queryListResVo.setPurchaseEntName(queryListResDto.getUnitType().compareTo(EntTypeEnum.SUPPLIER.getCode()) == 0 ? queryListResDto.getTargetEntName() : queryListResDto.getEntName());
             }
-            if (Objects.equals(queryListResDto.getUnitType(), EntTypeEnum.SUPPLIER.getCode())) {
+            if(Objects.equals(queryListResDto.getUnitType(),EntTypeEnum.SUPPLIER.getCode())){
                 queryListResVo.setProvideEntId(String.valueOf(queryListResDto.getProvideEntId()));
-            } else if (Objects.equals(queryListResDto.getUnitType(), EntTypeEnum.PURCHASER.getCode())) {
+            }else if(Objects.equals(queryListResDto.getUnitType(),EntTypeEnum.PURCHASER.getCode())){
                 queryListResVo.setPurchaseEntId(String.valueOf(queryListResDto.getPurchaseEntId()));
             }
 
@@ -230,7 +214,7 @@ public class KwcContractTradeService {
                 queryListResVo.setInitiateName(userCacheResDto.getName());
                 queryListResVo.setInitiateEntName(Objects.isNull(userCacheResDto.getEntInfo()) ? "" : userCacheResDto.getEntInfo().getFirmName());
             }
-            if (MapUtils.isNotEmpty(contractUnitTypeKeyAndUnitMap)) {
+            if (MapUtils.isNotEmpty(contractUnitTypeKeyAndUnitMap)){
                 KwcContractTradeUnit kwcContractTradeUnit =
                         contractUnitTypeKeyAndUnitMap.getOrDefault(queryListResDto.getId() + "-" + EntTypeEnum.SUPPLIER.getCode()
                                 , new KwcContractTradeUnit());
@@ -253,9 +237,9 @@ public class KwcContractTradeService {
             queryListResVo.setAmount(queryListResDto.getAmount());
             queryListResVo.setPerformedAmount(queryListResDto.getPerformedAmount());
             BigDecimal performedAmountMoney = BigDecimal.ZERO;
-            if (MapUtils.isNotEmpty(contractIdGoodsIdKeyAndGoodsMap)) {
+            if(MapUtils.isNotEmpty(contractIdGoodsIdKeyAndGoodsMap)) {
                 List<KwcContractTradeGoods> contractTradeGoods = contractIdGoodsIdKeyAndGoodsMap.get(queryListResDto.getId());
-                if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(contractTradeGoods)) {
+                if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(contractTradeGoods)){
                     for (KwcContractTradeGoods goods : contractTradeGoods) {
                         BigDecimal performedAmount = goods.getPerformedAmount() != null ? goods.getPerformedAmount() : BigDecimal.ZERO;
                         BigDecimal price = goods.getPrice() != null ? goods.getPrice() : BigDecimal.ZERO;
@@ -263,11 +247,11 @@ public class KwcContractTradeService {
                     }
                 }
             }
-            queryListResVo.setPerformedAmountMoney(performedAmountMoney);
-            if (Objects.nonNull(queryListResVo.getEndTime())) {
+            queryListResVo.setPerformedAmountMoney( performedAmountMoney);
+            if(Objects.nonNull(queryListResVo.getEndTime())) {
                 queryListResVo.setEndTime(DateUtils.getStartOfDay(queryListResVo.getEndTime()));
                 String endDate = DateUtils.format(queryListResVo.getEndTime(), DateUtils.DATE_PATTERN);
-                if (org.apache.commons.lang3.StringUtils.equals(endDate, "9999-12-30")) {
+                if (org.apache.commons.lang3.StringUtils.equals(endDate,"9999-12-30")){
                     queryListResVo.setEndTime(null);
                 }
             }
@@ -296,9 +280,9 @@ public class KwcContractTradeService {
         kwcContractTrade.setId(contactId);
         EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(LoginUserHolder.getEntId());
         if (Objects.nonNull(entCacheResDto) && StringUtils.isNotBlank(entCacheResDto.getEntTypes())) {
-            if (org.apache.commons.lang3.StringUtils.equals(entCacheResDto.getEntTypes(), String.valueOf(EntTypeEnum.SUPPLIER.getCode()))) {
+            if (org.apache.commons.lang3.StringUtils.equals(entCacheResDto.getEntTypes(), String.valueOf(EntTypeEnum.SUPPLIER.getCode()))){
                 kwcContractTrade.setStatus(ContractStatusEnum.WAIT_APPROVE.getCode());
-            } else if (org.apache.commons.lang3.StringUtils.equals(entCacheResDto.getEntTypes(), String.valueOf(EntTypeEnum.PURCHASER.getCode()))) {
+            }else if (org.apache.commons.lang3.StringUtils.equals(entCacheResDto.getEntTypes(), String.valueOf(EntTypeEnum.PURCHASER.getCode()))){
                 kwcContractTrade.setStatus(ContractStatusEnum.SUBMIT.getCode());
             }
         }
@@ -309,7 +293,7 @@ public class KwcContractTradeService {
         }
 
         //保存交易合同商品信息
-        kwcContractTradeGoodsService.saveContractTradeGoods(contactId, goodsInfoList, baseInfo.getStartTime(), baseInfo.getEndTime());
+        kwcContractTradeGoodsService.saveContractTradeGoods(contactId, goodsInfoList,baseInfo.getStartTime(),baseInfo.getEndTime());
 
         //存单位信息
         kwcContractTradeUnitService.saveContractTradeUnit(contactId, baseInfo);
@@ -397,7 +381,7 @@ public class KwcContractTradeService {
         kwcContractTrade.setStartTime(baseInfo.getStartTime());
         if (Objects.nonNull(baseInfo.getEndTime())) {
             kwcContractTrade.setEndTime(DateUtils.getEndOfDay(baseInfo.getEndTime()));
-        } else {
+        }else {
             LocalDate localDate = LocalDate.of(9999, 12, 30);
             Date date1 = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
             kwcContractTrade.setEndTime(DateUtils.getEndOfDay(date1));
@@ -691,11 +675,12 @@ public class KwcContractTradeService {
                     purchaseSendContract,
                     appPurchaseSendContract);
         } catch (Exception e) {
-            log.error("合同签约流程已发起消息出错:", e);
+           log.error("合同签约流程已发起消息出错:", e);
         }
     }
 
 
+
     /**
      * @param id 合同id
      * @desc: 更新合同为发起
@@ -758,9 +743,9 @@ public class KwcContractTradeService {
                 }
             }
         }
-        if (Objects.nonNull(entTypeResDto) && Objects.equals(entTypeResDto.getType(), EntTypeEnum.SUPPLIER.getCode())) {
+        if (Objects.nonNull(entTypeResDto) && Objects.equals(entTypeResDto.getType(), EntTypeEnum.SUPPLIER.getCode())){
             kwcContractTrade.setStatus(ContractStatusEnum.WAIT_APPROVE.getCode());
-        } else if (Objects.nonNull(entTypeResDto) && Objects.equals(entTypeResDto.getType(), EntTypeEnum.PURCHASER.getCode())) {
+        }else if (Objects.nonNull(entTypeResDto) && Objects.equals(entTypeResDto.getType(), EntTypeEnum.PURCHASER.getCode())){
             kwcContractTrade.setStatus(ContractStatusEnum.SUBMIT.getCode());
         }
         kwcContractTrade.setAmount(amountTotal);
@@ -944,7 +929,7 @@ public class KwcContractTradeService {
         if (CollectionUtils.isEmpty(queryListResDtos)) {
             return Collections.emptyList();
         }
-        return getQueryListResVos(queryListResDtos, null, null);
+        return getQueryListResVos(queryListResDtos,null,null);
     }
 
 
@@ -1040,7 +1025,7 @@ public class KwcContractTradeService {
             authEntIdList.addAll(ids);
         }
 
-        List<QueryListResDto> queryListResDtos = kwcContractTradeMapper.queryTradeList(reqVo, authEntIdList);
+        List<QueryListResDto> queryListResDtos = kwcContractTradeMapper.queryTradeList(reqVo,authEntIdList);
         if (CollectionUtils.isEmpty(queryListResDtos)) {
             return PageHelperUtil.getPageResult(new PageInfo<>());
         }
@@ -1855,21 +1840,33 @@ public class KwcContractTradeService {
         //查询贸易合同企业信息
         List<KwcContractTradeUnit> tradeUnits = kwcContractTradeUnitRepository.queryByEntIdAndUnitType(contractTradeOrderDto.getEntId(),
                 contractTradeOrderDto.getEntType());
-        if (org.apache.commons.collections4.CollectionUtils.isEmpty(tradeUnits)) {
-            return Collections.emptyList();
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(tradeUnits)){
+            return  List.of();
+        }
+        Set<Long> contractIds =
+                tradeUnits.stream().map(KwcContractTradeUnit::getContractId).collect(Collectors.toSet());
+
+        List<KwcContractTradeUnit> tradeUnits1 = kwcContractTradeUnitRepository.queryByContractIds(contractIds);
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(tradeUnits1)){
+            return List.of();
         }
         Map<String, KwcContractTradeUnit> conTractTradeUnitMap =
-                tradeUnits.stream().collect(Collectors.toMap(x -> x.getContractId() +
+                tradeUnits1.stream().collect(Collectors.toMap(x -> x.getContractId() +
                                 "_" + x.getUnitType(), Function.identity(),
                         (x, y) -> x));
-        Set<Long> contractIds =
-                tradeUnits.stream().map(KwcContractTradeUnit::getContractId).collect(Collectors.toSet());
+        contractIds= tradeUnits1.stream()
+                .filter(x -> Objects.equals(x.getEntId(), LoginUserHolder.getEntId()) && Objects.equals(x.getUnitType(),
+                        2))
+                .map(KwcContractTradeUnit::getContractId)
+                .collect(Collectors.toSet());
         //查询商品信息
         List<KwcContractTradeGoods> kwcContractGoods = kwcContractTradeGoodsRepository.queryByContractIdsAndGoodsId(contractIds,
                 contractTradeOrderDto.getGoodsId());
         if (org.apache.commons.collections4.CollectionUtils.isEmpty(kwcContractGoods)) {
             return Collections.emptyList();
         }
+        Map<Long, KwcContractTradeGoods> contractGoodsMap = kwcContractGoods.stream()
+                .collect(Collectors.toMap(KwcContractTradeGoods::getContractId,Function.identity(),(x,y)->x));
         //只查询已签约的
         Set<Long> contractIdList = kwcContractGoods.stream()
                 .filter(x -> Objects.equals(x.getStatus(), ContractStatusEnum.SIGNED.getCode()))
@@ -1880,8 +1877,11 @@ public class KwcContractTradeService {
         if (org.apache.commons.collections4.CollectionUtils.isEmpty(kwcContractTrades)) {
             return Collections.emptyList();
         }
+        kwcContractTrades = kwcContractTrades.stream()
+                .filter(x-> Objects.equals(x.getStatus(), ContractStatusEnum.SIGNED.getCode()))
+                .collect(Collectors.toList());
         return kwcContractTrades.stream()
-                .map(x -> getContractTradeOrderInfo(x, conTractTradeUnitMap, contractTradeOrderDto.getEntType()))
+                .map(x-> getContractTradeOrderInfo(x, conTractTradeUnitMap,contractTradeOrderDto.getEntType(),contractGoodsMap))
                 .collect(Collectors.toList());
     }
 
@@ -1899,7 +1899,7 @@ public class KwcContractTradeService {
 
     @NotNull
     private static ContractTradeOrderInfo getContractTradeOrderInfo(KwcContractTrade c, Map<String,
-            KwcContractTradeUnit> conTractTradeUnitMap, Integer entType) {
+            KwcContractTradeUnit> conTractTradeUnitMap,Integer entType, Map<Long, KwcContractTradeGoods> contractGoodsMap) {
         ContractTradeOrderInfo contractTradeOrderInfo = new ContractTradeOrderInfo();
         contractTradeOrderInfo.setId(c.getId());
         KwcContractTradeUnit unit = conTractTradeUnitMap.getOrDefault(c.getId() + "_" + entType,
@@ -1911,7 +1911,7 @@ public class KwcContractTradeService {
         contractTradeOrderInfo.setTrading(c.getTrading());
         contractTradeOrderInfo.setStartTime(c.getStartTime());
         contractTradeOrderInfo.setEndTime(c.getEndTime());
-        contractTradeOrderInfo.setAmount(c.getAmount());
+        contractTradeOrderInfo.setAmount(Objects.isNull(c.getAmount()) ? new BigDecimal("-1") : c.getAmount());
         contractTradeOrderInfo.setPerformedAmount(c.getPerformedAmount());
         contractTradeOrderInfo.setSigningUrl(c.getSigningUrl());
         contractTradeOrderInfo.setSignedUrl(c.getSignedUrl());
@@ -1930,6 +1930,8 @@ public class KwcContractTradeService {
         contractTradeOrderInfo.setUnloadWay(c.getUnloadWay());
         contractTradeOrderInfo.setSalesmanId(c.getSalesmanId());
         contractTradeOrderInfo.setSalesmanPhone(c.getSalesmanPhone());
+        KwcContractTradeGoods kwcContractTradeGoods = contractGoodsMap.getOrDefault(c.getId(), new KwcContractTradeGoods());
+        contractTradeOrderInfo.setSignPrice(Objects.nonNull(kwcContractTradeGoods.getPrice())?kwcContractTradeGoods.getPrice():new BigDecimal("-1"));
         return contractTradeOrderInfo;
     }
 
@@ -2063,3 +2065,4 @@ public class KwcContractTradeService {
         return kwcContractTradeMapper.selectByContract(contractId);
     }
 }
+

+ 11 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtLogisticsOrderController.java

@@ -11,6 +11,7 @@ import com.sckw.transport.model.dto.LogisticsOrderFinishDto;
 import com.sckw.transport.model.dto.LogisticsOrderSubcontractDto;
 import com.sckw.transport.model.param.AddLogisticsOrderParam;
 import com.sckw.transport.model.param.LogisticsOrderResp;
+import com.sckw.transport.model.param.LogisticsOrderUnitReq;
 import com.sckw.transport.model.param.QueryLogisticsOrderReq;
 import com.sckw.transport.model.vo.*;
 import com.sckw.transport.service.KwtLogisticsConsignmentService;
@@ -24,7 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-
+import java.util.List;
 /**
  * @author lfdc
  * @desc 物流订单Controller-v4.2
@@ -195,4 +196,13 @@ public class KwtLogisticsOrderController {
     public BaseResult<OrderStatusStatisticsResp> orderStatusStatistics(@RequestBody QueryLogisticsOrderReq req) {
         return BaseResult.success(logisticsConsignmentService.orderStatusStatistics(req));
     }
+
+    /**
+     * 查询物流订单托运/承运企业(unitType:1托运、2承运)
+     */
+    @GetMapping("/orderUnits")
+    @Operation(summary = "查询物流订单托运/承运企业")
+    public BaseResult<List<LogisticsOrderUnitResp>> orderUnits() {
+        return BaseResult.success(transportCommonService.queryOrderUnits());
+    }
 }

+ 21 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsOrderUnitReq.java

@@ -0,0 +1,21 @@
+package com.sckw.transport.model.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author PC
+ */
+@Data
+public class LogisticsOrderUnitReq implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 7624865925084141417L;
+    @Schema(description = "物流订单ID")
+    @NotNull(message = "物流订单ID不能为空")
+    private Long logisticOrderId;
+}
+

+ 37 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/LogisticsOrderUnitResp.java

@@ -0,0 +1,37 @@
+package com.sckw.transport.model.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author PC
+ */
+@Data
+public class LogisticsOrderUnitResp implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 3135159552358047843L;
+    @Schema(description = "主键")
+    private Long id;
+    @Schema(description = "物流订单ID")
+    private Long lOrderId;
+    @Schema(description = "单位类型(1托运企业、2承运企业)")
+    private Integer unitType;
+    @Schema(description = "顶级企业ID")
+    private Long topEntId;
+    @Schema(description = "企业ID")
+    private Long entId;
+    @Schema(description = "企业名称")
+    private String firmName;
+    @Schema(description = "联系人ID")
+    private Long contactsId;
+    @Schema(description = "联系人姓名")
+    private String contacts;
+    @Schema(description = "联系电话")
+    private String phone;
+    @Schema(description = "备注")
+    private String remark;
+}
+

+ 7 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/MapVehicleVo.java

@@ -41,12 +41,17 @@ public class MapVehicleVo implements Serializable {
 
     @Schema(description = "司机手机号")
     private String driverPhone;
+    @Schema(description = "运单ID")
+    private Long wayOrderId;
 
     @Schema(description = "运单号")
-    private String wOrderNo;
+    private String wayOrderNo;
+
+    @Schema(description = "物流订单ID")
+    private Long logisticOrderId;
 
     @Schema(description = "物流订单号")
-    private String lOrderNo;
+    private String logisticOrderNo;
 
     @Schema(description = "托运单位")
     private String consignUnit;

+ 7 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderRepository.java

@@ -124,4 +124,11 @@ public class KwtLogisticsOrderRepository extends ServiceImpl<KwtLogisticsOrderMa
                 .eq(KwtLogisticsOrder::getLOrderNo, lOrderNo)
                 .last("limit 1"));
     }
+
+    public List<KwtLogisticsOrder> queryByEntId(Long entId) {
+        return list(Wrappers.<KwtLogisticsOrder>lambdaQuery()
+                .eq(KwtLogisticsOrder::getDelFlag,0)
+                .eq(KwtLogisticsOrder::getEntId, entId)
+                .orderByDesc(KwtLogisticsOrder::getId));
+    }
 }

+ 9 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderUnitRepository.java

@@ -62,4 +62,13 @@ public class KwtLogisticsOrderUnitRepository extends ServiceImpl<KwtLogisticsOrd
                 .eq(KwtLogisticsOrderUnit::getDelFlag, 0)
                 .in(KwtLogisticsOrderUnit::getLOrderId, lOrderIds));
     }
+
+    public List<KwtLogisticsOrderUnit> queryListByLOrderId(Long lOrderId) {
+        return list(Wrappers.<KwtLogisticsOrderUnit>lambdaQuery()
+                        .eq(KwtLogisticsOrderUnit::getDelFlag, 0)
+                        .eq(KwtLogisticsOrderUnit::getLOrderId, lOrderId)
+                        .in(KwtLogisticsOrderUnit::getUnitType, 1, 2)
+                        .orderByDesc(KwtLogisticsOrderUnit::getCreateTime)
+        );
+    }
 }

+ 48 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtTransportCommonService.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.contract.api.RemoteContractService;
@@ -44,11 +45,16 @@ import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
 import com.sckw.transport.model.param.ContractParam;
 import com.sckw.transport.model.param.LogisticsOrderParam;
+import com.sckw.transport.model.vo.LogisticsOrderUnitResp;
 import com.sckw.transport.model.vo.*;
+import com.sckw.transport.repository.KwtLogisticsOrderRepository;
+import com.sckw.transport.repository.KwtLogisticsOrderUnitRepository;
 import io.seata.spring.annotation.GlobalTransactional;
 import jakarta.annotation.Resource;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.stereotype.Service;
@@ -67,6 +73,7 @@ import java.util.stream.Collectors;
  */
 @Slf4j
 @Service
+@RequiredArgsConstructor
 public class KwtTransportCommonService {
 
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 10000)
@@ -136,6 +143,8 @@ public class KwtTransportCommonService {
     @Autowired
     private KwtLogisticsOrderLineFreightRateMapper kwtLogisticsOrderLineFreightRateMapper;
 
+    private final KwtLogisticsOrderUnitRepository logisticsOrderUnitRepository;
+    private final KwtLogisticsOrderRepository logisticsOrderRepository;
     /**
      * 查看订单详情
      *
@@ -1878,4 +1887,43 @@ public class KwtTransportCommonService {
         }
 
     }
+
+    /**
+     * 查询物流订单托运/承运企业
+     */
+    public List<LogisticsOrderUnitResp> queryOrderUnits() {
+        log.info("查询物流订单托运/承运企业");
+        Long entId = LoginUserHolder.getEntId();
+        //根据企业查询物流订单
+        List<KwtLogisticsOrder> logisticsOrders = logisticsOrderRepository.queryByEntId(entId);
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty(logisticsOrders)){
+            return List.of();
+        }
+        List<Long> logIds = logisticsOrders.stream()
+                .map(KwtLogisticsOrder::getId)
+                .collect(Collectors.toList());
+        List<KwtLogisticsOrderUnit> units =logisticsOrderUnitRepository.queryByLOrderIds(logIds);
+        if (CollectionUtils.isEmpty(units)){
+            return List.of();
+        }
+        return units.stream()
+                .map(KwtTransportCommonService::getLogisticsOrderUnitResp).
+                collect(Collectors.toList());
+    }
+
+    @NotNull
+    private static LogisticsOrderUnitResp getLogisticsOrderUnitResp(KwtLogisticsOrderUnit u) {
+        LogisticsOrderUnitResp resp = new LogisticsOrderUnitResp();
+        resp.setId(u.getId());
+        resp.setLOrderId(u.getLOrderId());
+        resp.setUnitType(u.getUnitType());
+        resp.setTopEntId(u.getTopEntId());
+        resp.setEntId(u.getEntId());
+        resp.setFirmName(u.getFirmName());
+        resp.setContactsId(u.getContactsId());
+        resp.setContacts(u.getContacts());
+        resp.setPhone(u.getPhone());
+        resp.setRemark(u.getRemark());
+        return resp;
+    }
 }

+ 4 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/kwfTruckTraceService.java

@@ -17,7 +17,6 @@ import com.sckw.core.model.enums.CarWaybillV1Enum;
 import com.sckw.core.utils.DateUtils;
 import com.sckw.core.utils.HttpUtil;
 import com.sckw.core.web.constant.CommonConstants;
-import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.core.web.response.BaseResult;
@@ -1134,14 +1133,16 @@ public class kwfTruckTraceService {
         vo.setTruckId(order.getTruckId());
         vo.setDriverName(order.getDriverName());
         vo.setDriverPhone(order.getDriverPhone());
-        vo.setWOrderNo(order.getWOrderNo());
+        vo.setWayOrderId(order.getId());
+        vo.setWayOrderNo(order.getWOrderNo());
         vo.setStatus(order.getStatus());
         vo.setStatusDesc(CarWaybillV1Enum.geDesc(order.getStatus()));
         
         // 子运单信息
         KwtWaybillOrderSubtask subtask = subtaskMap.get(order.getId());
         if (subtask != null) {
-            vo.setLOrderNo(String.valueOf(subtask.getLOrderId()));
+            vo.setLogisticOrderId(subtask.getLOrderId());
+            vo.setLogisticOrderNo(String.valueOf(subtask.getLOrderId()));
             vo.setLoadAmount(subtask.getLoadAmount());
             vo.setEntrustAmount(subtask.getEntrustAmount());
             vo.setUnit(subtask.getUnit());