Просмотр исходного кода

Merge branch 'master' of auyen/tms into test

王伟宇 4 лет назад
Родитель
Сommit
6dcdae3177

+ 15 - 1
src/main/java/com/aoyang/tms/common/ErrCodeEnum.java

@@ -81,12 +81,26 @@ public enum ErrCodeEnum {
     /**
     /**
      * 该卡车下已经有一个押运员
      * 该卡车下已经有一个押运员
      */
      */
-    ONLY_ONE_ESCORT(2314, "该卡车下已经有一个押运员"),
+    ONLY_ONE_ESCORT(2314, "该卡车已绑定一个押运员"),
 
 
     /**
     /**
+     * 此押运员已经绑定其他车辆
+     */
+    ESCORT_HAS_BIND(2316, "此押运员已经绑定其他车辆"),
+
+    /**
+     * 此车辆已经绑定押运员
+     */
+    TRUCK_HAS_BIND_ESCORT(2317, "此车辆已经绑定押运员"),
+    /**
      * 该卡车下已经有一个押运员
      * 该卡车下已经有一个押运员
      */
      */
     EXECUTE_WEIGHT_ERROR(2315, "执行运单失败"),
     EXECUTE_WEIGHT_ERROR(2315, "执行运单失败"),
+
+    /**
+     * 押运员/驾驶员未绑定车辆
+     */
+    NOT_BINDING_ERROR(2332, "未绑定车辆"),
     ;
     ;
 
 
     private int code;
     private int code;

+ 12 - 0
src/main/java/com/aoyang/tms/controller/TestController.java

@@ -22,7 +22,9 @@ import org.springframework.web.bind.annotation.*;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
+import java.util.Arrays;
 import java.util.List;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * @Description: 作业人员相关接口
  * @Description: 作业人员相关接口
@@ -191,4 +193,14 @@ public class TestController {
         return send;
         return send;
     }
     }
 
 
+    @ApiOperation(value = "mongo聚合查询测试", notes = "根据经纬度查询位置")
+    @PostMapping("/test_mongo_group")
+    public Result testGroup(@RequestParam String truckIds) {
+        String[] split = truckIds.split(",");
+        List<String> list = Arrays.asList(split);
+        List<Long> ids = list.stream().
+                map(s->Long.parseLong(s)).collect(Collectors.toList());
+        return new Result(commonService.getLocations(list));
+    }
+
 }
 }

+ 21 - 1
src/main/java/com/aoyang/tms/controller/TruckController.java

@@ -1,8 +1,13 @@
 package com.aoyang.tms.controller;
 package com.aoyang.tms.controller;
 
 
 
 
+import com.aoyang.tms.common.ErrCodeEnum;
 import com.aoyang.tms.entity.Truck;
 import com.aoyang.tms.entity.Truck;
+import com.aoyang.tms.entity.TruckEscort;
+import com.aoyang.tms.service.TruckEscortService;
 import com.aoyang.tms.service.TruckService;
 import com.aoyang.tms.service.TruckService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
@@ -31,11 +36,13 @@ import com.aoyang.common.param.PageParam;
 @RestController
 @RestController
 @Slf4j
 @Slf4j
 @Api(value = "truckCRUD接口")
 @Api(value = "truckCRUD接口")
-@RequestMapping("/strategy/truck")
+@RequestMapping("/tms/truck")
 public class TruckController {
 public class TruckController {
 
 
     @Resource
     @Resource
     private TruckService truckService;
     private TruckService truckService;
+    @Resource
+    private TruckEscortService truckEscortService;
 
 
     @ApiOperation(value = "获取truck列表",notes="")
     @ApiOperation(value = "获取truck列表",notes="")
     @PostMapping("/list")
     @PostMapping("/list")
@@ -58,4 +65,17 @@ public class TruckController {
         Boolean flag = truckService.save(truck);
         Boolean flag = truckService.save(truck);
         return new Result<>(flag);
         return new Result<>(flag);
     }
     }
+
+    @ApiOperation(value = "取车牌号", notes = "取车牌号")
+    @PostMapping("/get_car_number")
+    public Result<Truck> getCarNumber(@RequestHeader(value = "userId", required = true) String userId) {
+        log.info("truck/get_car_number : userId:{}", userId);
+        TruckEscort truckEscort = truckEscortService.getOne(new QueryWrapper<TruckEscort>().eq("escort_id", userId));
+        if (truckEscort == null) {
+            return new Result(ErrCodeEnum.NOT_BINDING_ERROR.getCode(), ErrCodeEnum.NOT_BINDING_ERROR.getMessage());
+        }
+        Truck truck = truckService.getById(truckEscort.getTruckId());
+        return new Result<>(truck);
+    }
+
 }
 }

+ 67 - 16
src/main/java/com/aoyang/tms/controller/TruckEscortController.java

@@ -7,7 +7,10 @@ import com.aoyang.tms.controller.param.TruckEscortAddParam;
 import com.aoyang.tms.controller.param.TruckEscortListParam;
 import com.aoyang.tms.controller.param.TruckEscortListParam;
 import com.aoyang.tms.entity.User;
 import com.aoyang.tms.entity.User;
 import com.aoyang.tms.entity.WorkSpot;
 import com.aoyang.tms.entity.WorkSpot;
+import com.aoyang.tms.feign.result.Org;
 import com.aoyang.tms.service.CommonService;
 import com.aoyang.tms.service.CommonService;
+import com.aoyang.tms.service.TruckDriverService;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
@@ -48,6 +51,8 @@ public class TruckEscortController {
     private TruckEscortService truckEscortService;
     private TruckEscortService truckEscortService;
     @Resource
     @Resource
     private CommonService commonService;
     private CommonService commonService;
+    @Resource
+    private TruckDriverService truckDriverService;
 
 
 
 
     @ApiOperation(value = "获取车辆押运员分页列表", notes = "必传参数:orgId选填参数:keyWord(查escortName,mobile)")
     @ApiOperation(value = "获取车辆押运员分页列表", notes = "必传参数:orgId选填参数:keyWord(查escortName,mobile)")
@@ -70,13 +75,43 @@ public class TruckEscortController {
         return new Result<>(truckEscortService.list(param));
         return new Result<>(truckEscortService.list(param));
     }
     }
 
 
+    @ApiOperation(value = "车辆绑定/解绑押运员", notes = "必传参数:truckId")
+    @PostMapping("/bind_truck")
+    public Result bind(@RequestHeader(value = "userId") Long userId,
+                         @RequestHeader(value = "userName") String userName, @RequestHeader(value = "orgId") Long orgId,
+                         @RequestBody TruckEscort param) {
+        log.info("车辆绑定押运员,调用/tms/truck_escort/bind_truck,参数:{}", JSON.toJSONString(param));
+        if (param == null || param.getTruckId() == null) {
+            return new Result<>(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
+        }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
+
+        param.setOrgId(orgId);
+        Org org = commonService.findOrg(orgId);
+        if (org != null) {
+            param.setOrgName(org.getOrgName());
+        }
+        param.setCreater(userId);
+        param.setCreaterName(utf8Name);
+        param.setCreateDate(LocalDateTime.now());
+        param.setUpdater(userId);
+        param.setUpdaterName(utf8Name);
+        param.setUpdateDate(LocalDateTime.now());
+
+        return new Result<>(truckEscortService.bindTruck(param));
+    }
+
     @ApiOperation(value = "添加车辆押运员", notes = "必传参数:orgId,escortName,mobile")
     @ApiOperation(value = "添加车辆押运员", notes = "必传参数:orgId,escortName,mobile")
     @PostMapping("/add")
     @PostMapping("/add")
     public Result add(@RequestHeader(value = "userId") Long userId,
     public Result add(@RequestHeader(value = "userId") Long userId,
-                      @RequestHeader(value = "userName") String userName,
+                      @RequestHeader(value = "userName") String userName, @RequestHeader(value = "orgId") Long orgId,
                       @RequestBody TruckEscortAddParam param) {
                       @RequestBody TruckEscortAddParam param) {
         log.info("添加车辆押运员,调用/tms/truck_escort/add,参数:{}", JSON.toJSONString(param));
         log.info("添加车辆押运员,调用/tms/truck_escort/add,参数:{}", JSON.toJSONString(param));
-        if (param == null || param.getOrgId() == null || param.getEscortName() == null || param.getMobile() == null) {
+        if (param == null || param.getTruckId() == null || param.getEscortName() == null || param.getMobile() == null) {
             return new Result<>(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
             return new Result<>(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
         }
         String utf8Name = userName;
         String utf8Name = userName;
@@ -89,14 +124,13 @@ public class TruckEscortController {
         param.setCreaterName(utf8Name);
         param.setCreaterName(utf8Name);
         param.setCreateDate(LocalDateTime.now());
         param.setCreateDate(LocalDateTime.now());
 
 
-        if (param.getTruckId() != null) {
-            TruckEscortListParam truckEscortListParam = new TruckEscortListParam();
-            truckEscortListParam.setTruckId(param.getTruckId());
-            List<TruckEscort> list = truckEscortService.list(truckEscortListParam);
-            if (list != null && list.size() > 0) {
-                return new Result<>(ErrCodeEnum.ONLY_ONE_ESCORT.getCode(), ErrCodeEnum.ONLY_ONE_ESCORT.getMessage());
-
-            }
+        TruckEscortListParam truckEscortListParam = new TruckEscortListParam();
+        truckEscortListParam.setTruckId(param.getTruckId());
+        log.info("添加车辆押运员,调用/tms/truck_escort/add,truckEscortListParam参数:{}", JSON.toJSONString(truckEscortListParam));
+        List<TruckEscort> list = truckEscortService.list(truckEscortListParam);
+        log.info("添加车辆押运员,调用/tms/truck_escort/add,结果list:{}", JSON.toJSONString(list));
+        if (list != null && list.size() > 0) {
+            return new Result<>(ErrCodeEnum.ONLY_ONE_ESCORT.getCode(), ErrCodeEnum.ONLY_ONE_ESCORT.getMessage());
         }
         }
 
 
         return new Result<>(truckEscortService.add(param));
         return new Result<>(truckEscortService.add(param));
@@ -105,7 +139,7 @@ public class TruckEscortController {
     @ApiOperation(value = "修改车辆押运员", notes = "必传参数:EscortId")
     @ApiOperation(value = "修改车辆押运员", notes = "必传参数:EscortId")
     @PostMapping("/update")
     @PostMapping("/update")
     public Result update(@RequestHeader(value = "userId") Long userId,
     public Result update(@RequestHeader(value = "userId") Long userId,
-                         @RequestHeader(value = "userName") String userName,
+                         @RequestHeader(value = "userName") String userName, @RequestHeader(value = "orgId") Long orgId,
                          @RequestBody TruckEscort param) {
                          @RequestBody TruckEscort param) {
         log.info("修改车辆押运员,调用/tms/truck_escort/update,参数:{}", JSON.toJSONString(param));
         log.info("修改车辆押运员,调用/tms/truck_escort/update,参数:{}", JSON.toJSONString(param));
         if (param == null || param.getEscortId() == null) {
         if (param == null || param.getEscortId() == null) {
@@ -116,15 +150,26 @@ public class TruckEscortController {
             utf8Name = URLDecoder.decode(userName, "UTF-8");
             utf8Name = URLDecoder.decode(userName, "UTF-8");
         } catch (UnsupportedEncodingException ignored) {
         } catch (UnsupportedEncodingException ignored) {
         }
         }
+
+        param.setOrgId(orgId);
+        Org org = commonService.findOrg(orgId);
+        if (org != null) {
+            param.setOrgName(org.getOrgName());
+        }
+        param.setCreater(userId);
+        param.setCreaterName(utf8Name);
+        param.setCreateDate(LocalDateTime.now());
         param.setUpdater(userId);
         param.setUpdater(userId);
         param.setUpdaterName(utf8Name);
         param.setUpdaterName(utf8Name);
         param.setUpdateDate(LocalDateTime.now());
         param.setUpdateDate(LocalDateTime.now());
 
 
         if (param.getTruckId() != null) {
         if (param.getTruckId() != null) {
-            TruckEscortListParam truckEscortListParam = new TruckEscortListParam();
-            truckEscortListParam.setTruckId(param.getTruckId());
-            List<TruckEscort> list = truckEscortService.list(truckEscortListParam);
-            if (list != null && list.size() > 0) {
+            TruckEscort truckEscortParam = new TruckEscort();
+            truckEscortParam.setTruckId(param.getTruckId());
+            TruckEscort truckEscort = truckEscortService.findTruckEscort(truckEscortParam);
+            log.info("修改车辆押运员,调用/tms/truck_escort/update,truckEscortParam:{},结果truckEscort:{}", JSON.toJSONString(truckEscortParam), JSON.toJSONString(truckEscort));
+
+            if (truckEscort != null && !truckEscort.getEscortId().equals(param.getEscortId())) {
                 return new Result<>(ErrCodeEnum.ONLY_ONE_ESCORT.getCode(), ErrCodeEnum.ONLY_ONE_ESCORT.getMessage());
                 return new Result<>(ErrCodeEnum.ONLY_ONE_ESCORT.getCode(), ErrCodeEnum.ONLY_ONE_ESCORT.getMessage());
 
 
             }
             }
@@ -139,7 +184,13 @@ public class TruckEscortController {
         if (param == null || param.getEscortId() == null) {
         if (param == null || param.getEscortId() == null) {
             return new Result<>(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
             return new Result<>(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
         }
-        commonService.deleteUser(param.getEscortId());
+
+        boolean delEscort = commonService.deleteUser(param.getEscortId());
+        log.info("删除车辆押运员,调用/tms/truck_escort/delete, commonService deleteUser参数:{},结果:{}", JSON.toJSONString(param), JSON.toJSONString(delEscort));
+
+        boolean delTD = truckDriverService.delete(param.getEscortId());
+        log.info("删除车辆押运员,调用/tms/truck_escort/delete,truckDriverService delete参数:{},结果:{}", JSON.toJSONString(param), JSON.toJSONString(delTD));
+
         return new Result<>(truckEscortService.removeById(param));
         return new Result<>(truckEscortService.removeById(param));
     }
     }
 
 

+ 2 - 2
src/main/java/com/aoyang/tms/controller/WorkOrderManageController.java

@@ -198,7 +198,7 @@ public class WorkOrderManageController {
                 }
                 }
                 if (truckDrivers.size() > 1) {
                 if (truckDrivers.size() > 1) {
                     workOrder.setDriverIdTwo(truckDrivers.get(1).getDriverId());
                     workOrder.setDriverIdTwo(truckDrivers.get(1).getDriverId());
-                    workOrder.setDriverNameOne(truckDrivers.get(1).getDriverName());
+                    workOrder.setDriverNameTwo(truckDrivers.get(1).getDriverName());
                     User user2 = commonService.findUser(truckDrivers.get(1).getDriverId());
                     User user2 = commonService.findUser(truckDrivers.get(1).getDriverId());
                     if (user2 != null) {
                     if (user2 != null) {
                         monbiles.add(user2.getMobile());
                         monbiles.add(user2.getMobile());
@@ -301,7 +301,7 @@ public class WorkOrderManageController {
                 }
                 }
                 if (truckDrivers.size() > 1) {
                 if (truckDrivers.size() > 1) {
                     workOrder.setDriverIdTwo(truckDrivers.get(1).getDriverId());
                     workOrder.setDriverIdTwo(truckDrivers.get(1).getDriverId());
-                    workOrder.setDriverNameOne(truckDrivers.get(1).getDriverName());
+                    workOrder.setDriverNameTwo(truckDrivers.get(1).getDriverName());
                     User user2 = commonService.findUser(truckDrivers.get(1).getDriverId());
                     User user2 = commonService.findUser(truckDrivers.get(1).getDriverId());
                     if (user2 != null) {
                     if (user2 != null) {
                         monbiles.add(user2.getMobile());
                         monbiles.add(user2.getMobile());

+ 1 - 1
src/main/java/com/aoyang/tms/feign/UserFeignClient.java

@@ -26,7 +26,7 @@ public interface UserFeignClient {
     @PostMapping("/user/user/find_by_id")
     @PostMapping("/user/user/find_by_id")
     Result<User> find(@RequestBody IdParam idParam);
     Result<User> find(@RequestBody IdParam idParam);
 
 
-    @PostMapping("/user/user/org/find")
+    @PostMapping("/user/org/find")
     Result<Org> findOrg(@RequestBody Org org);
     Result<Org> findOrg(@RequestBody Org org);
 
 
 
 

+ 7 - 0
src/main/java/com/aoyang/tms/service/CommonService.java

@@ -10,6 +10,7 @@ import com.aoyang.tms.feign.result.Org;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * @Description: 常用工具类,如获取组织信息、用户信息、卡车信息、验证Result、验证通联返回值
  * @Description: 常用工具类,如获取组织信息、用户信息、卡车信息、验证Result、验证通联返回值
@@ -128,6 +129,12 @@ public interface CommonService {
 
 
 
 
     /**
     /**
+     * 根据truckId list获取车辆位置map
+     */
+    Map<String, LocationVO> getLocations(List<String> truckId);
+
+
+    /**
      * 根据时间根据truckId获取车辆信息
      * 根据时间根据truckId获取车辆信息
      */
      */
     LocationVO getLocationByDate(Long truckId, LocalDateTime date);
     LocationVO getLocationByDate(Long truckId, LocalDateTime date);

+ 13 - 3
src/main/java/com/aoyang/tms/service/TruckDriverService.java

@@ -7,7 +7,7 @@ import java.util.List;
 
 
 /**
 /**
  * <p>
  * <p>
- *  服务类
+ * 服务类
  * </p>
  * </p>
  *
  *
  * @author guoyong
  * @author guoyong
@@ -16,11 +16,21 @@ import java.util.List;
 public interface TruckDriverService extends IService<TruckDriver> {
 public interface TruckDriverService extends IService<TruckDriver> {
 
 
     /**
     /**
+     * @return
      * @Author guoyong
      * @Author guoyong
      * @Description 获取卡车下绑定的司机列表
      * @Description 获取卡车下绑定的司机列表
-     * @Date  2022/4/21
+     * @Date 2022/4/21
      * @Param
      * @Param
-     * @return
      **/
      **/
     List<TruckDriver> findTruckDrivers(Long truckId);
     List<TruckDriver> findTruckDrivers(Long truckId);
+
+
+    /**
+     * @return
+     * @Author guoyong
+     * @Description 删除用户与车的关联
+     * @Date 2022/5/5
+     * @Param
+     **/
+    boolean delete( Long userId);
 }
 }

+ 11 - 0
src/main/java/com/aoyang/tms/service/TruckEscortService.java

@@ -57,6 +57,17 @@ public interface TruckEscortService extends IService<TruckEscort> {
      **/
      **/
     boolean add(TruckEscortAddParam param);
     boolean add(TruckEscortAddParam param);
 
 
+
+    /**
+     * @return
+     * @Author guoyong
+     * @Description 车辆绑定、解绑押运员
+     * @Date 2022/5/6
+     * @Param
+     **/
+    boolean bindTruck(TruckEscort param);
+
+
     /**
     /**
      * @return
      * @return
      * @Author chengang
      * @Author chengang

+ 73 - 3
src/main/java/com/aoyang/tms/service/impl/CommonServiceImpl.java

@@ -26,6 +26,7 @@ import org.apache.http.util.EntityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.aggregation.*;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -33,9 +34,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.io.IOException;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
 
 
 /**
 /**
  * @Description: 公共类,方便服务间调用
  * @Description: 公共类,方便服务间调用
@@ -303,6 +302,7 @@ public class CommonServiceImpl implements CommonService {
     public User addUser(User user) {
     public User addUser(User user) {
         Result<User> result = userFeignClient.add(user.getCreater() + "", user);
         Result<User> result = userFeignClient.add(user.getCreater() + "", user);
         if (verifyResult(result)) {
         if (verifyResult(result)) {
+            log.info("CommonServiceImpl addUser result:{}", JSON.toJSONString(result));
             return result.getData();
             return result.getData();
         }
         }
         return null;
         return null;
@@ -311,6 +311,7 @@ public class CommonServiceImpl implements CommonService {
     @Override
     @Override
     public Boolean updateUser(User user) {
     public Boolean updateUser(User user) {
         Result<Boolean> result = userFeignClient.update(user.getCreater() + "", user);
         Result<Boolean> result = userFeignClient.update(user.getCreater() + "", user);
+        log.info("CommonServiceImpl updateUser result:{}", JSON.toJSONString(result));
         if (verifyResult(result)) {
         if (verifyResult(result)) {
             return result.getData();
             return result.getData();
         }
         }
@@ -356,6 +357,75 @@ public class CommonServiceImpl implements CommonService {
     }
     }
 
 
     @Override
     @Override
+    public Map<String, LocationVO> getLocations(List<String> truckIds) {
+        List<String> clientIds = new ArrayList();
+        for (String truckId : truckIds) {
+            QueryWrapper<TruckSimCard> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("truck_id", truckId);
+            TruckSimCard truckSimCard = truckSimCardService.getOne(queryWrapper);
+            if (truckSimCard == null) {
+                log.error("绑定信息不存在 truckId:{}", truckId);
+                clientIds.add(null);
+                continue;
+            }
+            clientIds.add(truckSimCard.getSimCard());
+        }
+        Query query = new Query(Criteria.where("clientId").in(clientIds).and("messageId").is(512));
+        query.with(new Sort(Sort.Direction.DESC, "dateTime"));
+
+//        // 聚合操作
+//        List<AggregationOperation> operations = new ArrayList<>();
+//        // 筛选条件
+//        operations.add(Aggregation.match(Criteria.where("clientId").in(clientIds).and("messageId").is(512)));
+//        operations.sort(new Sort(Sort.Direction.DESC, "dateTime"));
+//        // 分组字段
+//        GroupOperation groupOperation = Aggregation.group("clientId").first();
+//        SortOperation sortOperation = Aggregation.sort(Sort.by(Sort.Direction.DESC, "dateTime"));
+//        // 聚合查询字段
+////        for (int i = 0; i < queryKey.length; i++) {
+////            groupOperation = groupOperation.sum(queryKey[i]).as(queryKey[i]);
+////        }
+//        // 添加选项  (聚合查询字段和添加筛选是有区别的注意)
+//        operations.add(groupOperation);
+//        operations.add(sortOperation);
+//        // 最终聚合查询所有信息
+//        Aggregation aggregation = Aggregation.newAggregation(operations);
+//        // 查询结果
+//        AggregationResults<HashMap> results = mongoTemplate.aggregate(aggregation, "tms_dev", HashMap.class);
+//        //获取结果
+//        List<HashMap> result = results.getMappedResults();
+
+        TypedAggregation typedAggregation = TypedAggregation.newAggregation(TmsMongoDoc.class,
+                Arrays.asList(
+                        //筛选过滤条件
+                        TypedAggregation.match(Criteria.where("clientId").in(clientIds).and("messageId").is(512)),
+                        //分组过滤条件,sort的顺序有要求,在分组方法前就是先排序后分组
+                        TypedAggregation.sort(Sort.by(Sort.Direction.DESC, "dateTime")),
+                        TypedAggregation.group("clientId")
+                                .first("latitude").as("latitude")
+                                .first("longitude").as("longitude")
+                                .first("createTime").as("createTime")
+                                .first("clientId").as("clientId")
+                ));
+
+        List<TmsMongoDoc> tmsMongoDocs =
+                mongoTemplate.aggregate(typedAggregation, TmsMongoDoc.class).getMappedResults();
+        Map<String, LocationVO> result = new HashMap();
+        for (TmsMongoDoc doc : tmsMongoDocs) {
+            for (int i=0;i<clientIds.size();i++) {
+                if (clientIds.get(i).equals(doc.getClientId())) {
+                    LocationVO location = new LocationVO();
+                    location.setLatitude(doc.getLatitude() + "");
+                    location.setLongitude(doc.getLongitude() + "");
+                    location.setDate(doc.getCreateTime());
+                    result.put(truckIds.get(i), location);
+                }
+            }
+        }
+        return result;
+    }
+
+    @Override
     public LocationVO getLocationByDate(Long truckId, LocalDateTime date) {
     public LocationVO getLocationByDate(Long truckId, LocalDateTime date) {
         LocationVO location = null;
         LocationVO location = null;
         QueryWrapper<TruckSimCard> queryWrapper = new QueryWrapper<>();
         QueryWrapper<TruckSimCard> queryWrapper = new QueryWrapper<>();

+ 9 - 0
src/main/java/com/aoyang/tms/service/impl/JxlsExportTestServiceImpl.java

@@ -171,6 +171,15 @@ public class JxlsExportTestServiceImpl implements JxlsExportTestService {
             log.info("workLogTplVO is null:{}");
             log.info("workLogTplVO is null:{}");
             return null;
             return null;
         }
         }
+        if (workLogTplVO.getWorkCycle().getDriverOneSignUrl() == null) {
+            workLogTplVO.getWorkCycle().setDriverOneSignUrl("");
+        }
+        if (workLogTplVO.getWorkCycle().getDriverTwoSignUrl() == null) {
+            workLogTplVO.getWorkCycle().setDriverTwoSignUrl("");
+        }
+        if (workLogTplVO.getWorkCycle().getEscortSignUrl() == null) {
+            workLogTplVO.getWorkCycle().setEscortSignUrl("");
+        }
         byte driverOneSignUrl[] = getImageBytes(domainUrl + workLogTplVO.getWorkCycle().getDriverOneSignUrl());
         byte driverOneSignUrl[] = getImageBytes(domainUrl + workLogTplVO.getWorkCycle().getDriverOneSignUrl());
         byte driverTwoSignUrl[] = getImageBytes(domainUrl + workLogTplVO.getWorkCycle().getDriverTwoSignUrl());
         byte driverTwoSignUrl[] = getImageBytes(domainUrl + workLogTplVO.getWorkCycle().getDriverTwoSignUrl());
         byte escortSignUrl[] = getImageBytes(domainUrl + workLogTplVO.getWorkCycle().getEscortSignUrl());
         byte escortSignUrl[] = getImageBytes(domainUrl + workLogTplVO.getWorkCycle().getEscortSignUrl());

+ 36 - 45
src/main/java/com/aoyang/tms/service/impl/TmsLineCostServiceImpl.java

@@ -96,68 +96,59 @@ public class TmsLineCostServiceImpl extends ServiceImpl<TmsLineCostMapper, TmsLi
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public boolean add(TmsLineCostAddParam param) {
     public boolean add(TmsLineCostAddParam param) {
-        try {
-            TmsLineCost tmsLineCost = new TmsLineCost();
-            BeanUtils.copyProperties(param, tmsLineCost);
-            boolean flag = save(tmsLineCost);
-            if (param.getList() != null && param.getList().size() > 0) {
-                for (TmsLineCostOther tmsLineCostOther : param.getList()) {
-                    tmsLineCostOther.setLineCostId(tmsLineCost.getId());
-                    tmsLineCostOther.setCreater(tmsLineCost.getCreater());
-                    tmsLineCostOther.setCreaterName(tmsLineCost.getCreaterName());
-                    tmsLineCostOther.setCreateDate(tmsLineCost.getCreateDate());
-                    tmsLineCostOtherService.save(tmsLineCostOther);
-                }
+
+        TmsLineCost tmsLineCost = new TmsLineCost();
+        BeanUtils.copyProperties(param, tmsLineCost);
+        boolean flag = save(tmsLineCost);
+        if (param.getList() != null && param.getList().size() > 0) {
+            for (TmsLineCostOther tmsLineCostOther : param.getList()) {
+                tmsLineCostOther.setLineCostId(tmsLineCost.getId());
+                tmsLineCostOther.setCreater(tmsLineCost.getCreater());
+                tmsLineCostOther.setCreaterName(tmsLineCost.getCreaterName());
+                tmsLineCostOther.setCreateDate(tmsLineCost.getCreateDate());
+                tmsLineCostOtherService.save(tmsLineCostOther);
             }
             }
-            return flag;
-        } catch (Exception e) {
-            log.error("新增线路费用失败,参数:{},错误信息:{}", JSON.toJSONString(param), e);
-            return false;
         }
         }
+        return flag;
+
 
 
     }
     }
 
 
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public boolean update(TmsLineCostAddParam param) {
     public boolean update(TmsLineCostAddParam param) {
-        try {
-            TmsLineCost tmsLineCost = new TmsLineCost();
-            BeanUtils.copyProperties(param, tmsLineCost);
-            boolean flag = updateById(tmsLineCost);
-            if (param.getList() != null && param.getList().size() > 0) {
-                for (TmsLineCostOther tmsLineCostOther : param.getList()) {
-                    tmsLineCostOther.setUpdater(param.getUpdater());
-                    tmsLineCostOther.setUpdaterName(param.getUpdaterName());
-                    tmsLineCostOther.setUpdateDate(param.getUpdateDate());
-                    tmsLineCostOtherService.updateById(tmsLineCostOther);
-                }
+
+        TmsLineCost tmsLineCost = new TmsLineCost();
+        BeanUtils.copyProperties(param, tmsLineCost);
+        boolean flag = updateById(tmsLineCost);
+        if (param.getList() != null && param.getList().size() > 0) {
+            for (TmsLineCostOther tmsLineCostOther : param.getList()) {
+                tmsLineCostOther.setUpdater(param.getUpdater());
+                tmsLineCostOther.setUpdaterName(param.getUpdaterName());
+                tmsLineCostOther.setUpdateDate(param.getUpdateDate());
+                tmsLineCostOtherService.updateById(tmsLineCostOther);
             }
             }
-            return flag;
-        } catch (Exception e) {
-            log.error("修改线路费用失败,参数:{},错误信息:{}", JSON.toJSONString(param), e);
-            return false;
         }
         }
+        return flag;
+
     }
     }
 
 
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public boolean delete(TmsLineCostAddParam param) {
     public boolean delete(TmsLineCostAddParam param) {
-        try {
-            TmsLineCost tmsLineCost = new TmsLineCost();
-            BeanUtils.copyProperties(param, tmsLineCost);
-            boolean flag = removeById(tmsLineCost);
-
-            List<TmsLineCostOther> list = tmsLineCostOtherService.list(param);
-            if (list != null && list.size() > 0) {
-                for (TmsLineCostOther tmsLineCostOther : list) {
-                    tmsLineCostOtherService.removeById(tmsLineCostOther);
-                }
+
+        TmsLineCost tmsLineCost = new TmsLineCost();
+        BeanUtils.copyProperties(param, tmsLineCost);
+        boolean flag = removeById(tmsLineCost);
+
+        List<TmsLineCostOther> list = tmsLineCostOtherService.list(param);
+        if (list != null && list.size() > 0) {
+            for (TmsLineCostOther tmsLineCostOther : list) {
+                tmsLineCostOtherService.removeById(tmsLineCostOther);
             }
             }
-            return flag;
-        } catch (Exception e) {
-            log.error("删除线路费用失败,参数:{},错误信息:{}", JSON.toJSONString(param), e);
-            return false;
         }
         }
+        return flag;
+
     }
     }
 
 
 }
 }

+ 10 - 2
src/main/java/com/aoyang/tms/service/impl/TruckDriverServiceImpl.java

@@ -13,7 +13,7 @@ import java.util.List;
 
 
 /**
 /**
  * <p>
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  * </p>
  *
  *
  * @author guoyong
  * @author guoyong
@@ -28,8 +28,16 @@ public class TruckDriverServiceImpl extends ServiceImpl<TruckDriverMapper, Truck
     @Override
     @Override
     public List<TruckDriver> findTruckDrivers(Long truckId) {
     public List<TruckDriver> findTruckDrivers(Long truckId) {
         QueryWrapper<TruckDriver> queryWrapper = Wrappers.query();
         QueryWrapper<TruckDriver> queryWrapper = Wrappers.query();
-        queryWrapper.eq("truck_id",truckId);
+        queryWrapper.eq("truck_id", truckId);
         List<TruckDriver> list = truckDriverMapper.selectList(queryWrapper);
         List<TruckDriver> list = truckDriverMapper.selectList(queryWrapper);
         return list;
         return list;
     }
     }
+
+    @Override
+    public boolean delete(Long driverId) {
+        QueryWrapper<TruckDriver> queryWrapper = Wrappers.query();
+        queryWrapper.eq("driver_id", driverId);
+        boolean flag = truckDriverMapper.delete(queryWrapper) > 0 ? true : false;
+        return flag;
+    }
 }
 }

+ 60 - 10
src/main/java/com/aoyang/tms/service/impl/TruckEscortServiceImpl.java

@@ -4,12 +4,16 @@ import com.alibaba.fastjson.JSON;
 import com.aoyang.common.param.PageParam;
 import com.aoyang.common.param.PageParam;
 import com.aoyang.tms.controller.param.TruckEscortAddParam;
 import com.aoyang.tms.controller.param.TruckEscortAddParam;
 import com.aoyang.tms.controller.param.TruckEscortListParam;
 import com.aoyang.tms.controller.param.TruckEscortListParam;
+import com.aoyang.tms.entity.Truck;
+import com.aoyang.tms.entity.TruckDriver;
 import com.aoyang.tms.entity.TruckEscort;
 import com.aoyang.tms.entity.TruckEscort;
 import com.aoyang.tms.entity.User;
 import com.aoyang.tms.entity.User;
 import com.aoyang.tms.mapper.TruckEscortMapper;
 import com.aoyang.tms.mapper.TruckEscortMapper;
 import com.aoyang.tms.service.CommonService;
 import com.aoyang.tms.service.CommonService;
+import com.aoyang.tms.service.TruckDriverService;
 import com.aoyang.tms.service.TruckEscortService;
 import com.aoyang.tms.service.TruckEscortService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -19,6 +23,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import java.security.acl.LastOwnerException;
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -58,6 +64,9 @@ public class TruckEscortServiceImpl extends ServiceImpl<TruckEscortMapper, Truck
         if (param.getOrgId() != null) {
         if (param.getOrgId() != null) {
             queryWrapper.eq("org_id", param.getOrgId());
             queryWrapper.eq("org_id", param.getOrgId());
         }
         }
+        if (param.getEscortId() != null) {
+            queryWrapper.eq("escort_id", param.getEscortId());
+        }
         if (param.getTruckId() != null) {
         if (param.getTruckId() != null) {
             queryWrapper.eq("truck_id", param.getTruckId());
             queryWrapper.eq("truck_id", param.getTruckId());
         }
         }
@@ -82,6 +91,7 @@ public class TruckEscortServiceImpl extends ServiceImpl<TruckEscortMapper, Truck
     @Override
     @Override
     public boolean add(TruckEscortAddParam param) {
     public boolean add(TruckEscortAddParam param) {
         boolean flag = false;
         boolean flag = false;
+        //添加用户
         User user = new User();
         User user = new User();
         user.setBaseRole("driver");
         user.setBaseRole("driver");
         user.setUserType(2);
         user.setUserType(2);
@@ -120,18 +130,58 @@ public class TruckEscortServiceImpl extends ServiceImpl<TruckEscortMapper, Truck
     }
     }
 
 
     @Override
     @Override
+    public boolean bindTruck(TruckEscort param) {
+        //解绑,更新truck_escort、删除truck_driver表
+        if (param.getEscortId() == null) {
+            LambdaUpdateWrapper<TruckEscort> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.eq(TruckEscort::getTruckId, param.getTruckId());
+            updateWrapper.set(TruckEscort::getTruckId, null);
+            updateWrapper.set(TruckEscort::getCarNumber, null);
+            updateWrapper.set(TruckEscort::getUpdater, param.getUpdater());
+            updateWrapper.set(TruckEscort::getUpdaterName, param.getUpdaterName());
+            updateWrapper.set(TruckEscort::getUpdateDate, param.getUpdateDate());
+            boolean flag = truckEscortMapper.update(param, updateWrapper) > 0 ? true : false;
+            return flag;
+        } else {
+            LambdaUpdateWrapper<TruckEscort> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.eq(TruckEscort::getEscortId, param.getEscortId());
+            updateWrapper.set(TruckEscort::getTruckId, param.getTruckId());
+            updateWrapper.set(TruckEscort::getCarNumber, param.getCarNumber());
+            updateWrapper.set(TruckEscort::getUpdater, param.getUpdater());
+            updateWrapper.set(TruckEscort::getUpdaterName, param.getUpdaterName());
+            updateWrapper.set(TruckEscort::getUpdateDate, param.getUpdateDate());
+            boolean flag = truckEscortMapper.update(param, updateWrapper) > 0 ? true : false;
+            return flag;
+        }
+    }
+
+    @Override
     public boolean edit(TruckEscort param) {
     public boolean edit(TruckEscort param) {
-        if (param.getMobile() != null || param.getEscortName() != null) {
-            User user = new User();
-            if (param.getMobile() != null) {
-                user.setMobile(param.getMobile());
-            }
-            if (param.getEscortName() != null) {
-                user.setUserName(param.getEscortName());
-            }
-            commonService.updateUser(user);
+        log.info("修改押运员,edit,参数:{}", JSON.toJSONString(param));
+        User user = commonService.findUser(param.getEscortId());
+        user.setCreater(param.getUpdater());
+        user.setUserId(param.getEscortId());
+        if (param.getMobile() != null) {
+            user.setMobile(param.getMobile());
+        }
+        if (param.getEscortName() != null) {
+            user.setUserName(param.getEscortName());
         }
         }
-        return updateById(param);
+        commonService.updateUser(user);
+
+        LambdaUpdateWrapper<TruckEscort> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.eq(TruckEscort::getEscortId, param.getEscortId());
+        if (param.getTruckId() == null) {
+            updateWrapper.set(TruckEscort::getTruckId, null);
+        }
+        updateWrapper.set(TruckEscort::getEscortName, param.getEscortName());
+        updateWrapper.set(TruckEscort::getMobile, param.getMobile());
+        updateWrapper.set(TruckEscort::getCarNumber, param.getCarNumber());
+        updateWrapper.set(TruckEscort::getUpdater, param.getUpdater());
+        updateWrapper.set(TruckEscort::getUpdaterName, param.getUpdaterName());
+        updateWrapper.set(TruckEscort::getUpdateDate, param.getUpdateDate());
+        boolean flag = truckEscortMapper.update(param, updateWrapper) > 0 ? true : false;
+        return flag;
     }
     }
 
 
     @Override
     @Override

+ 22 - 8
src/main/java/com/aoyang/tms/service/impl/WorkOrderServiceImpl.java

@@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.swagger.models.auth.In;
 import io.swagger.models.auth.In;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -27,6 +28,7 @@ import java.time.Duration;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -36,6 +38,7 @@ import java.util.List;
  * @author guoyong
  * @author guoyong
  * @since 2022-04-20
  * @since 2022-04-20
  */
  */
+@Slf4j
 @Service
 @Service
 public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
 public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
 
 
@@ -173,13 +176,16 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
         Page<Truck> page = new Page<>(pageParam.getPage(), pageParam.getSize());
         Page<Truck> page = new Page<>(pageParam.getPage(), pageParam.getSize());
         IPage<TruckOrderManageVO> truckOrderRecords = truckMapper.listTmsManageTruck(page, pageParam.getParam());
         IPage<TruckOrderManageVO> truckOrderRecords = truckMapper.listTmsManageTruck(page, pageParam.getParam());
         List<TruckOrderManageVO> truckOrderList = truckOrderRecords.getRecords();
         List<TruckOrderManageVO> truckOrderList = truckOrderRecords.getRecords();
+        List<String> truckIds = new ArrayList<>();
         for (TruckOrderManageVO vo : truckOrderList) {
         for (TruckOrderManageVO vo : truckOrderList) {
-            LocationVO location = commonService.getLocation(Long.valueOf(vo.getTruckId()));
-            if (location != null) {
-                vo.setLatitude(location.getLatitude());
-                vo.setLongitude(location.getLongitude());
-                vo.setLocation(commonService.longitudeToAddress(location.getLongitude(), location.getLatitude()));
-            }
+            truckIds.add(vo.getTruckId());
+//            LocationVO location = commonService.getLocation(Long.valueOf(vo.getTruckId()));
+//            if (location != null) {
+//                vo.setLatitude(location.getLatitude());
+//                vo.setLongitude(location.getLongitude());
+//                vo.setLocation(commonService.longitudeToAddress(location.getLongitude(), location.getLatitude()));
+//                log.info("longitudeToAddress 耗时:{}", System.currentTimeMillis()-t4);
+//            }
             if (vo.getOrderId() != null) {
             if (vo.getOrderId() != null) {
                 // 设置已读未读信息
                 // 设置已读未读信息
                 List<TruckDriver> truckDrivers = truckDriverService.findTruckDrivers(Long.valueOf(vo.getTruckId()));
                 List<TruckDriver> truckDrivers = truckDriverService.findTruckDrivers(Long.valueOf(vo.getTruckId()));
@@ -202,6 +208,7 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
                     }
                     }
                     readInfos.add(readInfo);
                     readInfos.add(readInfo);
                 }
                 }
+                Long t8 = System.currentTimeMillis();
                 List<TruckEscort> truckEscorts = truckEscortService.list(new QueryWrapper<TruckEscort>().eq("truck_id", vo.getTruckId()));
                 List<TruckEscort> truckEscorts = truckEscortService.list(new QueryWrapper<TruckEscort>().eq("truck_id", vo.getTruckId()));
                 for (TruckEscort truckEscort : truckEscorts) {
                 for (TruckEscort truckEscort : truckEscorts) {
                     QueryWrapper queryWrapper = new QueryWrapper<>();
                     QueryWrapper queryWrapper = new QueryWrapper<>();
@@ -221,12 +228,19 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
                     }
                     }
                     readInfos.add(readInfo);
                     readInfos.add(readInfo);
                 }
                 }
-
                 vo.setReadInfos(readInfos);
                 vo.setReadInfos(readInfos);
             }
             }
-
         }
         }
 
 
+        Map<String, LocationVO> locations = commonService.getLocations(truckIds);
+        for (TruckOrderManageVO vo : truckOrderList) {
+            LocationVO location = locations.get(vo.getTruckId());
+            if (location != null) {
+                vo.setLatitude(location.getLatitude());
+                vo.setLongitude(location.getLongitude());
+                vo.setLocation(commonService.longitudeToAddress(location.getLongitude(), location.getLatitude()));
+            }
+        }
         truckOrderRecords.setRecords(truckOrderList);
         truckOrderRecords.setRecords(truckOrderList);
         return new Result<>(truckOrderRecords);
         return new Result<>(truckOrderRecords);
     }
     }

+ 43 - 48
src/main/java/com/aoyang/tms/service/impl/WorkerServiceImpl.java

@@ -247,58 +247,53 @@ public class WorkerServiceImpl implements WorkerService {
     @Transactional
     @Transactional
     public Boolean finishOrder(Long userId, String userName, WorkOrder workOrderParam) {
     public Boolean finishOrder(Long userId, String userName, WorkOrder workOrderParam) {
         Boolean flag = true;
         Boolean flag = true;
-        try {
-            WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
-            if (workOrder != null) {
-                //1.车辆进入收车中状态
-                Truck truck = truckService.getById(workOrder.getTruckId());
-
-                //2.订单完成状态
-                workOrder.setOrderStatus(WorkOrderEnum.COMPLETED.orderStatus());
-                workOrder.setCompleteTime(LocalDateTime.now());
-                workOrder.setWeightingListNo(workOrderParam.getWeightingListNo());
-                workOrder.setWeightingListUrl(workOrderParam.getWeightingListUrl());
-                workOrder.setPiWeight(workOrderParam.getPiWeight());
-                workOrder.setMaoWeight(workOrderParam.getMaoWeight());
-                workOrder.setJingWeight(workOrderParam.getJingWeight());
-                workOrder.setActualWeight(workOrderParam.getJingWeight());
-                workOrder.setActualLeaveTime(LocalDateTime.now());
-                workOrderService.updateById(workOrder);
-
-                //3.更新行车周期中的净重
-                WorkCycle workCycle = workCycleService.getById(workOrder.getCycleId());
-                int jingWeight = workCycle.getJingWeight();
-                if (workOrder.getType() == 1) {
-                    jingWeight = jingWeight + Integer.valueOf(workOrderParam.getJingWeight());
-                } else {
-                    jingWeight = jingWeight - Integer.valueOf(workOrderParam.getJingWeight());
-                    // 卸车后磅单 装车净重 与 累计 卸车净重 之差 在 ± 1000 kg 以内,则由 重车 变为 空车;
-                    if (jingWeight < 1000) {
-                        jingWeight = 0;
-                        // 卸车完成,行车状态进入收车中状态
-                        truck.setTmsStatus(TmsTruckStatus.RETURNING);
-                        truckService.updateById(truck);
-                    }
-                }
-                workCycle.setJingWeight(jingWeight);
-                workCycleService.updateById(workCycle);
-                log.info("finishOrder workCycle:{}", JSON.toJSONString(workCycle));
+        WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
+        if (workOrder != null) {
+            //1.车辆进入收车中状态
+            Truck truck = truckService.getById(workOrder.getTruckId());
+
+            //2.订单完成状态
+            workOrder.setOrderStatus(WorkOrderEnum.COMPLETED.orderStatus());
+            workOrder.setCompleteTime(LocalDateTime.now());
+            workOrder.setWeightingListNo(workOrderParam.getWeightingListNo());
+            workOrder.setWeightingListUrl(workOrderParam.getWeightingListUrl());
+            workOrder.setPiWeight(workOrderParam.getPiWeight());
+            workOrder.setMaoWeight(workOrderParam.getMaoWeight());
+            workOrder.setJingWeight(workOrderParam.getJingWeight());
+            workOrder.setActualWeight(workOrderParam.getJingWeight());
+            workOrder.setActualLeaveTime(LocalDateTime.now());
+            workOrderService.updateById(workOrder);
 
 
-                //3.并记行车日志
-                workOrder.setCreater(userId);
-                workOrder.setCreaterName(userName);
-                if (workOrder.getType() == 1) {
-                    workLogService.logWorkCycleInfo(WorkLogTypeEnum.LOAD_END, workOrder);
-                    workLogService.logWorkCycleInfo(WorkLogTypeEnum.LOAD_COMPLETE, workOrder);
-                } else {
-                    workLogService.logWorkCycleInfo(WorkLogTypeEnum.UNLOAD_END, workOrder);
-                    workLogService.logWorkCycleInfo(WorkLogTypeEnum.UNLOAD_COMPLETE, workOrder);
+            //3.更新行车周期中的净重
+            WorkCycle workCycle = workCycleService.getById(workOrder.getCycleId());
+            int jingWeight = workCycle.getJingWeight();
+            if (workOrder.getType() == 1) {
+                jingWeight = jingWeight + Integer.valueOf(workOrderParam.getJingWeight());
+            } else {
+                jingWeight = jingWeight - Integer.valueOf(workOrderParam.getJingWeight());
+                // 卸车后磅单 装车净重 与 累计 卸车净重 之差 在 ± 1000 kg 以内,则由 重车 变为 空车;
+                if (jingWeight < 1000) {
+                    jingWeight = 0;
+                    // 卸车完成,行车状态进入收车中状态
+                    truck.setTmsStatus(TmsTruckStatus.RETURNING);
+                    truckService.updateById(truck);
                 }
                 }
+            }
+            workCycle.setJingWeight(jingWeight);
+            workCycleService.updateById(workCycle);
+            log.info("finishOrder workCycle:{}", JSON.toJSONString(workCycle));
 
 
+            //3.并记行车日志
+            workOrder.setCreater(userId);
+            workOrder.setCreaterName(userName);
+            if (workOrder.getType() == 1) {
+                workLogService.logWorkCycleInfo(WorkLogTypeEnum.LOAD_END, workOrder);
+                workLogService.logWorkCycleInfo(WorkLogTypeEnum.LOAD_COMPLETE, workOrder);
+            } else {
+                workLogService.logWorkCycleInfo(WorkLogTypeEnum.UNLOAD_END, workOrder);
+                workLogService.logWorkCycleInfo(WorkLogTypeEnum.UNLOAD_COMPLETE, workOrder);
             }
             }
-        } catch (Exception e) {
-            log.error("startOrder:{}", e.getStackTrace());
-            return false;
+
         }
         }
 
 
         return flag;
         return flag;