From c11e6f07b031eea6c7de4c5508b8dbf0ee01d2c7 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期三, 01 四月 2026 10:08:08 +0800
Subject: [PATCH] 去除不同报价方案,不能添加相同【客户-路线-车型】数据

---
 tms/src/main/java/com/ruoyi/tms/service/impl/TmsTripServiceImpl.java |   67 +++++++++++++++++++++++++++++++--
 1 files changed, 63 insertions(+), 4 deletions(-)

diff --git a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsTripServiceImpl.java b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsTripServiceImpl.java
index aaef49c..29ea620 100644
--- a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsTripServiceImpl.java
+++ b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsTripServiceImpl.java
@@ -1,12 +1,14 @@
 package com.ruoyi.tms.service.impl;
 
 import java.io.File;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.*;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.*;
@@ -121,6 +123,34 @@
         );
     }
 
+    @Override
+    public Map<String, Object> tmsTripListPage(Integer dispatchId, Integer pageNum, Integer pageSize) {
+        Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
+        if (deviceId == null) {
+            Map<String, Object> empty = new HashMap<>();
+            empty.put("rows", Collections.emptyList());
+            empty.put("total", 0);
+            return empty;
+        }
+
+        LambdaQueryWrapper<TmsTrip> wrapper = new LambdaQueryWrapper<TmsTrip>()
+                .eq(TmsTrip::getDriverId, deviceId);
+        // dispatchId 鍙�夛紝涓嶄紶鏃舵煡璇ュ徃鏈哄叏閮ㄨ绋�
+        if (dispatchId != null) {
+            wrapper.eq(TmsTrip::getDispatchOrderId, dispatchId);
+        }
+        // 鎸夎绋嬫椂闂村�掑簭
+        wrapper.orderByDesc(TmsTrip::getTripTime);
+
+        Page<TmsTrip> page = new Page<>(pageNum, pageSize);
+        Page<TmsTrip> result = tmsTripMapper.selectPage(page, wrapper);
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("rows", result.getRecords());
+        map.put("total", result.getTotal());
+        return map;
+    }
+
     /**
      * 鏌ヨ琛岀▼鍒楄〃 寮傛 瀵煎嚭
      *
@@ -156,13 +186,42 @@
         if (tmsDispatchOrder.getStatus() != 1 && tmsDispatchOrder.getStatus() != 2){
             throw new RuntimeException("璋冨害鍗曟暟鎹姸鎬佸紓甯�");
         }
+
+        TmsTrip tmsTrip1 = tmsTripMapper.selectOne(new LambdaQueryWrapper<TmsTrip>()
+                .eq(TmsTrip::getDispatchOrderId, dispatchOrderId)
+                .orderByDesc(TmsTrip::getId)
+                .last("limit 1")
+        );
+        if (tmsTrip1 != null){
+            BigDecimal currentOdometer = tmsTrip.getOdometer();
+            BigDecimal lastOdometer = tmsTrip1.getOdometer();
+            if (currentOdometer!=null && lastOdometer != null && currentOdometer.compareTo(lastOdometer) < 0) {
+                throw new IllegalArgumentException("杞﹁締閲岀▼鏁板紓甯革紝褰撳墠閲岀▼蹇呴』澶т簬涓婁竴琛岀▼");
+            }
+        }
+
         TmsDriver tmsDriver = tmsDriverMapper.selectTmsDriverById(tmsDispatchOrder.getMainDriverId());
         if (tmsDriver == null){
             throw new RuntimeException("鏈壘鍒板徃鏈烘暟鎹�");
         }
+        Integer status = tmsDispatchOrder.getStatus();
+        if (status == 1){
+            tmsDispatchOrder.setStatus(2);
+        }
+        if (tmsTrip.getTripType() == 8 || tmsTrip.getTripType() == 100){
+            if (status == 2){
+                tmsDispatchOrder.setStatus(3);
+                tmsDispatchOrder.setOkTime(DateUtils.getNowDate());
+                tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
+            }
+        }
+        if (tmsTrip.getTripType() == 5){
+            tmsDispatchOrder.setIscc(tmsTrip.getIscc());
+        }
+        if (tmsTrip.getTripType() == 100){
+            tmsDispatchOrder.setIsfk(0);
+        }
 
-
-        tmsDispatchOrder.setStatus(2);
         tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
         tmsTrip.setDriverName(tmsDispatchOrder.getMainDriverName());
         tmsTrip.setVehicleId(tmsDispatchOrder.getVehicleId());
@@ -174,10 +233,10 @@
             asyncPdfService.generateTripPdfAsync(tmsTrip,tmsDispatchOrder,tmsDriver);
         }
         // 瀹屾垚韬綋妫�鏌�
-        if (tmsTrip.getTripType() == 1){
+        if (tmsTrip.getTripType() == 1 && tmsDispatchOrder.getOperationMode() == 0){
             // 娣诲姞 棰嗛挜鍖� 鎸囦护璁板綍
             TmsVehicle tmsVehicle = tmsVehicleServiceImpl.selectTmsVehicleById(tmsDispatchOrder.getVehicleId());
-
+            logger.info("娣诲姞 棰嗛挜鍖� 鎸囦护璁板綍,{},{}",tmsDispatchOrder.getVehicleId(),tmsVehicle.getCarKeyNo());
             TmsCarKeyDispatch tmsCarKeyDispatch = new TmsCarKeyDispatch();
             tmsCarKeyDispatch.setDispatchOrderId(dispatchOrderId);
             tmsCarKeyDispatch.setDispatchOrderNo(tmsDispatchOrder.getDispatchNo());

--
Gitblit v1.8.0