From c74b2e7674da155fc51b1f71405ec182992fc114 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期二, 30 十二月 2025 09:54:25 +0800
Subject: [PATCH] 新增api大屏查询详情接口
---
tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java | 540 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 530 insertions(+), 10 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 fff168e..4b478ad 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,11 +1,11 @@
package com.ruoyi.tms.service.impl;
-import java.util.Arrays;
-import java.util.Date;
-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;
@@ -15,15 +15,16 @@
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.DpDriverDispatchItemVo;
+import com.ruoyi.tms.domain.vo.DpDriverDispatchVo;
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.service.ITmsDriverDispatchService;
-import com.ruoyi.tms.service.ITmsFinanceService;
+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;
@@ -36,8 +37,6 @@
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.core.service.BaseService;
-import com.ruoyi.tms.mapper.TmsDispatchOrderMapper;
-import com.ruoyi.tms.service.ITmsDispatchOrderService;
import com.ruoyi.common.core.text.Convert;
/**
@@ -68,6 +67,27 @@
@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;
+
/**
* 鏌ヨ璋冨害鍗曠鐞�
*
@@ -186,6 +206,26 @@
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
@@ -413,6 +453,10 @@
List<TmsDispatchOrder> tmsDispatchOrders = tmsDispatchOrderMapper.selectBatchIds(ids);
if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){
tmsDispatchOrders.forEach(tmsDispatchOrder -> {
+
+ // 1銆佹槸鍚︽槸澶栧崗
+// tmsDispatchOrder.is
+
// 瀹㈡埛ID
Integer customerId = tmsDispatchOrder.getCustomerId();
@@ -481,8 +525,398 @@
}
@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 -> {
@@ -544,4 +978,90 @@
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();
+ }
+
+ @Override
+ public List<DpDriverDispatchVo> selectDpData() {
+ return tmsDispatchOrderMapper.selectselectDpData();
+ }
+
+ @Override
+ public DpDriverDispatchItemVo selectDataByNo(String no) {
+ return tmsDispatchOrderMapper.selectDataByNo(no);
+ }
}
--
Gitblit v1.8.0