瀏覽代碼

1、4.2物流订单关联运单及运力查询;

zk 1 年之前
父節點
當前提交
4b1e4b0702

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

@@ -89,7 +89,7 @@ public class KwtWaybillOrderController {
 
     /**
      * @param params {page:页数、pageSize:每页条数、。。。}
-     * @desc 分页查询
+     * @desc 分页查询(子订单)
      * @author zk
      * @date 2024/3/8
      **/
@@ -98,6 +98,17 @@ public class KwtWaybillOrderController {
         return HttpResult.ok(waybillOrderV1Service.subtaskSelect(params));
     }
 
+    /**
+     * @param params {page:页数、pageSize:每页条数、。。。}
+     * @desc 分页查询(运力)
+     * @author zk
+     * @date 2024/3/8
+     **/
+    @PostMapping("/transportationCapacitySelect")
+    public HttpResult transportationCapacity(@RequestBody WaybillSubtaskOrderQueryDto params) throws SystemException {
+        return HttpResult.ok(waybillOrderV1Service.transportationCapacitySelect(params));
+    }
+
     /**
      * @param wSubtaskId 运单子单ID
      * @desc 运单详情

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.core.model.vo.TableTop;
 import com.sckw.transport.model.KwtWaybillOrderV1;
 import com.sckw.transport.model.dto.WaybillOrderQueryDto;
+import com.sckw.transport.model.dto.WaybillSubtaskOrderQueryDto;
 import com.sckw.transport.model.vo.WaybillCountVo;
 import com.sckw.transport.model.vo.WaybillOrderSelectVo;
 import org.apache.ibatis.annotations.Mapper;
@@ -33,6 +34,13 @@ public interface KwtWaybillOrderV1Mapper extends BaseMapper<KwtWaybillOrderV1> {
      */
     List<WaybillOrderSelectVo> findListPage(WaybillOrderQueryDto params);
 
+    /**
+     * 查询统计
+     * @param params 查询参数
+     * @return 统计数据
+     */
+    List<WaybillOrderSelectVo> findCapacityListPage(WaybillSubtaskOrderQueryDto params);
+
     /**
      * 司机端任务统计
      * @param driverId 司机ID

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

@@ -38,11 +38,21 @@ public class WaybillOrderSelectVo implements Serializable {
     @JsonProperty(value="wOrderNo")
     private String wOrderNo;
 
+    /**
+     * 车辆ID
+     */
+    private Long truckId;
+
     /**
      * 车辆牌照
      */
     private String truckNo;
 
+    /**
+     * 司机
+     */
+    private Long driverId;
+
     /**
      * 司机
      */
@@ -165,6 +175,16 @@ public class WaybillOrderSelectVo implements Serializable {
      */
     private String  statusLabel;
 
+    /**
+     * 装载量
+     */
+    private Double actualWeight;
+
+    /**
+     * 趟次
+     */
+    private Integer count;
+
     public String getTypeLabel() {
         return type == Global.NUMERICAL_ONE ? "趟次" : "循环";
     }

+ 10 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillSubtaskDetailVo.java

@@ -1,6 +1,7 @@
 package com.sckw.transport.model.vo;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.sckw.core.model.constant.Global;
 import lombok.Data;
 
 import java.util.Date;
@@ -31,7 +32,7 @@ public class WaybillSubtaskDetailVo {
      * 运单号
      */
     @JsonProperty("wSubtaskId")
-    private String wSubtaskId;
+    private Long wSubtaskId;
 
     /**
      * 关联承运订单
@@ -53,6 +54,11 @@ public class WaybillSubtaskDetailVo {
      */
     private int type;
 
+    /**
+     * 运单类型字符
+     */
+    private String typeLabel;
+
     /**
      * 车辆ID
      */
@@ -158,5 +164,7 @@ public class WaybillSubtaskDetailVo {
      */
     private List<WaybillTicketVO> tickets;
 
-
+    public String getTypeLabel() {
+        return type == Global.NUMERICAL_ONE ? "趟次" : "循环";
+    }
 }

+ 34 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -322,6 +322,32 @@ public class KwtWaybillOrderV1Service {
         return PageHelperUtil.getPageResult(new PageInfo<>(list));
     }
 
+    /**
+     * @param params {page:页数、pageSize:每页条数、。。。}
+     * @desc 分页查询
+     * @author zk
+     * @date 2024/3/8
+     **/
+    public PageResult transportationCapacitySelect(WaybillSubtaskOrderQueryDto params) {
+        // 设置分页参数
+        PageHelper.startPage(params.getPage(), params.getPageSize());
+        List<WaybillOrderSelectVo> list = waybillOrderV1Dao.findCapacityListPage(params);
+
+        //删除空数据
+        if (list.size() == 1 && list.get(NumberConstant.ZERO).getTruckId() == null) {
+            list.remove(NumberConstant.ZERO);
+        }
+
+        //数据处理
+        for (WaybillOrderSelectVo waybillOrder:list) {
+            RTruckVo truck = remoteFleetService.findTruck(waybillOrder.getTruckId());
+            if (truck != null) {
+                waybillOrder.setActualWeight(truck.getActualWeight());
+            }
+        }
+        return PageHelperUtil.getPageResult(new PageInfo<>(list));
+    }
+
     /**
      * @param wSubtaskId 运单子单ID
      * @desc 运单详情(物流订单)
@@ -342,11 +368,15 @@ public class KwtWaybillOrderV1Service {
         List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIdList);
         Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         users.forEach(e -> usersMap.put(e.getId(), e));
+        //企业ID
+        List<Long> entIds = new ArrayList<>(){{add(waybillOrder.getEntId());}};
+        Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
         //单位
         Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.UNIT_TYPE.getType()));
         Map<String, String> unitMap = CollectionUtils.isNotEmpty(dict) ? dict.get(DictTypeEnum.UNIT_TYPE.getType()) : new HashMap<>(NumberConstant.SIXTEEN);
 
-
+        //物流订单
+        KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(subtask.getLOrderId());
         //物流订单地址信息
         List<KwtLogisticsOrderAddress> lAddressList = logisticsOrderAddressDao.findByAddresses(subtask.getLOrderId(), null);
         List<Long> addressIds = lAddressList.stream().map(KwtLogisticsOrderAddress::getId).toList();
@@ -383,8 +413,11 @@ public class KwtWaybillOrderV1Service {
         BeanUtils.copyPropertiesValue(waybillOrder, waybillDetail);
         BeanUtils.copyPropertiesValue(subtask, waybillDetail);
         waybillDetail.setWOrderId(waybillOrder.getId());
+        waybillDetail.setLOrderNo(logisticsOrder.getLOrderNo());
+        waybillDetail.setWSubtaskId(subtask.getId());
         waybillDetail.setStatusLabel(CarWaybillEnum.getName(waybillOrder.getStatus()));
         waybillDetail.setUnitLabel(unitMap.get(waybillDetail.getUnit()));
+        waybillDetail.setFirmName(ents.get(waybillOrder.getEntId()) != null ? ents.get(waybillOrder.getEntId()).getFirmName() : null);
         waybillDetail.setCreateByName(usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getName() : null);
         waybillDetail.setCreateByPhone(usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getPhone() : null);
         waybillDetail.setAddresses(addressList);

+ 2 - 2
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderAddressMapper.xml

@@ -80,10 +80,10 @@
         update_by updateBy, update_time updateTime
         from kwt_logistics_order_address
         where del_flag = 0
-        <if test="wOrderId != null and wOrderId != ''">
+        <if test="lOrderId != null and lOrderId != ''">
             and l_order_id = #{lOrderId, jdbcType=BIGINT}
         </if>
-        <if test="wOrderId != null and wOrderId != ''">
+        <if test="addressType != null and addressType != ''">
             and address_type = #{addressType, jdbcType=INTEGER}
         </if>
     </select>

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

@@ -34,9 +34,10 @@
     <select id="findListPage" resultType="com.sckw.transport.model.vo.WaybillSubtaskSelectVo"
             parameterType="com.sckw.transport.model.dto.WaybillSubtaskOrderQueryDto">
         SELECT
-        wos.w_order_id wOrderId, wos.unit, wos.entrust_amount entrustAmount, wos.unload_amount unloadAmount, wos.unload_time unloadTime,
-        wos.load_time loadTime, wos.load_amount loadAmount, wos.deficit_amount deficitAmount, wos.deficit_price deficitPrice, wos.id wSubtaskId,
-        wo.driver_id driverId, wo.driver_name driverName, wo.truck_id truckId, wo.truck_no truckNo, wo.type, wo.create_by createBy, wo.create_time createTime, wo.create_time sendCarDate,
+        wos.w_order_id wOrderId, wos.unit, wos.entrust_amount entrustAmount, wos.unload_amount unloadAmount, wos.unload_time unloadDateTime,
+        wos.load_time loadDateTime, wos.load_amount loadAmount, wos.deficit_amount deficitAmount, wos.deficit_price deficitPrice, wos.id wSubtaskId,
+        wo.w_order_no wOrderNo, wo.driver_id driverId, wo.driver_name driverName, wo.driver_phone driverPhone, wo.driver_idcard driverIdcard,
+        wo.truck_id truckId, wo.truck_no truckNo, wo.type, wo.create_by createBy, wo.create_time createTime, wo.create_time sendCarDate,
         wo.ent_id entId, wo.status, lo.l_order_no lOrderNo, lo.loss
         from kwt_waybill_order_subtask wos
         left join kwt_waybill_order wo on wo.id = wos.w_order_id

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

@@ -119,6 +119,22 @@
         order by wo.update_time desc
     </select>
 
+    <select id="findCapacityListPage" resultType="com.sckw.transport.model.vo.WaybillOrderSelectVo"
+            parameterType="com.sckw.transport.model.dto.WaybillSubtaskOrderQueryDto">
+        SELECT
+        wo.driver_id driverId, wo.driver_name driverName, wo.driver_phone driverPhone, wo.driver_idcard driverIdcard,
+        wo.truck_id truckId, wo.truck_no truckNo, count(1) count
+        from kwt_waybill_order wo
+        left join kwt_waybill_order_subtask wos on wos.w_order_id = wo.id
+        WHERE wo.del_flag = 0 and wos.del_flag = 0
+        <if test="ids != null and ids != ''">
+            AND wos.l_order_id IN
+            <foreach collection="ids.split(',')" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
     <select id="findStatisticsCountByDriver" resultType="java.util.Map">
         SELECT
         count(case when wo.status = 101 then 1 end) waitTotal,