From 47f5004419c3c703919b5351034fc9cfa0ac39f8 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期四, 08 一月 2026 14:52:30 +0800
Subject: [PATCH] 新增大屏接口
---
tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java | 219 +++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 197 insertions(+), 22 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 3e661b7..cc1ac58 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,8 @@
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.mapper.TmsFinanceMapper;
-import com.ruoyi.tms.mapper.TmsQuoteDetailMapper;
-import com.ruoyi.tms.mapper.TmsQuotePlanMapper;
+import com.ruoyi.tms.domain.vo.*;
+import com.ruoyi.tms.mapper.*;
import com.ruoyi.tms.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -36,7 +34,6 @@
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.core.service.BaseService;
-import com.ruoyi.tms.mapper.TmsDispatchOrderMapper;
import com.ruoyi.common.core.text.Convert;
/**
@@ -79,6 +76,16 @@
private ITmsReceivableFeeService tmsReceivableFeeService;
@Autowired
private ITmsReceivableFeeItemService tmsReceivableFeeItemService;
+ @Autowired
+ private TmsDriverDispatchServiceImpl tmsDriverDispatchServiceImpl;
+ @Resource
+ private TmsLoadingServiceProviderMapper tmsLoadingServiceProviderMapper;
+ @Resource
+ private TmsServiceProviderMapper tmsServiceProviderMapper;
+ @Resource
+ private TmsCustomsServiceProviderMapper tmsCustomsServiceProviderMapper;
+ @Resource
+ private TmsTripMapper tmsTripMapper;
/**
* 鏌ヨ璋冨害鍗曠鐞�
@@ -158,6 +165,9 @@
tmsDispatchOrderNew.setLicensePlate(null);
tmsDispatchOrderNew.setUpdateBy(null);
tmsDispatchOrderNew.setId(null);
+ tmsDispatchOrderNew.setAccountsReceivableStatus(0);
+ tmsDispatchOrderNew.setAccountsPayableStatus(0);
+
int i = insertTmsDispatchOrder(tmsDispatchOrderNew);
@@ -188,6 +198,27 @@
return AjaxResult.success("鎿嶄綔鎴愬姛");
}
+ @Override
+ public AjaxResult close(Integer id) {
+ TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(id);
+ if (tmsDispatchOrder == null){
+ return AjaxResult.error("鏈壘鍒拌鏁版嵁");
+ }
+ if (tmsDispatchOrder.getIsfk() == 0){
+ return AjaxResult.success();
+ }
+ TmsTrip tmsTrip = tmsTripMapper.selectOne(new LambdaQueryWrapper<TmsTrip>().eq(TmsTrip::getDispatchOrderId, id)
+ .eq(TmsTrip::getTripType, 0)
+ .orderByDesc(TmsTrip::getId)
+ .last("limit 1")
+ );
+
+ if (tmsTrip != null){
+ return AjaxResult.error("璇ヨ皟搴﹀崟鐘舵�佷负銆愬湪閫斻�戯紝涓斿徃鏈轰簬銆�"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", tmsTrip.getTripTime())+"銆戝凡鍙戣溅锛屼笉鍏佽浣滃簾锛屽闇�鍙栨秷琛岀▼锛�" +
+ "璇烽�氱煡鍙告満鎿嶄綔杩旂┖鍗冲彲銆�");
+ }
+ return AjaxResult.success("鎿嶄綔鎴愬姛");
+ }
@Override
public AjaxResult connectHang(TmsDriverDispatch driverDispatch) {
@@ -200,6 +231,27 @@
return AjaxResult.success();
}
+ @Override
+ public AjaxResult closeOrder(TmsDispatchOrder order) {
+ TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(order.getId());
+ if (tmsDispatchOrder == null){
+ return AjaxResult.error("鏈壘鍒拌鏁版嵁");
+ }
+ AjaxResult close = close(tmsDispatchOrder.getId());
+ if (close.isSuccess()){
+ tmsDispatchOrder.setStatus(5);
+ tmsDispatchOrder.setCloseBy(SecurityUtils.getUsername());
+ tmsDispatchOrder.setCloseTime(DateUtils.getNowDate());
+ tmsDispatchOrder.setCloseRemark(tmsDispatchOrder.getCloseRemark());
+ tmsDispatchOrder.setCloseWhy(tmsDispatchOrder.getCloseWhy());
+ tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
+ // TODO 鍔犳棩蹇�
+
+ return AjaxResult.success("鎿嶄綔鎴愬姛");
+ }else{
+ return close;
+ }
+ }
@Override
public int customsOrder(TmsDispatchOrder tmsDispatchOrder) {
@@ -392,6 +444,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())
+ );
+ }
+
/**
* 淇敼璋冨害鍗曠鐞哰鎵归噺]
*
@@ -529,22 +602,22 @@
// 瀹㈡埛ID
Integer customerId = tmsDispatchOrder.getCustomerId();
// 1銆佹槸鍚︽槸鑷惀 0 = 鏄� 1 = 鍚� 鑾峰彇杩愯垂
- if(tmsDispatchOrder.getOperationMode().equals(1)){
+ //if(tmsDispatchOrder.getOperationMode().equals(1)){
// 闈炶嚜钀ラ渶瑕佹湁杩愯垂
// 杞﹁締鏈嶅姟鍟�
// 瀹為檯杞﹀瀷
- String actualVehicleType = tmsDispatchOrder.getActualVehicleType();
+ String actualVehicleType = tmsDispatchOrder.getRequiredVehicleTypes();
// 鍑哄彂璺嚎 44,4404,440402,440402102
String shipperRegionCode = tmsDispatchOrder.getStartRegionCode();
// 鐩殑鍦拌矾绾� 81,8100,810000
- String receiverRegionCode = tmsDispatchOrder.getReceiverRegionCode();
+ String receiverRegionCode = tmsDispatchOrder.getEndRegionCode();
// 鏌ヨ搴旀敹瑙勫垯
TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>()
.eq(TmsQuoteDetail::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")
);
@@ -555,7 +628,7 @@
throw new RuntimeException("璋冨害鍗�"+tmsDispatchOrder.getDispatchNo()+"鏈淮鎶ゅ簲鏀惰繍璐规姤浠凤紝璇风淮鎶ゆ暟鎹悗鍐嶉噸鏂扮敓鎴�");
}
- if (tmsQuoteDetail.getIsSegmentedInvoice() == 0){
+ if (tmsQuoteDetail.getIsSegmentedInvoice() == 1){
TmsReceivableFeeItem tmsReceivableFeeItem = new TmsReceivableFeeItem();
tmsReceivableFeeItem.setFeeType(0);
tmsReceivableFeeItem.setFeeName("杩愯垂");
@@ -591,7 +664,7 @@
tmsReceivableFeeItems.add(tmsReceivableFeeItemTwo);
}
- }
+ //}
// 2銆� 鑾峰彇瀹炴姤瀹為攢璐圭敤
List<TmsFinanceDetail> tmsFinanceDetails = tmsFinanceDetailService.selectTmsFinanceDetailList(new TmsFinanceDetail() {{
setDispatchOrderId(tmsDispatchOrder.getId());
@@ -667,17 +740,28 @@
// 鍑哄彂璺嚎 44,4404,440402,440402102
String shipperRegionCode = tmsDispatchOrder.getStartRegionCode();
// 鐩殑鍦拌矾绾� 81,8100,810000
- String receiverRegionCode = tmsDispatchOrder.getReceiverRegionCode();
+ String receiverRegionCode = tmsDispatchOrder.getEndRegionCode();
// 鏌ヨ搴旀敹瑙勫垯
- TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>()
- .eq(TmsQuoteDetail::getVehicleProviderId, vehicleProviderId)
- .eq(TmsQuoteDetail::getVehicleType, actualVehicleType)
- .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
- .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
- .eq(TmsQuoteDetail::getPlanType, 1)
- .last("limit 1")
- );
+ TmsQuoteDetail tmsQuoteDetail =
+ tmsQuoteDetailMapper.selectOne(
+ new LambdaQueryWrapper<TmsQuoteDetail>()
+ .eq(TmsQuoteDetail::getVehicleType, actualVehicleType)
+ .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
+ .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
+ .eq(TmsQuoteDetail::getPlanType, 1)
+ .exists(
+ "SELECT 1 " +
+ "FROM tms_quote_plan tqp " +
+ "WHERE tqp.id = tms_quote_detail.quote_plan_id " +
+ "AND tqp.provider_id = {0} " +
+ "AND tqp.plan_type = 1 " +
+ "AND tqp.provider_type = 0",
+ vehicleProviderId
+ )
+ .last("LIMIT 1")
+ );
+
@@ -797,7 +881,7 @@
BigDecimal totalHkbAmount = tmsReceivableFeeItems.stream()
- .filter(cItem -> "HKB".equals(cItem.getCurrency()))
+ .filter(cItem -> "HKD".equals(cItem.getCurrency()))
.map(TmsReceivableFeeItem::getRegisterAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
tmsReceivableFee.setReceivableHKBAmount(totalHkbAmount);
@@ -959,4 +1043,95 @@
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);
+ }
+
+ @Override
+ public List<DpItineraryLogVo> selectItineraryLog() {
+ return tmsDispatchOrderMapper.selectItineraryLog();
+ }
}
--
Gitblit v1.8.0