Sfoglia il codice sorgente

1、4.2联调调整;

zk 1 anno fa
parent
commit
5db382377d
14 ha cambiato i file con 546 aggiunte e 27 eliminazioni
  1. 53 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/enterpriseApp/AppWayBillController.java
  2. 4 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderSubtaskMapper.java
  3. 2 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderV1Mapper.java
  4. 6 11
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WaybillListAppDTO.java
  5. 79 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/enuma/CarWaybillAppEnum.java
  6. 2 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/AcceptCarriageOrderVO.java
  7. 120 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderSubtaskVo.java
  8. 3 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtAcceptCarriageOrderService.java
  9. 5 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtConsignOrderService.java
  10. 33 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillManagementService.java
  11. 208 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillManagementV1Service.java
  12. 5 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java
  13. 15 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderSubtaskMapper.xml
  14. 11 3
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderV1Mapper.xml

+ 53 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/enterpriseApp/AppWayBillController.java

@@ -1,9 +1,12 @@
 package com.sckw.transport.controller.enterpriseApp;
 
+import com.sckw.core.exception.SystemException;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.WaybillListAppDTO;
+import com.sckw.transport.model.dto.WaybillOrderQueryDto;
 import com.sckw.transport.service.KwtWaybillManagementService;
+import com.sckw.transport.service.KwtWaybillManagementV1Service;
 import jakarta.validation.Valid;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +25,8 @@ public class AppWayBillController {
 
     @Autowired
     KwtWaybillManagementService waybillManagementService;
+    @Autowired
+    KwtWaybillManagementV1Service waybillManagementV1Service;
 
     /**
      * APP 运单统计分类 - [运输中|已完成] - 数据库
@@ -122,4 +127,52 @@ public class AppWayBillController {
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
+
+
+
+
+
+    /**
+     * APP 物流订单详情-根据物流订单ID查询运单统计数据
+     * @param waybillOrderDTO   物流订单ID
+     * @return  车辆运单响应结果
+     */
+    @Valid
+    @RequestMapping(name = "物流订单详情-运单统计", value = "/logisticOrderWaybillStatistic", method = RequestMethod.POST)
+    public HttpResult logisticOrderWaybillStatistic(@Validated @RequestBody WaybillListAppDTO waybillOrderDTO) {
+        try {
+            return waybillManagementV1Service.logisticOrderWaybillStatistic(waybillOrderDTO);
+        } catch (Exception e) {
+            log.error("物流订单详情-运单统计:订单id {},error {} ", waybillOrderDTO, e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+    /**
+     * APP 物流订单详情-根据物流订单ID查询运单列表
+     * @param waybillOrderDTO   物流订单查询
+     * @return  车辆运单响应结果
+     */
+    @Valid
+    @RequestMapping(name = "物流订单详情-运单列表", value = "/logisticOrderWaybill", method = RequestMethod.POST)
+    public HttpResult logisticOrderWaybill(@Validated @RequestBody WaybillListAppDTO waybillOrderDTO) {
+        try {
+            return waybillManagementV1Service.logisticOrderWaybill(waybillOrderDTO);
+        } catch (Exception e) {
+            log.error("物流订单详情-运单列表:订单id {},error {} ", waybillOrderDTO, e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+    /**
+     * @desc 分页查询-看板
+     * @param params {page:页数、pageSize:每页条数、。。。}
+     * @author zk
+     * @date 2024/4/3
+     **/
+    @PostMapping("/ndex")
+    public HttpResult findNdexPage(@Validated @RequestBody WaybillListAppDTO params) throws SystemException {
+        return HttpResult.ok(waybillManagementV1Service.findNdexPage(params));
+    }
+
 }

+ 4 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderSubtaskMapper.java

@@ -2,6 +2,7 @@ package com.sckw.transport.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.transport.model.KwtWaybillOrderSubtask;
+import com.sckw.transport.model.dto.WaybillListAppDTO;
 import com.sckw.transport.model.dto.WaybillSubtaskOrderQueryDto;
 import com.sckw.transport.model.param.DriverParam;
 import com.sckw.transport.model.vo.DriverListVo;
@@ -9,6 +10,7 @@ import com.sckw.transport.model.vo.WaybillSubtaskSelectVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author zk
@@ -27,4 +29,6 @@ public interface KwtWaybillOrderSubtaskMapper extends BaseMapper<KwtWaybillOrder
     Integer selectCountByOrderId(@Param("orderId") String orderId, @Param("orderStatusList") List<Integer> orderStatusList);
 
     List<DriverListVo> selectLoopOrderAndDriverListByOrderId(@Param("driverParam") DriverParam driverParam, @Param("type") Integer type, @Param("orderStatus") List<Integer> orderStatus);
+
+    Map<String, Object> findWaybillOrderCount(WaybillListAppDTO params);
 }

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderV1Mapper.java

@@ -8,6 +8,7 @@ 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 com.sckw.transport.model.vo.WaybillOrderSubtaskVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import java.util.List;
@@ -54,7 +55,7 @@ public interface KwtWaybillOrderV1Mapper extends BaseMapper<KwtWaybillOrderV1> {
      * @param params {driverId 司机ID, busStatus  1待接单/2出车/3执行/4完结, month月份, startTime 开始实际, endTime 结束时间}
      * @return 返回值
      */
-    List<KwtWaybillOrderV1> findWaybillOrderByDriver(Map<String, Object> params);
+    List<WaybillOrderSubtaskVo> findWaybillOrderSubtask(Map<String, Object> params);
 
     /**
      * 查询统计司机或车辆关联订单数量信息

+ 6 - 11
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WaybillListAppDTO.java

@@ -19,7 +19,7 @@ import java.util.Date;
  */
 @Data
 @Accessors(chain = true)
-public class WaybillListAppDTO {
+public class WaybillListAppDTO extends PageRequest{
 
     /**
      * 搜索关键字
@@ -27,20 +27,15 @@ public class WaybillListAppDTO {
     private String keyword;
 
     /**
-     * 当前页码
-     */
-    private int page;
-
-    /**
-     * 每页数量
+     * 状态
      */
-    private int pageSize;
+    //@NotNull(message = "分类状态不能为空")
+    private String status;
 
     /**
-     * 状态
+     * 业务状态
      */
-    @NotNull(message = "分类状态不能为空")
-    private String status;
+    private String busAppStatus;
 
     /**
      * 查询开始时间

+ 79 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/enuma/CarWaybillAppEnum.java

@@ -0,0 +1,79 @@
+package com.sckw.transport.model.enuma;
+
+import lombok.Getter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zk
+ * @desc 车辆运单详情状态查询枚举
+ * @date 2024/3/8 0008
+ */
+@Getter
+public enum CarWaybillAppEnum {
+    /**
+     * 详情-全部
+     */
+    TOTAL(10, "", "全部", "total"),
+    /**
+     * 详情-进行
+     */
+    PROCEED(20, "101, 201, 203, 301, 302, 401, 402, 501, 503, 504", "进行", "proceed"),
+    /**
+     * 详情-完成
+     */
+    FINISH(30, "502", "完成", "finish"),
+    /**
+     * 详情-退回
+     */
+    CANCEL(40, "102, 103, 202", "退回", "cancel"),
+    /**
+     * 看板-运输中
+     */
+    NDEX_PROCEED(50, "101, 201, 203, 301, 302, 401, 402, 501, 503, 504", "运输中", "ndexProceed"),
+    /**
+     * 看板-完成
+     */
+    NDEX_FINISH(60, "102, 103, 202, 502", "完成", "ndexFinish");
+
+    private final Integer code;
+    private final String value;
+    private final String name;
+    private final String remark;
+
+    CarWaybillAppEnum(Integer code, String value, String name, String remark) {
+        this.code = code;
+        this.value = value;
+        this.name = name;
+        this.remark = remark;
+    }
+
+    public static String getName(Integer code) {
+        for (CarWaybillAppEnum entity : CarWaybillAppEnum.values()) {
+            if (entity.getCode().equals(code)) {
+                return entity.getName();
+            }
+        }
+        return null;
+    }
+
+    public static String getValue(Integer code) {
+        for (CarWaybillAppEnum entity : CarWaybillAppEnum.values()) {
+            if (entity.getCode().equals(code)) {
+                return entity.getValue();
+            }
+        }
+        return null;
+    }
+
+    public static CarWaybillAppEnum getRemark(String remark) {
+        for (CarWaybillAppEnum entity : CarWaybillAppEnum.values()) {
+            if (entity.getRemark().equals(remark)) {
+                return entity;
+            }
+        }
+        return null;
+    }
+
+}

+ 2 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/AcceptCarriageOrderVO.java

@@ -316,7 +316,6 @@ public class AcceptCarriageOrderVO /*extends PageRequest*/ {
 
     private List<String> loadAddresses;
 
-
     /**
      * 多卸货地4.2
      */
@@ -324,12 +323,12 @@ public class AcceptCarriageOrderVO /*extends PageRequest*/ {
 
     private List<String> unloadAddresses;
 
-
     /**
      * 多装货地4.2
+     * */
     private List<LoadAddressVo> loading;
 
-    private List<UnLoadAddressVo> unloading;*/
+    private List<UnLoadAddressVo> unloading;
 
 
 }

+ 120 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderSubtaskVo.java

@@ -0,0 +1,120 @@
+package com.sckw.transport.model.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc 运单子单
+ * @date 2024/4/3 0003
+ */
+@Data
+public class WaybillOrderSubtaskVo {
+
+    /**
+     * 运单ID
+     */
+    private Long id;
+
+    /**
+     * 派车类型(1:趟次:2:循环)
+     */
+    private Integer type;
+
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+
+    /**
+     * 司机姓名
+     */
+    private String driverName;
+
+    /**
+     * 司机手机号
+     */
+    private String driverPhone;
+
+    /**
+     * 司机身份证号码
+     */
+    private String driverIdcard;
+
+    /**
+     * 子单
+     */
+    private Long wSubtaskId;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 物流订单id(kwt_logistics_order)
+     */
+    private Long lOrderId;
+
+    /**
+     * 物流订单id
+     */
+    private Long wOrderId;
+
+    /**
+     * 编号
+     */
+    private String wOrderNo;
+
+    /**
+     * 托量单位
+     */
+    private String unit;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 卸货重量
+     */
+    private BigDecimal unloadAmount;
+
+    /**
+     * 计划结束日期
+     */
+    private Date unloadTime;
+
+    /**
+     * 装货重量
+     */
+    private BigDecimal loadAmount;
+
+    /**
+     * 计划开始日期
+     */
+    private Date loadTime;
+
+    /**
+     * 亏吨重量
+     */
+    private BigDecimal deficitAmount;
+
+    /**
+     * 亏吨扣款
+     */
+    private BigDecimal deficitPrice;
+
+    /**
+     * 运单状态
+     */
+    private Integer status;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+}

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

@@ -2591,15 +2591,15 @@ public class KwtAcceptCarriageOrderService {
             List<String> unloadName = unloadAddresses.stream().map(KwtLogisticsOrderAddress::getCityName).toList();
             //卸货地点
             List<String> unloadAddress = unloadAddresses.stream().map(KwtLogisticsOrderAddress::getDetailAddress).toList();
+            List<LoadAddressVo> loadAddressAmount = logisticsOrderAddressMapper.findByAddressAndLoadAmount(Long.parseLong(lOrderId), NumberConstant.ONE);
+            List<UnLoadAddressVo> unloadAddressAmount = logisticsOrderAddressMapper.findByAddressAndUnLoadAmount(Long.parseLong(lOrderId), NumberConstant.TWO);
 
             vo.setLoadNames(loadName);
             vo.setLoadAddresses(loadAddress);
             vo.setUnloadNames(unloadName);
             vo.setUnloadAddresses(unloadAddress);
-            /*List<LoadAddressVo> loadAddressAmount = logisticsOrderAddressMapper.findByAddressAndLoadAmount(Long.parseLong(lOrderId), NumberConstant.ONE);
             vo.setLoading(loadAddressAmount);
-            List<UnLoadAddressVo> unloadAddressAmount = logisticsOrderAddressMapper.findByAddressAndUnLoadAmount(Long.parseLong(lOrderId), NumberConstant.TWO);
-            vo.setUnloading(unloadAddressAmount);*/
+            vo.setUnloading(unloadAddressAmount);
         }
         return PageRes.build(pageInfo, list);
     }

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtConsignOrderService.java

@@ -1886,10 +1886,15 @@ public class KwtConsignOrderService {
             List<String> unloadName = unloadAddresses.stream().map(KwtLogisticsOrderAddress::getCityName).toList();
             //卸货地点
             List<String> unloadAddress = unloadAddresses.stream().map(KwtLogisticsOrderAddress::getDetailAddress).toList();
+            List<LoadAddressVo> loadAddressAmount = logisticsOrderAddressMapper.findByAddressAndLoadAmount(Long.parseLong(lOrderId), NumberConstant.ONE);
+            List<UnLoadAddressVo> unloadAddressAmount = logisticsOrderAddressMapper.findByAddressAndUnLoadAmount(Long.parseLong(lOrderId), NumberConstant.TWO);
+
             vo.setLoadNames(loadName);
             vo.setLoadAddresses(loadAddress);
             vo.setUnloadNames(unloadName);
             vo.setUnloadAddresses(unloadAddress);
+            vo.setLoading(loadAddressAmount);
+            vo.setUnloading(unloadAddressAmount);
         }
         return PageRes.build(pageInfo, list);
     }

+ 33 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillManagementService.java

@@ -1,11 +1,16 @@
 package com.sckw.transport.service;
 
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.sckw.core.model.constant.NumberConstant;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.CarWaybillQueryEnum;
+import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.*;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -58,6 +63,9 @@ public class KwtWaybillManagementService {
     @Autowired
     public KwtWaybillOrderMapper kwtWaybillOrderMapper;
 
+    @Autowired
+    public KwtWaybillOrderV1Mapper waybillOrderV1Mapper;
+
     @Autowired
     public KwtLogisticsOrderMapper kwtLogisticsOrderMapper;
 
@@ -911,8 +919,7 @@ public class KwtWaybillManagementService {
         Query queryFormat = new Query(criteria);
         // 总记录数
         long total = mongoTemplate.count(queryFormat, SckwWaybillOrder.class);
-        queryFormat.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
-                Sort.by(Sort.Order.desc("createTime"))));
+        queryFormat.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),Sort.by(Sort.Order.desc("createTime"))));
         // 执行查询
         List<SckwWaybillOrder> list = mongoTemplate.find(queryFormat, SckwWaybillOrder.class);
         List<WaybillBoardListVO> returnList = new ArrayList<>();
@@ -932,6 +939,30 @@ public class KwtWaybillManagementService {
         return HttpResult.ok(build);
     }
 
+    public HttpResult logisticOrderWaybillDataV1(WaybillListAppDTO query) {
+        Map<String, Object> params = BeanUtil.beanToMap(query);
+        // 设置分页参数
+        PageHelper.startPage(PageResult.getPage(params), PageResult.getPageSize(params));
+        /*数据查询**/
+        List<WaybillOrderSubtaskVo> waybillOrders = waybillOrderV1Mapper.findWaybillOrderSubtask(params);
+
+        //单位
+        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);
+
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (WaybillOrderSubtaskVo subtask:waybillOrders) {
+            Map<String, Object> order = BeanUtil.beanToMap(subtask);
+            order.put("statusLabel", CarWaybillEnum.getName(subtask.getStatus()));
+            order.put("unitLabel", unitMap.get(subtask.getUnit()));
+            order.put("typeLabel", subtask.getType() == NumberConstant.ONE ? "趟次" : "循环");
+            result.add(order);
+        }
+
+        PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(result));
+        return HttpResult.ok(pageResult);
+    }
+
 
     /**
      * app 运单分类吨量统计数据 [运输中|已完成]

+ 208 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillManagementV1Service.java

@@ -0,0 +1,208 @@
+package com.sckw.transport.service;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.constant.NumberConstant;
+import com.sckw.core.model.enums.CarWaybillEnum;
+import com.sckw.core.model.enums.CarWaybillQueryEnum;
+import com.sckw.core.model.page.PageHelperUtil;
+import com.sckw.core.model.page.PageResult;
+import com.sckw.core.utils.*;
+import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.excel.utils.DateUtil;
+import com.sckw.fleet.api.RemoteFleetService;
+import com.sckw.mongo.model.SckwWaybillOrder;
+import com.sckw.mongo.model.TableTops;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
+import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
+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.CarWaybillAppEnum;
+import com.sckw.transport.model.enuma.CarWaybillDetailEnum;
+import com.sckw.transport.model.enuma.CarWaybillNdexTopEnum;
+import com.sckw.transport.model.vo.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.aggregation.Aggregation;
+import org.springframework.data.mongodb.core.aggregation.AggregationResults;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+/**
+ * @author jc
+ * @description 运单相关服务
+ * @date 2023-06-29 15:06:45
+ */
+@Slf4j
+@Service
+public class KwtWaybillManagementV1Service {
+
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    RemoteFleetService remoteFleetService;
+
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    RemoteSystemService remoteSystemService;
+
+    @Autowired
+    public KwtWaybillOrderMapper kwtWaybillOrderMapper;
+
+    @Autowired
+    public KwtWaybillOrderV1Mapper waybillOrderV1Mapper;
+
+    @Autowired
+    public KwtLogisticsOrderMapper kwtLogisticsOrderMapper;
+
+    @Autowired
+    public KwtWaybillOrderAddressMapper kwtWaybillOrderAddressMapper;
+
+    @Autowired
+    public KwtWaybillOrderTicketMapper kwtWaybillOrderTicketMapper;
+
+    @Autowired
+    private KwtLogisticsOrderCirculateMapper orderCirculateMapper;
+
+    @Autowired
+    public KwtWaybillOrderTrackMapper kwtWaybillOrderTrackMapper;
+
+    @Autowired
+    public KwtWaybillOrderSubtaskMapper waybillOrderSubtaskMapper;
+
+    @Autowired
+    KwtWaybillOrderTicketService kwtWaybillOrderTicketService;
+
+    @Autowired
+    private MongoTemplate mongoTemplate;
+
+    @Autowired
+    private KwtCommonService commonService;
+
+
+    /**
+     * @desc 物流订单详情-根据物流订单ID查询运单列表
+     * @param query 参数
+     * @author zk
+     * @date 2024/4/3
+     **/
+    public HttpResult logisticOrderWaybillStatistic(WaybillListAppDTO query) {
+        Map<String, Object> statistic = waybillOrderSubtaskMapper.findWaybillOrderCount(query);
+        return HttpResult.ok(statistic);
+    }
+
+    /**
+     * @desc 物流订单详情-根据物流订单ID查询运单列表
+     * @param query 参数
+     * @author zk
+     * @date 2024/4/3
+     **/
+    public HttpResult logisticOrderWaybill(WaybillListAppDTO query) {
+        query.setBusAppStatus(Objects.requireNonNull(CarWaybillAppEnum.getRemark(query.getStatus())).getValue());
+        query.setStatus(null);
+        Map<String, Object> params = BeanUtil.beanToMap(query);
+        // 设置分页参数
+        PageHelper.startPage(PageResult.getPage(params), PageResult.getPageSize(params));
+        /*数据查询**/
+        List<WaybillOrderSubtaskVo> list = waybillOrderV1Mapper.findWaybillOrderSubtask(params);
+
+        //单位
+        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);
+
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (WaybillOrderSubtaskVo subtask:list) {
+            Map<String, Object> order = BeanUtil.beanToMap(subtask);
+            order.put("statusLabel", CarWaybillEnum.getName(subtask.getStatus()));
+            order.put("unitLabel", unitMap.get(subtask.getUnit()));
+            order.put("typeLabel", subtask.getType() == NumberConstant.ONE ? "趟次" : "循环");
+            result.add(order);
+        }
+
+        PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(result));
+        return HttpResult.ok(pageResult);
+    }
+
+
+    /**
+     * @desc 物流订单详情-根据物流订单ID查询运单列表
+     * @param query 参数
+     * @author zk
+     * @date 2024/4/3
+     **/
+    public HttpResult findNdexPage(WaybillListAppDTO query) {
+        // 运单创建人或有关授权用户
+        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
+        WaybillOrderQueryDto queryDto = new WaybillOrderQueryDto();
+        BeanUtil.copyProperties(query, queryDto);
+        queryDto.setQueryWstatus(Objects.requireNonNull(CarWaybillAppEnum.getRemark(query.getStatus())).getValue());
+        queryDto.setEntId(LoginUserHolder.getEntId());
+        queryDto.setUserIds(userIds);
+        /*数据查询**/
+        List<WaybillOrderSelectVo> list = waybillOrderV1Mapper.findListPage(queryDto);
+
+        //单位
+        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);
+
+        //企业ID
+        List<Long> entIds = list.stream().map(WaybillOrderSelectVo::getEntId).toList();
+        Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
+
+        //用户
+        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));
+
+        //数据处理
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (WaybillOrderSelectVo waybillOrder:list) {
+            /*数据处理*/
+            List<Map<String, Object>> trackList = new ArrayList<>();
+            for (CarWaybillNdexTopEnum entity:CarWaybillNdexTopEnum.values()) {
+                Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
+                //审核状态
+                KwtWaybillOrderTrack track = kwtWaybillOrderTrackMapper.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);
+            }
+
+            //子运单
+            List<KwtWaybillOrderSubtask> subtasks = waybillOrderSubtaskMapper.findByWOrderId(waybillOrder.getWOrderId());
+
+
+            Map<String, Object> order = BeanUtil.beanToMap(waybillOrder);
+            order.put("createByName", usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getName() : null);
+            order.put("firmName", ents.get(waybillOrder.getEntId()) != null ? ents.get(waybillOrder.getEntId()).getFirmName() : null);
+            order.put("statusLabel", CarWaybillEnum.getName(waybillOrder.getStatus()));
+            //order.put("unitLabel", unitMap.get(waybillOrder.getUnit()));
+            order.put("typeLabel", waybillOrder.getType() == NumberConstant.ONE ? "趟次" : "循环");
+            order.put("tracks", trackList);
+            result.add(order);
+        }
+
+        PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(result));
+        return HttpResult.ok(pageResult);
+    }
+
+}

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

@@ -44,6 +44,7 @@ import jakarta.servlet.http.HttpServletRequest;
 import jakarta.validation.Valid;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.stream.function.StreamBridge;
@@ -703,9 +704,9 @@ public class KwtWaybillOrderV1Service {
         PageHelper.startPage(PageResult.getPage(params), PageResult.getPageSize(params));
 
         /*数据查询**/
-        List<KwtWaybillOrderV1> waybillOrders = waybillOrderV1Dao.findWaybillOrderByDriver(params);
+        List<WaybillOrderSubtaskVo> waybillOrders = waybillOrderV1Dao.findWaybillOrderSubtask(params);
         //企业ID
-        List<Long> entIds = waybillOrders.stream().map(KwtWaybillOrderV1::getEntId).toList();
+        List<Long> entIds = waybillOrders.stream().map(WaybillOrderSubtaskVo::getEntId).toList();
         Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
         //单位
         Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.UNIT_TYPE.getType()));
@@ -713,7 +714,7 @@ public class KwtWaybillOrderV1Service {
 
         //数据处理
         List<JSONObject> list = new ArrayList<>();
-        for (KwtWaybillOrderV1 waybillOrder:waybillOrders) {
+        for (WaybillOrderSubtaskVo waybillOrder:waybillOrders) {
             //运单地址信息
             List<KwtWaybillOrderAddress> addresses = waybillOrderAddressDao.findByAddresses(waybillOrder.getId(), null);
             List<JSONObject> addressList = new ArrayList<>();
@@ -1663,7 +1664,7 @@ public class KwtWaybillOrderV1Service {
         //运单地址信息
         addresses = waybillOrderAddressDao.findByAddresses(params.getWOrderId(), null);
         //运单地址榜单信息
-        tickets = waybillOrderTicketDao.findWaybillOrderTicket(wOrderId, null, null);
+        tickets = waybillOrderTicketDao.findWaybillOrderTicketV1(wOrderId, null, null, orderSubtask.getUnit());
         //运单是否已经运输完成
         bool = addresses.size() == tickets.size();
         if (!bool) {

+ 15 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderSubtaskMapper.xml

@@ -116,4 +116,19 @@
         </where>
         GROUP BY b.truck_no
     </select>
+
+    <select id="findWaybillOrderCount" parameterType="com.sckw.transport.model.dto.WaybillListAppDTO" resultType="java.util.Map">
+        SELECT
+        count(1) total,
+        count(case when wos.status in (101, 201, 203, 301, 302, 401, 402, 501, 503, 504) then 1 end) proceed,
+        count(case when wos.status = 502 then 1 end) finish,
+        count(case when wos.status in (102, 103, 202) then 1 end) cancel,
+        count(case when wos.status in (101, 201, 203, 301, 302, 401, 402, 501, 503, 504) then 1 end) ndexProceed,
+        count(case when wos.status in (102, 103, 202, 502) then 1 end) ndexFinish
+        from kwt_waybill_order_subtask wos
+        where wos.del_flag = 0
+        <if test="lOrderId != null and lOrderId != ''">
+            and wos.l_order_id = #{lOrderId, jdbcType=BIGINT}
+        </if>
+    </select>
 </mapper>

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

@@ -165,15 +165,20 @@
         </if>
     </select>
 
-    <select id="findWaybillOrderByDriver" resultType="com.sckw.transport.model.KwtWaybillOrderV1" parameterType="java.util.Map">
+    <select id="findWaybillOrderSubtask" resultType="com.sckw.transport.model.vo.WaybillOrderSubtaskVo" parameterType="java.util.Map">
         SELECT
         wo.id, 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.driver_idcard driverIdcard, wo.type, wo.create_time sendCarTime, wo.create_time createTime, wo.update_time updateTime, wo.status, wos.unit,
+        wos.load_amount loadAmount, wos.unload_amount unloadAmount, wos.load_time loadTime, wos.unload_time unloadTime, wos.entrust_amount entrustAmount,
+        wos.deficit_amount deficitAmount, wos.deficit_price deficitPrice, wos.id wSubtaskId
         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="entId != null and entId != ''">
-            and wo.ent_id = #{entId, jdbcType=VARCHAR}
+            and wo.ent_id = #{entId, jdbcType=BIGINT}
+        </if>
+        <if test="lOrderId != null and lOrderId != ''">
+            and wos.l_order_id = #{lOrderId, jdbcType=BIGINT}
         </if>
         <if test="specialEntIds != null and specialEntIds.size() > 0">
             and wo.ent_id in
@@ -184,6 +189,9 @@
         <if test="driverId != null and driverId != ''">
             and wo.driver_id = #{driverId, jdbcType=BIGINT}
         </if>
+        <if test="busAppStatus != null and busAppStatus != ''">
+            and wos.status = #{busAppStatus}
+        </if>
         <if test="busStatus != null and busStatus == 1">
             and wo.status = 101
         </if>