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 |  869 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 865 insertions(+), 4 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 83b7578..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
@@ -1,13 +1,28 @@
 package com.ruoyi.tms.service.impl;
 
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.SystemDataNoEnum;
 import com.ruoyi.common.utils.DateUtils;
 import javax.annotation.Resource;
 
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.service.ISysDictDataService;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.ISystemDataNoService;
+import com.ruoyi.tms.domain.*;
+import com.ruoyi.tms.domain.vo.DriverDispatchVo;
+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;
 import org.springframework.stereotype.Service;
@@ -20,9 +35,6 @@
 import com.ruoyi.common.enums.DataSourceType;
 import com.ruoyi.common.core.service.BaseService;
 
-import com.ruoyi.tms.mapper.TmsDispatchOrderMapper;
-import com.ruoyi.tms.domain.TmsDispatchOrder;
-import com.ruoyi.tms.service.ITmsDispatchOrderService;
 import com.ruoyi.common.core.text.Convert;
 
 /**
@@ -40,6 +52,39 @@
     private TmsDispatchOrderMapper tmsDispatchOrderMapper;
     @Autowired
     ISystemDataNoService systemDataNoService;
+    @Autowired
+    private ISysUserService userService;
+    @Autowired
+    private ITmsDriverDispatchService tmsDriverDispatchService;
+    @Resource
+    private TmsQuoteDetailMapper tmsQuoteDetailMapper;
+
+    @Resource
+    private TmsQuotePlanMapper tmsQuotePlanMapper;
+
+
+    @Autowired
+    ITmsFinanceService tmsFinanceService;
+    @Autowired
+    private ITmsFinanceDetailService tmsFinanceDetailService;
+    @Autowired
+    private ITmsQuoteFeeService tmsQuoteFeeService;
+
+    @Autowired
+    ISysDictDataService sysDictDataService;
+
+    @Autowired
+    private ITmsReceivableFeeService tmsReceivableFeeService;
+    @Autowired
+    private ITmsReceivableFeeItemService tmsReceivableFeeItemService;
+    @Autowired
+    private TmsDriverDispatchServiceImpl tmsDriverDispatchServiceImpl;
+    @Resource
+    private TmsLoadingServiceProviderMapper tmsLoadingServiceProviderMapper;
+    @Resource
+    private TmsServiceProviderMapper tmsServiceProviderMapper;
+    @Resource
+    private TmsCustomsServiceProviderMapper tmsCustomsServiceProviderMapper;
 
     /**
      * 鏌ヨ璋冨害鍗曠鐞�
@@ -53,6 +98,215 @@
     {
         return tmsDispatchOrderMapper.selectTmsDispatchOrderById(id);
     }
+
+    @Override
+    public AjaxResult confirmOrder(Integer id) {
+        TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(id);
+        if (tmsDispatchOrder == null){
+            return AjaxResult.error("鏈壘鍒拌鏁版嵁");
+        }
+        if (tmsDispatchOrder.getStatus() != 0){
+            return AjaxResult.error("璇ヨ皟搴﹀崟鏁版嵁鐘舵�佸紓甯�");
+        }
+        if (tmsDispatchOrder.getMainDriverId() == null){
+            return AjaxResult.error("璇峰厛閫夋嫨涓婚┚鍙告満");
+        }
+        if (tmsDispatchOrder.getVehicleId() == null){
+            return AjaxResult.error("璇峰厛閫夋嫨杞﹁締");
+        }
+        tmsDispatchOrder.setConfirmTime(DateUtils.getNowDate());
+        tmsDispatchOrder.setStatus(1);
+
+        tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
+        int i = tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
+        TmsDriverDispatch tmsDriverDispatch = new TmsDriverDispatch();
+        tmsDriverDispatch.setDriverId(tmsDispatchOrder.getMainDriverId());
+        tmsDriverDispatch.setDispatchId(tmsDispatchOrder.getId());
+        tmsDriverDispatch.setStatus(0);
+        tmsDriverDispatchService.insertTmsDriverDispatch(tmsDriverDispatch);
+        if (i > 0){
+            return AjaxResult.success("鎿嶄綔鎴愬姛");
+        }
+        return AjaxResult.error("鎿嶄綔澶辫触");
+    }
+    @Override
+    public AjaxResult okOrder(Integer id) {
+        TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(id);
+        if (tmsDispatchOrder == null){
+            return AjaxResult.error("鏈壘鍒拌鏁版嵁");
+        }
+        if (tmsDispatchOrder.getStatus() != 2){
+            return AjaxResult.error("璇ヨ皟搴﹀崟鏁版嵁鐘舵�佸紓甯�");
+        }
+        tmsDispatchOrder.setStatus(3);
+        tmsDispatchOrder.setOkTime(DateUtils.getNowDate());
+        tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
+        int i = tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
+        if (i > 0){
+            return AjaxResult.success("鎿嶄綔鎴愬姛");
+        }
+        return AjaxResult.error("鎿嶄綔澶辫触");
+    }
+    @Override
+    public AjaxResult copyOrder(Integer id) {
+        TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(id);
+        if (tmsDispatchOrder == null){
+            return AjaxResult.error("鏈壘鍒拌鏁版嵁");
+        }
+        TmsDispatchOrder tmsDispatchOrderNew = BeanUtil.copyProperties(tmsDispatchOrder, TmsDispatchOrder.class);
+
+        tmsDispatchOrderNew.setStatus(0);
+        tmsDispatchOrderNew.setMainDriverId(null);
+        tmsDispatchOrderNew.setMainDriverName(null);
+        tmsDispatchOrderNew.setAssistantDriverId(null);
+        tmsDispatchOrderNew.setAssistantDriverName(null);
+        tmsDispatchOrderNew.setVehicleId(null);
+        tmsDispatchOrderNew.setLicensePlate(null);
+        tmsDispatchOrderNew.setUpdateBy(null);
+        tmsDispatchOrderNew.setId(null);
+
+
+        int i = insertTmsDispatchOrder(tmsDispatchOrderNew);
+        if (i > 0){
+            return AjaxResult.success("鎿嶄綔鎴愬姛");
+        }
+        return AjaxResult.error("鎿嶄綔澶辫触");
+    }
+
+    @Override
+    public AjaxResult dropHook(Integer id) {
+        TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(id);
+        if (tmsDispatchOrder == null){
+            return AjaxResult.error("鏈壘鍒拌鏁版嵁");
+        }
+         tmsDriverDispatchService.update(
+                null,
+                new LambdaUpdateWrapper<TmsDriverDispatch>()
+                        .eq(TmsDriverDispatch::getDispatchId, tmsDispatchOrder.getId())
+                        .eq(TmsDriverDispatch::getDriverId, tmsDispatchOrder.getMainDriverId())
+                        .set(TmsDriverDispatch::getStatus, 1)
+        );
+
+        tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
+                .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId())
+                .set(TmsDispatchOrder::getStatus, 6)
+        );
+        return AjaxResult.success("鎿嶄綔鎴愬姛");
+    }
+
+
+    @Override
+    public AjaxResult connectHang(TmsDriverDispatch driverDispatch) {
+        TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(driverDispatch.getDispatchId());
+        if (tmsDispatchOrder == null){
+            return AjaxResult.error("鏈壘鍒拌鏁版嵁");
+        }
+        driverDispatch.setStatus(2);
+        tmsDriverDispatchService.insertTmsDriverDispatch(driverDispatch);
+        return AjaxResult.success();
+    }
+
+
+    @Override
+    public int customsOrder(TmsDispatchOrder tmsDispatchOrder) {
+        return tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
+                .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId())
+                .set(TmsDispatchOrder::getCustomsServiceProviderId, tmsDispatchOrder.getCustomsServiceProviderId())
+                .set(TmsDispatchOrder::getCustomsServiceProviderName, tmsDispatchOrder.getCustomsServiceProviderName())
+        );
+
+    }
+
+    @Override
+    public int loadingOrder(TmsDispatchOrder tmsDispatchOrder) {
+        return tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
+                .eq(TmsDispatchOrder::getId, tmsDispatchOrder.getId())
+                .set(TmsDispatchOrder::getLoadingServiceProviderId, tmsDispatchOrder.getLoadingServiceProviderId())
+                .set(TmsDispatchOrder::getLoadingServiceProviderName, tmsDispatchOrder.getLoadingServiceProviderName())
+        );
+    }
+
+    @Override
+    public AjaxResult assignedItineraryList() {
+        Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
+        if (deviceId == null){
+            return AjaxResult.success();
+        }
+
+        DriverDispatchVo vo = new DriverDispatchVo();
+        vo.setDriverId(deviceId);
+        vo.setInStatusList(Arrays.asList(0, 1, 2,4));
+        vo.setInTdoStatusList(Arrays.asList(1, 2));
+        List<DriverDispatchVo> driverDispatchVos = tmsDispatchOrderMapper.selectAssignedItineraryList(vo);
+        if (driverDispatchVos != null && !driverDispatchVos.isEmpty()){
+            driverDispatchVos.forEach(item ->{
+                if (item.getTddStatus() == 1 ){
+                    item.setStatusStr("寰呯敥鎸�");
+                }else if (item.getTddStatus() == 2){
+                    item.setStatusStr("寰呮帴鎸�");
+                }else if (item.getStatus() == 1){
+                    item.setStatusStr("寰呭彂杞�");
+                }else if (item.getStatus() == 2){
+                    item.setStatusStr("鍦ㄩ��");
+                }else {
+                    item.setStatusStr("瀹屾垚琛岀▼");
+                }
+            });
+        }
+
+
+        return AjaxResult.success(driverDispatchVos);
+    }
+    @Override
+    public AjaxResult assignedItineraryLogList() {
+        Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
+        if (deviceId == null){
+            return AjaxResult.success();
+        }
+
+        DriverDispatchVo vo = new DriverDispatchVo();
+        vo.setDriverId(deviceId);
+        vo.setInStatusList(Arrays.asList(3,5));
+//        vo.setInTdoStatusList(Arrays.asList(1, 2));
+        List<DriverDispatchVo> driverDispatchVos = tmsDispatchOrderMapper.selectAssignedItineraryList(vo);
+        if (driverDispatchVos != null && !driverDispatchVos.isEmpty()){
+            driverDispatchVos.forEach(item ->{
+                item.setStatusStr("瀹屾垚琛岀▼");
+            });
+        }
+
+
+        return AjaxResult.success(driverDispatchVos);
+    }
+    @Override
+    public AjaxResult selectAssignedItineraryDetail(Integer dispatchId) {
+        Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
+        if (deviceId == null){
+            return AjaxResult.success();
+        }
+
+        DriverDispatchVo vo = new DriverDispatchVo();
+        vo.setDriverId(deviceId);
+        vo.setDispatchId(dispatchId);
+        DriverDispatchVo driverDispatchVo = tmsDispatchOrderMapper.selectAssignedItineraryDetail(vo);
+        if (driverDispatchVo != null){
+            if (driverDispatchVo.getTddStatus() == 1 ){
+                driverDispatchVo.setStatusStr("寰呯敥鎸�");
+            }else if (driverDispatchVo.getTddStatus() == 2){
+                driverDispatchVo.setStatusStr("寰呮帴鎸�");
+            }else if (driverDispatchVo.getStatus() == 1){
+                driverDispatchVo.setStatusStr("寰呭彂杞�");
+            }else if (driverDispatchVo.getStatus() == 2){
+                driverDispatchVo.setStatusStr("鍦ㄩ��");
+            }else{
+                driverDispatchVo.setStatusStr("瀹屾垚琛岀▼");
+            }
+        }
+        return AjaxResult.success(driverDispatchVo);
+    }
+
+
+
 
     /**
      * 鏌ヨ璋冨害鍗曠鐞� 璁板綍鏁�
@@ -191,4 +445,611 @@
     {
         return tmsDispatchOrderMapper.deleteTmsDispatchOrderById(id);
     }
+
+    @Override
+    public List<TmsDispatchOrder>  initGenerate(List<Integer> ids) {
+        List<TmsDispatchOrder> tmsDispatchOrders = tmsDispatchOrderMapper.selectBatchIds(ids);
+        if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){
+            tmsDispatchOrders.forEach(tmsDispatchOrder -> {
+
+                // 1銆佹槸鍚︽槸澶栧崗
+//                tmsDispatchOrder.is
+
+                // 瀹㈡埛ID
+                Integer customerId = tmsDispatchOrder.getCustomerId();
+
+                // 杞﹀瀷
+                String actualVehicleType = tmsDispatchOrder.getActualVehicleType();
+
+                // 杩愯緭璺嚎 = 鍙戣揣鍦拌鏀垮尯鍩� + 鏀惰揣鍦拌鏀垮尯鍩�
+                String shipperRegionCode = tmsDispatchOrder.getShipperRegionCode();
+                String receiverRegionCode = tmsDispatchOrder.getReceiverRegionCode();
+                if (tmsDispatchOrder.getAccountsReceivableStatus() != null && tmsDispatchOrder.getAccountsReceivableStatus() == 1){
+                    TmsQuotePlan tmsQuotePlan = tmsQuotePlanMapper.selectTmsQuotePlanById(tmsDispatchOrder.getCollectionPlanId());
+                    tmsDispatchOrder.setCollectionPlanId(tmsQuotePlan.getId());
+                    tmsDispatchOrder.setCollectionPlanName(tmsQuotePlan.getPlanName());
+                }else{
+                    // 鏌ヨ搴旀敹瑙勫垯
+                    TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>()
+                            .eq(TmsQuoteDetail::getCustomerId, customerId)
+                            .eq(TmsQuoteDetail::getVehicleType, actualVehicleType)
+                            .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
+                            .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
+                            .eq(TmsQuoteDetail::getPlanType, 0)
+                            .last("limit 1")
+                    );
+                    if (tmsQuoteDetail != null){
+                        TmsQuotePlan tmsQuotePlan = tmsQuotePlanMapper.selectTmsQuotePlanById(tmsQuoteDetail.getQuotePlanId());
+                        tmsDispatchOrder.setCollectionPlanId(tmsQuotePlan.getId());
+                        tmsDispatchOrder.setCollectionPlanName(tmsQuotePlan.getPlanName());
+                        tmsDispatchOrder.setCollectionPlanDetailId(tmsQuoteDetail.getId());
+                        tmsDispatchOrder.setCollectionPlanAmount(tmsQuoteDetail.getFreightPrice());
+                    }else{
+                        tmsDispatchOrder.setAccountsReceivableStatus(2);
+                    }
+                }
+
+                if (tmsDispatchOrder.getAccountsPayableStatus() != null && tmsDispatchOrder.getAccountsPayableStatus() == 1){
+                    TmsQuotePlan tmsQuotePlan = tmsQuotePlanMapper.selectTmsQuotePlanById(tmsDispatchOrder.getPaymentPlanId());
+                    tmsDispatchOrder.setPaymentPlanId(tmsQuotePlan.getId());
+                    tmsDispatchOrder.setPaymentPlanName(tmsQuotePlan.getPlanName());
+                }else{
+                    // 鏌ヨ搴斾粯瑙勫垯
+                    TmsQuoteDetail tmsQuoteDetail2 = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>()
+                            .eq(TmsQuoteDetail::getCustomerId, customerId)
+                            .eq(TmsQuoteDetail::getVehicleType, actualVehicleType)
+                            .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
+                            .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
+                            .eq(TmsQuoteDetail::getPlanType, 1)
+                            .last("limit 1")
+                    );
+
+                    if (tmsQuoteDetail2 != null){
+                        TmsQuotePlan tmsQuotePlan = tmsQuotePlanMapper.selectTmsQuotePlanById(tmsQuoteDetail2.getQuotePlanId());
+                        tmsDispatchOrder.setPaymentPlanId(tmsQuotePlan.getId());
+                        tmsDispatchOrder.setPaymentPlanName(tmsQuotePlan.getPlanName());
+                        tmsDispatchOrder.setPaymentPlanDetailId(tmsQuoteDetail2.getId());
+                        tmsDispatchOrder.setPaymentPlanAmount(tmsQuoteDetail2.getFreightPrice());
+
+                    }else{
+                        tmsDispatchOrder.setAccountsPayableStatus(2);
+                    }
+                }
+
+
+            });
+        }
+        return tmsDispatchOrders;
+    }
+
+    @Override
+    public List<TmsDispatchOrder> initYSGenerate(List<Integer> ids) {
+        List<TmsDispatchOrder> tmsDispatchOrders = tmsDispatchOrderMapper.selectBatchIds(ids);
+        if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){
+            tmsDispatchOrders.forEach(tmsDispatchOrder -> {
+                List<TmsReceivableFeeItem> tmsReceivableFeeItems = new ArrayList<>();
+                if (tmsDispatchOrder.getAccountsReceivableStatus() != null &&
+                        tmsDispatchOrder.getAccountsReceivableStatus() == 1){
+                    throw new RuntimeException(tmsDispatchOrder.getDispatchNo()+"搴旀敹璐﹀崟宸茬敓鎴愶紝璇峰厛浣滃簾");
+                }
+                // 瀹㈡埛ID
+                Integer customerId = tmsDispatchOrder.getCustomerId();
+                // 1銆佹槸鍚︽槸鑷惀  0 = 鏄� 1 = 鍚� 鑾峰彇杩愯垂
+                //if(tmsDispatchOrder.getOperationMode().equals(1)){
+                    // 闈炶嚜钀ラ渶瑕佹湁杩愯垂
+                    // 杞﹁締鏈嶅姟鍟�
+                    // 瀹為檯杞﹀瀷
+                    String actualVehicleType = tmsDispatchOrder.getActualVehicleType();
+                    // 鍑哄彂璺嚎 44,4404,440402,440402102
+                    String shipperRegionCode = tmsDispatchOrder.getStartRegionCode();
+                    // 鐩殑鍦拌矾绾� 81,8100,810000
+                    String receiverRegionCode = tmsDispatchOrder.getEndRegionCode();
+
+                    // 鏌ヨ搴旀敹瑙勫垯
+                    TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>()
+                            .eq(TmsQuoteDetail::getCustomerId, customerId)
+                            .eq(TmsQuoteDetail::getVehicleType, actualVehicleType)
+                            .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
+                            .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
+                            .eq(TmsQuoteDetail::getPlanType, 0)
+                            .last("limit 1")
+                    );
+
+
+
+                    if (tmsQuoteDetail == null){
+                        throw new RuntimeException("璋冨害鍗�"+tmsDispatchOrder.getDispatchNo()+"鏈淮鎶ゅ簲鏀惰繍璐规姤浠凤紝璇风淮鎶ゆ暟鎹悗鍐嶉噸鏂扮敓鎴�");
+                    }
+
+                    if (tmsQuoteDetail.getIsSegmentedInvoice() == 1){
+                        TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem();
+                        tmsReceivableFeeItem.setFeeType(0);
+                        tmsReceivableFeeItem.setFeeName("杩愯垂");
+                        tmsReceivableFeeItem.setTypeId(tmsQuoteDetail.getId());
+                        tmsReceivableFeeItem.setRegisterAmount(tmsQuoteDetail.getFreightPrice());
+                        tmsReceivableFeeItem.setRegisterTime(tmsDispatchOrder.getConfirmTime());
+                        tmsReceivableFeeItem.setCurrency(tmsQuoteDetail.getCurrency());
+                        tmsReceivableFeeItem.setRowKey(IdUtil.objectId());
+                        tmsReceivableFeeItems.add(tmsReceivableFeeItem);
+                    }else{
+                        TmsReceivableFeeItem tmsReceivableFeeItemOne = new TmsReceivableFeeItem();
+                        tmsReceivableFeeItemOne.setFeeType(0);
+                        tmsReceivableFeeItemOne.setFeeName("涓�娈佃繍璐�");
+                        tmsReceivableFeeItemOne.setTypeId(tmsQuoteDetail.getId());
+                        tmsReceivableFeeItemOne.setRegisterAmount(tmsQuoteDetail.getSegment1FreightQuote());
+                        tmsReceivableFeeItemOne.setRegisterTime(tmsDispatchOrder.getConfirmTime());
+                        tmsReceivableFeeItemOne.setCurrency(tmsQuoteDetail.getSegment1Currency());
+
+                        tmsReceivableFeeItemOne.setRowKey(IdUtil.objectId());
+
+                        tmsReceivableFeeItems.add(tmsReceivableFeeItemOne);
+
+
+                        TmsReceivableFeeItem tmsReceivableFeeItemTwo = new TmsReceivableFeeItem();
+                        tmsReceivableFeeItemTwo.setFeeType(0);
+                        tmsReceivableFeeItemTwo.setFeeName("浜屾杩愯垂");
+                        tmsReceivableFeeItemTwo.setTypeId(tmsQuoteDetail.getId());
+                        tmsReceivableFeeItemTwo.setRegisterAmount(tmsQuoteDetail.getSegment2FreightQuote());
+                        tmsReceivableFeeItemTwo.setRegisterTime(tmsDispatchOrder.getConfirmTime());
+                        tmsReceivableFeeItemTwo.setCurrency(tmsQuoteDetail.getSegment2Currency());
+                        tmsReceivableFeeItemTwo.setRowKey(IdUtil.objectId());
+
+                        tmsReceivableFeeItems.add(tmsReceivableFeeItemTwo);
+
+                    }
+                //}
+                // 2銆� 鑾峰彇瀹炴姤瀹為攢璐圭敤
+                List<TmsFinanceDetail> tmsFinanceDetails = tmsFinanceDetailService.selectTmsFinanceDetailList(new TmsFinanceDetail() {{
+                    setDispatchOrderId(tmsDispatchOrder.getId());
+                }});
+
+                if (tmsFinanceDetails != null && !tmsFinanceDetails.isEmpty()){
+                    tmsFinanceDetails.forEach(tmsFinanceDetail -> {
+                        TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem();
+                        tmsReceivableFeeItem.setFeeType(2);
+
+                        String feeName = sysDictDataService.selectDictLabel("fee_type", tmsFinanceDetail.getFeeType());
+                        tmsReceivableFeeItem.setFeeName(feeName);
+                        tmsReceivableFeeItem.setTypeId(tmsFinanceDetail.getId());
+                        tmsReceivableFeeItem.setRegisterAmount(tmsFinanceDetail.getActualFeeAmount());
+                        tmsReceivableFeeItem.setRegisterTime(tmsFinanceDetail.getUpdateTime());
+                        tmsReceivableFeeItem.setCurrency(tmsFinanceDetail.getCurrency());
+                        tmsReceivableFeeItem.setRowKey(IdUtil.objectId());
+
+                        tmsReceivableFeeItems.add(tmsReceivableFeeItem);
+                    });
+                }
+
+
+                // 3銆� 鑾峰彇鎶ヤ环璐圭敤
+//                tmsDispatchOrder.is
+                List<TmsQuoteFee> tmsQuoteFees = tmsQuoteFeeService.selectTmsQuoteFeeList(new TmsQuoteFee() {{
+                    setDispatchId(tmsDispatchOrder.getId());
+                }});
+
+                if (tmsQuoteFees != null && !tmsQuoteFees.isEmpty()){
+                    tmsQuoteFees.forEach(item -> {
+                        TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem();
+                        tmsReceivableFeeItem.setFeeType(1);
+                        tmsReceivableFeeItem.setFeeName(item.getFreeName());
+                        tmsReceivableFeeItem.setTypeId(item.getId());
+                        tmsReceivableFeeItem.setRegisterAmount(item.getSum());
+                        tmsReceivableFeeItem.setRegisterTime(item.getCreateTime());
+                        tmsReceivableFeeItem.setCurrency(item.getCurrency());
+                        tmsReceivableFeeItem.setRowKey(IdUtil.objectId());
+
+                        tmsReceivableFeeItems.add(tmsReceivableFeeItem);
+                    });
+                }
+
+
+
+                tmsDispatchOrder.setTmsReceivableFeeItems(tmsReceivableFeeItems);
+            });
+        }
+        return tmsDispatchOrders;
+    }
+
+
+    @Override
+    public List<TmsDispatchOrder> initYFGenerate(List<Integer> ids) {
+        List<TmsDispatchOrder> tmsDispatchOrders = tmsDispatchOrderMapper.selectBatchIds(ids);
+        if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){
+            tmsDispatchOrders.forEach(tmsDispatchOrder -> {
+                List<TmsReceivableFeeItem> tmsReceivableFeeItems = new ArrayList<>();
+                if (tmsDispatchOrder.getAccountsPayableStatus() != null &&
+                        tmsDispatchOrder.getAccountsPayableStatus() == 1){
+                    throw new RuntimeException(tmsDispatchOrder.getDispatchNo()+"搴斾粯璐﹀崟宸茬敓鎴愶紝璇峰厛浣滃簾");
+                }
+                // 瀹㈡埛ID
+                Integer customerId = tmsDispatchOrder.getCustomerId();
+                // 1銆佹槸鍚︽槸鑷惀  0 = 鏄� 1 = 鍚� 鑾峰彇杩愯垂
+                if(tmsDispatchOrder.getOperationMode().equals(1)){
+                    // 闈炶嚜钀ラ渶瑕佹湁杩愯垂
+                    // 杞﹁締鏈嶅姟鍟�
+                    Integer vehicleProviderId = tmsDispatchOrder.getVehicleProviderId();
+                    // 瀹為檯杞﹀瀷
+                    String actualVehicleType = tmsDispatchOrder.getActualVehicleType();
+                    // 鍑哄彂璺嚎 44,4404,440402,440402102
+                    String shipperRegionCode = tmsDispatchOrder.getStartRegionCode();
+                    // 鐩殑鍦拌矾绾� 81,8100,810000
+                    String receiverRegionCode = tmsDispatchOrder.getEndRegionCode();
+
+                    // 鏌ヨ搴旀敹瑙勫垯
+                    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")
+                            );
+
+
+
+
+                    if (tmsQuoteDetail == null){
+                        throw new RuntimeException("璋冨害鍗�"+tmsDispatchOrder.getDispatchNo()+"鏈淮鎶ゅ簲浠樿繍璐规姤浠凤紝璇风淮鎶ゆ暟鎹悗鍐嶉噸鏂扮敓鎴�");
+                    }
+
+                        TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem();
+                        tmsReceivableFeeItem.setFeeType(0);
+                        tmsReceivableFeeItem.setFeeName("杩愯垂");
+                        tmsReceivableFeeItem.setTypeId(tmsQuoteDetail.getId());
+                        tmsReceivableFeeItem.setRegisterAmount(tmsQuoteDetail.getFreightPrice());
+                        tmsReceivableFeeItem.setRegisterTime(tmsDispatchOrder.getConfirmTime());
+                        tmsReceivableFeeItem.setCurrency(tmsQuoteDetail.getCurrency());
+                        tmsReceivableFeeItem.setRowKey(IdUtil.objectId());
+                        tmsReceivableFeeItems.add(tmsReceivableFeeItem);
+
+                }
+                // 2銆� 鑾峰彇瀹炴姤瀹為攢璐圭敤
+                List<TmsFinanceDetail> tmsFinanceDetails = tmsFinanceDetailService.selectTmsFinanceDetailList(new TmsFinanceDetail() {{
+                    setDispatchOrderId(tmsDispatchOrder.getId());
+                    setIsYF(1);
+                }});
+
+                if (tmsFinanceDetails != null && !tmsFinanceDetails.isEmpty()){
+                    tmsFinanceDetails.forEach(tmsFinanceDetail -> {
+                        TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem();
+                        tmsReceivableFeeItem.setFeeType(2);
+
+                        String feeName = sysDictDataService.selectDictLabel("fee_type", tmsFinanceDetail.getFeeType());
+                        tmsReceivableFeeItem.setFeeName(feeName);
+                        tmsReceivableFeeItem.setTypeId(tmsFinanceDetail.getId());
+                        tmsReceivableFeeItem.setRegisterAmount(tmsFinanceDetail.getYfPrice());
+                        tmsReceivableFeeItem.setRegisterTime(tmsFinanceDetail.getUpdateTime());
+                        tmsReceivableFeeItem.setCurrency(tmsFinanceDetail.getYfCurrency());
+                        tmsReceivableFeeItem.setRowKey(IdUtil.objectId());
+
+                        tmsReceivableFeeItems.add(tmsReceivableFeeItem);
+                    });
+                }
+
+
+                // 3銆� 鑾峰彇鎶ヤ环璐圭敤
+//                tmsDispatchOrder.is
+                List<TmsQuoteFee> tmsQuoteFees = tmsQuoteFeeService.selectTmsQuoteFeeList(new TmsQuoteFee() {{
+                    setDispatchId(tmsDispatchOrder.getId());
+                    setIsYF(1);
+                }});
+
+                if (tmsQuoteFees != null && !tmsQuoteFees.isEmpty()){
+                    tmsQuoteFees.forEach(item -> {
+                        TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem();
+                        tmsReceivableFeeItem.setFeeType(1);
+                        tmsReceivableFeeItem.setFeeName(item.getFreeName());
+                        tmsReceivableFeeItem.setTypeId(item.getId());
+                        tmsReceivableFeeItem.setRegisterAmount(item.getYfSum());
+                        tmsReceivableFeeItem.setRegisterTime(item.getCreateTime());
+                        tmsReceivableFeeItem.setCurrency(item.getYfCurrency());
+                        tmsReceivableFeeItem.setRowKey(IdUtil.objectId());
+
+                        tmsReceivableFeeItems.add(tmsReceivableFeeItem);
+                    });
+                }
+
+
+
+                tmsDispatchOrder.setTmsReceivableFeeItems(tmsReceivableFeeItems);
+            });
+        }
+        return tmsDispatchOrders;
+    }
+
+    @Override
+    public AjaxResult ysGenerateTmsDispatchOrder(List<Integer> ids) {
+        List<TmsDispatchOrder> tmsDispatchOrders = initYSGenerate(ids);
+        List<TmsDispatchOrder> collect1 = tmsDispatchOrders.stream().filter(item -> item.getTmsReceivableFeeItems() == null || item.getTmsReceivableFeeItems().isEmpty()).collect(Collectors.toList());
+        if (!collect1.isEmpty()){
+            String disNos = collect1.stream().map(TmsDispatchOrder::getDispatchNo).collect(Collectors.joining(","));
+            return AjaxResult.error("璋冨害鍗�"+disNos+"鏈湁搴旀敹淇℃伅");
+        }
+
+
+
+
+        List<TmsDispatchOrder> collect = tmsDispatchOrders.stream().map(item -> {
+            TmsDispatchOrder tmsDispatchOrder = new TmsDispatchOrder();
+            tmsDispatchOrder.setId(item.getId());
+            tmsDispatchOrder.setAccountsReceivableStatus(1);
+            tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
+            return tmsDispatchOrder;
+        }).collect(Collectors.toList());
+        // 1銆佷慨鏀硅皟搴�
+        tmsDispatchOrderMapper.updateTmsDispatchOrderBatch(collect);
+
+        // 2銆佺敓鎴愬簲鏀跺崟
+
+         tmsDispatchOrders.stream().forEach(item -> {
+            TmsReceivableFee tmsReceivableFee = new TmsReceivableFee();
+            String noByKey = systemDataNoService.getNoByKey(SystemDataNoEnum.YSFY);
+
+            tmsReceivableFee.setSystemNo(noByKey);
+            tmsReceivableFee.setDispatchId(item.getId());
+            tmsReceivableFee.setDispatchNo(item.getDispatchNo());
+            tmsReceivableFee.setCustomerId(item.getCustomerId());
+            tmsReceivableFee.setCustomerName(item.getCustomerName());
+            tmsReceivableFee.setProjectId(item.getProjectId());
+            tmsReceivableFee.setProjectName(item.getProjectName());
+
+             List<TmsReceivableFeeItem> tmsReceivableFeeItems = item.getTmsReceivableFeeItems();
+
+
+             BigDecimal totalRmbAmount = tmsReceivableFeeItems.stream()
+                    .filter(cItem -> "RMB".equals(cItem.getCurrency()))
+                    .map(TmsReceivableFeeItem::getRegisterAmount)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            tmsReceivableFee.setReceivableRMBAmount(totalRmbAmount);
+
+
+            BigDecimal totalHkbAmount = tmsReceivableFeeItems.stream()
+                    .filter(cItem -> "HKD".equals(cItem.getCurrency()))
+                    .map(TmsReceivableFeeItem::getRegisterAmount)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            tmsReceivableFee.setReceivableHKBAmount(totalHkbAmount);
+
+
+            tmsReceivableFee.setDispatchConfirmTime(item.getConfirmTime());
+            tmsReceivableFee.setCostGenerateTime(new Date());
+            tmsReceivableFee.setStatus(0);
+            tmsReceivableFee.setCreateBy(SecurityUtils.getUsername());
+             tmsReceivableFeeService.insertTmsReceivableFee(tmsReceivableFee);
+
+
+             tmsReceivableFeeItems.forEach(kItem -> {
+                 kItem.setHeadId(tmsReceivableFee.getId());
+             });
+             tmsReceivableFeeItemService.insertTmsReceivableFeeItemBatch(tmsReceivableFeeItems);
+         });
+        return AjaxResult.success();
+    }
+    @Override
+    public AjaxResult yfGenerateTmsDispatchOrder(List<Integer> ids) {
+        List<TmsDispatchOrder> tmsDispatchOrders = initYFGenerate(ids);
+        List<TmsDispatchOrder> collect1 = tmsDispatchOrders.stream().filter(item -> item.getTmsReceivableFeeItems() == null || item.getTmsReceivableFeeItems().isEmpty()).collect(Collectors.toList());
+        if (!collect1.isEmpty()){
+            String disNos = collect1.stream().map(TmsDispatchOrder::getDispatchNo).collect(Collectors.joining(","));
+            return AjaxResult.error("璋冨害鍗�"+disNos+"鏈湁搴斾粯淇℃伅");
+        }
+
+
+
+
+        List<TmsDispatchOrder> collect = tmsDispatchOrders.stream().map(item -> {
+            TmsDispatchOrder tmsDispatchOrder = new TmsDispatchOrder();
+            tmsDispatchOrder.setId(item.getId());
+            tmsDispatchOrder.setAccountsPayableStatus(1);
+            tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
+            return tmsDispatchOrder;
+        }).collect(Collectors.toList());
+        // 1銆佷慨鏀硅皟搴�
+        tmsDispatchOrderMapper.updateTmsDispatchOrderBatch(collect);
+
+        // 2銆佺敓鎴愬簲鏀跺崟
+
+//         tmsDispatchOrders.stream().forEach(item -> {
+//            TmsReceivableFee tmsReceivableFee = new TmsReceivableFee();
+//            String noByKey = systemDataNoService.getNoByKey(SystemDataNoEnum.YSFY);
+//
+//            tmsReceivableFee.setSystemNo(noByKey);
+//            tmsReceivableFee.setDispatchId(item.getId());
+//            tmsReceivableFee.setDispatchNo(item.getDispatchNo());
+//            tmsReceivableFee.setCustomerId(item.getCustomerId());
+//            tmsReceivableFee.setCustomerName(item.getCustomerName());
+//            tmsReceivableFee.setProjectId(item.getProjectId());
+//            tmsReceivableFee.setProjectName(item.getProjectName());
+//
+//             List<TmsReceivableFeeItem> tmsReceivableFeeItems = item.getTmsReceivableFeeItems();
+//
+//
+//             BigDecimal totalRmbAmount = tmsReceivableFeeItems.stream()
+//                    .filter(cItem -> "RMB".equals(cItem.getCurrency()))
+//                    .map(TmsReceivableFeeItem::getRegisterAmount)
+//                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+//            tmsReceivableFee.setReceivableRMBAmount(totalRmbAmount);
+//
+//
+//            BigDecimal totalHkbAmount = tmsReceivableFeeItems.stream()
+//                    .filter(cItem -> "HKB".equals(cItem.getCurrency()))
+//                    .map(TmsReceivableFeeItem::getRegisterAmount)
+//                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+//            tmsReceivableFee.setReceivableHKBAmount(totalHkbAmount);
+//
+//
+//            tmsReceivableFee.setDispatchConfirmTime(item.getConfirmTime());
+//            tmsReceivableFee.setCostGenerateTime(new Date());
+//            tmsReceivableFee.setStatus(0);
+//            tmsReceivableFee.setCreateBy(SecurityUtils.getUsername());
+//             tmsReceivableFeeService.insertTmsReceivableFee(tmsReceivableFee);
+//
+//
+//             tmsReceivableFeeItems.forEach(kItem -> {
+//                 kItem.setHeadId(tmsReceivableFee.getId());
+//             });
+//             tmsReceivableFeeItemService.insertTmsReceivableFeeItemBatch(tmsReceivableFeeItems);
+//         });
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult generateTmsDispatchOrder(List<Integer> ids) {
+        List<TmsDispatchOrder> tmsDispatchOrders = initGenerate(ids);
+        List<TmsDispatchOrder> collect1 = tmsDispatchOrders.stream().filter(item -> item.getIsCustoms() == 0 && item.getCustomsServiceProviderId() == null).collect(Collectors.toList());
+        if (!collect1.isEmpty()){
+            String disNos = collect1.stream().map(TmsDispatchOrder::getDispatchNo).collect(Collectors.joining(","));
+            return AjaxResult.error("璋冨害鍗�"+disNos+"鏈ˉ鍏呭鎵樻姤鍏充俊鎭�");
+        }
+        List<TmsDispatchOrder> collect2 = tmsDispatchOrders.stream().filter(item -> item.getIsLoad() == 0 && item.getLoadingServiceProviderId() == null).collect(Collectors.toList());
+        if (!collect2.isEmpty()){
+            String disNos = collect2.stream().map(TmsDispatchOrder::getDispatchNo).collect(Collectors.joining(","));
+            return AjaxResult.error("璋冨害鍗�"+disNos+"鏈ˉ鍏呰鍗歌揣淇℃伅");
+        }
+        List<TmsDispatchOrder> receivableList = tmsDispatchOrders.stream().filter(item -> item.getAccountsReceivableStatus() == 0).collect(Collectors.toList());
+        if (!receivableList.isEmpty()){
+            List<TmsDispatchOrder> collect = receivableList.stream().map(item -> {
+                TmsDispatchOrder tmsDispatchOrder = new TmsDispatchOrder();
+                tmsDispatchOrder.setId(item.getId());
+                tmsDispatchOrder.setAccountsReceivableStatus(1);
+                tmsDispatchOrder.setCollectionPlanId(item.getCollectionPlanId());
+                tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
+                return tmsDispatchOrder;
+            }).collect(Collectors.toList());
+            // 1銆佷慨鏀硅皟搴�
+            tmsDispatchOrderMapper.updateTmsDispatchOrderBatch(collect);
+            // 2銆佺敓鎴愬簲鏀惰处鍗�
+            List<TmsFinance> tmsFinances = BeanUtil.copyToList(receivableList, TmsFinance.class);
+            tmsFinances.forEach(item ->{
+                item.setSystemCode(systemDataNoService.getNoByKey(SystemDataNoEnum.YSD));
+                item.setPlanName(item.getCollectionPlanName());
+                item.setDispatchId(item.getId());
+                item.setCreateBy(SecurityUtils.getUsername());
+                item.setCreateTime(new Date());
+                item.setUpdateBy(SecurityUtils.getUsername());
+                item.setUpdateTime(new Date());
+                item.setStatus(0);
+                item.setType(0);
+                item.setTotalAmount(item.getCollectionPlanAmount());
+            });
+            tmsFinanceService.insertTmsFinanceYFBatch(tmsFinances);
+        }
+
+        List<TmsDispatchOrder> playList = tmsDispatchOrders.stream().filter(item -> item.getAccountsPayableStatus() == 0).collect(Collectors.toList());
+        if (!playList.isEmpty()){
+            List<TmsDispatchOrder> collect = playList.stream().map(item -> {
+                TmsDispatchOrder tmsDispatchOrder = new TmsDispatchOrder();
+                tmsDispatchOrder.setId(item.getId());
+                tmsDispatchOrder.setAccountsPayableStatus(1);
+                tmsDispatchOrder.setPaymentPlanId(item.getPaymentPlanId());
+                tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
+                return tmsDispatchOrder;
+            }).collect(Collectors.toList());
+            // 1銆佷慨鏀硅皟搴�
+            tmsDispatchOrderMapper.updateTmsDispatchOrderBatch(collect);
+            // 2銆佺敓鎴愬簲浠樿处鍗�
+            List<TmsFinance> tmsFinances = BeanUtil.copyToList(receivableList, TmsFinance.class);
+            tmsFinances.forEach(item ->{
+                item.setSystemCode(systemDataNoService.getNoByKey(SystemDataNoEnum.YFD));
+                item.setPlanName(item.getPaymentPlanName());
+                item.setDispatchId(item.getId());
+                item.setCreateBy(SecurityUtils.getUsername());
+                item.setCreateTime(new Date());
+                item.setUpdateBy(SecurityUtils.getUsername());
+                item.setUpdateTime(new Date());
+                item.setStatus(0);
+                item.setType(1);
+                item.setTotalAmount(item.getPaymentPlanAmount());
+            });
+            tmsFinanceService.insertTmsFinanceYFBatch(tmsFinances);
+
+        }
+
+        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