From f656483a233cb1213c85f32c6b4f81d71bd4db4c Mon Sep 17 00:00:00 2001
From: zhangback <zhangback@163.com>
Date: 星期二, 18 十一月 2025 11:59:19 +0800
Subject: [PATCH] 提交
---
tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java | 182 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 180 insertions(+), 2 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 fda26a7..0fb6e6b 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,10 +1,13 @@
package com.ruoyi.tms.service.impl;
import java.util.Arrays;
+import java.util.Date;
import java.util.List;
+import java.util.stream.Collectors;
import cn.hutool.core.bean.BeanUtil;
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;
@@ -14,9 +17,13 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.ISystemDataNoService;
-import com.ruoyi.tms.domain.TmsDriverDispatch;
+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.service.ITmsDriverDispatchService;
+import com.ruoyi.tms.service.ITmsFinanceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;
@@ -30,7 +37,6 @@
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;
@@ -53,7 +59,15 @@
private ISysUserService userService;
@Autowired
private ITmsDriverDispatchService tmsDriverDispatchService;
+ @Resource
+ private TmsQuoteDetailMapper tmsQuoteDetailMapper;
+ @Resource
+ private TmsQuotePlanMapper tmsQuotePlanMapper;
+
+
+ @Autowired
+ ITmsFinanceService tmsFinanceService;
/**
* 鏌ヨ璋冨害鍗曠鐞�
*
@@ -141,6 +155,33 @@
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)
+ );
+ 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 AjaxResult assignedItineraryList() {
@@ -361,4 +402,141 @@
{
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 -> {
+ // 瀹㈡埛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 AjaxResult generateTmsDispatchOrder(List<Integer> ids) {
+ List<TmsDispatchOrder> tmsDispatchOrders = initGenerate(ids);
+ 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();
+ }
}
--
Gitblit v1.8.0