Bladeren bron

1、4.2运单列表、看板、详情接口;

zk 1 jaar geleden
bovenliggende
commit
807ff3e619

+ 11 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillEnum.java

@@ -208,7 +208,6 @@ public enum CarWaybillEnum {
                 || code == CarWaybillEnum.PENDING_VEHICLE.getCode();
     }
 
-
     /**
      * 运单状态
      * @return 状态集
@@ -221,4 +220,15 @@ public enum CarWaybillEnum {
         return statuses;
     }
 
+    /**
+     * 运单状态
+     * @return 状态集
+     */
+    public static List<Integer> initWaybillStatusV2() {
+        List<Integer> statuses = new ArrayList<>();
+        statuses.add(CarWaybillEnum.PENDING_ORDER.getCode());
+        statuses.add(CarWaybillEnum.PENDING_VEHICLE.getCode());
+        statuses.add(CarWaybillEnum.EXIT_COMPLETED.getCode());
+        return statuses;
+    }
 }

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java

@@ -84,7 +84,7 @@ public class KwtWaybillOrderController {
      **/
     @GetMapping("/waybillDetail")
     public HttpResult waybillDetail(@RequestParam("wOrderId") Long wOrderId){
-        return HttpResult.ok(waybillOrderV1Service.waybillDetail(wOrderId));
+        return waybillOrderV1Service.waybillDetail(wOrderId);
     }
 
     /**

+ 11 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderTrackMapper.java

@@ -34,6 +34,17 @@ public interface KwtWaybillOrderTrackMapper extends BaseMapper<KwtWaybillOrderTr
      **/
     KwtWaybillOrderTrack findWaybillOrderTrack(@Param("wOrderId") Long wOrderId, @Param("wSubtaskId")  Long wSubtaskId, @Param("wAddressId")  Long wAddressId, @Param("status") Integer status);
 
+    /**
+     * 查询车辆运单状态信息
+     * @param wOrderId 车辆订单id
+     * @param status 状态
+     * @desc 查询车辆运单状态信息
+     * @author zk
+     * @date 2023/7/27
+     * @return 车辆运单状态信息
+     **/
+    KwtWaybillOrderTrack findWaybillOrderTrackV1(@Param("wOrderId") Long wOrderId, @Param("status") String status);
+
     /**
      * 查询运单状态记录
      * @param wOrderId 运单ID

+ 95 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/enuma/CarWaybillDetailEnum.java

@@ -0,0 +1,95 @@
+package com.sckw.transport.model.enuma;
+
+import com.sckw.core.model.enums.CarWaybillEnum;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zk
+ * @desc 车辆运单详情状态查询枚举
+ * @date 2024/3/8 0008
+ */
+public enum CarWaybillDetailEnum {
+    /**
+     * 待接单
+     */
+    TREAT_CONNECT(100, "101,102,103", "待接单"),
+    /**
+     * 待出车
+     */
+    TREAT_OUT(200, "201", "待出车"),
+    /**
+     * 已出车
+     */
+    SET_OUT(300, "203,202", "已出车"),
+    /**
+     * 运输中
+     */
+    IN_TRANSIT(400, "301,302,401,402", "运输中"),
+    /**
+     * 待审核
+     */
+    WAIT_APPROVAL(500, "501,503,504,502", "已核单");
+
+    private final Integer code;
+    private final String value;
+    private final String name;
+
+    CarWaybillDetailEnum(Integer code, String value, String name) {
+        this.code = code;
+        this.value = value;
+        this.name = name;
+    }
+
+    public static String getName(Integer code) {
+        for (CarWaybillDetailEnum entity : CarWaybillDetailEnum.values()) {
+            if (entity.getCode().equals(code)) {
+                return entity.getName();
+            }
+        }
+        return null;
+    }
+
+    public static String getValue(Integer code) {
+        for (CarWaybillTableTopEnum entity : CarWaybillTableTopEnum.values()) {
+            if (entity.getCode().equals(code)) {
+                return entity.getValue();
+            }
+        }
+        return null;
+    }
+
+    public static String getName1(Integer code) {
+        for (CarWaybillTableTopEnum entity : CarWaybillTableTopEnum.values()) {
+            if (entity.getValue().contains(String.valueOf(code))) {
+                return entity.getName();
+            }
+        }
+        return null;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * 运单状态
+     * @return 状态集
+     */
+    public static List<Integer> initWaybillStatus() {
+        List<Integer> statuses = new ArrayList<>();
+        statuses.add(CarWaybillDetailEnum.TREAT_CONNECT.getCode());
+        statuses.add(CarWaybillDetailEnum.TREAT_OUT.getCode());
+        statuses.add(CarWaybillDetailEnum.SET_OUT.getCode());
+        return statuses;
+    }
+}

+ 73 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/enuma/CarWaybillNdexTopEnum.java

@@ -0,0 +1,73 @@
+package com.sckw.transport.model.enuma;
+
+/**
+ * @author zk
+ * @desc 车辆运单看板表头状态查询枚举
+ * @date 2024/3/8 0008
+ */
+public enum CarWaybillNdexTopEnum {
+    /**
+     * 待接单
+     */
+    TREAT_CONNECT(100, "101,102,103", "待接单"),
+    /**
+     * 待出车
+     */
+    TREAT_OUT(200, "201", "待出车"),
+    /**
+     * 已出车
+     */
+    SET_OUT(300, "203,202", "已出车"),
+    /**
+     * 运输中
+     */
+    IN_TRANSIT(400, "301,302,401,402", "运输中"),
+    /**
+     * 待审核
+     */
+    WAIT_APPROVAL(500, "501,504,503", "待审核"),
+    /**
+     * 核单
+     */
+    APPROVAL_PASS(600, "502", "核单");
+
+    private final Integer code;
+    private final String value;
+    private final String name;
+
+    CarWaybillNdexTopEnum(Integer code, String value, String name) {
+        this.code = code;
+        this.value = value;
+        this.name = name;
+    }
+
+    public static String getName(Integer code) {
+        for (CarWaybillNdexTopEnum entity : CarWaybillNdexTopEnum.values()) {
+            if (entity.getCode().equals(code)) {
+                return entity.getName();
+            }
+        }
+        return null;
+    }
+
+    public static String getName1(Integer code) {
+        for (CarWaybillTableTopEnum entity : CarWaybillTableTopEnum.values()) {
+            if (entity.getValue().contains(String.valueOf(code))) {
+                return entity.getValue();
+            }
+        }
+        return null;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

+ 0 - 14
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillNdexVo.java

@@ -1,14 +0,0 @@
-package com.sckw.transport.model.vo;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * @author zk
- * @desc 看板
- * @date 2024/3/13 0013
- */
-@Data
-@Accessors(chain = true)
-public class WaybillNdexVo {
-}

+ 138 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderNdexVo.java

@@ -0,0 +1,138 @@
+package com.sckw.transport.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.sckw.core.model.constant.Global;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zk
+ * @desc 看板
+ * @date 2024/3/13 0013
+ */
+@Data
+@Accessors(chain = true)
+public class WaybillOrderNdexVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 4526063761808958350L;
+    /**
+     * 企业ID
+     */
+    private Long  entId;
+
+    /**
+     * 运单id
+     */
+    @JsonProperty(value="wOrderId")
+    private Long wOrderId;
+
+    /**
+     * 运单号
+     */
+    @JsonProperty(value="wOrderNo")
+    private String wOrderNo;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 车辆牌照
+     */
+    private String truckNo;
+
+    /**
+     * 司机
+     */
+    private String driverName;
+
+    /**
+     * 司机手机号
+     */
+    private String driverPhone;
+
+    /**
+     * 运单类型数字
+     */
+    private int type;
+
+    /**
+     * 运单类型字符
+     */
+    private String typeLabel;
+
+    /**
+     * 运单状态
+     */
+    private Integer  status;
+
+    /**
+     * 创建时间
+     */
+    private String createTime;
+
+    /**
+     * 更新时间
+     */
+    private String updateTime;
+
+    /**
+     * 运单状态字符
+     */
+    private String  statusLabel;
+
+    /**
+     * 派车时间
+     */
+    private String sendCarTime;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 派车人
+     */
+    private String createByName;
+
+    /**
+     * 计划开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startTime;
+
+    /**
+     * 计划结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endTime;
+
+    /**
+     * 状态轴
+     */
+    private List<Map<String, Object>> tracks;
+
+    /**
+     * 榜单-装货
+     */
+    private List<String> loadUrl;
+
+    /**
+     * 榜单-卸货
+     */
+    private List<String> unloadUrl;
+
+    public String getTypeLabel() {
+        return type == Global.NUMERICAL_ONE ? "趟次" : "循环";
+    }
+
+}

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

@@ -145,6 +145,11 @@ public class WaybillOrderSelectVo implements Serializable {
      */
     private String sendCarTime;
 
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
     /**
      * 创建时间
      */

+ 138 - 14
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.service;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.github.pagehelper.PageHelper;
@@ -28,6 +29,8 @@ import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
+import com.sckw.transport.model.enuma.CarWaybillDetailEnum;
+import com.sckw.transport.model.enuma.CarWaybillNdexTopEnum;
 import com.sckw.transport.model.enuma.CarWaybillTableTopEnum;
 import com.sckw.transport.model.vo.*;
 import jakarta.annotation.Resource;
@@ -172,10 +175,26 @@ public class KwtWaybillOrderV1Service {
         PageHelper.startPage(params.getPage(), params.getPageSize());
         params.setQueryWstatus(CarWaybillTableTopEnum.getValue(params.getStatus()));
         List<WaybillOrderSelectVo> list = waybillOrderV1Dao.findListPage(params);
-        for (WaybillOrderSelectVo waybillOrder:list) {
+
+        //用户ID
+        List<Long> userIds = list.stream().map(WaybillOrderSelectVo::getCreateBy).toList();
+        List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
+        Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        users.forEach(e -> usersMap.put(e.getId(), e));
+        //企业ID
+        List<Long> entIds = list.stream().map(WaybillOrderSelectVo::getEntId).toList();
+        Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
+
+        //数据处理
+        List<WaybillOrderNdexVo> data = BeanUtil.copyToList(list, WaybillOrderNdexVo.class);
+        for (WaybillOrderNdexVo waybillOrder:data) {
             waybillOrder.setStatusLabel(CarWaybillEnum.getName(waybillOrder.getStatus()));
+            waybillOrder.setCreateByName(usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getName() : null);
+            waybillOrder.setFirmName(ents.get(waybillOrder.getEntId()) != null ? ents.get(waybillOrder.getEntId()).getFirmName() : null);
+            //数据处理
+            findNdexPageHandle(waybillOrder);
         }
-        return PageHelperUtil.getPageResult(new PageInfo<>(list));
+        return PageHelperUtil.getPageResult(new PageInfo<>(data));
     }
 
     /**
@@ -240,7 +259,7 @@ public class KwtWaybillOrderV1Service {
         for (KwtWaybillOrderTrack track:tracks) {
             Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
             trackData.put("status", track.getStatus());
-            trackData.put("statusName", CarWaybillEnum.getName(waybillOrder.getStatus()));
+            trackData.put("statusName", CarWaybillEnum.getAlias(waybillOrder.getStatus()));
             trackData.put("remark", track.getRemark());
             trackData.put("operateTime", track.getOperateTime());
             trackData.put("createTime", track.getCreateTime());
@@ -249,11 +268,15 @@ public class KwtWaybillOrderV1Service {
             trackList.add(trackData);
         }
 
+        //物流订单编号
         for (KwtWaybillOrderSubtask subtask:subtasks) {
             KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
             waybillDetail.setLOrderNo((StringUtils.isBlank(waybillDetail.getLOrderNo()) ? Global.EMPTY_STRING : Global.COMMA) + logisticsOrder.getLOrderNo());
         }
 
+        //状态轨迹
+        List<Map<String, Object>> trajectory = waybillDetailHandle(wOrderId);
+
         BeanUtils.copyProperties(waybillOrder, waybillDetail);
         waybillDetail.setWOrderId(waybillOrder.getId());
         waybillDetail.setStatusName(CarWaybillEnum.getName(waybillOrder.getStatus()));
@@ -261,13 +284,14 @@ public class KwtWaybillOrderV1Service {
         waybillDetail.setCreateByPhone(usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getPhone() : null);
         waybillDetail.setTracks(trackList);
         waybillDetail.setAddresses(addressList);
+        waybillDetail.setTrajectory(trajectory);
         return HttpResult.ok(waybillDetail);
     }
 
     /**
      * @param waybillOrder 运单信息
      * @param unitMap 字段
-     * @desc 分页查询
+     * @desc 分页列表查询
      * @author zk
      * @date 2024/3/13
      **/
@@ -328,6 +352,116 @@ public class KwtWaybillOrderV1Service {
         waybillOrder.setUnloadAddress(unloadAddress);
     }
 
+    /**
+     * @param waybillOrder 运单信息
+     * @desc 分页看板查询处理
+     * @author zk
+     * @date 2024/3/13
+     **/
+    public void findNdexPageHandle(WaybillOrderNdexVo waybillOrder){
+        /*数据处理*/
+        List<Map<String, Object>> trackList = new ArrayList<>();
+        for (CarWaybillNdexTopEnum entity:CarWaybillNdexTopEnum.values()) {
+            Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
+            //审核状态
+            KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrackV1(waybillOrder.getWOrderId(), CarWaybillDetailEnum.IN_TRANSIT.getValue());
+            trackData.put("statusName", entity.getName());
+            trackData.put("operateStatus", track != null);
+            trackData.put("operateTime", track != null ? DateUtils.format(track.getOperateTime(), DateUtils.FORMAT11) : null);
+            trackList.add(trackData);
+        }
+        waybillOrder.setTracks(trackList);
+
+        //榜单信息
+        List<KwtWaybillOrderTicket> tickets = waybillOrderTicketDao.findWaybillOrderTicket(waybillOrder.getWOrderId(), null, null);
+        //数据处理
+        List<String> loadUrl = new ArrayList<>(), unloadUrl = new ArrayList<>();
+        for (KwtWaybillOrderTicket ticket:tickets) {
+            if(ticket.getType().equals(AddressDefaultTypeEnum.SHIPMENT.getCode())){
+                loadUrl.add(FileUtils.spliceBatch(ticket.getUrls()));
+            } else {
+                unloadUrl.add(FileUtils.spliceBatch(ticket.getUrls()));
+            }
+        }
+        waybillOrder.setLoadUrl(loadUrl);
+        waybillOrder.setUnloadUrl(unloadUrl);
+
+        //运单-子单
+        List<KwtWaybillOrderSubtask> subtasks = waybillOrderSubtaskDao.findByWOrderId(waybillOrder.getWOrderId());
+        //装货时间
+        Optional<KwtWaybillOrderSubtask> unloadDate = subtasks.stream().max(Comparator.comparing(KwtWaybillOrderSubtask::getUnloadTime));
+        //卸货时间
+        Optional<KwtWaybillOrderSubtask> loadDate = subtasks.stream().min(Comparator.comparing(KwtWaybillOrderSubtask::getLoadTime));
+        waybillOrder.setStartTime(loadDate.get().getLoadTime());
+        waybillOrder.setEndTime(unloadDate.get().getUnloadTime());
+    }
+
+    /**
+     * @param wOrderId 运单ID
+     * @desc 运单详情状态轴
+     * @author zk
+     * @date 2024/3/14
+     **/
+    public List<Map<String, Object>> waybillDetailHandle(Long wOrderId){
+        /*数据处理*/
+        List<Map<String, Object>> trackList = new ArrayList<>();
+        List<Integer> statusList = CarWaybillDetailEnum.initWaybillStatus();
+        //使用for-each循环来遍历Color枚举类的所有值
+        for (Integer value:statusList) {
+            List<String> asList = Arrays.asList(CarWaybillDetailEnum.getValue(value).split(Global.COMMA));
+            for (String status:asList) {
+                KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrack(wOrderId, null, null, Integer.valueOf(status));
+                Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
+                trackData.put("operateTime", track != null ? DateUtils.format(track.getOperateTime(), DateUtils.FORMAT11) : null);
+                trackData.put("operateStatus", track != null);
+                trackData.put("createTime", track != null ? track.getCreateTime() : null);
+                trackData.put("status", status);
+                trackData.put("statusName", CarWaybillDetailEnum.getName1(Integer.valueOf(status)));
+                trackList.add(trackData);
+            }
+        }
+
+        //运单地址状态处理(到达装货点、已装货、到达卸货点、已卸货)
+        List<KwtWaybillOrderAddress> addresses = waybillOrderAddressDao.findByAddresses(wOrderId, null);
+        for (KwtWaybillOrderAddress address:addresses) {
+            if (address.getAddressType().equals(AddressDefaultTypeEnum.SHIPMENT.getCode())) {
+                statusList = new ArrayList<>(){{add(CarWaybillEnum.WAIT_LOADING.getCode()); add(CarWaybillEnum.COMPLETION_LOADING.getCode());}};
+            } else {
+                statusList = new ArrayList<>(){{add(CarWaybillEnum.WAIT_UNLOADING.getCode()); add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());}};
+            }
+
+            //子单信息
+            KwtWaybillOrderSubtask subtask = waybillOrderSubtaskDao.selectById(address.getWSubtaskId());
+            for (Integer status:statusList) {
+                //状态记录
+                KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrack(wOrderId, null, null, status);
+                Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
+                trackData.put("id", track != null ? track.getId() : null);
+                trackData.put("operateTime", track != null ? DateUtils.format(track.getOperateTime(), DateUtils.FORMAT11) : null);
+                trackData.put("operateStatus", track != null);
+                trackData.put("createTime", track != null ? track.getCreateTime() : null);
+                trackData.put("status", status);
+                trackData.put("statusName", CarWaybillEnum.getName(status));
+                trackData.put("planTime", track != null ? address.getPlanTime() : null);
+                trackData.put("addressName", address.getName());
+                trackData.put("addressCityName", address.getCityName());
+                trackData.put("addressDetail", address.getDetailAddress());
+                trackList.add(trackData);
+            }
+        }
+
+        //审核状态
+        KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrackV1(wOrderId, CarWaybillDetailEnum.IN_TRANSIT.getValue());
+        Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
+        trackData.put("operateTime", track != null ? DateUtils.format(track.getOperateTime(), DateUtils.FORMAT11) : null);
+        trackData.put("operateStatus", track != null);
+        trackData.put("createTime", track != null ? track.getCreateTime() : null);
+        trackData.put("status", CarWaybillDetailEnum.WAIT_APPROVAL.getCode());
+        trackData.put("statusName", CarWaybillDetailEnum.WAIT_APPROVAL.getName());
+        trackList.add(trackData);
+        return trackList;
+    }
+
     /**
      * @param driverId 司机ID
      * @desc 统计司机任务数(待接单 / 出车 / 执行 / 完结)
@@ -2006,15 +2140,6 @@ public class KwtWaybillOrderV1Service {
         return HttpResult.ok(result);
     }
 
-
-
-
-
-
-
-
-
-
     /**
      * @param wOrderId 运单ID
      * @desc 变更车辆/司机查询
@@ -2221,5 +2346,4 @@ public class KwtWaybillOrderV1Service {
         //罚款值=扣亏量 * 扣亏货值
         return deficitLossAmount.multiply(goodsPrice).setScale(4, RoundingMode.HALF_UP);
     }
-
 }

+ 16 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderTrackMapper.xml

@@ -39,6 +39,22 @@
         order by create_time desc limit 1
     </select>
 
+    <select id="findWaybillOrderTrackV1" resultType="com.sckw.transport.model.KwtWaybillOrderTrack" >
+        select
+        id, w_order_id wOrderId, w_subtask_id wSubtaskId, w_address_id wAddressId, remark,
+        `status`, operate_time operateTime, create_by createBy, create_time createTime, update_by updateBy,
+        update_time updateTime
+        from kwt_waybill_order_track
+        where del_flag = 0
+        <if test="wOrderId != null and wOrderId != ''">
+            and w_order_id = #{wOrderId, jdbcType=BIGINT}
+        </if>
+        <if test="status != null and status != ''">
+            and status in (#{status})
+        </if>
+        order by create_time desc limit 1
+    </select>
+
     <select id="findTrack" resultType="com.sckw.transport.model.KwtWaybillOrderTrack" >
         select
         id, w_order_id wOrderId, w_subtask_id wSubtaskId, w_address_id wAddressId, remark,

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

@@ -63,7 +63,7 @@
             parameterType="com.sckw.transport.model.dto.WaybillOrderQueryDto">
         SELECT
         wo.id wOrderId, wo.ent_id entId, wo.w_order_no wOrderNo, wo.truck_no truckNo, wo.driver_name driverName, wo.driver_phone driverPhone,
-        wo.type, wo.create_time sendCarTime, wo.create_time createTime, wo.update_time updateTime, wo.status
+        wo.type, wo.create_time sendCarTime, wo.create_by createBy, wo.create_time createTime, wo.update_time updateTime, wo.status
         from kwt_waybill_order wo
         where wo.del_flag = 0
         <if test="entId != null and entId != ''">