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

1、车辆运单变更车辆及司机统计数据;
2、车辆轨迹数据接口调整;

zk 2 лет назад
Родитель
Сommit
f60fe30522
16 измененных файлов с 271 добавлено и 29 удалено
  1. 33 0
      sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/RemoteFleetService.java
  2. 5 0
      sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/model/vo/RDriverVo.java
  3. 15 8
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java
  4. 13 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckReportController.java
  5. 57 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java
  6. 5 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfDriver.java
  7. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruck.java
  8. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfDriverVo.java
  9. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfTruckReportVo.java
  10. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfTruckVo.java
  11. 12 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckReportService.java
  12. 7 2
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckReportMapper.xml
  13. 5 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java
  14. 15 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillCountVo.java
  15. 87 12
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  16. 13 3
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

+ 33 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/RemoteFleetService.java

@@ -21,6 +21,22 @@ public interface RemoteFleetService {
      **/
     Map<Long, RDriverVo> findDriver(List<Long> driverIds);
 
+    /**
+     * @param driverId 司机档案主键id
+     * @desc 查询司机信息
+     * @author zk
+     * @date 2023/8/3
+     **/
+    RDriverVo findDriver(Long driverId);
+
+    /**
+     * @param params 司机档案信息
+     * @desc 更新司机信息
+     * @author zk
+     * @date 2023/8/3
+     **/
+    int updateById(RDriverVo params);
+
     /**
      * @param truckNos 车牌号,多个已逗号隔开
      * @desc 查询车辆信息
@@ -28,4 +44,21 @@ public interface RemoteFleetService {
      * @date 2023/7/18
      **/
     Map<String, RTruckVo> findTruck(List<String> truckNos);
+
+    /**
+     * @param truckId 车辆档案主键id
+     * @desc 查询车辆信息
+     * @author zk
+     * @date 2023/8/3
+     **/
+    RTruckVo findTruck(Long truckId);
+
+    /**
+     * @param params 车辆档案信息
+     * @desc 更新车辆档案
+     * @author zk
+     * @date 2023/8/3
+     **/
+    int updateById(RTruckVo params);
+
 }

+ 5 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/model/vo/RDriverVo.java

@@ -46,4 +46,9 @@ public class RDriverVo implements Serializable {
      * 总运量(净重)
      */
     private BigDecimal totalWeight;
+
+    /**
+     * 车辆业务状态
+     */
+    private Integer businessStatus;
 }

+ 15 - 8
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java

@@ -301,11 +301,15 @@ public class KwfTruckController {
 
         List data = new ArrayList();
         for (String truckNo:truckNos) {
+            int aaa = new Random().nextInt(10) / 3;
+            int bbb = new Random().nextInt(10) / 4;
             data.add(new HashMap(){{
                 put("truckNo", truckNo);
                 put("speed", new Random().nextInt(100));
-                put("lng", "30."+new Random().nextInt(1000000));
-                put("lat", "103."+new Random().nextInt(1000000));
+                put("lat", "30.58"+new Random().nextInt(10000));
+                put("lng", "104.06"+new Random().nextInt(10000));
+                put("businessStatus", aaa == 0 ? 0 : 1);
+                put("runStatus", bbb == 0 ? 0 : bbb == 1 ? 1 : 2);
                 put("gpsTime", DateUtils.getCurrentTime());}});
         }
         return HttpResult.ok(data);
@@ -325,15 +329,19 @@ public class KwfTruckController {
             put("lng", "30.60513"); put("lat", "104.05079");
             put("gpsTime", DateUtils.format(params.getStartTime(), DateUtils.DATE_TIME_PATTERN));}});
         for (long i=0; i<hours; i++) {
+            int aaa = new Random().nextInt(10) / 3;
+            int bbb = new Random().nextInt(10) / 4;
             data.add(new HashMap(){{
                 put("truckNo", params.getTruckNo());
                 put("speed", new Random().nextInt(100));
-                put("lng", "30."+new Random().nextInt(1000000));
-                put("lat", "103."+new Random().nextInt(1000000));
+                put("lat", "30.58"+new Random().nextInt(10000));
+                put("lng", "104.06"+new Random().nextInt(10000));
+                put("businessStatus", aaa == 0 ? 0 : 1);
+                put("runStatus", bbb == 0 ? 0 : bbb == 1 ? 1 : 2);
                 put("gpsTime", DateUtils.getCurrentTime());}});
         }
         data.add(new HashMap(){{put("truckNo", params.getTruckNo()); put("speed", 95.0);
-            put("lng", "29.524931"); put("lat", "103.734587");
+            put("lat", "29.524931"); put("lng", "103.734587");
             put("gpsTime", DateUtils.format(params.getEndTime(), DateUtils.DATE_TIME_PATTERN));}});
         return HttpResult.ok(data);
     }
@@ -352,11 +360,10 @@ public class KwfTruckController {
         detail.put("driverPhone", "17358629955");
         detail.put("firmName", "东旭物流有限公司");
         detail.put("detailAddress", "四川省成都市xxx路10号");
-        detail.put("lng", "30."+new Random().nextInt(1000000));
-        detail.put("lat", "103."+new Random().nextInt(1000000));
+        detail.put("lat", "30.58"+new Random().nextInt(10000));
+        detail.put("lng", "104.06"+new Random().nextInt(10000));
         detail.put("speed", new Random().nextInt(100));
         detail.put("gpsTime", DateUtils.getCurrentTime());
         return HttpResult.ok(detail);
     }
-
 }

+ 13 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckReportController.java

@@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.easyexcel.RequestHolder;
 import com.sckw.excel.utils.ExcelUtil;
@@ -83,6 +84,18 @@ public class KwfTruckReportController {
         return HttpResult.error("无数据!");
     }
 
+    /**
+     * @param params {。。。}
+     * @desc 查询
+     * @author zk
+     * @date 2023/7/6
+     **/
+    @PostMapping("/findList")
+    public HttpResult findList(@RequestBody HashMap params) throws SystemException {
+        params.put("entId", LoginUserHolder.getEntId());
+        return HttpResult.ok(reportService.findList(params));
+    }
+
     /**
      * @param file 导入文件
      * @description 导入

+ 57 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -1,11 +1,14 @@
 package com.sckw.fleet.dubbo;
 
+import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.fleet.api.model.vo.RDriverVo;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.fleet.dao.KwfDriverMapper;
 import com.sckw.fleet.dao.KwfTruckMapper;
+import com.sckw.fleet.model.KwfDriver;
+import com.sckw.fleet.model.KwfTruck;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -59,6 +62,33 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
         return driverMap;
     }
 
+    /**
+     * @param driverId 司机档案主键id
+     * @desc 查询司机信息
+     * @author zk
+     * @date 2023/8/3
+     **/
+    @Override
+    public RDriverVo findDriver(Long driverId) {
+        RDriverVo driverVo = new RDriverVo();
+        KwfDriver driver = driverDao.selectById(driverId);
+        BeanUtils.copyProperties(driver, driverVo);
+        return driverVo;
+    }
+
+    /**
+     * @param params 司机档案信息
+     * @desc 更新司机信息
+     * @author zk
+     * @date 2023/8/3
+     **/
+    @Override
+    public int updateById(RDriverVo params) {
+        KwfDriver driver = new KwfDriver();
+        BeanUtils.copyProperties(params, driver);
+        return driverDao.updateById(driver);
+    }
+
     /**
      * @param truckNos 车牌号,多个已逗号隔开
      * @desc 查询车辆信息
@@ -90,4 +120,31 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
 
         return truckMap;
     }
+
+    /**
+     * @param truckId 车辆档案主键id
+     * @desc 查询车辆信息
+     * @author zk
+     * @date 2023/8/3
+     **/
+    @Override
+    public RTruckVo findTruck(Long truckId) {
+        RTruckVo truckVo = new RTruckVo();
+        KwfTruck truck = truckDao.selectById(truckId);
+        BeanUtils.copyProperties(truck, truckVo);
+        return truckVo;
+    }
+
+    /**
+     * @param params 车辆档案信息
+     * @desc 更新车辆档案
+     * @author zk
+     * @date 2023/8/3
+     **/
+    @Override
+    public int updateById(RTruckVo params) {
+        KwfTruck truck = new KwfTruck();
+        BeanUtils.copyProperties(params, truck);
+        return truckDao.updateById(truck);
+    }
 }

+ 5 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfDriver.java

@@ -61,4 +61,9 @@ public class KwfDriver extends BaseModel {
      */
     private BigDecimal totalWeight;
 
+    /**
+     * 车辆业务状态(0空闲、1任务)
+     */
+    private Integer businessStatus;
+
 }

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruck.java

@@ -92,7 +92,7 @@ public class KwfTruck extends BaseModel {
     private BigDecimal totalWeight;
 
     /**
-     * 车辆业务状态
+     * 车辆业务状态(0空闲、1任务)
      */
     private Integer businessStatus;
 

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfDriverVo.java

@@ -147,7 +147,7 @@ public class KwfDriverVo {
     private String remark;
 
     /**
-     * 状态
+     * 状态(1正常、2零时、3异常)
      */
     @ExcelIgnore
     private int status;

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfTruckReportVo.java

@@ -34,7 +34,7 @@ public class KwfTruckReportVo {
     private String truckNo;
 
     /**
-     * 状态
+     * 状态(1正常、2零时、3异常)
      */
     @ExcelIgnore
     private int status;

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfTruckVo.java

@@ -23,7 +23,7 @@ public class KwfTruckVo {
     private String id;
 
     /**
-     * 状态
+     * 状态(1正常、2零时、3异常)
      */
     @ExcelIgnore
     private int status;

+ 12 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckReportService.java

@@ -29,6 +29,8 @@ import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.math.BigDecimal;
@@ -164,6 +166,16 @@ public class KwfTruckReportService {
         return trucks;
     }
 
+    /**
+     * @param params {。。。}
+     * @desc 查询
+     * @author zk
+     * @date 2023/7/6
+     **/
+    public HttpResult findList(HashMap params) throws SystemException {
+        return HttpResult.ok(truckReportDao.findList(params));
+    }
+
     /**
      * @param {}
      * @description 导出

+ 7 - 2
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckReportMapper.xml

@@ -102,8 +102,10 @@
 
     <select id="findList" resultType="java.util.Map" parameterType="java.util.Map" >
         SELECT
-            trr.id, trr.ent_id entId, truck_id truckId, driver_id driverId, trr.remark, trr.status,
-            tr.truck_no, tr.actual_weight, tr.business_status, dr.`name`, dr.phone, dr.idcard
+            trr.id, trr.ent_id entId, trr.status, dr.id driverId, dr.name driverName, dr.phone driverPhone, dr.idcard driverIdcard,
+            tr.id truckId, tr.truck_no truckNo, tr.type truckType, tr.energy_type truckEnergyType,
+            tr.use_type truckUseType, tr.color truckColor, tr.trailer_no truckTrailerNo,
+            tr.business_status businessStatus, tr.actual_weight actualWeight
         from kwf_truck_report trr
         left join kwf_truck tr on tr.id = trr.truck_id
         left join kwf_driver dr on dr.id = trr.driver_id
@@ -123,6 +125,9 @@
         <if test="truckNo != null and truckNo != ''">
             and tr.truck_no = #{truckNo, jdbcType=VARCHAR}
         </if>
+        <if test="businessStatus != null and businessStatus != ''">
+            and tr.business_status = #{businessStatus, jdbcType=VARCHAR}
+        </if>
         <if test="status != null and status != ''">
             and trr.status = #{status, jdbcType=VARCHAR}
         </if>

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java

@@ -85,6 +85,11 @@ public class KwtWaybillOrder extends BaseModel {
      */
     private BigDecimal deficitAmount;
 
+    /**
+     * 亏吨扣款
+     */
+    private BigDecimal deficitPrice;
+
     /**
      * 计划开始时间
      */

+ 15 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillCountVo.java

@@ -41,5 +41,20 @@ public class WaybillCountVo {
      */
     private Date unloadTime;
 
+    /**
+     * 总运单完成量
+     */
+    private Integer totalComplete;
+
+    /**
+     * 总运单接单量
+     */
+    private Integer totalTake;
+
+    /**
+     * 执行中的任务数
+     */
+    private Integer totalExecute;
+
 
 }

+ 87 - 12
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -9,6 +9,9 @@ import com.sckw.core.utils.*;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.fleet.api.RemoteFleetService;
+import com.sckw.fleet.api.model.vo.RDriverVo;
+import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.mongo.model.SckwWaybillOrder;
@@ -66,6 +69,8 @@ public class KwtWaybillOrderService {
     private StreamBridge streamBridge;
     @DubboReference(version = "2.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private RemoteFleetService remoteFleetService;
 
     /**
      * @param driverId 司机ID
@@ -267,6 +272,7 @@ public class KwtWaybillOrderService {
             waybillOrder.setDriverIdcard(driver.getDriverIdcard());
         }
         if (truck != null) {
+            waybillOrder.setId(truck.getWOrderId());
             waybillOrder.setTruckId(truck.getTruckId());
             waybillOrder.setTruckNo(truck.getTruckNo());
         }
@@ -624,6 +630,7 @@ public class KwtWaybillOrderService {
         order.setUnloadGrossAmount(new BigDecimal(Global.AMOUNT));
         order.setUnloadUrls(Global.EMPTY_STRING);
         order.setDeficitAmount(new BigDecimal(Global.AMOUNT));
+        order.setDeficitPrice(new BigDecimal(Global.AMOUNT));
         order.setLoss(logisticsOrder.getLoss());
         order.setLossUnit(logisticsOrder.getLossUnit());
         order.setGoodsPrice(logisticsOrder.getGoodsPrice());
@@ -887,13 +894,19 @@ public class KwtWaybillOrderService {
             /**2新增运单状态记录**/
             setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
 
-            /**3Mongodb数据更新**/
+            /**3跟新司机/车辆数据**/
+            //更新司机信息
+            editDriver(waybillOrder.getDriverId());
+            //更新车辆信息
+            editTruck(waybillOrder.getTruckId());
+
+            /**4Mongodb数据更新**/
             //1车辆运单
             SckwWaybillOrder wOrder = new SckwWaybillOrder();
             wOrder.set_id(waybillOrder.getId());
             editSckwWaybillOrder(wOrder, waybillOrder, 2);
 
-            /**4发送消息**/
+            /**5发送消息**/
 
         }
 
@@ -1233,7 +1246,13 @@ public class KwtWaybillOrderService {
         ticket.setTime(params.getTime());
         waybillOrderTicketDao.insert(ticket);
 
-        /**4更新承运订单entrustAmount**/
+        /**4跟新司机/车辆数据**/
+        //更新司机信息
+        editDriver(waybillOrder.getDriverId());
+        //更新车辆信息
+        editTruck(waybillOrder.getTruckId());
+
+        /**5更新承运订单entrustAmount**/
         KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
         //承运订单已装货量=承运订单原装货量+当前车辆运单装货量
         BigDecimal loadAmount = logisticsOrder.getLoadAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getLoadAmount();
@@ -1244,7 +1263,7 @@ public class KwtWaybillOrderService {
         //校验当前承运订单是否运输完成(修改状态+统计量)
         checkLogisticsByStatusV1(waybillOrder.getLOrderId());
 
-        /**5Mongodb数据更新**/
+        /**6Mongodb数据更新**/
         //1车辆运单
         SckwWaybillOrder wOrder = new SckwWaybillOrder();
         wOrder.set_id(waybillOrder.getId());
@@ -1259,7 +1278,7 @@ public class KwtWaybillOrderService {
         lOrder.setLoadAmount(logisticsOrder.getLoadAmount());
         editSckwLogisticsOrder(lOrder, logisticsOrder);
 
-        /**6发送消息**/
+        /**7发送消息**/
 
         return HttpResult.ok("装货成功!");
     }
@@ -1320,9 +1339,13 @@ public class KwtWaybillOrderService {
         }
 
         /**业务处理**/
+        KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
         /**1更新车辆运单**/
         waybillOrder.setUnloadAmount(params.getAmount());
         waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
+        BigDecimal deficitPrice = deficitPrice(waybillOrder.getLoadAmount(), waybillOrder.getDeficitAmount(),
+                logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
+        waybillOrder.setDeficitPrice(deficitPrice);
         waybillOrder.setStatus(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
         waybillOrderDao.updateById(waybillOrder);
 
@@ -1347,9 +1370,14 @@ public class KwtWaybillOrderService {
             logisticsOrderCirculateDao.updateByPrimaryKey(circulate);
         }
 
+        /**5跟新司机/车辆数据**/
+        //更新司机信息
+        editDriver(waybillOrder.getDriverId());
+        //更新车辆信息
+        editTruck(waybillOrder.getTruckId());
+
         /**5更新承运订单entrustAmount**/
         //更新卸货量/卸货时间/亏吨/亏吨扣款
-        KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
         //承运订单卸货量=承运订单原卸货量+当前车辆运单卸货量
         BigDecimal unloadAmount = logisticsOrder.getUnloadAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getUnloadAmount();
         logisticsOrder.setUnloadAmount(unloadAmount.add(waybillOrder.getUnloadAmount()));
@@ -1357,7 +1385,8 @@ public class KwtWaybillOrderService {
         //承运订单亏吨量=承运订单装货量-承运订单卸货量
         logisticsOrder.setDeficitAmount(logisticsOrder.getLoadAmount().subtract(logisticsOrder.getUnloadAmount()));
         //承运订单亏吨扣款
-        BigDecimal deficitPrice = deficitPrice(logisticsOrder.getLoadAmount(), logisticsOrder.getDeficitAmount(), logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
+        deficitPrice = deficitPrice(logisticsOrder.getLoadAmount(), logisticsOrder.getDeficitAmount(),
+                logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
         logisticsOrder.setDeficitPrice(deficitPrice);
         logisticsOrderDao.updateById(logisticsOrder);
 
@@ -1369,6 +1398,8 @@ public class KwtWaybillOrderService {
         SckwWaybillOrder wOrder = new SckwWaybillOrder();
         wOrder.set_id(waybillOrder.getId());
         wOrder.setUnloadAmount(waybillOrder.getUnloadAmount());
+        wOrder.setDeficitAmount(waybillOrder.getDeficitAmount());
+        wOrder.setDeficitPrice(waybillOrder.getDeficitPrice());
         wOrder.setUnloadUrls(params.getUrls());
         wOrder.setUnloadTime(waybillOrder.getUpdateTime());
         editSckwWaybillOrder(wOrder, waybillOrder, 2);
@@ -1591,16 +1622,26 @@ public class KwtWaybillOrderService {
         }
 
         /**2更新车辆运单信息**/
+        KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
         waybillOrder.setLoadAmount(params.getType() == 1 ? params.getAmount() : waybillOrder.getLoadAmount());
         waybillOrder.setUnloadAmount(params.getType() == 2 ? params.getAmount() : waybillOrder.getUnloadAmount());
         waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
+        BigDecimal deficitPrice = deficitPrice(waybillOrder.getLoadAmount(), waybillOrder.getDeficitAmount(),
+                logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
+        waybillOrder.setDeficitPrice(deficitPrice);
         waybillOrderDao.updateById(waybillOrder);
 
         /**3更新榜单信息**/
         BeanUtils.copyProperties(params, ticket);
         waybillOrderTicketDao.updateById(ticket);
 
-        /**4更新承运订单信息**/
+        /**4跟新司机/车辆数据**/
+        //更新司机信息
+        editDriver(waybillOrder.getDriverId());
+        //更新车辆信息
+        editTruck(waybillOrder.getTruckId());
+
+        /**5更新承运订单信息**/
         Map queryParams = new HashMap();
         queryParams.put("lOrderId", waybillOrder.getLOrderId());
         queryParams.put("loadCountStatus", params.getType() == 1 ? 1 : null);
@@ -1608,13 +1649,12 @@ public class KwtWaybillOrderService {
         WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
 
         //更新卸货量/卸货时间/亏吨/亏吨扣款
-        KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
         logisticsOrder.setLoadAmount(waybillCount.getLoadAmount());
         logisticsOrder.setLoadTime(waybillCount.getLoadTime());
         logisticsOrder.setUnloadAmount(waybillCount.getUnloadAmount());
         logisticsOrder.setUnloadTime(waybillCount.getUnloadTime());
         logisticsOrder.setDeficitAmount(waybillCount.getDeficitAmount());
-        BigDecimal deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
+        deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
                 logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
         logisticsOrder.setDeficitPrice(deficitPrice);
         logisticsOrderDao.updateById(logisticsOrder);
@@ -1626,8 +1666,7 @@ public class KwtWaybillOrderService {
             checkLogisticsByStatusV1(waybillOrder.getLOrderId());
         }
 
-
-        /**5Mongodb数据更新**/
+        /**6Mongodb数据更新**/
         //1车辆运单
         SckwWaybillOrder wOrder = new SckwWaybillOrder();
         wOrder.set_id(waybillOrder.getId());
@@ -1638,6 +1677,7 @@ public class KwtWaybillOrderService {
         wOrder.setUnloadTime(params.getType() == 2 ? params.getTime() : null);
         wOrder.setLoadUrls(params.getType() == 2 ? params.getUrls() : null);
         wOrder.setDeficitAmount(waybillOrder.getDeficitAmount());
+        wOrder.setDeficitPrice(waybillOrder.getDeficitPrice());
         editSckwWaybillOrder(wOrder, waybillOrder, 2);
 
         //2承运订单
@@ -1696,4 +1736,39 @@ public class KwtWaybillOrderService {
         return HttpResult.ok("车辆运单审核完成!");
     }
 
+    /**
+     * @param driverId 司机档案ID
+     * @desc 更新司机信息
+     * @author zk
+     * @date 2023/8/3
+     **/
+    public void editDriver(Long driverId) {
+        //数据统计
+        WaybillCountVo countVo = waybillOrderDao.findWaybillOrderCount(new HashMap(){{put("driverId", driverId);}});
+        RDriverVo driver = new RDriverVo();
+        driver.setId(driverId);
+        driver.setTotalComplete(countVo.getTotalComplete());
+        driver.setTotalTake(countVo.getTotalTake());
+        driver.setTotalWeight(countVo.getLoadAmount());
+        driver.setBusinessStatus(countVo.getTotalExecute() != null && countVo.getTotalExecute() > 0 ? 1 : 0 );
+        remoteFleetService.updateById(driver);
+    }
+
+    /**
+     * @param driverId 车辆档案ID
+     * @desc 更新车辆信息
+     * @author zk
+     * @date 2023/8/3
+     **/
+    public void editTruck(Long truckId) {
+        //数据统计
+        WaybillCountVo countVo = waybillOrderDao.findWaybillOrderCount(new HashMap(){{put("truckId", truckId);}});
+        RTruckVo truck = new RTruckVo();
+        truck.setId(truckId);
+        truck.setTotalComplete(countVo.getTotalComplete());
+        truck.setTotalTake(countVo.getTotalTake());
+        truck.setTotalWeight(countVo.getLoadAmount());
+        truck.setBusinessStatus(countVo.getTotalExecute() != null && countVo.getTotalExecute() > 0 ? 1 : 0 );
+        remoteFleetService.updateById(truck);
+    }
 }

+ 13 - 3
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -149,9 +149,12 @@
 
     <select id="findWaybillOrderCount" resultType="com.sckw.transport.model.vo.WaybillCountVo" parameterType="java.util.Map">
         SELECT
-        IFNULL(SUM(wo.entrust_amount), 0.0) entrustAmount, IFNULL(SUM(wo.load_amount), 0.0) loadAmount,
-        IFNULL(SUM(wo.unload_amount), 0.0) unloadAmount, IFNULL(SUM(wo.deficit_amount), 0.0) deficitAmount,
-        MIN(wot1.time) loadTime, MAX(wot2.time) unloadTime
+            count(case when wo.status not in (1, 9, 11) then 1 end) totalComplete,
+            count(case when wo.status not in (1, 9, 10, 11) then 1 end) totalTake,
+            count(case when wo.status not in (3, 4, 5, 6) then 1 end) totalExecute,
+            IFNULL(SUM(wo.entrust_amount), 0.0) entrustAmount, IFNULL(SUM(wo.load_amount), 0.0) loadAmount,
+            IFNULL(SUM(wo.unload_amount), 0.0) unloadAmount, IFNULL(SUM(wo.deficit_amount), 0.0) deficitAmount,
+            MIN(wot1.time) loadTime, MAX(wot2.time) unloadTime
         from kwt_waybill_order wo
         left join kwt_waybill_order_ticket wot1 on wot1.w_order_id = wo.id and wot1.type = 1 and wot1.del_flag = 0
         left join kwt_waybill_order_ticket wot2 on wot2.w_order_id = wo.id and wot2.type = 2 and wot2.del_flag = 0
@@ -160,6 +163,12 @@
         <if test="lOrderId != null and lOrderId != ''">
             and lo.id = #{lOrderId, jdbcType=BIGINT}
         </if>
+        <if test="driverId != null and driverId != ''">
+            and wo.driver_id = #{driverId, jdbcType=BIGINT}
+        </if>
+        <if test="truckId != null and truckId != ''">
+            and wo.truck_id = #{truckId, jdbcType=BIGINT}
+        </if>
         <if test="passStatus != null and passStatus != ''">
             and wo.status = 8
         </if>
@@ -333,4 +342,5 @@
             and LEFT(wo.create_time, 7) = #{month, jdbcType=TIMESTAMP}
         </if>
     </select>
+
 </mapper>