chenxiaofei пре 1 месец
родитељ
комит
86365a7177

+ 3 - 0
sckw-modules-api/sckw-contract-api/src/main/java/com/sckw/contract/api/RemoteContractService.java

@@ -4,6 +4,7 @@ import com.sckw.contract.api.model.dto.res.*;
 import com.sckw.contract.api.model.vo.KwcContractLogisticsDto;
 import com.sckw.contract.api.model.vo.TradeContractGoodsDto;
 import com.sckw.contract.api.model.vo.TradeContractResDto;
+import com.sckw.contract.api.model.vo.TradeContractUnitDto;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
@@ -105,4 +106,6 @@ public interface RemoteContractService {
     List<Long> queryTradeContractInfo(Long contractId);
 
     KwcContractLogisticsDto queryContractByContractId(Long contractId);
+
+    List<TradeContractUnitDto> queryContractUnitByContractId(Long contractId);
 }

+ 18 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dubbo/RemoteContractServiceImpl.java

@@ -313,6 +313,24 @@ public class RemoteContractServiceImpl implements RemoteContractService {
         return new KwcContractLogisticsDto();
     }
 
+    @Override
+    public List<TradeContractUnitDto> queryContractUnitByContractId(Long contractId) {
+        List<KwcContractLogisticsUnit> units = kwcContractLogisticsUnitRepository.queryByContractId(contractId);
+        if (org.apache.commons.collections4.CollectionUtils.isEmpty( units)){
+            return List.of();
+        }
+        return units.stream().map(unit -> {
+            TradeContractUnitDto tradeContractUnitDto = new TradeContractUnitDto();
+            tradeContractUnitDto.setUnitType(String.valueOf(unit.getUnitType()));
+            tradeContractUnitDto.setEntId(unit.getEntId());
+            tradeContractUnitDto.setFirmName(unit.getFirmName());
+            tradeContractUnitDto.setContactsId(unit.getContactsId());
+            tradeContractUnitDto.setContacts(unit.getContacts());
+            tradeContractUnitDto.setPhone(unit.getPhone());
+            return tradeContractUnitDto;
+        }).collect(Collectors.toList());
+    }
+
 
     private ContractCommonInfoResDto fillContractLogistics(KwcContractLogistics kwcContractLogistics) {
         ContractCommonInfoResDto contractCommonInfoResDto = new ContractCommonInfoResDto();

+ 6 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDetailResp.java

@@ -109,6 +109,12 @@ public class WaybillOrderDetailResp implements Serializable {
     @Schema(description = "卸货量")
     private String unloadAmount;
 
+    /**
+     * 供应单位
+     */
+    @Schema(description = "供应单位")
+    private String supplyEntName;
+
     /**
      * 托运企业
      */

+ 24 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -11,6 +11,8 @@ import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
+import com.sckw.contract.api.RemoteContractService;
+import com.sckw.contract.api.model.vo.TradeContractUnitDto;
 import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.common.enums.enums.ErrorCodeEnum;
@@ -34,6 +36,7 @@ import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.fleet.api.model.vo.*;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
+import com.sckw.order.api.model.OrderDetailVo;
 import com.sckw.order.api.model.TradeOrderSettlePara;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
@@ -154,7 +157,8 @@ public class KwtWaybillOrderV1Service {
 
     @DubboReference(version = "1.0.0", group = "design", check = false)
     private GoodsInfoService goodsInfoService;
-
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private RemoteContractService remoteContractService;
 
     /**
      * @param params 请求参数
@@ -3391,6 +3395,16 @@ public class KwtWaybillOrderV1Service {
         if(Objects.nonNull(goods)){
             kwpGoods = goodsInfoService.getGoodsById(goods.getGoodsId());
         }
+        //查询贸易订单
+
+        OrderDetailVo orderDetailVo = tradeOrderInfoService.queryByTradeOrderId(logOrder.getTOrderId());
+        List<TradeContractUnitDto> tradeContractUnitDtos = Lists.newArrayList() ;
+        if (Objects.nonNull(orderDetailVo) && Objects.nonNull(orderDetailVo.getContractInfo())){
+            //查询合同采购单位
+            tradeContractUnitDtos = remoteContractService.queryContractUnitByContractId(orderDetailVo.getContractInfo().getContractId());
+        }
+
+
         //查询运单装货地址卸货地址
         List<KwtWaybillOrderAddress> kwtWaybillOrderAddresses = waybillOrderAddressRepository.queryByWOrderId(billOrder.getId());
         Map<String, KwtWaybillOrderAddress> keyAndAddressMap = Maps.newHashMap() ;
@@ -3451,7 +3465,7 @@ public class KwtWaybillOrderV1Service {
         }
 
         return getWaybillOrderDetailResp( subtask,billOrder, logOrder, truck, fleet, goods,
-                keyAndAddressMap,kwpGoods,logisticsOrderUnitMap,nodeList,userCacheResDto,billOrders,ticketMap,dictValueAndDictResDtoMap);
+                keyAndAddressMap,kwpGoods,logisticsOrderUnitMap,nodeList,userCacheResDto,billOrders,ticketMap,dictValueAndDictResDtoMap,tradeContractUnitDtos);
     }
 
     @NotNull
@@ -3467,7 +3481,8 @@ public class KwtWaybillOrderV1Service {
                                                                      UserCacheResDto userCacheResDto,
                                                                      List<KwtWaybillOrder> billOrders,
                                                                      Map<String, KwtWaybillOrderTicket> ticketMap,
-                                                                     Map<String, SysDictResDto> dictValueAndDictResDtoMap) {
+                                                                     Map<String, SysDictResDto> dictValueAndDictResDtoMap,
+                                                                     List<TradeContractUnitDto> tradeContractUnitDtos ) {
         WaybillOrderDetailResp waybillOrderDetailResp = new WaybillOrderDetailResp();
         waybillOrderDetailResp.setWaybillOrderId(String.valueOf(billOrder.getId()));
         waybillOrderDetailResp.setWaybillOrderNo(billOrder.getWOrderNo());
@@ -3513,6 +3528,12 @@ public class KwtWaybillOrderV1Service {
         KwtLogisticsOrderUnit carrierEnt = logisticsOrderUnitMap.getOrDefault(logOrder.getId() + "-" + UnitTypeEnum.CARRIAGE.getCode(), new KwtLogisticsOrderUnit());
         waybillOrderDetailResp.setTransEntName(transEnt.getFirmName());
         waybillOrderDetailResp.setCarrierEntName(carrierEnt.getFirmName());
+        Optional<TradeContractUnitDto> first = tradeContractUnitDtos.stream()
+                .filter(x -> org.apache.commons.lang3.StringUtils.equals(x.getUnitType(), String.valueOf(CooperateTypeEnum.SUPPLIER.getCode())))
+                .findFirst();
+        first.ifPresent(x->{
+            waybillOrderDetailResp.setSupplyEntName(x.getFirmName());
+        });
 
         //皮重
         KwtWaybillOrderTicket tareAmountTicket = ticketMap.getOrDefault(subtask.getWOrderId() + "-" + AddressTypeEnum.SHIPMENT.getCode(), new KwtWaybillOrderTicket());