Эх сурвалжийг харах

1、4.2调整运单状态;
2、4.2循环派车添加车是否有未完结订单;
3、4.2卸货判断运单是否全部装卸货完毕;
4、4.2循环单完结时重新生成运单;

zk 1 жил өмнө
parent
commit
acb2402544

+ 29 - 25
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillEnum.java

@@ -12,55 +12,59 @@ public enum CarWaybillEnum {
     /**
      * 待接单
      */
-    PENDING_ORDER(1, "pendingOrder", "1", "待接单"),
+    PENDING_ORDER(101, "pendingOrder", "101", "待接单"),
     /**
-     * 待出车
+     * 已撤销
      */
-    PENDING_VEHICLE(2, "pendingVehicle", "2", "待出车"),
+    REVOKED(102, "revoked", "102", "撤回"),
     /**
-     * 已出车
+     * 拒接单
      */
-    EXIT_COMPLETED(3, "exitCompleted", "3", "已出车"),
+    REJECT_ORDER(103, "rejectOrder", "103", "拒接单"),
     /**
-     * 到达装货点
+     * 出车-待出车
      */
-    WAIT_LOADING(4, "waitLoading", "4", "到达装货点"),
+    PENDING_VEHICLE(201, "pendingVehicle", "201", "待出车"),
     /**
-     * 已装货
+     * 出车-拒出车
      */
-    COMPLETION_LOADING(5, "completionLoading", "5", "已装货"),
+    REFUSE_TRAFFIC(202, "refuseTraffic", "202", "拒出车"),
     /**
-     * 到达卸货点
+     * 出车-已出车
      */
-    WAIT_UNLOADING(6, "waitUnloading", "6", "到达卸货点"),
+    EXIT_COMPLETED(203, "exitCompleted", "203", "已出车"),
     /**
-     * 已卸货
+     * 装货-到达装货点
      */
-    COMPLETION_UNLOADING(7, "completionUnloading", "7", "已卸货"),
+    WAIT_LOADING(301, "waitLoading", "301", "到达装货点"),
     /**
-     * 已核-通过
+     * 装货-已装货
      */
-    APPROVAL_PASS(8, "approvalPass", "8", "审核通过"),
+    COMPLETION_LOADING(302, "completionLoading", "302", "已装货"),
     /**
-     * 拒接单
+     * 卸货-到达卸货点
      */
-    REJECT_ORDER(9, "rejectOrder", "9", "拒接单"),
+    WAIT_UNLOADING(401, "waitUnloading", "401", "到达卸货点"),
     /**
-     * 拒出车
+     * 卸货-已卸货
      */
-    REFUSE_TRAFFIC(10, "refuseTraffic", "10", "拒出车"),
+    COMPLETION_UNLOADING(402, "completionUnloading", "402", "已卸货"),
     /**
-     * 已撤销
+     * 审核-待
+     */
+    APPROVAL_TREAT(501, "approvalTreat", "501", "待审核"),
+    /**
+     * 审核-通过
      */
-    REVOKED(11, "revoked", "11", "撤回"),
+    APPROVAL_PASS(502, "approvalPass", "502", "审核通过"),
     /**
-     * 已核单-不通过[审核不通过]
+     * 审核-驳回
      */
-    APPROVAL_NO_PASS(12, "revoked", "12", "核单驳回"),
+    APPROVAL_NO_PASS(503, "revoked", "503", "核单驳回"),
     /**
-     * 单证更新审核中
+     * 审核-单证更新审核中
      */
-    APPROVAL_IN(13, "approvalIn", "13", "单证更新审核中"),
+    APPROVAL_IN(504, "approvalIn", "504", "单证更新审核中"),
     ;
 
     private final Integer code;

+ 14 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderAddressMapper.java

@@ -25,8 +25,22 @@ public interface KwtWaybillOrderAddressMapper extends BaseMapper<KwtWaybillOrder
      **/
     KwtWaybillOrderAddress findByAddress(@Param("wOrderId") Long wOrderId, @Param("addressType") Integer addressType);
 
+    /**
+     * 查询运单地址信息
+     * @param wOrderId 运单ID
+     * @param addressType 地址类型
+     * @return 地址信息集
+     */
     List<KwtWaybillOrderAddress> findByAddresses(@Param("wOrderId") Long wOrderId, @Param("addressType") Integer addressType);
 
+    /**
+     * 查询运单地址信息
+     * @param wSubtaskId 运单子单ID
+     * @param addressType 地址类型
+     * @return 地址信息集
+     */
+    List<KwtWaybillOrderAddress> findBySubtaskId(@Param("wSubtaskId") Long wSubtaskId, @Param("addressType") Integer addressType);
+
     /**
      * 查询车辆运单装卸货地址CODE
      * @param entId 企业信息

+ 5 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderTicketMapper.java

@@ -1,6 +1,7 @@
 package com.sckw.transport.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.transport.model.KwtWaybillOrderAddress;
 import com.sckw.transport.model.KwtWaybillOrderTicket;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -17,13 +18,16 @@ public interface KwtWaybillOrderTicketMapper extends BaseMapper<KwtWaybillOrderT
     /**
      * 查询车辆运单榜单信息
      * @param wOrderId 车辆订单id
+     * @param wSubtaskId 运单子单ID
+     * @param wAddressId 运单地址ID
      * @param type 磅单类型(1装货单/2卸货单)
      * @desc 查询车辆运单榜单信息
      * @author zk
      * @date 2023/7/27
      * @return 榜单信息
      **/
-    List<KwtWaybillOrderTicket> findWaybillOrderTicket(@Param("wOrderId") Long wOrderId, @Param("type") Integer type);
+    List<KwtWaybillOrderTicket> findWaybillOrderTicket(@Param("wOrderId") Long wOrderId, @Param("wSubtaskId") Long wSubtaskId,
+                                                       @Param("wAddressId") Long wAddressId, @Param("type") Integer type);
 
     /**
      * 查询车辆运单榜单信息

+ 20 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderV1Mapper.java

@@ -24,7 +24,27 @@ import java.util.Map;
 @Mapper
 public interface KwtWaybillOrderV1Mapper extends BaseMapper<KwtWaybillOrderV1> {
 
+    /**
+     * 查询统计司机或车辆关联订单数量信息
+     * @param driverId 司机ID
+     * @param truckId 车辆ID
+     * @return 统计信息
+     */
     WaybillCountVo findCountByDriverOrTruck(@Param("driverId") Long driverId, @Param("truckId") Long truckId);
 
+    /**
+     * 查询统计司机或车辆关联订单运量信息
+     * @param driverId 司机ID
+     * @param truckId 车辆ID
+     * @return 统计信息
+     */
     WaybillCountVo findAmountByDriverOrTruck(@Param("driverId") Long driverId, @Param("truckId") Long truckId);
+
+    /**
+     * 查询统计车辆关联订单未完结数量
+     * @param type 运单类型
+     * @param truckId 车辆ID
+     * @return 统计信息
+     */
+    WaybillCountVo findUnfinishedByTruck(@Param("type") int type, @Param("truckId") Long truckId);
 }

+ 2 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dubbo/TransportStatisticsServiceImpl.java

@@ -56,6 +56,7 @@ public class TransportStatisticsServiceImpl implements TransportRemoteStatistics
         orderList.add(CarWaybillEnum.COMPLETION_LOADING.getCode());
         orderList.add(CarWaybillEnum.WAIT_UNLOADING.getCode());
         orderList.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
+        orderList.add(CarWaybillEnum.APPROVAL_TREAT.getCode());
         orderList.add(CarWaybillEnum.APPROVAL_PASS.getCode());
         orderList.add(CarWaybillEnum.APPROVAL_IN.getCode());
         returnCount = logisticsOrderMapper.statisticsWaybillSendCar(ids, orderList);
@@ -80,6 +81,7 @@ public class TransportStatisticsServiceImpl implements TransportRemoteStatistics
         }
         List<Integer> orderList = new ArrayList<>(NumberConstant.TWELVE);
         orderList.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
+        orderList.add(CarWaybillEnum.APPROVAL_TREAT.getCode());
         orderList.add(CarWaybillEnum.APPROVAL_IN.getCode());
         returnCount = logisticsOrderMapper.statisticsWaybillSendCar(ids, orderList);
         return returnCount;

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

@@ -2424,11 +2424,11 @@ public class KwtWaybillOrderService {
         }
 
         //装货榜单
-        List<KwtWaybillOrderTicket> loadTickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, NumberConstant.ONE);
+        List<KwtWaybillOrderTicket> loadTickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, null, null, NumberConstant.ONE);
         KwtWaybillOrderTicket loadTicket = CollectionUtils.isNotEmpty(loadTickets) ? loadTickets.get(NumberConstant.ZERO) : null;
         List<WaybillOrderLoadingVO> loadLoading = waybillOrderTicketService.agreement(waybillOrder, NumberConstant.ONE);
         //卸货榜单
-        List<KwtWaybillOrderTicket> unloadTickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, NumberConstant.TWO);
+        List<KwtWaybillOrderTicket> unloadTickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, null, null, NumberConstant.TWO);
         KwtWaybillOrderTicket unloadTicket = CollectionUtils.isNotEmpty(unloadTickets) ? unloadTickets.get(NumberConstant.ZERO) : null;
         List<WaybillOrderLoadingVO> unloadLoading = waybillOrderTicketService.agreement(waybillOrder, NumberConstant.TWO);
 
@@ -2501,10 +2501,10 @@ public class KwtWaybillOrderService {
             return HttpResult.error("车辆运单信息不存在!");
         }
         //装货榜单
-        List<KwtWaybillOrderTicket> loadTickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, NumberConstant.ONE);
+        List<KwtWaybillOrderTicket> loadTickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, null, null, NumberConstant.ONE);
         KwtWaybillOrderTicket loadTicket = CollectionUtils.isNotEmpty(loadTickets) ? loadTickets.get(NumberConstant.ZERO) : null;
         //卸货榜单
-        List<KwtWaybillOrderTicket> unloadTickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, NumberConstant.TWO);
+        List<KwtWaybillOrderTicket> unloadTickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, null, null, NumberConstant.TWO);
         KwtWaybillOrderTicket unloadTicket = CollectionUtils.isNotEmpty(unloadTickets) ? unloadTickets.get(NumberConstant.ZERO) : null;
 
         //装货地址

+ 3 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderSubtaskService.java

@@ -1,6 +1,7 @@
 package com.sckw.transport.service;
 
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.constant.NumberConstant;
 import com.sckw.transport.dao.KwtLogisticsOrderMapper;
 import com.sckw.transport.dao.KwtWaybillOrderSubtaskMapper;
 import com.sckw.transport.model.KwtLogisticsOrder;
@@ -48,7 +49,9 @@ public class KwtWaybillOrderSubtaskService {
         orderSubtask.setUnit(logisticsOrder != null ? logisticsOrder.getUnit() : null);
         orderSubtask.setEntrustAmount(entrustAmount.doubleValue());
         orderSubtask.setLoadTime(loadTime.get(Global.NUMERICAL_ZERO));
+        orderSubtask.setLoadAmount(NumberConstant.ZERO_TWO.doubleValue());
         orderSubtask.setUnloadTime(unloadTime.get(Global.NUMERICAL_ZERO));
+        orderSubtask.setUnloadAmount(NumberConstant.ZERO_TWO.doubleValue());
         orderSubtask.setStatus(waybillOrder.getStatus());
         waybillOrderSubtaskDao.insert(orderSubtask);
         return orderSubtask;

+ 3 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderTicketService.java

@@ -179,9 +179,9 @@ public class KwtWaybillOrderTicketService {
         //单位数据字典
         Map<String, SysDictResDto> unitType = remoteSystemService.queryDictMapByType(DictTypeEnum.UNIT_TYPE.getType());
         //装货
-        List<KwtWaybillOrderTicket> load = waybillOrderTicketMapper.findWaybillOrderTicket(wOrderId, NumberConstant.ONE);
+        List<KwtWaybillOrderTicket> load = waybillOrderTicketMapper.findWaybillOrderTicket(wOrderId, null, null, NumberConstant.ONE);
         //卸货
-        List<KwtWaybillOrderTicket> unload = waybillOrderTicketMapper.findWaybillOrderTicket(wOrderId, NumberConstant.TWO);
+        List<KwtWaybillOrderTicket> unload = waybillOrderTicketMapper.findWaybillOrderTicket(wOrderId, null, null, NumberConstant.TWO);
         if (CollectionUtils.isNotEmpty(load)) {
             List<WaybillOrderLoadingVO> loadLoading = new ArrayList<>();
             load.forEach(e -> {
@@ -222,7 +222,7 @@ public class KwtWaybillOrderTicketService {
         //单位数据字典
         Map<String, SysDictResDto> unitType = remoteSystemService.queryDictMapByType(DictTypeEnum.UNIT_TYPE.getType());
         //装载信息
-        List<KwtWaybillOrderTicket> loading = waybillOrderTicketMapper.findWaybillOrderTicket(waybillOrder.getId(), type);
+        List<KwtWaybillOrderTicket> loading = waybillOrderTicketMapper.findWaybillOrderTicket(waybillOrder.getId(), null, null, type);
         if (CollectionUtils.isNotEmpty(loading)) {
             loading.forEach(e -> {
                 SysDictResDto sysDict = unitType != null ? unitType.get(e.getUnit()) : null;

+ 104 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -155,7 +155,18 @@ public class KwtWaybillOrderV1Service {
         //物流订单装卸货地址委派量统计
         Map<Long, BigDecimal> truckTotalEntrustAmount = new HashMap<>(NumberConstant.SIXTEEN);
         for (SendCarInfoDto sendCar:sends) {
-            //趟次(循环单默认趟次为1)
+            //循环单校验所派车辆是否存在未完结运单
+            if (params.getType() == Global.NUMERICAL_TWO) {
+                WaybillCountVo countVo = waybillOrderV1Dao.findUnfinishedByTruck(Global.NUMERICAL_TWO, sendCar.getTruckId());
+                if (countVo.getTotalExecute() > 0) {
+                    //车辆信息
+                    RTruckVo truck = remoteFleetService.findTruck(sendCar.getTruckId());
+                    String msg = truck != null ? truck.getTruckNo() : Global.EMPTY_STRING;
+                    return HttpResult.error("车辆"+ msg +"存在未完结的循环运单!");
+                }
+            }
+
+            //趟次单(循环单默认趟次为1)
             int count = params.getType() == Global.NUMERICAL_ONE ? sendCar.getCount() : Global.NUMERICAL_ONE;
             //运输委托信息
             List<SendCarEntrustDto> entrusts = sendCar.getEntrusts();
@@ -223,7 +234,7 @@ public class KwtWaybillOrderV1Service {
         //物流订单对应地址信息(所有)
         List<SendCarEntrustDto> sendCarEntrustAll = new ArrayList<>();
         for (SendCarInfoDto sendCar:sends) {
-            //趟次(循环单默认趟次为1)
+            //趟次(循环单默认趟次为1)
             int count = params.getType() == Global.NUMERICAL_ONE ? sendCar.getCount() : Global.NUMERICAL_ONE;
             for (int i=0; i<count; i++) {
                 //新增运单信息
@@ -879,14 +890,104 @@ public class KwtWaybillOrderV1Service {
         /*4、新增装卸货榜单信息*/
         waybillOrderTicketService.addTicketV1(loading, waybillOrder.getId(), params.getWSubtaskId(), params.getWAddressId(), params.getUrls(), params.getOperateTime(), Global.NUMERICAL_ONE);
 
-        /*5、更新司机/车辆数据*/
+        /*5、校验运单-子单是否全部运输完毕*/
+        //运单地址信息
+        List<KwtWaybillOrderAddress> addresses = waybillOrderAddressDao.findBySubtaskId(params.getWSubtaskId(), null);
+        //运单地址榜单信息
+        List<KwtWaybillOrderTicket> tickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, params.getWSubtaskId(), null, null);
+        //运单子单是否已经运输完成
+        boolean bool = addresses.size() == tickets.size();
+        if (!bool) {
+            return HttpResult.ok();
+        }
+
+        //更新运单-子单状态
+        orderSubtask.setStatus(CarWaybillEnum.APPROVAL_TREAT.getCode());
+        waybillOrderSubtaskDao.updateById(orderSubtask);
+
+        /*6、校验运单是否全部运输完毕*/
+        //运单地址信息
+        addresses = waybillOrderAddressDao.findByAddresses(params.getWOrderId(), null);
+        //运单地址榜单信息
+        tickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, null, null, null);
+        //运单是否已经运输完成
+        bool = addresses.size() == tickets.size();
+        if (!bool) {
+            return HttpResult.ok();
+        }
+
+        /*6.1、更新运单状态*/
+        waybillOrder.setStatus(CarWaybillEnum.APPROVAL_TREAT.getCode());
+        waybillOrderV1Dao.updateById(waybillOrder);
+
+        /*6.2、新增运单状态记录*/
+        setWaybillOrderTrack(waybillOrder.getId(), null, params.getOperateTime(), waybillOrder.getStatus(), params.getRemark());
+
+        /*7、更新司机/车辆数据*/
         //更新司机信息
         editDriver(waybillOrder.getDriverId());
         //更新车辆信息
         editTruck(waybillOrder.getTruckId());
+
+        /*8、循环单全部装卸货完重新生成运单*/
+        if (waybillOrder.getType() == Global.NUMERICAL_TWO) {
+            recreateWaybillOrder(waybillOrder);
+        }
         return HttpResult.ok();
     }
 
+    /**
+     * @param waybillOrder {}
+     * @desc 重新生成运单
+     * @author zk
+     * @date 2024/3/7
+     **/
+    public void recreateWaybillOrder(KwtWaybillOrderV1 waybillOrder) {
+        //运单信息kwt_waybill_order
+        KwtWaybillOrderV1 waybillOrderNew = new KwtWaybillOrderV1();
+        BeanUtils.copyProperties(waybillOrder, waybillOrderNew);
+        waybillOrderNew.setId(null);
+        waybillOrderNew.setWOrderNo("W"+System.currentTimeMillis());
+        waybillOrderNew.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
+        waybillOrderNew.setCreateTime(null);
+        waybillOrderNew.setUpdateTime(null);
+        waybillOrderV1Dao.insert(waybillOrderNew);
+
+        //运单子单信息kwt_waybill_order_subtask
+        List<KwtWaybillOrderSubtask> subtasks = waybillOrderSubtaskDao.findByWOrderId(waybillOrder.getId());
+        for (KwtWaybillOrderSubtask subtask:subtasks) {
+            KwtWaybillOrderSubtask subtaskNew = new KwtWaybillOrderSubtask();
+            BeanUtils.copyProperties(subtask, subtaskNew);
+            subtaskNew.setId(null);
+            subtaskNew.setWOrderId(waybillOrderNew.getId());
+            subtaskNew.setWOrderNo(waybillOrderNew.getWOrderNo());
+            subtaskNew.setLoadAmount(NumberConstant.ZERO_TWO.doubleValue());
+            subtaskNew.setUnloadAmount(NumberConstant.ZERO_TWO.doubleValue());
+            subtaskNew.setDeficitAmount(NumberConstant.ZERO_TWO.doubleValue());
+            subtaskNew.setDeficitPrice(NumberConstant.ZERO_TWO.doubleValue());
+            subtaskNew.setStatus(waybillOrderNew.getStatus());
+            subtaskNew.setCreateTime(null);
+            subtaskNew.setUpdateTime(null);
+            waybillOrderSubtaskDao.insert(subtaskNew);
+
+            //运单地址信息kwt_waybill_order_address
+            List<KwtWaybillOrderAddress> addresses = waybillOrderAddressDao.findBySubtaskId(subtask.getId(), null);
+            for (KwtWaybillOrderAddress address:addresses) {
+                KwtWaybillOrderAddress addressNew = new KwtWaybillOrderAddress();
+                BeanUtils.copyProperties(address, addressNew);
+                addressNew.setId(null);
+                addressNew.setWOrderId(waybillOrderNew.getId());
+                addressNew.setWSubtaskId(subtaskNew.getId());
+                addressNew.setCreateTime(null);
+                addressNew.setUpdateTime(null);
+                waybillOrderAddressDao.insert(addressNew);
+            }
+        }
+
+        //新增运单状态记录kwt_waybill_order_track
+        setWaybillOrderTrack(waybillOrderNew.getId(), null, waybillOrderNew.getCreateTime(), waybillOrderNew.getStatus(), null);
+    }
+
     /**
      * @param params {}
      * @desc 修改单证-装卸货-多单位

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

@@ -757,9 +757,9 @@
         <where>
             b.del_flag = 0
             AND b.type = '1'
-            AND b.status in (7
-              , 8
-              , 13)
+            AND b.status in (501
+              , 502
+              , 504)
             <if test="driverParam.lOrderId != null and driverParam.lOrderId != ''">
                 AND b.l_order_id =#{driverParam.lOrderId}
             </if>

+ 17 - 1
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderAddressMapper.xml

@@ -22,7 +22,23 @@
         from kwt_waybill_order_address
         where del_flag = 0
         and w_order_id = #{wOrderId, jdbcType=BIGINT}
-        and address_type = #{addressType, jdbcType=INTEGER}
+        <if test="addressType != null and addressType != ''">
+            and address_type = #{addressType, jdbcType=BIGINT}
+        </if>
+    </select>
+
+    <select id="findBySubtaskId" resultType="com.sckw.transport.model.KwtWaybillOrderAddress" >
+        select
+        id, w_order_id wOrderId, w_subtask_id wSubtaskId, l_address_id lAddressId, address_type addressType,
+        `name`, `type`, contacts, phone, city_code cityCode, city_name cityName, detail_address detailAddress,
+        lat, lng, fence, entry_type entryType, plan_time planTime, entrust_amount entrustAmount, sort, remark,
+        `status`, create_by createBy, create_time createTime, update_by updateBy, update_time updateTime
+        from kwt_waybill_order_address
+        where del_flag = 0
+        and w_subtask_id = #{wSubtaskId, jdbcType=BIGINT}
+        <if test="addressType != null and addressType != ''">
+            and address_type = #{addressType, jdbcType=BIGINT}
+        </if>
     </select>
 
     <select id="findAddressCodeList" resultType="java.lang.Integer" >

+ 9 - 3
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderTicketMapper.xml

@@ -26,14 +26,20 @@
 
     <select id="findWaybillOrderTicket" resultType="com.sckw.transport.model.KwtWaybillOrderTicket" >
         select
-        id, w_order_id wOrderId, `type`, unit, amount, gross_amount grossAmount, tare_amount tareAmount,
-        urls, operate_time, remark, `status`, create_by createBy, create_time createTime, update_by updateBy,
-        update_time updateTime
+        id, w_order_id wOrderId, w_subtask_id wSubtaskId, w_address_id wAddressId, `type`, unit, amount,
+        gross_amount grossAmount, tare_amount tareAmount, urls, operate_time, remark, `status`, create_by createBy,
+        create_time createTime, update_by updateBy, update_time updateTime
         from kwt_waybill_order_ticket
         where del_flag = 0
         <if test="wOrderId != null and wOrderId != ''">
             and w_order_id = #{wOrderId, jdbcType=BIGINT}
         </if>
+        <if test="wSubtaskId != null and wSubtaskId != ''">
+            and w_subtask_id = #{wSubtaskId, jdbcType=BIGINT}
+        </if>
+        <if test="wAddressId != null and wAddressId != ''">
+            and w_address_id = #{wAddressId, jdbcType=BIGINT}
+        </if>
         <if test="type != null and type != ''">
             and type = #{type, jdbcType=INTEGER}
         </if>

+ 16 - 4
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderV1Mapper.xml

@@ -4,12 +4,12 @@
 
     <select id="findCountByDriverOrTruck" resultType="com.sckw.transport.model.vo.WaybillCountVo">
         SELECT
-        count(case when wo.status = 8 then 1 end) totalComplete,
-        count(case when wo.status not in (1, 9, 10, 11) then 1 end) totalTake,
-        count(case when wo.status in (3, 4, 5, 6) then 1 end) totalExecute
+        count(case when wo.status = 502 then 1 end) totalComplete,
+        count(case when wo.status not in (101, 102, 103, 202) then 1 end) totalTake,
+        count(case when wo.status in (203, 301, 302, 401, 402) then 1 end) totalExecute
         from kwt_waybill_order wo
         left join kwt_waybill_order_subtask wos on wos.w_order_id = wo.id
-        where wo.del_flag = 0
+        where wo.del_flag = 0 and wos.del_flag = 0
         <if test="driverId != null and driverId != ''">
             and wo.driver_id = #{driverId, jdbcType=BIGINT}
         </if>
@@ -32,4 +32,16 @@
         </if>
     </select>
 
+    <select id="findUnfinishedByTruck" resultType="com.sckw.transport.model.vo.WaybillCountVo">
+        SELECT count(1) totalExecute from kwt_waybill_order wo
+        where wo.del_flag = 0
+        and wo.status in (101, 201, 203, 301, 302, 401, 402)
+        <if test="type != null and type != ''">
+            and wo.type = #{type, jdbcType=INTEGER}
+        </if>
+        <if test="truckId != null and truckId != ''">
+            and wo.truck_id = #{truckId, jdbcType=BIGINT}
+        </if>
+    </select>
+
 </mapper>