From 487ef37ec34860b255986d8716d193369024e000 Mon Sep 17 00:00:00 2001
From: zhangback <zhangback@163.com>
Date: 星期二, 13 一月 2026 13:29:43 +0800
Subject: [PATCH] 修改为下单类型
---
tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java | 271 +++++++++++++++++++++++++++++++++---------------------
1 files changed, 166 insertions(+), 105 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 b72add6..35a7862 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
@@ -19,10 +19,7 @@
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.domain.vo.ServiceProviderVo;
+import com.ruoyi.tms.domain.vo.*;
import com.ruoyi.tms.mapper.*;
import com.ruoyi.tms.service.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -89,7 +86,10 @@
private TmsCustomsServiceProviderMapper tmsCustomsServiceProviderMapper;
@Resource
private TmsTripMapper tmsTripMapper;
-
+ @Resource
+ private TmsPayableFeeMapper tmsPayableFeeMapper;
+ @Resource
+ private TmsPayableFeeItemMapper tmsPayableFeeItemMapper;
/**
* 鏌ヨ璋冨害鍗曠鐞�
*
@@ -447,6 +447,27 @@
return tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
}
+ @Override
+ public int printDispatchOrder(TmsDispatchOrder tmsDispatchOrder)
+ {
+ return tmsDispatchOrderMapper.update(null,new LambdaUpdateWrapper<TmsDispatchOrder>()
+ .eq(TmsDispatchOrder::getId,tmsDispatchOrder.getId())
+ .set(TmsDispatchOrder::getIsPrint,0)
+ .setSql("print_count = IFNULL(print_count, 0) + 1")
+ .set(TmsDispatchOrder::getPrintTime,new Date())
+ .set(TmsDispatchOrder::getPrintBy,SecurityUtils.getUsername())
+ .set(TmsDispatchOrder::getSixLinkNo,tmsDispatchOrder.getSixLinkNo())
+ .set(TmsDispatchOrder::getPortName,tmsDispatchOrder.getPortName())
+ .set(TmsDispatchOrder::getBillNo,tmsDispatchOrder.getBillNo())
+ .set(TmsDispatchOrder::getTerminalName,tmsDispatchOrder.getTerminalName())
+ .set(TmsDispatchOrder::getCargoName,tmsDispatchOrder.getCargoName())
+ .set(TmsDispatchOrder::getPieceCount,tmsDispatchOrder.getPieceCount())
+ .set(TmsDispatchOrder::getWeight,tmsDispatchOrder.getWeight())
+ .set(TmsDispatchOrder::getContactName,tmsDispatchOrder.getContactName())
+ .set(TmsDispatchOrder::getContactPhone,tmsDispatchOrder.getContactPhone())
+ );
+ }
+
/**
* 淇敼璋冨害鍗曠鐞哰鎵归噺]
*
@@ -588,7 +609,7 @@
// 闈炶嚜钀ラ渶瑕佹湁杩愯垂
// 杞﹁締鏈嶅姟鍟�
// 瀹為檯杞﹀瀷
- String actualVehicleType = tmsDispatchOrder.getActualVehicleType();
+ String actualVehicleType = tmsDispatchOrder.getRequiredVehicleTypes();
// 鍑哄彂璺嚎 44,4404,440402,440402102
String shipperRegionCode = tmsDispatchOrder.getStartRegionCode();
// 鐩殑鍦拌矾绾� 81,8100,810000
@@ -598,8 +619,8 @@
TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>()
.eq(TmsQuoteDetail::getCustomerId, customerId)
.eq(TmsQuoteDetail::getVehicleType, actualVehicleType)
- .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
- .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
+ .likeRight(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
+ .likeRight(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
.eq(TmsQuoteDetail::getPlanType, 0)
.last("limit 1")
);
@@ -701,11 +722,11 @@
@Override
- public List<TmsDispatchOrder> initYFGenerate(List<Integer> ids) {
+ public List<TmsPayableFee> initYFGenerate(List<Integer> ids) {
List<TmsDispatchOrder> tmsDispatchOrders = tmsDispatchOrderMapper.selectBatchIds(ids);
if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){
tmsDispatchOrders.forEach(tmsDispatchOrder -> {
- List<TmsReceivableFeeItem> tmsReceivableFeeItems = new ArrayList<>();
+ List<TmsPayableFeeItem> tmsPayableFeeItems = new ArrayList<>();
if (tmsDispatchOrder.getAccountsPayableStatus() != null &&
tmsDispatchOrder.getAccountsPayableStatus() == 1){
throw new RuntimeException(tmsDispatchOrder.getDispatchNo()+"搴斾粯璐﹀崟宸茬敓鎴愶紝璇峰厛浣滃簾");
@@ -729,8 +750,8 @@
tmsQuoteDetailMapper.selectOne(
new LambdaQueryWrapper<TmsQuoteDetail>()
.eq(TmsQuoteDetail::getVehicleType, actualVehicleType)
- .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
- .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
+ .likeRight(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
+ .likeRight(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
.eq(TmsQuoteDetail::getPlanType, 1)
.exists(
"SELECT 1 " +
@@ -750,16 +771,20 @@
if (tmsQuoteDetail == null){
throw new RuntimeException("璋冨害鍗�"+tmsDispatchOrder.getDispatchNo()+"鏈淮鎶ゅ簲浠樿繍璐规姤浠凤紝璇风淮鎶ゆ暟鎹悗鍐嶉噸鏂扮敓鎴�");
}
+ TmsPayableFeeItem tmsPayableFeeItem = new TmsPayableFeeItem();
+ tmsPayableFeeItem.setFeeType(0);
+ tmsPayableFeeItem.setFeeName("杩愯垂");
+ tmsPayableFeeItem.setTypeId(tmsQuoteDetail.getId());
+ tmsPayableFeeItem.setRegisterAmount(tmsQuoteDetail.getFreightPrice());
+ tmsPayableFeeItem.setRegisterTime(tmsDispatchOrder.getConfirmTime());
+ tmsPayableFeeItem.setCurrency(tmsQuoteDetail.getCurrency());
+ tmsPayableFeeItem.setRowKey(IdUtil.objectId());
- 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);
+ tmsPayableFeeItem.setServiceProviderId(vehicleProviderId);
+ tmsPayableFeeItem.setServiceProviderName(tmsDispatchOrder.getVehicleProviderName());
+ tmsPayableFeeItem.setServiceProviderType("0");
+
+ tmsPayableFeeItems.add(tmsPayableFeeItem);
}
// 2銆� 鑾峰彇瀹炴姤瀹為攢璐圭敤
@@ -770,18 +795,20 @@
if (tmsFinanceDetails != null && !tmsFinanceDetails.isEmpty()){
tmsFinanceDetails.forEach(tmsFinanceDetail -> {
- TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem();
- tmsReceivableFeeItem.setFeeType(2);
+ TmsPayableFeeItem tmsPayableFeeItem = new TmsPayableFeeItem();
+ tmsPayableFeeItem.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);
+ tmsPayableFeeItem.setFeeName(feeName);
+ tmsPayableFeeItem.setTypeId(tmsFinanceDetail.getId());
+ tmsPayableFeeItem.setRegisterAmount(tmsFinanceDetail.getYfPrice());
+ tmsPayableFeeItem.setRegisterTime(tmsFinanceDetail.getUpdateTime());
+ tmsPayableFeeItem.setCurrency(tmsFinanceDetail.getYfCurrency());
+ tmsPayableFeeItem.setRowKey(IdUtil.objectId());
+ tmsPayableFeeItem.setServiceProviderId(tmsFinanceDetail.getYfServiceProviderId());
+ tmsPayableFeeItem.setServiceProviderName(tmsFinanceDetail.getYfServiceProviderName());
+ tmsPayableFeeItem.setServiceProviderType(tmsFinanceDetail.getYfServiceProviderType());
+ tmsPayableFeeItems.add(tmsPayableFeeItem);
});
}
@@ -795,25 +822,79 @@
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());
+ TmsPayableFeeItem tmsPayableFeeItem = new TmsPayableFeeItem();
+ tmsPayableFeeItem.setFeeType(1);
+ tmsPayableFeeItem.setFeeName(item.getFreeName());
+ tmsPayableFeeItem.setTypeId(item.getId());
+ tmsPayableFeeItem.setRegisterAmount(item.getYfSum());
+ tmsPayableFeeItem.setRegisterTime(item.getCreateTime());
+ tmsPayableFeeItem.setCurrency(item.getYfCurrency());
+ tmsPayableFeeItem.setRowKey(IdUtil.objectId());
- tmsReceivableFeeItems.add(tmsReceivableFeeItem);
+ tmsPayableFeeItem.setServiceProviderId(item.getServiceProviderId());
+ tmsPayableFeeItem.setServiceProviderName(getServiceProviderName(item.getServiceProviderType(),item.getServiceProviderId()));
+ tmsPayableFeeItem.setServiceProviderType(item.getServiceProviderType());
+
+ tmsPayableFeeItems.add(tmsPayableFeeItem);
});
}
-
-
-
- tmsDispatchOrder.setTmsReceivableFeeItems(tmsReceivableFeeItems);
+ tmsDispatchOrder.setTmsPayableFeeItems(tmsPayableFeeItems);
});
}
- return tmsDispatchOrders;
+ List<TmsPayableFee> tmsPayableFeeList = new ArrayList<>();
+ if (tmsDispatchOrders != null && !tmsDispatchOrders.isEmpty()){
+ tmsDispatchOrders.forEach(item -> {
+
+
+ List<TmsPayableFeeItem> tmsPayableFeeItems = item.getTmsPayableFeeItems();
+ Map<String, List<TmsPayableFeeItem>> map =
+ tmsPayableFeeItems.stream()
+ .collect(Collectors.groupingBy(cItem ->
+ cItem.getServiceProviderId() + "_" + cItem.getServiceProviderType()
+ ));
+ map.forEach((customerId, customerItems) -> {
+
+ TmsPayableFeeItem tmsPayableFeeItem = customerItems.get(0);
+ TmsPayableFee tmsPayableFee = new TmsPayableFee();
+
+ tmsPayableFee.setDispatchId(item.getId());
+ tmsPayableFee.setDispatchNo(item.getDispatchNo());
+
+ tmsPayableFee.setServiceProviderId(tmsPayableFeeItem.getServiceProviderId());
+ tmsPayableFee.setServiceProviderName(tmsPayableFeeItem.getServiceProviderName());
+ tmsPayableFee.setServiceProviderType(tmsPayableFeeItem.getServiceProviderType());
+
+ tmsPayableFee.setProjectId(item.getProjectId());
+ tmsPayableFee.setProjectName(item.getProjectName());
+
+ BigDecimal totalRmbAmount = customerItems.stream()
+ .filter(cItem -> "RMB".equals(cItem.getCurrency()))
+ .map(TmsPayableFeeItem::getRegisterAmount)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ tmsPayableFee.setPayableRmbAmount(totalRmbAmount);
+
+
+ BigDecimal totalHkbAmount = customerItems.stream()
+ .filter(cItem -> "HKD".equals(cItem.getCurrency()))
+ .map(TmsPayableFeeItem::getRegisterAmount)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ tmsPayableFee.setPayableHkbAmount(totalHkbAmount);
+ tmsPayableFee.setDispatchConfirmTime(item.getConfirmTime());
+ tmsPayableFee.setStatus(0);
+ tmsPayableFee.setPayableFeeItems(customerItems);
+ tmsPayableFeeList.add(tmsPayableFee);
+ });
+
+
+ });
+ }
+
+
+
+
+
+
+ return tmsPayableFeeList;
}
@Override
@@ -885,69 +966,29 @@
}
@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<TmsPayableFee> tmsPayableFeeList = initYFGenerate(ids);
-
-
-
- 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());
+ Set<Integer> dispatchIds = tmsPayableFeeList.stream().map(TmsPayableFee::getDispatchId).collect(Collectors.toSet());
// 1銆佷慨鏀硅皟搴�
- tmsDispatchOrderMapper.updateTmsDispatchOrderBatch(collect);
-
+ tmsDispatchOrderMapper.update(new LambdaUpdateWrapper<TmsDispatchOrder>()
+ .in(TmsDispatchOrder::getId, dispatchIds)
+ .set(TmsDispatchOrder::getAccountsPayableStatus, 1)
+ .set(TmsDispatchOrder::getUpdateBy, SecurityUtils.getUsername())
+ .set(TmsDispatchOrder::getUpdateTime, DateUtils.getNowDate())
+ );
// 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);
-// });
+ tmsPayableFeeList.forEach(tmsPayableFee ->{
+ String noByKey = systemDataNoService.getNoByKey(SystemDataNoEnum.YFFY);
+ tmsPayableFee.setSystemNo(noByKey);
+ tmsPayableFee.setCostGenerateTime(new Date());
+ tmsPayableFee.setCreateBy(SecurityUtils.getUsername());
+ tmsPayableFeeMapper.insertTmsPayableFee(tmsPayableFee);
+ List<TmsPayableFeeItem> customerItems = tmsPayableFee.getPayableFeeItems();
+ customerItems.forEach(kItem -> {
+ kItem.setHeadId(tmsPayableFee.getId());
+ });
+ tmsPayableFeeItemMapper.insertTmsPayableFeeItemBatch(customerItems);
+ });
return AjaxResult.success();
}
@@ -1102,6 +1143,21 @@
return AjaxResult.success();
}
+ public String getServiceProviderName(String serviceProviderType,Integer serviceProviderId){
+ if ("0".equals(serviceProviderType)){
+ TmsServiceProvider tmsServiceProvider = tmsServiceProviderMapper.selectTmsServiceProviderById(serviceProviderId);
+ return tmsServiceProvider.getServiceName();
+ } else if ("1".equals(serviceProviderType)){
+ TmsCustomsServiceProvider tmsCustomsServiceProvider = tmsCustomsServiceProviderMapper.selectTmsCustomsServiceProviderById(serviceProviderId);
+ return tmsCustomsServiceProvider.getServiceName();
+ } else if ("2".equals(serviceProviderType)){
+ TmsLoadingServiceProvider tmsLoadingServiceProvider = tmsLoadingServiceProviderMapper.selectTmsLoadingServiceProviderById(serviceProviderId);
+ return tmsLoadingServiceProvider.getServiceName();
+ }
+ return null;
+ }
+
+
@Override
public List<DpDriverDispatchVo> selectDpData() {
return tmsDispatchOrderMapper.selectselectDpData();
@@ -1111,4 +1167,9 @@
public DpDriverDispatchItemVo selectDataByNo(String no) {
return tmsDispatchOrderMapper.selectDataByNo(no);
}
+
+ @Override
+ public List<DpItineraryLogVo> selectItineraryLog() {
+ return tmsDispatchOrderMapper.selectItineraryLog();
+ }
}
--
Gitblit v1.8.0