From 73a4a892517ac3f60334b0c4132bf619726b4854 Mon Sep 17 00:00:00 2001
From: zhangback <zhangback@163.com>
Date: 星期六, 15 十一月 2025 13:28:47 +0800
Subject: [PATCH] 提交

---
 tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java |  184 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 183 insertions(+), 1 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 e1a8ccc..fda26a7 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,9 +1,23 @@
 package com.ruoyi.tms.service.impl;
 
+import java.util.Arrays;
 import java.util.List;
 
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.enums.SystemDataNoEnum;
 import com.ruoyi.common.utils.DateUtils;
 import javax.annotation.Resource;
+
+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.vo.DriverDispatchVo;
+import com.ruoyi.tms.service.ITmsDriverDispatchService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.stereotype.Service;
 import org.springframework.scheduling.annotation.Async;
@@ -33,7 +47,12 @@
     protected final Logger logger = LoggerFactory.getLogger(getClass());
     @Resource
     private TmsDispatchOrderMapper tmsDispatchOrderMapper;
-
+    @Autowired
+    ISystemDataNoService systemDataNoService;
+    @Autowired
+    private ISysUserService userService;
+    @Autowired
+    private ITmsDriverDispatchService tmsDriverDispatchService;
 
     /**
      * 鏌ヨ璋冨害鍗曠鐞�
@@ -47,6 +66,163 @@
     {
         return tmsDispatchOrderMapper.selectTmsDispatchOrderById(id);
     }
+
+    @Override
+    public AjaxResult confirmOrder(Integer id) {
+        TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(id);
+        if (tmsDispatchOrder == null){
+            return AjaxResult.error("鏈壘鍒拌鏁版嵁");
+        }
+        if (tmsDispatchOrder.getStatus() != 0){
+            return AjaxResult.error("璇ヨ皟搴﹀崟鏁版嵁鐘舵�佸紓甯�");
+        }
+        if (tmsDispatchOrder.getMainDriverId() == null){
+            return AjaxResult.error("璇峰厛閫夋嫨涓婚┚鍙告満");
+        }
+        if (tmsDispatchOrder.getVehicleId() == null){
+            return AjaxResult.error("璇峰厛閫夋嫨杞﹁締");
+        }
+
+        tmsDispatchOrder.setStatus(1);
+
+        tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
+        int i = tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
+        TmsDriverDispatch tmsDriverDispatch = new TmsDriverDispatch();
+        tmsDriverDispatch.setDriverId(tmsDispatchOrder.getMainDriverId());
+        tmsDriverDispatch.setDispatchId(tmsDispatchOrder.getId());
+        tmsDriverDispatch.setStatus(0);
+        tmsDriverDispatchService.insertTmsDriverDispatch(tmsDriverDispatch);
+        if (i > 0){
+            return AjaxResult.success("鎿嶄綔鎴愬姛");
+        }
+        return AjaxResult.error("鎿嶄綔澶辫触");
+    }
+    @Override
+    public AjaxResult okOrder(Integer id) {
+        TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(id);
+        if (tmsDispatchOrder == null){
+            return AjaxResult.error("鏈壘鍒拌鏁版嵁");
+        }
+        if (tmsDispatchOrder.getStatus() != 2){
+            return AjaxResult.error("璇ヨ皟搴﹀崟鏁版嵁鐘舵�佸紓甯�");
+        }
+        tmsDispatchOrder.setStatus(3);
+
+        tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
+        int i = tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
+        if (i > 0){
+            return AjaxResult.success("鎿嶄綔鎴愬姛");
+        }
+        return AjaxResult.error("鎿嶄綔澶辫触");
+    }
+    @Override
+    public AjaxResult copyOrder(Integer id) {
+        TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(id);
+        if (tmsDispatchOrder == null){
+            return AjaxResult.error("鏈壘鍒拌鏁版嵁");
+        }
+        TmsDispatchOrder tmsDispatchOrderNew = BeanUtil.copyProperties(tmsDispatchOrder, TmsDispatchOrder.class);
+
+        tmsDispatchOrderNew.setStatus(0);
+        tmsDispatchOrderNew.setMainDriverId(null);
+        tmsDispatchOrderNew.setMainDriverName(null);
+        tmsDispatchOrderNew.setAssistantDriverId(null);
+        tmsDispatchOrderNew.setAssistantDriverName(null);
+        tmsDispatchOrderNew.setVehicleId(null);
+        tmsDispatchOrderNew.setLicensePlate(null);
+        tmsDispatchOrderNew.setUpdateBy(null);
+        tmsDispatchOrderNew.setId(null);
+
+
+        int i = insertTmsDispatchOrder(tmsDispatchOrderNew);
+        if (i > 0){
+            return AjaxResult.success("鎿嶄綔鎴愬姛");
+        }
+        return AjaxResult.error("鎿嶄綔澶辫触");
+    }
+
+
+    @Override
+    public AjaxResult assignedItineraryList() {
+        Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
+        if (deviceId == null){
+            return AjaxResult.success();
+        }
+
+        DriverDispatchVo vo = new DriverDispatchVo();
+        vo.setDriverId(deviceId);
+        vo.setInStatusList(Arrays.asList(0, 1, 2,4));
+        vo.setInTdoStatusList(Arrays.asList(1, 2));
+        List<DriverDispatchVo> driverDispatchVos = tmsDispatchOrderMapper.selectAssignedItineraryList(vo);
+        if (driverDispatchVos != null && !driverDispatchVos.isEmpty()){
+            driverDispatchVos.forEach(item ->{
+                if (item.getTddStatus() == 1 ){
+                    item.setStatusStr("寰呯敥鎸�");
+                }else if (item.getTddStatus() == 2){
+                    item.setStatusStr("寰呮帴鎸�");
+                }else if (item.getStatus() == 1){
+                    item.setStatusStr("寰呭彂杞�");
+                }else if (item.getStatus() == 2){
+                    item.setStatusStr("鍦ㄩ��");
+                }else {
+                    item.setStatusStr("瀹屾垚琛岀▼");
+                }
+            });
+        }
+
+
+        return AjaxResult.success(driverDispatchVos);
+    }
+    @Override
+    public AjaxResult assignedItineraryLogList() {
+        Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
+        if (deviceId == null){
+            return AjaxResult.success();
+        }
+
+        DriverDispatchVo vo = new DriverDispatchVo();
+        vo.setDriverId(deviceId);
+        vo.setInStatusList(Arrays.asList(3,5));
+//        vo.setInTdoStatusList(Arrays.asList(1, 2));
+        List<DriverDispatchVo> driverDispatchVos = tmsDispatchOrderMapper.selectAssignedItineraryList(vo);
+        if (driverDispatchVos != null && !driverDispatchVos.isEmpty()){
+            driverDispatchVos.forEach(item ->{
+                item.setStatusStr("瀹屾垚琛岀▼");
+            });
+        }
+
+
+        return AjaxResult.success(driverDispatchVos);
+    }
+    @Override
+    public AjaxResult selectAssignedItineraryDetail(Integer dispatchId) {
+        Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
+        if (deviceId == null){
+            return AjaxResult.success();
+        }
+
+        DriverDispatchVo vo = new DriverDispatchVo();
+        vo.setDriverId(deviceId);
+        vo.setDispatchId(dispatchId);
+        DriverDispatchVo driverDispatchVo = tmsDispatchOrderMapper.selectAssignedItineraryDetail(vo);
+        if (driverDispatchVo != null){
+            if (driverDispatchVo.getTddStatus() == 1 ){
+                driverDispatchVo.setStatusStr("寰呯敥鎸�");
+            }else if (driverDispatchVo.getTddStatus() == 2){
+                driverDispatchVo.setStatusStr("寰呮帴鎸�");
+            }else if (driverDispatchVo.getStatus() == 1){
+                driverDispatchVo.setStatusStr("寰呭彂杞�");
+            }else if (driverDispatchVo.getStatus() == 2){
+                driverDispatchVo.setStatusStr("鍦ㄩ��");
+            }else{
+                driverDispatchVo.setStatusStr("瀹屾垚琛岀▼");
+            }
+        }
+        return AjaxResult.success(driverDispatchVo);
+    }
+
+
+
 
     /**
      * 鏌ヨ璋冨害鍗曠鐞� 璁板綍鏁�
@@ -102,6 +278,10 @@
     @Override
     public int insertTmsDispatchOrder(TmsDispatchOrder tmsDispatchOrder)
     {
+        String noByKey = systemDataNoService.getNoByKey(SystemDataNoEnum.DL);
+
+        tmsDispatchOrder.setDispatchNo(noByKey);
+        tmsDispatchOrder.setCreateBy(SecurityUtils.getUsername());
         tmsDispatchOrder.setCreateTime(DateUtils.getNowDate());
         return tmsDispatchOrderMapper.insertTmsDispatchOrder(tmsDispatchOrder);
     }
@@ -128,6 +308,8 @@
     @Override
     public int updateTmsDispatchOrder(TmsDispatchOrder tmsDispatchOrder)
     {
+        tmsDispatchOrder.setUpdateBy(SecurityUtils.getUsername());
+
         tmsDispatchOrder.setUpdateTime(DateUtils.getNowDate());
         return tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
     }

--
Gitblit v1.8.0