소스 검색

Merge remote-tracking branch 'origin/dev' into dev

czh 2 년 전
부모
커밋
9c2133fbd2
37개의 변경된 파일931개의 추가작업 그리고 83개의 파일을 삭제
  1. 5 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java
  2. 10 0
      sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/OrderDetailRes.java
  3. 27 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java
  4. 13 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/AddressResDTO.java
  5. 1 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfDriverController.java
  6. 2 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfFleetController.java
  7. 19 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java
  8. 1 2
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfFleetService.java
  9. 4 1
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml
  10. 4 1
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfFleetMapper.xml
  11. 14 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java
  12. 38 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/AddressDropListRes.java
  13. 10 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetailRes.java
  14. 15 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderAddressService.java
  15. 36 4
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  16. 14 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderUnitService.java
  17. 2 2
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  18. 16 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  19. 4 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java
  20. 8 4
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java
  21. 2 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  22. 34 9
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  23. 8 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/AcceptCarriageOrderVo.java
  24. 8 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/ConsignOrderVo.java
  25. 12 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java
  26. 15 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java
  27. 52 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java
  28. 14 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  29. 33 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java
  30. 24 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddOrderDTO.java
  31. 150 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDriverVo.java
  32. 21 22
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  33. 32 22
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  34. 96 5
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  35. 42 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java
  36. 10 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml
  37. 135 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

+ 5 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java

@@ -203,6 +203,11 @@ public class SckwWaybillOrder{
      */
     private BigDecimal deficitAmount;
 
+    /**
+     * 亏吨扣款(自己承运总亏吨扣款)
+     */
+    private BigDecimal deficitPrice;
+
     /**
      * 合理损耗
      */

+ 10 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/OrderDetailRes.java

@@ -132,6 +132,16 @@ public class OrderDetailRes implements Serializable {
      */
     private String statusLabel;
 
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
     /**
      * 商品信息
      */

+ 27 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java

@@ -1,9 +1,11 @@
 package com.sckw.transport.api.dubbo;
 
+import com.sckw.transport.api.model.dto.AddressResDTO;
 import com.sckw.transport.api.model.dto.vo.KwtLogisticsOrderVO;
 import com.sckw.transport.api.model.dto.vo.LogisticsOrderVO;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author lfdc
@@ -17,6 +19,7 @@ public interface TransportDubboService {
 
     /**
      * 根据id 获取主表详情
+     *
      * @param ids
      * @return
      */
@@ -24,8 +27,32 @@ public interface TransportDubboService {
 
     /**
      * 根据id 对账页面需要的数据
+     *
      * @param ids
      * @return
      */
     List<LogisticsOrderVO> getAcceptCarriageOrderList(List<String> ids);
+
+    /**
+     * 获取物流订单中地址信息
+     *
+     * @return
+     */
+    List<Integer> getLogisticsOrderAddressList();
+
+    /**
+     * 根据企业id获取物流订单地址信息
+     *
+     * @param entId 企业id
+     * @return
+     */
+    List<AddressResDTO> getLogisticsOrderAddressListByEntId(Long entId);
+
+    /**
+     * 根据企业id获取物流订单地址信息
+     *
+     * @param entIds 企业id
+     * @return
+     */
+    Map<Long,List<AddressResDTO>> getLogisticsOrderAddressListByEntId(List<Long> entIds);
 }

+ 13 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/AddressResDTO.java

@@ -0,0 +1,13 @@
+package com.sckw.transport.api.model.dto;
+
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description 地址信息
+ * @date 2023-08-02 14:08:52
+ */
+@Data
+public class AddressResDTO {
+
+}

+ 1 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfDriverController.java

@@ -156,6 +156,7 @@ public class KwfDriverController {
      **/
     @PostMapping("/findList")
     public HttpResult findList(@RequestBody HashMap params) throws SystemException {
+        params.put("entId", LoginUserHolder.getEntId());
         return HttpResult.ok(driverService.findList(params));
     }
 

+ 2 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfFleetController.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;
@@ -66,6 +67,7 @@ public class KwfFleetController {
      **/
     @PostMapping("/findList")
     public HttpResult findList(@RequestBody HashMap params) throws SystemException {
+        params.put("entId", LoginUserHolder.getEntId());
         return HttpResult.ok(fleetService.findList(params));
     }
 

+ 19 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java

@@ -160,6 +160,7 @@ public class KwfTruckController {
      **/
     @PostMapping("/findList")
     public HttpResult findList(@RequestBody HashMap params) throws SystemException {
+        params.put("entId", LoginUserHolder.getEntId());
         return HttpResult.ok(truckService.findList(params));
     }
 
@@ -262,10 +263,25 @@ public class KwfTruckController {
 
         List data = new ArrayList();
         for (KwfTruckVo truck:trucks) {
+            int bbb = new Random().nextInt(10) / 4;
             data.add(new HashMap(){{put("truckNo", truck.getTruckNo());
-                put("entId", truck.getEntId()); put("firmName",
-                        truck.getFirmName()); put("businessStatus", truck.getStatusName());
-                        put("runStatus", 0);}});
+                put("entId", truck.getEntId());
+                put("firmName", truck.getFirmName());
+                put("businessStatus", truck.getTruckNo().contains("1") ? 0 : 1);
+                put("runStatus", bbb == 0 ? 0 : bbb == 1 ? 1 : 2);}});
+        }
+
+        for (int i=0; i<5; i++) {
+            int index1 = i;
+            for (int j=0; j<10; j++) {
+                int aaa = new Random().nextInt(10) / 3;
+                int bbb = new Random().nextInt(10) / 4;
+                data.add(new HashMap(){{put("truckNo", "川A"+new Random().nextInt(100000));
+                    put("entId", "1000000" + index1);
+                    put("firmName", "物流企业"+ index1);
+                    put("businessStatus", aaa == 0 ? 0 : 1);
+                    put("runStatus", bbb == 0 ? 0 : bbb == 1 ? 1 : 2);}});
+            }
         }
 
         return HttpResult.ok(data);

+ 1 - 2
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfFleetService.java

@@ -81,7 +81,6 @@ public class KwfFleetService {
      * @date 2023/7/6
      **/
     public List<Map<String, Object>> findList(Map<String, Object> params) {
-        params.put("entId", LoginUserHolder.getEntId());
         return fleetDao.findList(params);
     }
 
@@ -94,7 +93,7 @@ public class KwfFleetService {
     public HttpResult add(KwfFleetDto params) {
         /**唯一性交易**/
         List<Map<String, Object>> fleets = fleetDao.findList(new HashMap(){{
-            put("name", params.getName()); put("entId", LoginUserHolder.getEntId());}});
+            put("wholeName", params.getName()); put("entId", LoginUserHolder.getEntId());}});
         if (!CollectionUtils.isEmpty(fleets)) {
             return HttpResult.error("车队班组已存在!");
         }

+ 4 - 1
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml

@@ -125,7 +125,10 @@
             and dre.ent_id = #{entId, jdbcType=VARCHAR}
         </if>
         <if test="name != null and name != ''">
-            and dr.name = #{name, jdbcType=VARCHAR}
+            and dr.name like concat('%',#{name},'%')
+        </if>
+        <if test="wholeName != null and wholeName != ''">
+            and fl.name =  #{wholeName, jdbcType=VARCHAR}
         </if>
         <if test="idcard != null and idcard != ''">
             and dr.idcard = #{idcard, jdbcType=VARCHAR}

+ 4 - 1
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfFleetMapper.xml

@@ -45,7 +45,10 @@
             and fl.ent_id = #{entId, jdbcType=VARCHAR}
         </if>
         <if test="name != null and name != ''">
-            and fl.name = #{name, jdbcType=VARCHAR}
+            and fl.name like concat('%',#{name},'%')
+        </if>
+        <if test="wholeName != null and wholeName != ''">
+            and fl.name = #{wholeName, jdbcType=VARCHAR}
         </if>
         <if test="contacts != null and contacts != ''">
             and fl.contacts = #{contacts, jdbcType=VARCHAR}

+ 14 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -93,7 +93,7 @@ public class KwoTradeOrderController {
     @GetMapping("/detail")
     @Log(description = "贸易订单详情")
     public HttpResult detail(@RequestParam Long id) {
-        return HttpResult.ok(kwoTradeOrderService.detail(id));
+        return HttpResult.ok("贸易订单详情查询成功",kwoTradeOrderService.detail(id));
     }
 
     /**
@@ -185,4 +185,17 @@ public class KwoTradeOrderController {
         return HttpResult.ok("订单批量删除成功");
     }
 
+    /**
+     * @desc: 获取贸易订单地址下拉列表
+     * @author: yzc
+     * @date: 2023-08-02 17:26
+     * @Param param:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @GetMapping("/getAddressDropList")
+    @Log(description = "获取贸易订单地址下拉列表")
+    public HttpResult getAddressDropList() {
+        return HttpResult.ok("获取贸易订单地址下拉列表成功",kwoTradeOrderService.getAddressDropList());
+    }
+
 }

+ 38 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/AddressDropListRes.java

@@ -0,0 +1,38 @@
+package com.sckw.order.model.vo.res;
+
+import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @desc: 贸易订单地址下拉列表响应
+ * @author: yzc
+ * @date: 2023-08-02 14:49
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class AddressDropListRes implements Serializable {
+
+
+    @Serial
+    private static final long serialVersionUID = -1892537474089018495L;
+
+    /**
+     * 装货地址树
+     */
+    private List<AreaTreeFrontResDto> loadAddressList;
+
+    /**
+     * 卸货地址树
+     */
+    private List<AreaTreeFrontResDto> unloadAddressList;
+
+}

+ 10 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetailRes.java

@@ -133,6 +133,16 @@ public class OrderDetailRes implements Serializable {
      */
     private String statusLabel;
 
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
     /**
      * 商品信息
      */

+ 15 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderAddressService.java

@@ -10,6 +10,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -76,4 +77,18 @@ public class KwoTradeOrderAddressService {
                 .set(KwoTradeOrderAddress::getDelFlag, Global.YES);
         kwoTradeOrderAddressMapper.update(null, wrapper);
     }
+
+    /**
+     * @desc: 根据orderIds查询
+     * @author: yzc
+     * @date: 2023-08-02 18:11
+     * @Param tOrderIds:
+     * @return: java.util.List<com.sckw.order.model.KwoTradeOrderAddress>
+     */
+    public List<KwoTradeOrderAddress> getByOrderIds(Collection<Long> tOrderIds) {
+        LambdaQueryWrapper<KwoTradeOrderAddress> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(KwoTradeOrderAddress::getTOrderId, tOrderIds).eq(KwoTradeOrderAddress::getDelFlag, Global.NO);
+        List<KwoTradeOrderAddress> list = kwoTradeOrderAddressMapper.selectList(wrapper);
+        return CollectionUtils.emptyIfNull(list);
+    }
 }

+ 36 - 4
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -21,10 +21,7 @@ import com.sckw.order.dao.KwoTradeOrderMapper;
 import com.sckw.order.model.*;
 import com.sckw.order.model.dto.OrderCheckDTO;
 import com.sckw.order.model.vo.req.*;
-import com.sckw.order.model.vo.res.AddressInfoDetailRes;
-import com.sckw.order.model.vo.res.GoodsInfoDetailRes;
-import com.sckw.order.model.vo.res.OrderDetailRes;
-import com.sckw.order.model.vo.res.UnitInfoDetailRes;
+import com.sckw.order.model.vo.res.*;
 import com.sckw.payment.api.dubbo.PayCenterDubboService;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.dto.WalletDto;
@@ -33,7 +30,9 @@ import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
 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.UserCacheResDto;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -43,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @desc: 交易订单(采购订单/销售订单)service
@@ -365,8 +365,10 @@ public class KwoTradeOrderService {
         }
         //订单基本信息
         OrderDetailRes detail = BeanUtils.copyProperties(order, OrderDetailRes.class);
+        UserCacheResDto createUser = remoteSystemService.queryUserCacheById(detail.getCreateBy());
         EntCacheResDto ent = remoteSystemService.queryEntCacheById(detail.getEntId());
         detail.setFirmName(Objects.isNull(ent) ? null : ent.getFirmName())
+                .setCreateByName(Objects.isNull(createUser) ? null : createUser.getName())
                 .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), detail.getTrading()))
                 .setPickupTypeLabel(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), detail.getPickupType()))
                 .setDeliveryTypeLabel(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), detail.getDeliveryType()))
@@ -892,4 +894,34 @@ public class KwoTradeOrderService {
         kwoTradeOrderMapper.update(null, wrapper);
     }
 
+    /**
+     * @desc: 获取贸易订单地址下拉列表
+     * @author: yzc
+     * @date: 2023-08-02 17:28
+     * @return: com.sckw.order.model.vo.res.AddressDropListRes
+     */
+    public AddressDropListRes getAddressDropList() {
+        AddressDropListRes res = new AddressDropListRes();
+        Long entId = LoginUserHolder.getEntId();
+        //一级企业匹配筛选订单id
+        List<KwoTradeOrderUnit> unitInfo = kwoTradeOrderUnitService.getByTopEntId(entId);
+        if (CollectionUtils.isEmpty(unitInfo)) {
+            return res;
+        }
+        Set<Long> tOrderIds = unitInfo.stream().map(KwoTradeOrderUnit::getTOrderId).collect(Collectors.toSet());
+        //订单ids获取地址信息
+        List<KwoTradeOrderAddress> addressList = kwoTradeOrderAddressService.getByOrderIds(tOrderIds);
+        if (CollectionUtils.isEmpty(addressList)) {
+            return res;
+        }
+        //装卸货地址类型分组获取装卸货cityCodes
+        Map<String, List<Integer>> map = addressList.stream().collect(Collectors.
+                groupingBy(KwoTradeOrderAddress::getAddressType, Collectors.mapping(KwoTradeOrderAddress::getCityCode, Collectors.toList())));
+        //装货地址下拉列表树
+        List<AreaTreeFrontResDto> loadTree = remoteSystemService.queryAreaTreeFrontByCodeList(map.get(DictEnum.TORDER_ADDRESS_TYPE_1.getValue()));
+        //卸货地址下拉列表树
+        List<AreaTreeFrontResDto> unloadTree = remoteSystemService.queryAreaTreeFrontByCodeList(map.get(DictEnum.TORDER_ADDRESS_TYPE_2.getValue()));
+        res.setLoadAddressList(loadTree).setUnloadAddressList(unloadTree);
+        return res;
+    }
 }

+ 14 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderUnitService.java

@@ -112,4 +112,18 @@ public class KwoTradeOrderUnitService {
                 .set(KwoTradeOrderUnit::getDelFlag, Global.YES);
         kwoTradeOrderUnitMapper.update(null, wrapper);
     }
+
+    /**
+     * @desc: 根据一级企业匹配
+     * @author: yzc
+     * @date: 2023-08-02 18:06
+     * @Param entId:
+     * @return: java.util.List<com.sckw.order.model.KwoTradeOrderUnit>
+     */
+    public List<KwoTradeOrderUnit> getByTopEntId(Long entId) {
+        LambdaQueryWrapper<KwoTradeOrderUnit> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwoTradeOrderUnit::getTopEntId, entId).eq(KwoTradeOrderUnit::getDelFlag, Global.NO);
+        List<KwoTradeOrderUnit> list = kwoTradeOrderUnitMapper.selectList(wrapper);
+        return CollectionUtils.emptyIfNull(list);
+    }
 }

+ 2 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -456,7 +456,7 @@ public class KwpGoodsService {
                     .setManageName(Objects.nonNull(manager) ? manager.getName() : null)
                     .setPhone(Objects.nonNull(manager) ? manager.getPhone() : null)
                     .setSupplyEnt(Objects.nonNull(entMap.get(e.getSupplyEntId())) ? entMap.get(e.getSupplyEntId()) : null)
-                    .setAddress(Objects.isNull(addressMap.get(id)) ? null : addressMap.get(id).getName() + addressMap.get(id).getDetailAddress())
+                    .setAddress(Objects.isNull(addressMap.get(id)) ? null : addressMap.get(id).getName())
                     .setCreateByName(Objects.nonNull(createUser) ? createUser.getName() : null);
             List<KwpGoodsPriceRange> priceRanges = priceRangeMap.get(id);
             goodsList.setHighestPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(priceRanges.size() - 1).getPrice())
@@ -716,7 +716,7 @@ public class KwpGoodsService {
             BuildingMaterialsMarketList materials = BeanUtils.copyProperties(e, BuildingMaterialsMarketList.class);
             KwpGoodsAddress address = addressMap.get(e.getId());
             List<KwpGoodsPriceRange> priceRanges = priceRangeMap.get(e.getId());
-            materials.setAddressName(Objects.isNull(address) ? null : address.getName())
+            materials.setAddressName(Objects.isNull(address) ? null : address.getCityName())
                     .setDetailAddress(Objects.isNull(address) ? null : address.getDetailAddress())
                     .setPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(0).getPrice())
                     .setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), e.getGoodsType()))

+ 16 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java

@@ -14,6 +14,7 @@ import com.sckw.report.service.vo.AcceptCarriageOrderExcelVo;
 import com.sckw.report.service.vo.ConsignOrderExcelVo;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -237,4 +238,19 @@ public class KwTransportController {
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
+
+    /**
+     * 运单管理-运单列表 运单地址查询接口
+     * @param tag
+     * @return
+     */
+    @RequestMapping(value = "/wayBillAddresses", method = RequestMethod.GET)
+    public HttpResult wayBillAddresses( @RequestParam("tag") @NotNull(message = "类型不能为空") int tag) {
+        try {
+            return transportService.getWayBillAddresses(tag);
+        } catch (Exception e) {
+            log.error("运单管理-运单地址查询接口 {}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
 }

+ 4 - 2
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java

@@ -261,8 +261,10 @@ public class KwAcceptCarriageService {
             vo.setDeficitAmount(logisticsOrder.getDeficitAmount() == null ?
                     null : String.valueOf(logisticsOrder.getDeficitAmount()));
             vo.setGoodsName(logisticsOrder.getGoodsName());
-            vo.setLoadAddress(logisticsOrder.getLoadDetailAddress());
-            vo.setUnloadAddress(logisticsOrder.getUnloadDetailAddress());
+            vo.setLoadCityName(logisticsOrder.getLoadDetailAddress());
+            vo.setLoadAddress(logisticsOrder.getLoadCityName() + logisticsOrder.getLoadDetailAddress());
+            vo.setUnloadAddress(logisticsOrder.getUnloadCityName() + logisticsOrder.getUnloadDetailAddress());
+            vo.setUnloadCityName(logisticsOrder.getUnloadDetailAddress());
             vo.setLOrderId(String.valueOf(logisticsOrder.getLOrderId()));
             vo.setLOrderNo(logisticsOrder.getLOrderNo());
             vo.setLoss(logisticsOrder.getLoss() == null ?

+ 8 - 4
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java

@@ -172,8 +172,12 @@ public class KwConsignService {
             vo.setDeficitAmount(logisticsOrder.getDeficitAmount() == null ?
                     null : String.valueOf(logisticsOrder.getDeficitAmount()));
             vo.setGoodsName(logisticsOrder.getGoodsName());
-            vo.setLoadAddress(logisticsOrder.getLoadDetailAddress());
-            vo.setUnloadAddress(logisticsOrder.getUnloadDetailAddress());
+//            vo.setLoadAddress(logisticsOrder.getLoadDetailAddress());
+//            vo.setUnloadAddress(logisticsOrder.getUnloadDetailAddress());
+            vo.setLoadCityName(logisticsOrder.getLoadDetailAddress());
+            vo.setLoadAddress(logisticsOrder.getLoadCityName() + logisticsOrder.getLoadDetailAddress());
+            vo.setUnloadAddress(logisticsOrder.getUnloadCityName() + logisticsOrder.getUnloadDetailAddress());
+            vo.setUnloadCityName(logisticsOrder.getUnloadDetailAddress());
             vo.setLOrderId(String.valueOf(logisticsOrder.getLOrderId()));
             vo.setLOrderNo(logisticsOrder.getLOrderNo());
             vo.setLoss(logisticsOrder.getLoss() == null ?
@@ -403,7 +407,7 @@ public class KwConsignService {
         packageReturnStatistics(mappedResults, arrayList);
         // 查询结果
         Map<String, Object> map = new HashMap<>(NumberConstant.SIXTEEN);
-        map.put("tableTop",arrayList);
+        map.put("tableTop", arrayList);
         return HttpResult.ok(map);
     }
 
@@ -439,7 +443,7 @@ public class KwConsignService {
                 arrayList.add(top);
             }
         }
-        if (CollectionUtils.isNotEmpty(arrayList)){
+        if (CollectionUtils.isNotEmpty(arrayList)) {
             /**补全统计【全部字段】*/
             Integer sum = Math.toIntExact(arrayList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTotal())).collect(Collectors.summarizingInt(item -> item.getTotal())).getSum());
             TableTops top = new TableTops();

+ 2 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -92,6 +92,8 @@ public class KwOrderService {
                     .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
                     .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
                     .setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
+                    .setLoadDetailAddressInfo(e.getLoadCityName() + e.getUnloadDetailAddress())
+                    .setUnloadDetailAddressInfo(e.getUnloadCityName() + e.getUnloadDetailAddress())
                     .setConsignmentStatus(Objects.isNull(e.getEntrustAmount()) || e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
                     .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
             result.add(order);

+ 34 - 9
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -1,6 +1,7 @@
 package com.sckw.report.service;
 
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
@@ -292,6 +293,7 @@ public class KwTransportService {
         expiredStatuses.add(CarWaybillEnum.REJECT_ORDER.getCode().longValue());
         expiredStatuses.add(CarWaybillEnum.REFUSE_TRAFFIC.getCode().longValue());
         expiredStatuses.add(CarWaybillEnum.REVOKED.getCode().longValue());
+        expiredStatuses.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode().longValue());
         for (CarWaybillEnum status : CarWaybillEnum.values()) {
             boolean expiredFlag = expiredStatuses.contains(status.getCode().longValue());
             TableTops top = new TableTops();
@@ -379,8 +381,8 @@ public class KwTransportService {
             vo.setEndTime(waybillOrder.getEndTime() == null ?
                     null : DateUtil.getDateTime(waybillOrder.getEndTime()));
             vo.setEntrustAmount(String.valueOf(waybillOrder.getEntrustAmount()));
-            vo.setLoadingAddress(waybillOrder.getLoadDetailAddress());
-            vo.setUnloadingAddress(waybillOrder.getUnloadDetailAddress());
+            vo.setLoadingAddress(waybillOrder.getLoadCityName().concat(waybillOrder.getLoadDetailAddress()));
+            vo.setUnloadingAddress(waybillOrder.getUnloadCityName().concat(waybillOrder.getUnloadDetailAddress()));
             vo.setLoadAmount(waybillOrder.getLoadAmount() == null ?
                     null : String.valueOf(waybillOrder.getLoadAmount()));
             vo.setUnloadAmount(waybillOrder.getUnloadAmount() == null ?
@@ -447,8 +449,8 @@ public class KwTransportService {
      * 托运合同-根据合同id获取托运订单列表
      *
      * @param contractId 合同id
-     * @param page  当前页
-     * @param pageSize  每页条数
+     * @param page       当前页
+     * @param pageSize   每页条数
      * @return
      */
     public HttpResult getLogisticsOrderByContractId(String contractId, int page, int pageSize) {
@@ -458,11 +460,11 @@ public class KwTransportService {
         // 创建条件对象
         Criteria criteria = new Criteria();
         // 1. 全等于
-       if (StringUtils.isBlank(contractId)){
-           return HttpResult.error("合同id为空");
-       }else {
-           criteria.and("contractId").is(contractId);
-       }
+        if (StringUtils.isBlank(contractId)) {
+            return HttpResult.error("合同id为空");
+        } else {
+            criteria.and("contractId").is(contractId);
+        }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         Query query1 = new Query(criteria);
         // 12. 总记录数
@@ -492,4 +494,27 @@ public class KwTransportService {
         PageResult build = PageResult.build(page, pageSize, total, list);
         return HttpResult.ok(build);
     }
+
+    /**
+     * 运单管理-运单列表 运单地址查询接口
+     * @param type
+     * @return
+     */
+    public HttpResult getWayBillAddresses(int type) {
+        Criteria criteria = new Criteria();
+        criteria.and("entId").is(LoginUserHolder.getEntId());
+        criteria.and("delFlag").is(NumberConstant.ZERO);
+        Query query = new Query(criteria);
+        String field;
+        if(type == NumberConstant.ONE) {
+            field = "loadCityCode";
+        } else {
+            field = "unloadCityCode";
+        }
+        List<Integer> list  = mongoTemplate.findDistinct(query, field ,SckwWaybillOrder.class, Integer.class);
+        if (CollectionUtils.isNotEmpty(list)) {
+            // RPC 请求数据 获取多级结构信息
+        }
+        return HttpResult.ok(list);
+    }
 }

+ 8 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/AcceptCarriageOrderVo.java

@@ -70,6 +70,10 @@ public class AcceptCarriageOrderVo extends PageRequest {
      * 装货地点
      */
     private String loadAddress;
+    /**
+     * 装货区域名称
+     */
+    private String loadCityName;
     /**
      * 数据库id
      */
@@ -130,6 +134,10 @@ public class AcceptCarriageOrderVo extends PageRequest {
      * 卸货地点
      */
     private String unloadAddress;
+    /**
+     * 卸货区域名称
+     */
+    private String unloadCityName;
     /**
      * 关联承运订单号
      */

+ 8 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/ConsignOrderVo.java

@@ -131,6 +131,14 @@ public class ConsignOrderVo implements Serializable {
      * 卸货地点
      */
     private String unloadAddress;
+    /**
+     * 卸货区域名称
+     */
+    private String unloadCityName;
+    /**
+     * 装货区域名称
+     */
+    private String loadCityName;
     /**
      * 关联承运订单号
      */

+ 12 - 2
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java

@@ -135,11 +135,21 @@ public class OrderListRes {
     /**
      * 装货地点
      */
-    private String loadCityName;
+    private String loadName;
+
+    /**
+     * 装货详细地址=loadCityName+loadDetailAddress
+     */
+    private String loadDetailAddressInfo;
     /**
      * 卸货地点
      */
-    private String unloadCityName;
+    private String unloadName;
+
+    /**
+     * 卸货详细地址=unloadCityName+unloadDetailAddress
+     */
+    private String unloadDetailAddressInfo;
     /**
      * 计划开始时间
      */

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

@@ -83,7 +83,7 @@ public class ConsignOrderController {
     @RequestMapping(value = "/getCarListByOrder", method = RequestMethod.POST)
     public HttpResult getCarListByOrder(@Validated @RequestBody OrderDTO orderDto) {
         try {
-            return consignOrderService.getCarListByOrder(orderDto,"1");
+            return consignOrderService.getCarListByOrder(orderDto, "1");
         } catch (Exception e) {
             log.error("托运订单获取车辆运单失败:订单id {},error {} ", orderDto.getId(), e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
@@ -92,6 +92,7 @@ public class ConsignOrderController {
 
     /**
      * 托运订单-完结订单-页面数据查询
+     *
      * @param orderId
      * @return
      */
@@ -138,4 +139,17 @@ public class ConsignOrderController {
         }
     }
 
+    /**
+     * 托运订单/承运订单-获取装卸货地址信息
+     */
+    @RequestMapping(name = "托运订单/承运订单-获取装卸货地址信息", value = "/getAddressList", method = RequestMethod.GET)
+    public HttpResult getAddressList() {
+        try {
+            return consignOrderService.getLogisticsOrderAddressList();
+        } catch (Exception e) {
+            log.error("托运订单/承运订单-获取装卸货地址信息 error:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
 }

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

@@ -1,10 +1,17 @@
 package com.sckw.transport.controller;
 
+import com.github.pagehelper.PageHelper;
+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.utils.CollectionUtils;
+import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.model.ValiList;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.*;
+import com.sckw.transport.model.vo.WaybillOrderDriverVo;
 import com.sckw.transport.service.DriverService;
 import com.sckw.transport.service.KwtWaybillOrderService;
 import jakarta.validation.Valid;
@@ -12,7 +19,10 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author lfq
@@ -30,6 +40,48 @@ public class KwtWaybillOrderController {
     @Autowired
     private DriverService driverService;
 
+    /**
+     * @desc 统计司机任务数(待接单/出车/执行/完结)
+     * @author zk
+     * @date 2023/8/1
+     **/
+    @GetMapping("/findCountByDriver")
+    public HttpResult findCountByDriver(@RequestParam("driverId") Long driverId){
+        Map count = waybillOrderService.findStatisticsCountByDriver(driverId);
+        return HttpResult.ok(count);
+    }
+
+    /**
+     * @param params {driverId 司机ID, month月份}
+     * @desc 统计司机任务数(任务数/委派量/装货量/卸货量/亏吨量/亏吨扣款)
+     * @author zk
+     * @date 2023/8/1
+     **/
+    @PostMapping("/findSumByDriver")
+    public HttpResult findSumByDriver(@RequestBody Map params){
+        Map count = waybillOrderService.findStatisticsSumByDriver(params);
+        return HttpResult.ok(count);
+    }
+
+    /**
+     * @param params {driverId 司机ID, busStatus  1待接单/2出车/3执行/4完结, month月份}
+     * @desc 查询司机任务列表-待接单/出车/执行/完结
+     * @author zk
+     * @date 2023/8/1
+     **/
+    @PostMapping("/findWaybillOrderByDriver")
+    public HttpResult findWaybillOrderByDriver(@RequestBody Map params){
+        /**校验**/
+        if (StringUtils.isBlank(params.get("busStatus"))) {
+            return HttpResult.error("请选择业务状态!");
+        }
+        // 设置分页参数
+        PageHelper.startPage(PageResult.getPage(params), PageResult.getPageSize(params));
+        List<WaybillOrderDriverVo> list = waybillOrderService.findWaybillOrderByDriver(params);
+        PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(list));
+        return HttpResult.ok(pageResult);
+    }
+
     /**
      * 司机端 根据当前登录 id获取派给当前id的车辆运单
      * @return

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

@@ -1,6 +1,7 @@
 package com.sckw.transport.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.transport.api.model.dto.AddressResDTO;
 import com.sckw.transport.api.model.dto.vo.LogisticsOrderDTO;
 import com.sckw.transport.api.model.dto.vo.LogisticsOrderVO;
 import com.sckw.transport.model.KwtLogisticsOrder;
@@ -120,4 +121,17 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
      **/
     List<KwtLogisticsOrder> findLogisticsOrder(Map params);
 
+    /**
+     *
+     * @param entId
+     * @return
+     */
+    List<Integer> getAddressList(@Param("entId") Long entId);
+
+    /**
+     *
+     * @param entId
+     * @return
+     */
+    List<AddressResDTO> getAddressDetailListByEntId(@Param("entId") Long entId);
 }

+ 33 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java

@@ -6,6 +6,7 @@ import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.dto.OrderCarDTO;
 import com.sckw.transport.model.dto.WayBillDetailDTO;
 import com.sckw.transport.model.vo.WaybillCountVo;
+import com.sckw.transport.model.vo.WaybillOrderDriverVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -74,4 +75,36 @@ public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
      * @date 2023/7/31
      **/
     WaybillCountVo findWaybillOrderCount(Map params);
+
+    /**
+     * @param driverId 司机ID
+     * @desc 统计司机任务数(待接单/出车/执行/完结)
+     * @author zk
+     * @date 2023/8/1
+     **/
+    Map<String, Object> findStatisticsCountByDriver(@Param("driverId") Long driverId);
+
+    /**
+     * @param params {driverId 司机ID, month月份}
+     * @desc 统计司机任务数(任务数/委派量/装货量/卸货量/亏吨量/亏吨扣款)
+     * @author zk
+     * @date 2023/8/1
+     **/
+    Map<String, Object> findStatisticsSumByDriver(Map params);
+
+    /**
+     * @param params {driverId 司机ID}
+     * @desc 查询司机任务列表-待接单
+     * @author zk
+     * @date 2023/8/1
+     **/
+    List<WaybillOrderDriverVo> findWaitWaybillOrderByDriver(Map params);
+
+    /**
+     * @param params {driverId 司机ID, busStatus 状态 2出车/3执行/4完结, month月份}
+     * @desc 查询司机任务列表-出车/执行/完结
+     * @author zk
+     * @date 2023/8/1
+     **/
+    List<WaybillOrderDriverVo> findOtherWaybillOrderByDriver(Map params);
 }

+ 24 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddOrderDTO.java

@@ -235,6 +235,18 @@ public class AddOrderDTO {
     @NotBlank(message = "装货城市名称不能为空")
     private String loadCityName;
 
+    /**
+     * 装货联系人
+     */
+    @NotBlank(message = "装货联系人不能为空")
+    private String loadContacts;
+
+    /**
+     * 装货联系电话
+     */
+    @NotBlank(message = "装货联系电话不能为空")
+    private String loadPhone;
+
     /**
      * 装货详细地址
      */
@@ -265,6 +277,18 @@ public class AddOrderDTO {
     @NotBlank(message = "卸货城市名称不能为空")
     private String unloadCityName;
 
+    /**
+     * 卸货联系人
+     */
+    @NotBlank(message = "卸货联系人不能为空")
+    private String unloadContacts;
+
+    /**
+     * 卸货联系电话
+     */
+    @NotBlank(message = "卸货联系电话不能为空")
+    private String unloadPhone;
+
     /**
      * 卸货详细地址
      */

+ 150 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDriverVo.java

@@ -0,0 +1,150 @@
+package com.sckw.transport.model.vo;
+
+import lombok.Data;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author zk
+ * @desc 车辆运单-司机端任务列表
+ * @date 2023/8/1 0001
+ */
+@Data
+public class WaybillOrderDriverVo {
+
+    /**
+     * 主键
+     */
+    private Long wOrderId;
+
+    /**
+     * 编号
+     */
+    private String wOrderNo;
+
+    /**
+     * 主键
+     */
+    private Long lOrderId;
+
+    /**
+     * 物流订单编号
+     */
+    private String lOrderNo;
+
+    /**
+     * 循环/趟次
+     */
+    private Integer type;
+
+    /**
+     * 承运企业主键ID
+     */
+    private Long carrierEntId;
+
+    /**
+     * 承运企业名称
+     */
+    private String carrierFirmName;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 计划结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 计划开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 装货地址名称
+     */
+    private Integer loadName;
+
+    /**
+     * 装货所在地区
+     */
+    private Integer loadCityCode;
+
+    /**
+     * 装货所属区域名称
+     */
+    private String loadCityName;
+
+    /**
+     * 装货详细地址
+     */
+    private String loadDetailAddress;
+
+    /**
+     * 卸货地址名称
+     */
+    private Integer unloadName;
+
+    /**
+     * 卸货所在地区
+     */
+    private Integer unloadCityCode;
+
+    /**
+     * 卸货所属区域名称
+     */
+    private String unloadCityName;
+
+    /**
+     * 卸货详细地址
+     */
+    private String unloadDetailAddress;
+
+    /**
+     * 装货重量
+     */
+    private BigDecimal loadAmount;
+
+    /**
+     * 卸货重量
+     */
+    private BigDecimal unloadAmount;
+
+    /**
+     * 亏吨重量
+     */
+    private BigDecimal deficitAmount;
+
+    /**
+     * 亏吨扣款(自己承运总亏吨扣款)
+     */
+    private BigDecimal deficitPrice;
+
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+
+    /**
+     * 单据状态
+     */
+    private String status;
+
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
+    /**
+     * 派车时间-创建时间
+     */
+    private Date createTime;
+
+}

+ 21 - 22
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -1166,7 +1166,7 @@ public class AcceptCarriageOrderService {
         saveLogisticsOrder(orderDTO, lOrderId, orderStatus, lOrderNo);
         saveLogisticsOrderAddress(orderDTO, lOrderId);
         saveLogisticsOrderGoods(orderDTO, lOrderId, lOrderNo, goods);
-        saveLogisticsOrderContract(orderDTO, lOrderId, status);
+        saveLogisticsOrderContract(orderDTO, lOrderId);
         saveLogisticsOrderTrack(lOrderId, orderStatus);
         saveLogisticsOrderUnit(orderDTO, lOrderId);
         saveMongoDb(orderDTO, orderStatus, lOrderId, lOrderNo, infoResDto, goods);
@@ -1279,21 +1279,21 @@ public class AcceptCarriageOrderService {
         order.setCarrierContacts(orderDTO.getAcceptContacts());
         order.setCarrierPhone(orderDTO.getAcceptContactPhone());
 //        order.setLoadType();
-//        order.setLoadContacts();
-//        order.setLoadPhone();
-//        order.setLoadCityCode();
-//        order.setLoadCityName();
-//        order.setLoadDetailAddress();
-//        order.setLoadLat();
-//        order.setLoadLng();
+        order.setLoadContacts(orderDTO.getLoadContacts());
+        order.setLoadPhone(orderDTO.getLoadPhone());
+        order.setLoadCityCode(orderDTO.getLoadCityCode());
+        order.setLoadCityName(orderDTO.getLoadCityName());
+        order.setLoadDetailAddress(orderDTO.getLoadDetailAddress());
+        order.setLoadLat(orderDTO.getLoadLat());
+        order.setLoadLng(orderDTO.getLoadLng());
 //        order.setUnloadType();
-//        order.setUnloadContacts();
-//        order.setUnloadPhone();
-//        order.setUnloadCityCode();
-//        order.setUnloadCityName();
-//        order.setUnloadDetailAddress();
-//        order.setUnloadLat();
-//        order.setUnloadLng();
+        order.setUnloadContacts(orderDTO.getUnloadContacts());
+        order.setUnloadPhone(orderDTO.getUnloadPhone());
+        order.setUnloadCityCode(orderDTO.getUnloadCityCode());
+        order.setUnloadCityName(orderDTO.getUnloadCityName());
+        order.setUnloadDetailAddress(orderDTO.getUnloadDetailAddress());
+        order.setUnloadLat(orderDTO.getUnloadLat());
+        order.setUnloadLng(orderDTO.getUnloadLng());
         order.setCreateBy(LoginUserHolder.getUserId());
         order.setCreateByName(LoginUserHolder.getUserName());
         order.setCreateTime(new Date());
@@ -1384,8 +1384,8 @@ public class AcceptCarriageOrderService {
         loadAddress.setAddressType(NumberConstant.ONE);
 //        loadAddress.setName();
 //        loadAddress.setType();
-        loadAddress.setContacts(orderDTO.getContacts());
-        loadAddress.setPhone(orderDTO.getConsignContactPhone());
+        loadAddress.setContacts(orderDTO.getLoadContacts());
+        loadAddress.setPhone(orderDTO.getLoadPhone());
         loadAddress.setCityCode(orderDTO.getLoadCityCode());
         loadAddress.setCityName(orderDTO.getLoadCityName());
         loadAddress.setDetailAddress(orderDTO.getLoadDetailAddress());
@@ -1405,8 +1405,8 @@ public class AcceptCarriageOrderService {
         unloadAddress.setAddressType(NumberConstant.TWO);
 //        unloadAddress.setName();
 //        unloadAddress.setType();
-        unloadAddress.setContacts(orderDTO.getContacts());
-        unloadAddress.setPhone(orderDTO.getAcceptContactPhone());
+        unloadAddress.setContacts(orderDTO.getUnloadContacts());
+        unloadAddress.setPhone(orderDTO.getUnloadPhone());
         unloadAddress.setCityCode(orderDTO.getUnloadCityCode());
         unloadAddress.setCityName(orderDTO.getUnloadCityName());
         unloadAddress.setDetailAddress(orderDTO.getUnloadDetailAddress());
@@ -1427,14 +1427,13 @@ public class AcceptCarriageOrderService {
      *
      * @param orderDTO 页面请求参数
      * @param lOrderId 主体id
-     * @param status   合同状态
      */
-    private void saveLogisticsOrderContract(AddOrderDTO orderDTO, Long lOrderId, Integer status) {
+    private void saveLogisticsOrderContract(AddOrderDTO orderDTO, Long lOrderId) {
         KwtLogisticsOrderContract contract = new KwtLogisticsOrderContract();
         contract.setId(new IdWorker(NumberConstant.ONE).nextId());
         contract.setContractId(Long.parseLong(orderDTO.getContractId()));
         contract.setLOrderId(lOrderId);
-        contract.setStatus(status);
+        contract.setStatus(NumberConstant.ZERO);
         contract.setCreateBy(LoginUserHolder.getUserId());
         contract.setCreateTime(new Date());
         contract.setUpdateBy(LoginUserHolder.getUserId());

+ 32 - 22
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -677,7 +677,7 @@ public class ConsignOrderService {
         saveConsignLogisticsOrder(addOrderDTO, lOrderId, orderStatus, lOrderNo);
         saveConsignLogisticsOrderAddress(addOrderDTO, lOrderId);
         saveConsignLogisticsOrderGoods(addOrderDTO, lOrderId, lOrderNo, goods);
-        saveConsignLogisticsOrderContract(addOrderDTO, lOrderId, status);
+        saveConsignLogisticsOrderContract(addOrderDTO, lOrderId);
         saveConsignLogisticsOrderTrack(lOrderId, orderStatus);
         saveConsignLogisticsOrderUnit(addOrderDTO, lOrderId);
         saveMongoDb(addOrderDTO, orderStatus, lOrderId, lOrderNo, infoResDto, goods);
@@ -767,8 +767,8 @@ public class ConsignOrderService {
         loadAddress.setAddressType(NumberConstant.ONE);
 //        loadAddress.setName();
 //        loadAddress.setType();
-//        loadAddress.setContacts();
-//        loadAddress.setPhone();
+        loadAddress.setContacts(addOrderDTO.getLoadContacts());
+        loadAddress.setPhone(addOrderDTO.getLoadPhone());
         loadAddress.setCityCode(addOrderDTO.getLoadCityCode());
         loadAddress.setCityName(addOrderDTO.getLoadCityName());
         loadAddress.setDetailAddress(addOrderDTO.getLoadDetailAddress());
@@ -788,8 +788,8 @@ public class ConsignOrderService {
         unloadAddress.setAddressType(NumberConstant.TWO);
 //        unloadAddress.setName();
 //        unloadAddress.setType();
-//        unloadAddress.setContacts();
-//        unloadAddress.setPhone();
+        unloadAddress.setContacts(addOrderDTO.getUnloadContacts());
+        unloadAddress.setPhone(addOrderDTO.getUnloadPhone());
         unloadAddress.setCityCode(addOrderDTO.getUnloadCityCode());
         unloadAddress.setCityName(addOrderDTO.getUnloadCityName());
         unloadAddress.setDetailAddress(addOrderDTO.getUnloadDetailAddress());
@@ -810,15 +810,14 @@ public class ConsignOrderService {
      *
      * @param addOrderDTO 页面请求参数
      * @param lOrderId    主体id
-     * @param status      合同状态
      */
-    private void saveConsignLogisticsOrderContract(AddOrderDTO addOrderDTO, Long lOrderId, Integer status) {
+    private void saveConsignLogisticsOrderContract(AddOrderDTO addOrderDTO, Long lOrderId) {
         //托运
         KwtLogisticsOrderContract consignContract = new KwtLogisticsOrderContract();
         consignContract.setId(new IdWorker(NumberConstant.ONE).nextId());
         consignContract.setContractId(Long.parseLong(addOrderDTO.getContractId()));
         consignContract.setLOrderId(lOrderId);
-        consignContract.setStatus(status);
+        consignContract.setStatus(NumberConstant.ZERO);
         consignContract.setCreateBy(LoginUserHolder.getUserId());
         consignContract.setCreateTime(new Date());
         consignContract.setUpdateBy(LoginUserHolder.getUserId());
@@ -945,21 +944,21 @@ public class ConsignOrderService {
         order.setCarrierContacts(addOrderDTO.getAcceptContacts());
         order.setCarrierPhone(addOrderDTO.getAcceptContactPhone());
 //        order.setLoadType();
-//        order.setLoadContacts();
-//        order.setLoadPhone();
-//        order.setLoadCityCode();
-//        order.setLoadCityName();
-//        order.setLoadDetailAddress();
-//        order.setLoadLat();
-//        order.setLoadLng();
+        order.setLoadContacts(addOrderDTO.getLoadContacts());
+        order.setLoadPhone(addOrderDTO.getLoadPhone());
+        order.setLoadCityCode(addOrderDTO.getLoadCityCode());
+        order.setLoadCityName(addOrderDTO.getLoadCityName());
+        order.setLoadDetailAddress(addOrderDTO.getLoadDetailAddress());
+        order.setLoadLat(addOrderDTO.getLoadLat());
+        order.setLoadLng(addOrderDTO.getLoadLng());
 //        order.setUnloadType();
-//        order.setUnloadContacts();
-//        order.setUnloadPhone();
-//        order.setUnloadCityCode();
-//        order.setUnloadCityName();
-//        order.setUnloadDetailAddress();
-//        order.setUnloadLat();
-//        order.setUnloadLng();
+        order.setUnloadContacts(addOrderDTO.getUnloadContacts());
+        order.setUnloadPhone(addOrderDTO.getUnloadPhone());
+        order.setUnloadCityCode(addOrderDTO.getUnloadCityCode());
+        order.setUnloadCityName(addOrderDTO.getUnloadCityName());
+        order.setUnloadDetailAddress(addOrderDTO.getUnloadDetailAddress());
+        order.setUnloadLat(addOrderDTO.getUnloadLat());
+        order.setUnloadLng(addOrderDTO.getUnloadLng());
         order.setCreateBy(LoginUserHolder.getUserId());
         order.setCreateByName(LoginUserHolder.getUserName());
         order.setCreateTime(new Date());
@@ -975,4 +974,15 @@ public class ConsignOrderService {
         busSum.setObject(order);
         streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
     }
+
+    /**
+     * 承运订单/托运订单-获取地址信息
+     *
+     * @return
+     */
+    public HttpResult getLogisticsOrderAddressList() {
+        Long entId = LoginUserHolder.getEntId();
+        List<Integer> codeList = kwtLogisticsOrderMapper.getAddressList(entId);
+        return HttpResult.ok(codeList);
+    }
 }

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

@@ -1,8 +1,13 @@
 package com.sckw.transport.service;
 
+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.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
+import com.sckw.core.model.page.PageHelperUtil;
+import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.*;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -11,19 +16,25 @@ import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.stream.model.SckwBusSum;
+import com.sckw.system.api.RemoteSystemService;
+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.vo.WaybillCountVo;
+import com.sckw.transport.model.vo.WaybillOrderDriverVo;
 import jakarta.annotation.Resource;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author zk
@@ -55,6 +66,72 @@ public class KwtWaybillOrderService {
     KwtLogisticsOrderCirculateMapper logisticsOrderCirculateDao;
     @Resource
     private StreamBridge streamBridge;
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+
+
+    /**
+     * @param driverId 司机ID
+     * @desc 统计司机任务数(待接单/出车/执行/完结)
+     * @author zk
+     * @date 2023/8/1
+     **/
+    public Map findStatisticsCountByDriver(Long driverId){
+        return waybillOrderDao.findStatisticsCountByDriver(driverId);
+    }
+
+    /**
+     * @param params {driverId 司机ID, month月份}
+     * @desc 统计司机任务数(任务数/委派量/装货量/卸货量/亏吨量/亏吨扣款)
+     * @author zk
+     * @date 2023/8/1
+     **/
+    public Map findStatisticsSumByDriver(Map params){
+        return waybillOrderDao.findStatisticsSumByDriver(params);
+    }
+
+    /**
+     * @param params {driverId 司机ID, busStatus  1待接单/2出车/3执行/4完结, month月份}
+     * @desc 统计司机任务数(任务数/委派量/装货量/卸货量/亏吨量/亏吨扣款)
+     * @author zk
+     * @date 2023/8/1
+     **/
+    public List<WaybillOrderDriverVo> findWaybillOrderByDriver(Map params){
+        /**参数处理**/
+        //业务状态busStatus  1待接单/2出车/3执行/4完结
+        Integer busStatus = Integer.parseInt(StringUtils.objectStr(params.get("busStatus")));
+        Object driverId = StringUtils.isBlank(params.get("driverId")) ? LoginUserHolder.getUserId() : params.get("driverId");
+        params.put("driverId", driverId);
+        // 设置分页参数
+        PageHelper.startPage(PageResult.getPage(params), PageResult.getPageSize(params));
+
+        /**数据查询**/
+        List<WaybillOrderDriverVo> waybillOrders = new ArrayList();
+        if (busStatus == 1) {
+            //查询司机任务列表-待接单
+            waybillOrders = waybillOrderDao.findWaitWaybillOrderByDriver(params);
+        } else {
+            //查询司机任务列表-出车/执行/完结
+            waybillOrders = waybillOrderDao.findOtherWaybillOrderByDriver(params);
+        }
+
+        /**数据组装**/
+        List<Long> entIds = new ArrayList<>();
+        for (WaybillOrderDriverVo waybillOrder:waybillOrders) {
+            entIds.add(waybillOrder.getCarrierEntId());
+        }
+        //企业数据集
+        entIds = entIds.stream().distinct().collect(Collectors.toList());
+        Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
+        for (WaybillOrderDriverVo waybillOrder:waybillOrders) {
+            EntCacheResDto ent = ents == null ? null : ents.get(waybillOrder.getCarrierEntId());
+            waybillOrder.setCarrierFirmName(ent != null ? ent.getFirmName() : null);
+        }
+        return waybillOrders;
+    }
+
+
+
 
     /**
      * @param params
@@ -690,6 +767,13 @@ public class KwtWaybillOrderService {
             if (circulate.getWOrderId() != null) {
                 return HttpResult.error("车辆循环运单不能接单!");
             }
+            //承运单信息
+            KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(circulate.getLOrderId());
+            //剩余未派量=上级委派量-分包量-下级委派量
+            BigDecimal residue = logisticsOrder.getAmount().subtract(logisticsOrder.getEntrustAmount()).subtract(logisticsOrder.getSubcontractAmount());
+            if (logisticsOrder.getStatus() != LogisticsOrderEnum.IN_TRANSIT.getCode() || residue.compareTo(new BigDecimal(Global.AMOUNT)) >= 0) {
+                return HttpResult.error("已不能接单!");
+            }
 
             /**获取基础信息**/
             //装货地址
@@ -720,8 +804,6 @@ public class KwtWaybillOrderService {
             setWaybillOrderTrack(circulate, waybillOrder.getId());
 
             /**2更新承运订单信息**/
-            //承运单信息
-            KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
             //承运订单已委派量:承运订单历史委派量+当前运单委派量
             BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
             logisticsOrder.setEntrustAmount(entrustAmount.add(waybillOrder.getEntrustAmount()));
@@ -1301,11 +1383,20 @@ public class KwtWaybillOrderService {
             for (KwtLogisticsOrderCirculate circulate:circulates) {
                 circulate.setStatus(Global.NUMERICAL_ONE);
                 logisticsOrderCirculateDao.updateById(circulate);
+
+                //车辆订单-Mongodb数据更新
+                SckwWaybillOrder wOrder = new SckwWaybillOrder();
+                wOrder.set_id(circulate.getId());
+                KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
+                waybillOrder.setStatus(CarWaybillEnum.REVOKED.getCode());
+                waybillOrder.setUpdateTime(circulate.getUpdateTime());
+                waybillOrder.setUpdateBy(circulate.getUpdateBy());
+                editSckwWaybillOrder(wOrder, waybillOrder, 2);
             }
         }
 
         //车辆运单统计
-        /**1-4Mongodb数据更新**/
+        /**1-5Mongodb数据更新**/
         //车辆运单统计
         Map queryParams = new HashMap();
         queryParams.put("lOrderId", logisticsOrder.getId());
@@ -1313,7 +1404,7 @@ public class KwtWaybillOrderService {
         queryParams.put("upperlOrderId", logisticsOrder.getId());
         waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
 
-        //2承运订单
+        //承运订单
         SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
         lOrder.setLoadTime(waybillCount.getLoadTime());
         lOrder.setUnloadTime(waybillCount.getUnloadTime());

+ 42 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java

@@ -3,8 +3,10 @@ package com.sckw.transport.service.dubbo;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.transport.api.dubbo.TransportDubboService;
+import com.sckw.transport.api.model.dto.AddressResDTO;
 import com.sckw.transport.api.model.dto.vo.KwtLogisticsOrderVO;
 import com.sckw.transport.api.model.dto.vo.LogisticsOrderVO;
 import com.sckw.transport.dao.KwtLogisticsOrderGoodsMapper;
@@ -20,8 +22,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 /**
  * @author lfdc
@@ -90,4 +91,43 @@ public class TransportDubboServiceImpl implements TransportDubboService {
         }
         return list;
     }
+
+    /**
+     * 获取当前企业下物流订单地址信息
+     *
+     * @return
+     */
+    @Override
+    public List<Integer> getLogisticsOrderAddressList() {
+        return logisticsOrderMapper.getAddressList(LoginUserHolder.getEntId());
+    }
+
+    /**
+     * 根据企业id 获取物流订单相关地址信息
+     *
+     * @param entId 企业id
+     * @return
+     */
+    @Override
+    public List<AddressResDTO> getLogisticsOrderAddressListByEntId(Long entId) {
+        return null;
+    }
+
+    /**
+     * 根据企业id 获取物流订单相关地址信息
+     *
+     * @param entIds 企业id集合
+     * @return
+     */
+    @Override
+    public Map<Long, List<AddressResDTO>> getLogisticsOrderAddressListByEntId(List<Long> entIds) {
+        Map<Long, List<AddressResDTO>> map = new HashMap<>(entIds.size());
+        for (Long entId : entIds) {
+            List<AddressResDTO> list = logisticsOrderMapper.getAddressDetailListByEntId(entId);
+            if (Objects.nonNull(list)) {
+                map.put(entId, list);
+            }
+        }
+        return map;
+    }
 }

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

@@ -421,4 +421,14 @@
           AND b.del_flag = '0'
           AND a.t_order_id = #{id,jdbcType=VARCHAR}
     </select>
+    <select id="getAddressList" resultType="java.lang.Integer">
+        SELECT a.city_code
+        FROM kwt_logistics_order_address a
+                 LEFT JOIN kwt_logistics_order b ON a.l_order_id = b.id
+        where a.city_code is not null AND b.ent_id =#{entId}
+        GROUP BY a.city_code
+    </select>
+    <select id="getAddressDetailListByEntId" resultType="com.sckw.transport.api.model.dto.AddressResDTO">
+
+    </select>
 </mapper>

+ 135 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -176,6 +176,7 @@
             and FIND_IN_SET(id, #{belowlOrderId, jdbcType=VARCHAR})
         </if>
     </select>
+
     <select id="selectWaybillOrderCarListGroupByTruckNo" resultType="com.sckw.transport.model.dto.OrderCarDTO">
         SELECT
         a.truck_no AS truckNo,
@@ -198,4 +199,138 @@
         a.truck_no
         limit #{page},#{pageSize}
     </select>
+
+    <select id="findStatisticsCountByDriver" resultType="java.util.Map" >
+        select
+            tabA.total + tabB.total as waitTotal, tabC.total departureTotal, tabD.total executeTotal, tabE.total endTotal
+        from
+        (
+            SELECT
+                count(1) total, 0 indexNum
+            FROM kwt_logistics_order_circulate loc
+            LEFT JOIN kwt_logistics_order lo on lo.id = loc.l_order_id
+            where loc.del_flag = 0 and lo.del_flag = 0 and loc.status = 0 and loc.w_order_id is null
+            and loc.driver_id = #{driverId, jdbcType=BIGINT}
+        ) tabA
+        left join
+        (
+            SELECT
+                count(1) total, 0 indexNum
+            FROM kwt_waybill_order wo
+            LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+            where wo.del_flag = 0 and lo.del_flag = 0 and wo.status = 1
+            and wo.driver_id = #{driverId, jdbcType=BIGINT}
+        ) tabB on tabB.indexNum = tabA.indexNum
+        left join
+        (
+            SELECT
+                count(1) total, 0 indexNum
+            FROM kwt_waybill_order wo
+            LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+            where wo.del_flag = 0 and lo.del_flag = 0 and wo.status = 2
+            and wo.driver_id = #{driverId, jdbcType=BIGINT}
+        ) tabC on tabC.indexNum = tabA.indexNum
+        left join
+        (
+            SELECT
+                count(1) total, 0 indexNum
+            FROM kwt_waybill_order wo
+            LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+            where wo.del_flag = 0 and lo.del_flag = 0 and wo.status in (3, 4, 5, 6)
+            and wo.driver_id = #{driverId, jdbcType=BIGINT}
+        ) tabD on tabD.indexNum = tabA.indexNum
+        left join
+        (
+            SELECT
+                count(1) total, 0 indexNum
+            FROM kwt_waybill_order wo
+            LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+            where wo.del_flag = 0 and lo.del_flag = 0 and wo.status in (7, 8, 9, 10, 11, 12)
+            and wo.driver_id = #{driverId, jdbcType=BIGINT}
+        ) tabE on tabE.indexNum = tabA.indexNum
+    </select>
+
+    <select id="findStatisticsSumByDriver" resultType="java.util.Map"  parameterType="java.util.Map">
+        SELECT
+            count(1) total, 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,
+            IFNULL(sum(wo.deficit_price), 0.0) deficitPrice
+        FROM kwt_waybill_order wo
+        LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+        where wo.del_flag = 0 and lo.del_flag = 0
+        <if test="busStatus != null and busStatus == 4">
+            and wo.status in (7, 8, 9, 10, 11, 12)
+        </if>
+        <if test="driverId != null and driverId != ''">
+            and wo.driver_id = #{driverId, jdbcType=BIGINT}
+        </if>
+        <if test="month != null and month != ''">
+            and LEFT(wo.create_time, 7) = #{month, jdbcType=TIMESTAMP}
+        </if>
+    </select>
+
+    <select id="findWaitWaybillOrderByDriver" resultType="com.sckw.transport.model.vo.WaybillOrderDriverVo" parameterType="java.util.Map">
+        SELECT * from (
+            SELECT
+                wo.id wOrderId, wo.w_order_no wOrderNo, wo.l_order_id lOrderId, lo.l_order_no lOrderNo, wo.type,
+                wo.ent_id carrierEntId, 'xxxxx' carrierFirmName, log.goods_name goodsName, wo.start_time startTime,
+                wo.end_time endTime, wo.entrust_amount entrustAmount, woa1.name loadName, woa1.city_code loadCityCode,
+                woa1.city_name loadCityName, woa1.detail_address loadDetailAddress, woa2.name unloadName, woa2.city_code unloadCityCode,
+                woa2.city_name unloadCityName, woa2.detail_address unloadDetailAddress, wo.load_amount loadAmount, wo.unload_amount unloadAmount,
+                wo.deficit_amount deficitAmount, wo.deficit_price deficitPrice, wo.truck_no truckNo, wo.status, wo.create_time createTime
+            FROM kwt_waybill_order wo
+            LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+            LEFT JOIN kwt_waybill_order_address woa1 on woa1.w_order_id = wo.id and woa1.type = 1
+            LEFT JOIN kwt_waybill_order_address woa2 on woa2.w_order_id = wo.id and woa2.type = 2
+            LEFT JOIN kwt_logistics_order_goods log on log.l_order_id = wo.l_order_id
+            where wo.del_flag = 0 and lo.del_flag = 0 and wo.status = 1
+            and wo.driver_id = #{driverId, jdbcType=BIGINT}
+            UNION
+            SELECT
+                loc.id wOrderId, null wOrderNo, loc.l_order_id lOrderId, lo.l_order_no lOrderNo, loc.type,
+                loc.ent_id carrierEntId, 'xxxxx' carrierFirmName, log.goods_name goodsName, loc.start_time startTime,
+                loc.end_time endTime, loc.entrust_amount entrustAmount, woa1.name loadName, woa1.city_code loadCityCode,
+                woa1.city_name loadCityName, woa1.detail_address loadDetailAddress, woa2.name unloadName, woa2.city_code unloadCityCode,
+                woa2.city_name unloadCityName, woa2.detail_address unloadDetailAddress, null loadAmount, null unloadAmount,
+                null deficitAmount, null deficitPrice, loc.truck_no truckNo, 1 status, loc.update_time createTime
+            FROM kwt_logistics_order_circulate loc
+            LEFT JOIN kwt_logistics_order lo on lo.id = loc.l_order_id
+            LEFT JOIN kwt_waybill_order_address woa1 on woa1.w_order_id = lo.id and woa1.type = 1
+            LEFT JOIN kwt_waybill_order_address woa2 on woa2.w_order_id = lo.id and woa2.type = 2
+            LEFT JOIN kwt_logistics_order_goods log on log.l_order_id = loc.l_order_id
+            where loc.del_flag = 0 and lo.del_flag = 0 and loc.status = 0 and loc.w_order_id is null
+            and loc.driver_id = #{driverId, jdbcType=BIGINT}
+        ) tab order by createTime desc
+    </select>
+
+    <select id="findOtherWaybillOrderByDriver" resultType="com.sckw.transport.model.vo.WaybillOrderDriverVo" parameterType="java.util.Map">
+        SELECT
+            wo.id wOrderId, wo.w_order_no wOrderNo, wo.l_order_id lOrderId, lo.l_order_no lOrderNo, wo.type,
+            wo.ent_id carrierEntId, 'xxxxx' carrierFirmName, log.goods_name goodsName, wo.start_time startTime,
+            wo.end_time endTime, wo.entrust_amount entrustAmount, woa1.name loadName, woa1.city_code loadCityCode,
+            woa1.city_name loadCityName, woa1.detail_address loadDetailAddress, woa2.name unloadName, woa2.city_code unloadCityCode,
+            woa2.city_name unloadCityName, woa2.detail_address unloadDetailAddress, wo.load_amount loadAmount, wo.unload_amount unloadAmount,
+            wo.deficit_amount deficitAmount, wo.deficit_price deficitPrice, wo.truck_no truckNo, wo.status, wo.create_time createTime
+        FROM kwt_waybill_order wo
+        LEFT JOIN kwt_logistics_order lo on lo.id = wo.l_order_id
+        LEFT JOIN kwt_waybill_order_address woa1 on woa1.w_order_id = wo.id and woa1.type = 1
+        LEFT JOIN kwt_waybill_order_address woa2 on woa2.w_order_id = wo.id and woa2.type = 2
+        LEFT JOIN kwt_logistics_order_goods log on log.l_order_id = wo.l_order_id
+        where wo.del_flag = 0 and lo.del_flag = 0
+        <if test="driverId != null and driverId != ''">
+            and wo.driver_id = #{driverId, jdbcType=BIGINT}
+        </if>
+        <if test="busStatus != null and busStatus == 2">
+            and wo.status = 2
+        </if>
+        <if test="busStatus != null and busStatus == 3">
+            and wo.status in (3, 4, 5, 6)
+        </if>
+        <if test="busStatus != null and busStatus == 4">
+            and wo.status in (7, 8, 9, 10, 11, 12)
+        </if>
+        <if test="month != null and month != ''">
+            and LEFT(wo.create_time, 7) = #{month, jdbcType=TIMESTAMP}
+        </if>
+    </select>
 </mapper>