From 37701165fd783da4c2878d72b4bae52687836479 Mon Sep 17 00:00:00 2001
From: zhangback <zhangback@163.com>
Date: 星期四, 18 十二月 2025 15:47:56 +0800
Subject: [PATCH] 提交

---
 tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java |  125 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 109 insertions(+), 16 deletions(-)

diff --git a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java
index 7b46320..f3945f2 100644
--- a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java
+++ b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java
@@ -20,9 +20,8 @@
 import com.ruoyi.system.service.ISystemDataNoService;
 import com.ruoyi.tms.domain.*;
 import com.ruoyi.tms.domain.vo.DriverDispatchVo;
-import com.ruoyi.tms.mapper.TmsFinanceMapper;
-import com.ruoyi.tms.mapper.TmsQuoteDetailMapper;
-import com.ruoyi.tms.mapper.TmsQuotePlanMapper;
+import com.ruoyi.tms.domain.vo.ServiceProviderVo;
+import com.ruoyi.tms.mapper.*;
 import com.ruoyi.tms.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -36,7 +35,6 @@
 import com.ruoyi.common.enums.DataSourceType;
 import com.ruoyi.common.core.service.BaseService;
 
-import com.ruoyi.tms.mapper.TmsDispatchOrderMapper;
 import com.ruoyi.common.core.text.Convert;
 
 /**
@@ -79,6 +77,14 @@
     private ITmsReceivableFeeService tmsReceivableFeeService;
     @Autowired
     private ITmsReceivableFeeItemService tmsReceivableFeeItemService;
+    @Autowired
+    private TmsDriverDispatchServiceImpl tmsDriverDispatchServiceImpl;
+    @Resource
+    private TmsLoadingServiceProviderMapper tmsLoadingServiceProviderMapper;
+    @Resource
+    private TmsServiceProviderMapper tmsServiceProviderMapper;
+    @Resource
+    private TmsCustomsServiceProviderMapper tmsCustomsServiceProviderMapper;
 
     /**
      * 鏌ヨ璋冨害鍗曠鐞�
@@ -537,7 +543,7 @@
                     // 鍑哄彂璺嚎 44,4404,440402,440402102
                     String shipperRegionCode = tmsDispatchOrder.getStartRegionCode();
                     // 鐩殑鍦拌矾绾� 81,8100,810000
-                    String receiverRegionCode = tmsDispatchOrder.getReceiverRegionCode();
+                    String receiverRegionCode = tmsDispatchOrder.getEndRegionCode();
 
                     // 鏌ヨ搴旀敹瑙勫垯
                     TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>()
@@ -555,7 +561,7 @@
                         throw new RuntimeException("璋冨害鍗�"+tmsDispatchOrder.getDispatchNo()+"鏈淮鎶ゅ簲鏀惰繍璐规姤浠凤紝璇风淮鎶ゆ暟鎹悗鍐嶉噸鏂扮敓鎴�");
                     }
 
-                    if (tmsQuoteDetail.getIsSegmentedInvoice() == 0){
+                    if (tmsQuoteDetail.getIsSegmentedInvoice() == 1){
                         TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem();
                         tmsReceivableFeeItem.setFeeType(0);
                         tmsReceivableFeeItem.setFeeName("杩愯垂");
@@ -667,17 +673,28 @@
                     // 鍑哄彂璺嚎 44,4404,440402,440402102
                     String shipperRegionCode = tmsDispatchOrder.getStartRegionCode();
                     // 鐩殑鍦拌矾绾� 81,8100,810000
-                    String receiverRegionCode = tmsDispatchOrder.getReceiverRegionCode();
+                    String receiverRegionCode = tmsDispatchOrder.getEndRegionCode();
 
                     // 鏌ヨ搴旀敹瑙勫垯
-                    TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>()
-                            .eq(TmsQuoteDetail::getVehicleProviderId, vehicleProviderId)
-                            .eq(TmsQuoteDetail::getVehicleType, actualVehicleType)
-                            .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
-                            .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
-                            .eq(TmsQuoteDetail::getPlanType, 1)
-                            .last("limit 1")
-                    );
+                    TmsQuoteDetail tmsQuoteDetail =
+                            tmsQuoteDetailMapper.selectOne(
+                                    new LambdaQueryWrapper<TmsQuoteDetail>()
+                                            .eq(TmsQuoteDetail::getVehicleType, actualVehicleType)
+                                            .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
+                                            .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
+                                            .eq(TmsQuoteDetail::getPlanType, 1)
+                                            .exists(
+                                                    "SELECT 1 " +
+                                                            "FROM tms_quote_plan tqp " +
+                                                            "WHERE tqp.id = tms_quote_detail.quote_plan_id " +
+                                                            "AND tqp.provider_id = {0} " +
+                                                            "AND tqp.plan_type = 1 " +
+                                                            "AND tqp.provider_type = 0",
+                                                    vehicleProviderId
+                                            )
+                                            .last("LIMIT 1")
+                            );
+
 
 
 
@@ -797,7 +814,7 @@
 
 
             BigDecimal totalHkbAmount = tmsReceivableFeeItems.stream()
-                    .filter(cItem -> "HKB".equals(cItem.getCurrency()))
+                    .filter(cItem -> "HKD".equals(cItem.getCurrency()))
                     .map(TmsReceivableFeeItem::getRegisterAmount)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
             tmsReceivableFee.setReceivableHKBAmount(totalHkbAmount);
@@ -959,4 +976,80 @@
 
         return AjaxResult.success();
     }
+
+
+    @Override
+    public AjaxResult getServiceProvider(Integer id) {
+
+        TmsDispatchOrder tmsDispatchOrder = tmsDispatchOrderMapper.
+                selectTmsDispatchOrderById(id);
+        List<ServiceProviderVo> serviceProviderVos = new ArrayList<>();
+        if (tmsDispatchOrder != null){
+
+            if (tmsDispatchOrder.getLoadingServiceProviderId() != null){
+                serviceProviderVos.add(new ServiceProviderVo(tmsDispatchOrder.getLoadingServiceProviderId(),
+                        tmsDispatchOrder.getLoadingServiceProviderName(),
+                        "2"));
+            }
+            if (tmsDispatchOrder.getCustomsServiceProviderId() != null){
+                serviceProviderVos.add(new ServiceProviderVo(tmsDispatchOrder.getCustomsServiceProviderId(),
+                        tmsDispatchOrder.getCustomsServiceProviderName(),
+                        "1"));
+            }
+            if (tmsDispatchOrder.getVehicleProviderId() != null){
+                serviceProviderVos.add(new ServiceProviderVo(tmsDispatchOrder.getVehicleProviderId(),
+                        tmsDispatchOrder.getVehicleProviderName(),
+                        "0"));
+            }
+            // 鏌ヨ
+            List<TmsQuoteFee> tmsQuoteFees = tmsQuoteFeeService.selectTmsQuoteFeeList(new TmsQuoteFee() {{
+                setDispatchId(id);
+            }});
+            if (tmsQuoteFees != null && !tmsQuoteFees.isEmpty()){
+                List<ServiceProviderVo> collect = tmsQuoteFees.stream()
+                        .collect(Collectors.collectingAndThen(
+                                Collectors.toMap(
+                                        item -> item.getServiceProviderId() + "_" + item.getServiceProviderType(),
+                                        item -> new ServiceProviderVo(
+                                                item.getServiceProviderId(),
+                                                null,
+                                                item.getServiceProviderType()
+                                        ),
+                                        (a, b) -> a
+                                ),
+                                m -> new ArrayList<>(m.values())
+                        ));
+
+                collect.forEach(item -> {
+                    if ("0".equals(item.getServiceProviderType())){
+                        TmsServiceProvider tmsServiceProvider = tmsServiceProviderMapper.selectTmsServiceProviderById(item.getServiceProviderId());
+                        item.setServiceProviderName(tmsServiceProvider.getServiceName());
+                    } else   if ("1".equals(item.getServiceProviderType())){
+                        TmsCustomsServiceProvider tmsCustomsServiceProvider = tmsCustomsServiceProviderMapper.selectTmsCustomsServiceProviderById(item.getServiceProviderId());
+                        item.setServiceProviderName(tmsCustomsServiceProvider.getServiceName());
+                    } else   if ("2".equals(item.getServiceProviderType())){
+                        TmsLoadingServiceProvider tmsLoadingServiceProvider = tmsLoadingServiceProviderMapper.selectTmsLoadingServiceProviderById(item.getServiceProviderId());
+                        item.setServiceProviderName(tmsLoadingServiceProvider.getServiceName());
+                    }
+                    serviceProviderVos.add(item);
+                });
+                ArrayList<ServiceProviderVo> collect1 = serviceProviderVos.stream().collect(Collectors.collectingAndThen(
+                        Collectors.toMap(
+                                item -> item.getServiceProviderId() + "_" + item.getServiceProviderType(),
+                                item -> new ServiceProviderVo(
+                                        item.getServiceProviderId(),
+                                        item.getServiceProviderName(),
+                                        item.getServiceProviderType()
+                                ),
+                                (a, b) -> a
+                        ),
+                        m -> new ArrayList<>(m.values())
+                ));
+                return AjaxResult.success(collect1);
+            }
+        }else{
+            return AjaxResult.error("璋冨害鍗曚笉瀛樺湪");
+        }
+        return AjaxResult.success();
+    }
 }

--
Gitblit v1.8.0