Browse Source

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

xucaiqin 2 years ago
parent
commit
f2925a47d3
33 changed files with 575 additions and 142 deletions
  1. 18 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillEnum.java
  2. 20 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/LogisticsOrderEnum.java
  3. 30 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/StringUtils.java
  4. 5 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/dto/res/QueryListResDto.java
  5. 6 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/report/LogisticsListExport.java
  6. 6 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/report/TradeListExport.java
  7. 5 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/QueryListResVo.java
  8. 0 5
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java
  9. 13 4
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsMapper.xml
  10. 6 5
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeMapper.xml
  11. 1 1
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml
  12. 2 2
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckReportMapper.xml
  13. 7 7
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/controller/KwoBannerController.java
  14. 19 5
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  15. 2 1
      sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/WorkbenchPurchaseVO.java
  16. 29 8
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  17. 16 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderStatisticsService.java
  18. 8 7
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java
  19. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/SysDictDao.java
  20. 9 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java
  21. 4 4
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/SysDictService.java
  22. 1 0
      sckw-modules/sckw-system/src/main/resources/mapper/SysDictDao.xml
  23. 3 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  24. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java
  25. 10 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  26. 7 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java
  27. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/SubcontractConsignmentVO.java
  28. 94 43
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  29. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/CommonService.java
  30. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  31. 121 41
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  32. 102 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml
  33. 26 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

+ 18 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillEnum.java

@@ -165,4 +165,22 @@ public enum CarWaybillEnum {
         }
         return false;
     }
+
+    /**
+     * 获取编码以及注释
+     *
+     * @return
+     */
+    public static String getCodeAndDestination() {
+        StringBuilder sb = new StringBuilder();
+        for (CarWaybillEnum value : CarWaybillEnum.values()) {
+            sb.append(value.getCode()+":").append(value.destination).append(";");
+        }
+        return sb.toString();
+    }
+
+    public static void main(String[] args) {
+        String codeAndDestination = getCodeAndDestination();
+        System.out.println(codeAndDestination);
+    }
 }

+ 20 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/LogisticsOrderEnum.java

@@ -109,6 +109,7 @@ public enum LogisticsOrderEnum {
 
     /**
      * 获取所有的状态
+     *
      * @return
      */
     public static List<String> getCodeStringList() {
@@ -120,7 +121,6 @@ public enum LogisticsOrderEnum {
     }
 
 
-
     public static String getDestination(String status) {
         for (LogisticsOrderEnum logisticsOrderEnum : LogisticsOrderEnum.values()) {
             if (logisticsOrderEnum.getStatus().equals(status)) {
@@ -162,4 +162,23 @@ public enum LogisticsOrderEnum {
         }
         return true;
     }
+
+
+    /**
+     * 获取编码以及注释
+     *
+     * @return
+     */
+    public static String getCodeAndDestination() {
+        StringBuilder sb = new StringBuilder();
+        for (LogisticsOrderEnum value : LogisticsOrderEnum.values()) {
+            sb.append(value.getCode()+":").append(value.destination).append(";");
+        }
+        return sb.toString();
+    }
+
+    public static void main(String[] args) {
+        String codeAndDestination = getCodeAndDestination();
+        System.out.println(codeAndDestination);
+    }
 }

+ 30 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/StringUtils.java

@@ -4,6 +4,8 @@ import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
 
 import java.lang.reflect.InvocationTargetException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -784,6 +786,34 @@ public class StringUtils {
         return result.toString();
     }
 
+    /**
+     * @desc: 设置两位小数
+     * @author: yzc
+     * @date: 2023-09-26 10:11
+     * @Param d:
+     * @return: java.lang.BigDecimal
+     */
+    private BigDecimal setScale(Double d) {
+        if (Objects.isNull(d) || BigDecimal.ZERO.compareTo(BigDecimal.valueOf(d)) == 0) {
+            return new BigDecimal("0.00");
+        }
+        return BigDecimal.valueOf(d).setScale(2, RoundingMode.HALF_UP);
+    }
+
+    /**
+     * @desc: 设置两位小数
+     * @author: yzc
+     * @date: 2023-09-26 10:11
+     * @Param d:
+     * @return: java.lang.BigDecimal
+     */
+    private BigDecimal setScale(BigDecimal d) {
+        if (Objects.isNull(d) || BigDecimal.ZERO.compareTo(d) == 0) {
+            return new BigDecimal("0.00");
+        }
+        return d.setScale(2, RoundingMode.HALF_UP);
+    }
+
     public static void main(String[] args) {
         Map<String, Object> param = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         param.put("account", "17358629955");

+ 5 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/dto/res/QueryListResDto.java

@@ -163,4 +163,9 @@ public class QueryListResDto {
      */
     private String purchaseEntName;
 
+    /**
+     * 父合同名
+     */
+    private String contractPname;
+
 }

+ 6 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/report/LogisticsListExport.java

@@ -53,6 +53,12 @@ public class LogisticsListExport implements Serializable {
     @ExcelProperty(value = "合同名称")
     private String contractName;
 
+    /**
+     * 父合同名
+     */
+    @ExcelProperty(value = "父合同名称")
+    private String contractPname;
+
     /**
      * 签约方式中文名
      */

+ 6 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/report/TradeListExport.java

@@ -53,6 +53,12 @@ public class TradeListExport implements Serializable {
     @ExcelProperty(value = "合同名称")
     private String contractName;
 
+    /**
+     * 父合同名
+     */
+    @ExcelProperty(value = "父合同名称")
+    private String contractPname;
+
     /**
      * 签约方式中文名
      */

+ 5 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/QueryListResVo.java

@@ -151,4 +151,9 @@ public class QueryListResVo implements Serializable {
      */
     private String statusName;
 
+    /**
+     * 父合同名
+     */
+    private String contractPname;
+
 }

+ 0 - 5
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java

@@ -2,18 +2,15 @@ package com.sckw.contract.service;
 
 import java.util.Date;
 
-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.contract.dao.KwcContractLogisticsMapper;
-import com.sckw.contract.dubbo.RemoteContractServiceImpl;
 import com.sckw.contract.model.dto.req.QueryListReqDto;
 import com.sckw.contract.model.dto.res.QueryListResDto;
 import com.sckw.contract.model.entity.KwcContractLogistics;
 import com.sckw.contract.model.entity.KwcContractLogisticsGoods;
 import com.sckw.contract.model.entity.KwcContractLogisticsUnit;
-import com.sckw.contract.model.entity.KwcContractTrade;
 import com.sckw.contract.model.report.LogisticsListExport;
 import com.sckw.contract.model.vo.req.*;
 import com.sckw.contract.model.vo.res.*;
@@ -30,7 +27,6 @@ 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;
-import com.sckw.excel.utils.EasyExcelUtil;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.stream.enums.MessageEnum;
@@ -48,7 +44,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.io.*;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.function.Function;

+ 13 - 4
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsMapper.xml

@@ -25,10 +25,10 @@
                 e.ent_id targetEntId,
                 e.firm_name targetEntName,
                 a.performed_amount performedAmount,
-                a.contract_pid contractPid
+                a.contract_pid contractPid,
+                f.name contractPname
           from kwc_contract_logistics a
-          left join kwc_contract_logistics_unit b
-            on a.id = b.contract_id
+          left join kwc_contract_logistics_unit b on a.id = b.contract_id
            and b.unit_type = #{entType}
            and case when a.status != 3 then b.ent_id in
                 <foreach collection="allEnt" separator="," open="(" close=")" item="item">
@@ -40,6 +40,7 @@
           left join kwc_contract_logistics_track c on a.id = c.contract_id and c.del_flag = 0 and c.type = 1
           left join kwc_contract_logistics_track d on a.id = d.contract_id and d.del_flag = 0 and d.type = 0
           left join kwc_contract_logistics_unit e on a.id = e.contract_id and e.unit_type != #{entType} and e.del_flag = 0
+          left join kwc_contract_logistics f on f.id = a.contract_pid
         where a.del_flag = 0
           and case when a.status = 3 then a.ent_id = #{entId} and #{entType} = 3
                 else (b.ent_id in
@@ -57,6 +58,12 @@
           <if test="status != null">
               and a.status = #{status}
           </if>
+            <if test="charging != null">
+                and a.charging = #{charging}
+            </if>
+            <if test="signingWay != null">
+                and a.signing_way = #{signingWay}
+            </if>
           <if test="keywords != null and keywords != ''">
               and (b.firm_name like concat('%', #{keywords}, '%') or
                    e.firm_name like concat('%', #{keywords}, '%') or
@@ -99,12 +106,14 @@
                e.ent_id carrierEntId,
                e.firm_name carrierEntName,
                a.performed_amount performedAmount,
-               a.contract_pid contractPid
+               a.contract_pid contractPid,
+               f.name contractPname,
           from kwc_contract_logistics a
           left join kwc_contract_logistics_unit b on a.id = b.contract_id and b.del_flag = 0 and b.unit_type = 3
           left join kwc_contract_logistics_unit e on a.id = e.contract_id and e.del_flag = 0 and e.unit_type = 4
           left join kwc_contract_logistics_track c on a.id = c.contract_id and c.del_flag = 0 and c.type = 1
           left join kwc_contract_logistics_track d on a.id = d.contract_id and d.del_flag = 0 and d.type = 0
+          left join kwc_contract_logistics f on f.id = a.contract_pid
          where a.del_flag = 0
            and a.status != 3
         <if test="startTime != null">

+ 6 - 5
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeMapper.xml

@@ -25,7 +25,8 @@
                e.ent_id targetEntId,
                e.firm_name targetEntName,
                a.contract_pid contractPid,
-               a.performed_amount performedAmount
+               a.performed_amount performedAmount,
+               f.name contractPname
           from kwc_contract_trade a
           left join kwc_contract_trade_unit b
             on a.id = b.contract_id
@@ -40,6 +41,7 @@
           left join kwc_contract_trade_track c on a.id = c.contract_id and c.del_flag = 0 and c.type = 1
           left join kwc_contract_trade_track d on a.id = d.contract_id and d.del_flag = 0 and d.type = 0
           left join kwc_contract_trade_unit e on a.id = e.contract_id and e.unit_type != #{entType} and e.del_flag = 0
+          left join kwc_contract_trade f on f.id = a.contract_pid
          where a.del_flag = 0
            and case when a.status = 3 then a.ent_id = #{entId} and #{entType} = 1
                 else (b.ent_id in
@@ -78,9 +80,6 @@
         <if test="signingWay != null">
             and a.signing_way = #{signingWay}
         </if>
-        <if test="charging != null">
-            and a.charging = #{charging}
-        </if>
         <if test="targetEntId != null">
             and e.ent_id = #{targetEntId}
         </if>
@@ -135,12 +134,14 @@
                 e.ent_id purchaseEntId,
                 e.firm_name purchaseEntName,
                 a.contract_pid contractPid,
-                a.performed_amount performedAmount
+                a.performed_amount performedAmount,
+                f.name contractPname
         from kwc_contract_trade a
         left join kwc_contract_trade_unit b on a.id = b.contract_id and b.del_flag = 0 and b.unit_type = 1
         left join kwc_contract_trade_unit e on a.id = e.contract_id and e.del_flag = 0 and e.unit_type = 2
         left join kwc_contract_trade_track c on a.id = c.contract_id and c.del_flag = 0 and c.type = 1
         left join kwc_contract_trade_track d on a.id = d.contract_id and d.del_flag = 0 and d.type = 0
+        left join kwc_contract_trade f on a.contract_pid = f.id
         where a.del_flag = 0
           and a.status != 3
         <if test="startTime != null">

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

@@ -218,7 +218,7 @@
 
     <select id="findList" resultType="java.util.Map" parameterType="java.util.Map" >
         SELECT
-            dr.id, name, phone, salt, password, idcard, total_complete totalComplete,
+            dr.id, name, phone, idcard, total_complete totalComplete,
             total_take totalTake, total_weight totalWeight, dre.ent_id entId
         from kwf_driver dr
         left join kwf_driver_ent dre on dre.driver_id = dr.id

+ 2 - 2
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckReportMapper.xml

@@ -51,8 +51,8 @@
             trr.create_by createBy, trr.create_time createTime, trr.update_time updateTime, trr.remark,
             tr.truck_no truckNo, tr.actual_weight actualWeight, tr.business_status businessStatus,
             tr.auth_status truckAuthStatus, dr.`name` driverName, dr.phone driverPhone, dr.idcard driverIdcard,
-            dr.ent_id driverEntId, dr.auth_status driverAuthStatus, tr.ent_id truckEntId, fl.name truckFleetName,
-            tr.type truckType, tr.color, tr.trailer_no trailerNo
+            dr.ent_id driverEntId, dr.auth_status driverAuthStatus, tr.ent_id truckEntId, flt.fleet_id truckFleetId,
+            fl.name truckFleetName, tr.type truckType, tr.color, tr.trailer_no trailerNo
         from kwf_truck_report trr
         left join kwf_truck tr on tr.id = trr.truck_id
         left join kwf_driver dr on dr.id = trr.driver_id

+ 7 - 7
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/controller/KwoBannerController.java

@@ -32,7 +32,7 @@ public class KwoBannerController {
      * @date: 2023/8/28
      */
     @PostMapping("/queryByPage")
-    public HttpResult queryByPage(@RequestBody BannerQueryReqVo reqVo) throws SystemException {
+    public HttpResult queryByPage(@RequestBody BannerQueryReqVo reqVo) {
         return HttpResult.ok(bannerService.queryByPage(reqVo));
     }
 
@@ -44,7 +44,7 @@ public class KwoBannerController {
      * @date: 2023/8/28
      */
     @PostMapping("/add")
-    public HttpResult add(@Valid @RequestBody BannerAddReqVo reqVo) throws SystemException {
+    public HttpResult add(@Valid @RequestBody BannerAddReqVo reqVo) {
         bannerService.addService(reqVo);
         return HttpResult.ok(HttpStatus.MSG_003);
     }
@@ -57,7 +57,7 @@ public class KwoBannerController {
      * @date: 2023/8/28
      */
     @PostMapping("/update")
-    public HttpResult update(@Valid @RequestBody BannerAddReqVo reqVo) throws SystemException {
+    public HttpResult update(@Valid @RequestBody BannerAddReqVo reqVo) {
         bannerService.udpateService(reqVo);
         return HttpResult.ok(HttpStatus.MSG_005);
     }
@@ -70,7 +70,7 @@ public class KwoBannerController {
      * @date: 2023/8/28
      */
     @PostMapping("/delete")
-    public HttpResult delete(@Valid @RequestBody IdsReqVo reqVo) throws SystemException {
+    public HttpResult delete(@Valid @RequestBody IdsReqVo reqVo) {
         bannerService.deleteServer(reqVo.getIds());
         return HttpResult.ok(HttpStatus.MSG_008);
     }
@@ -83,7 +83,7 @@ public class KwoBannerController {
      * @date: 2023/8/28
      */
     @PostMapping("detail")
-    public HttpResult detail(@RequestBody IdsReqVo reqVo) throws SystemException {
+    public HttpResult detail(@RequestBody IdsReqVo reqVo) {
         return HttpResult.ok(bannerService.detailServer(reqVo.getId()));
     }
     /**
@@ -93,7 +93,7 @@ public class KwoBannerController {
      * @date: 2023/9/12
      */
     @PostMapping("/getCategory")
-    public HttpResult getCategory() throws SystemException {
+    public HttpResult getCategory() {
         return HttpResult.ok(bannerService.getCategory());
     }
 
@@ -105,7 +105,7 @@ public class KwoBannerController {
      * @date: 2023/8/28
      */
     @PostMapping("/updateStatus")
-    public HttpResult updateStatus(@Valid @RequestBody BannerUpdateStatusReqVo reqVo) throws SystemException {
+    public HttpResult updateStatus(@Valid @RequestBody BannerUpdateStatusReqVo reqVo) {
         bannerService.updateStatusServer(reqVo);
         return HttpResult.ok(HttpStatus.MSG_005);
     }

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

@@ -323,12 +323,26 @@ public class KwpGoodsService {
                 throw new BusinessException("上架商品不可修改库存数量!");
             }
         }
-        BeanUtils.copyProperties(param, goods);
         AddressInfo address = param.getAddressInfo();
-        if (Objects.nonNull(address)) {
-            goods.setAreaCode(address.getCityCode()).setAddressName(address.getName());
-        }
-        kwpGoodsMapper.updateById(goods);
+        Integer areaCode = Objects.isNull(address) ? null : address.getCityCode();
+        String addressName = Objects.isNull(address) ? null : address.getName();
+        LambdaUpdateWrapper<KwpGoods> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.set(KwpGoods::getName, param.getName())
+                .set(KwpGoods::getGoodsType, param.getGoodsType())
+                .set(KwpGoods::getUnit, param.getUnit())
+                .set(KwpGoods::getSpec, param.getSpec())
+                .set(KwpGoods::getAmount, param.getAmount())
+                .set(KwpGoods::getTaxRate, param.getTaxRate())
+                .set(KwpGoods::getPrepaidLimit, param.getPrepaidLimit())
+                .set(KwpGoods::getAdvancePrice, param.getAdvancePrice())
+                .set(KwpGoods::getSupplyEntId, param.getSupplyEntId())
+                .set(KwpGoods::getManager, param.getManager())
+                .set(KwpGoods::getRemark, param.getRemark())
+                .set(KwpGoods::getThumb, param.getThumb())
+                .set(KwpGoods::getAreaCode, areaCode)
+                .set(KwpGoods::getAddressName, addressName)
+                .eq(KwpGoods::getId, param.getId());
+        kwpGoodsMapper.update(null, wrapper);
         updateGoodsOtherInfo(param);
     }
 

+ 2 - 1
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/WorkbenchPurchaseVO.java

@@ -9,6 +9,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -33,7 +34,7 @@ public class WorkbenchPurchaseVO implements Serializable {
     /**
      * 订单成交数量
      */
-    private Double amount;
+    private BigDecimal amount;
 
     /**
      * 订单单位(吨、方、箱、件)

+ 29 - 8
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -28,6 +28,7 @@ import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Pattern;
@@ -139,13 +140,33 @@ public class KwOrderService {
                     .setSource(sourceMap.get(e.getSource()))
                     .setLoadDetailAddressInfo(loadCityName + loadDetailAddress)
                     .setUnloadDetailAddressInfo(unloadCityName + unloadDetailAddress)
-                    .setWaitEntrustAmount(getWaitEntrustAmount(e.getAmount(), e.getEntrustAmount()))
-                    .setActualPrice(actualAmount.multiply(unitPrice).doubleValue());
+                    .setUnitPrice(setScale(e.getUnitPrice()))
+                    .setPrice(setScale(e.getPrice()))
+                    .setAmount(setScale(e.getAmount()))
+                    .setEntrustAmount(setScale(e.getEntrustAmount()))
+                    .setActualAmount(setScale(e.getActualAmount()))
+                    .setWaitEntrustAmount(setScale(getWaitEntrustAmount(e.getAmount(), e.getEntrustAmount())))
+                    .setActualPrice(actualAmount.multiply(unitPrice).setScale(2, RoundingMode.HALF_UP));
             result.add(order);
         });
         return PageResult.build(page, pageSize, count, result);
     }
 
+
+    /**
+     * @desc: 设置两位小数
+     * @author: yzc
+     * @date: 2023-09-26 10:11
+     * @Param d:
+     * @return: java.lang.BigDecimal
+     */
+    private BigDecimal setScale(Double d) {
+        if (Objects.isNull(d) || BigDecimal.ZERO.compareTo(BigDecimal.valueOf(d)) == 0) {
+            return new BigDecimal("0.00");
+        }
+        return BigDecimal.valueOf(d).setScale(2, RoundingMode.HALF_UP);
+    }
+
     /**
      * @desc: 获取订单待分配运输量
      * @author: yzc
@@ -437,12 +458,12 @@ public class KwOrderService {
             TradeOrderListExport export = BeanUtils.copyProperties(e, TradeOrderListExport.class);
             export.setSerialNumber(String.valueOf(i.getAndIncrement()))
                     .setStatus(statusMap.get(String.valueOf(e.getStatus())))
-                    .setUnitPrice(Objects.isNull(e.getUnitPrice()) ? "0.00" : String.valueOf(e.getUnitPrice()))
-                    .setAmount(Objects.isNull(e.getAmount()) ? "0.00" : String.valueOf(e.getAmount()))
-                    .setPrice(Objects.isNull(e.getPrice()) ? "0.00" : String.valueOf(e.getPrice()))
-                    .setEntrustAmount(Objects.isNull(e.getEntrustAmount()) ? "0.00" : String.valueOf(e.getEntrustAmount()))
-                    .setActualAmount(Objects.isNull(e.getActualAmount()) ? "0.00" : String.valueOf(e.getActualAmount()))
-                    .setWaitEntrustAmount(Objects.isNull(waitEntrustAmount) ? "0.00" : String.valueOf(waitEntrustAmount))
+                    .setUnitPrice(String.valueOf(setScale(e.getUnitPrice())))
+                    .setAmount(String.valueOf(setScale(e.getAmount())))
+                    .setPrice(String.valueOf(setScale(e.getPrice())))
+                    .setEntrustAmount(String.valueOf(setScale(e.getEntrustAmount())))
+                    .setActualAmount(String.valueOf(setScale(e.getActualAmount())))
+                    .setWaitEntrustAmount(String.valueOf(setScale(waitEntrustAmount)))
                     .setPickupType(pickupMap.get(e.getPickupType()))
                     .setDeliveryType(deliveryMap.get(e.getDeliveryType()))
                     .setSource(sourceMap.get(e.getSource()))

+ 16 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderStatisticsService.java

@@ -225,9 +225,25 @@ public class KwOrderStatisticsService {
         orders.forEach(e -> {
             WorkbenchPurchaseVO vo = BeanUtils.copyProperties(e, WorkbenchPurchaseVO.class);
             vo.setUnitLabel(unitMap.get(e.getUnit()))
+                    .setAmount(setScale(e.getAmount()))
                     .setGoodsTypeLabel(goodsNameMap.get(e.getGoodsType()));
             result.add(vo);
         });
         return result;
     }
+
+
+    /**
+     * @desc: 设置两位小数
+     * @author: yzc
+     * @date: 2023-09-26 10:11
+     * @Param d:
+     * @return: java.lang.BigDecimal
+     */
+    private BigDecimal setScale(Double d) {
+        if (Objects.isNull(d) || BigDecimal.ZERO.compareTo(BigDecimal.valueOf(d)) == 0) {
+            return new BigDecimal("0.00");
+        }
+        return BigDecimal.valueOf(d).setScale(2, RoundingMode.HALF_UP);
+    }
 }

+ 8 - 7
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java

@@ -7,6 +7,7 @@ import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.Date;
 
@@ -133,33 +134,33 @@ public class OrderListRes {
     /**
      * 订单成交单价
      */
-    private Double unitPrice;
+    private BigDecimal unitPrice;
     /**
      * 订单金额
      */
-    private Double price;
+    private BigDecimal price;
 
     /**
      * 订单总量
      */
-    private Double amount;
+    private BigDecimal amount;
     /**
      * 已委托量
      */
-    private Double entrustAmount;
+    private BigDecimal entrustAmount;
     /**
      * 待委托量
      */
-    private Double waitEntrustAmount;
+    private BigDecimal waitEntrustAmount;
     /**
      * 实际交付量
      */
-    private Double actualAmount;
+    private BigDecimal actualAmount;
 
     /**
      * 实际订单金额
      */
-    private Double actualPrice;
+    private BigDecimal actualPrice;
     /**
      * 归属项目
      */

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/SysDictDao.java

@@ -73,7 +73,7 @@ public interface SysDictDao {
      * @author: czh
      * @date: 2023/7/7
      */
-    SysDict queryUnitDict(@Param(value = "dictTypeId") Long dictTypeId, @Param(value = "value") String value, @Param(value = "label") String label);
+    SysDict queryUnitDict(@Param(value = "dictTypeId") Long dictTypeId, @Param(value = "value") String value, @Param(value = "label") String label, @Param(value = "parentId") String parentId);
 
     /**
      * @param type 类型 value key

+ 9 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java

@@ -381,6 +381,15 @@ public class KwsEnterpriseService {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
         }
 
+        if(SystemTypeEnum.MANAGE.getCode().equals(LoginUserHolder.getSystemType())) {
+            ApprovalReqVo approvalReqVo = new ApprovalReqVo();
+            approvalReqVo.setEntId(entId);
+            approvalReqVo.setStatus(ApprovalEnum.OK.getCode());
+            approvalReqVo.setRemark("");
+            approval(approvalReqVo);
+        }
+
+
         //子公司不用新建机构、角色等,直接返回
         Map<String, Object> map = new HashMap<>();
         map.put("entName", kwsEnterprise.getFirmName());

+ 4 - 4
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/SysDictService.java

@@ -95,7 +95,7 @@ public class SysDictService {
      * @desc: 添加新纪录
      */
     public void add(SysDict params) {
-        checkDict(params.getDictId(), params.getValue(), params.getLabel());
+        checkDict(params.getDictId(), params.getValue(), params.getLabel(), params.getParentId());
         if (sysDictDao.insert(params) <= 0) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
         }
@@ -107,8 +107,8 @@ public class SysDictService {
      * @author: czh
      * @date: 2023/7/7
      */
-    public void checkDict(Long dictTypeId, String value, String label) {
-        SysDict sysDict = sysDictDao.queryUnitDict(dictTypeId, value, label);
+    public void checkDict(Long dictTypeId, String value, String label, String parentId) {
+        SysDict sysDict = sysDictDao.queryUnitDict(dictTypeId, value, label, parentId);
         if (!Objects.isNull(sysDict)) {
             throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.DICT_EXISTS);
         }
@@ -145,7 +145,7 @@ public class SysDictService {
      * @date: 2023/7/7
      */
     public void update(SysDict params) {
-        checkDict(params.getDictId(), params.getValue(), params.getLabel());
+        checkDict(params.getDictId(), params.getValue(), params.getLabel(), params.getParentId());
         if (sysDictDao.update(params) <= 0) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
         }

+ 1 - 0
sckw-modules/sckw-system/src/main/resources/mapper/SysDictDao.xml

@@ -231,6 +231,7 @@
       from sys_dict
      where del_flag = 0
        and dict_id = #{dictTypeId}
+       and parent_id = #{parentId}
        and (value = #{value} or label = #{label})
   </select>
 

+ 3 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -240,10 +240,10 @@ public class AcceptCarriageOrderController {
      */
     @RequestMapping(value = "/getSubcontractConsignment", method = RequestMethod.GET)
     public HttpResult getSubcontractConsignment(@RequestParam("lOrderIds") @NotBlank(message = "单据id不能为空") String lOrderIds,
-                                                @RequestParam("page") @NotNull(message = "分页不能为空") int page,
-                                                @RequestParam("pageSize") @NotNull(message = "分页条数不能为空") int pageSize) {
+                                                                       @RequestParam("page") @NotNull(message = "分页不能为空") int page,
+                                                                       @RequestParam("pageSize") @NotNull(message = "分页条数不能为空") int pageSize) {
         try {
-            return acceptCarriageOrderService.getSubcontractConsignment(lOrderIds, page, pageSize);
+            return HttpResult.ok(acceptCarriageOrderService.getSubcontractConsignment(lOrderIds, page, pageSize));
         } catch (Exception e) {
             log.error("承运订单-获取分包托运列表 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());

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

@@ -130,7 +130,7 @@ public class LogisticsConsignmentController {
     public HttpResult purchaseLogisticsCar(@Valid @RequestBody OrderQuery orderQuery) {
         log.info("采购订单-车辆详情 传递参数信息:{}", JSONObject.toJSONString(orderQuery));
         try {
-            return logisticsConsignmentService.purchaseLogisticsCar(orderQuery.getIds(), orderQuery.getPage(), orderQuery.getPageSize());
+            return HttpResult.ok(logisticsConsignmentService.purchaseLogisticsCar(orderQuery.getIds(), orderQuery.getPage(), orderQuery.getPageSize()));
         } catch (Exception e) {
             log.error("采购订单-车辆详情 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());

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

@@ -62,6 +62,15 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
      */
     List<com.sckw.transport.model.dto.LogisticsOrderDTO> selectOrderListNotPage(@Param("id") String id, @Param("type") String type);
 
+    /**
+     * 销售订单-采购订单-托运详情
+     *
+     * @param ids 贸易订单id
+     * @param type
+     * @return
+     */
+    List<com.sckw.transport.model.dto.LogisticsOrderDTO> selectOrderListNotPageByIds(@Param("ids") List<Long> ids, @Param("type") String type);
+
     List<SckwLogisticsOrderVO> selectOrderListByContractId(@Param("type") String type, @Param("entId") Long entId, @Param("contractIds") List<Long> contractIds);
 
     /**
@@ -116,6 +125,7 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
      * @return
      */
     List<SubcontractConsignmentVO> getSubcontractConsignmentNotPage(@Param("lOrderId") String lOrderId);
+    List<SubcontractConsignmentVO> getSubcontractConsignmentList(@Param("lOrderIds") List<Long> lOrderIds);
 
     /**
      * @param lOrderId

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

@@ -134,6 +134,13 @@ public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
      */
     List<OrderCarDTO> selectWaybillOrderCarListNotPage(@Param("id") String id);
 
+    /**
+     *
+     * @param ids
+     * @return
+     */
+    List<OrderCarDTO> selectWaybillOrderCarListByTradeOrderId(@Param("ids") List<Long> ids);
+
     /**
      * 按状态统计运单
      * @param entId 企业ID

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/SubcontractConsignmentVO.java

@@ -229,7 +229,7 @@ public class SubcontractConsignmentVO {
     /**
      * 创建时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
 }

+ 94 - 43
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -18,7 +18,6 @@ import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.*;
 import com.sckw.core.model.page.PageRes;
-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;
@@ -970,11 +969,16 @@ public class AcceptCarriageOrderService {
      * @param pageSize  每页条数
      * @return
      */
-    public HttpResult getSubcontractConsignment(String lOrderIds, Integer page, Integer pageSize) {
+    public PageRes<SubcontractConsignmentVO> getSubcontractConsignment(String lOrderIds, Integer page, Integer pageSize) {
+        PageHelper.startPage(page, pageSize);
         List<String> stringList = StringUtils.splitStrToList(lOrderIds, String.class);
         if (CollectionUtils.isEmpty(stringList)) {
-            return HttpResult.ok();
+            PageRes<SubcontractConsignmentVO> objectPageRes = new PageRes<>();
+            objectPageRes.setPage(page);
+            objectPageRes.setPageSize(pageSize);
+            return objectPageRes;
         }
+        List<Long> ids = StringUtils.splitStrToList(lOrderIds, Long.class);
         /**运价方式*/
         Map<String, String> priceDictData = getDictData(DictTypeEnum.PRICE_TYPE.getType());
         /**车载计算方式*/
@@ -986,51 +990,98 @@ public class AcceptCarriageOrderService {
         /**结算周期*/
         Map<String, String> settlementDictData = getDictData(DictTypeEnum.SETTLEMENT_CYCLE.getType());
         List<SubcontractConsignmentVO> allList = new ArrayList<>();
-        for (String lOrderId : stringList) {
-            List<SubcontractConsignmentVO> list = logisticsOrderMapper.getSubcontractConsignmentNotPage(lOrderId);
-            //联查数据
-            if (CollectionUtils.isNotEmpty(list)) {
-                for (SubcontractConsignmentVO subcontractConsignmentVO : list) {
-                    //关联父级承运单据号
-                    if (subcontractConsignmentVO.getPid() != null) {
-                        KwtLogisticsOrder kwtLogisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>().eq(KwtLogisticsOrder::getId, subcontractConsignmentVO.getPid()));
-                        if (kwtLogisticsOrder != null) {
-                            subcontractConsignmentVO.setCarrierOrderNo(kwtLogisticsOrder.getLOrderNo());
-                        }
-                    }
-                    subcontractConsignmentVO.setStatusLabel(LogisticsOrderEnum.getDestination(subcontractConsignmentVO.getStatus()));
-                    if (subcontractConsignmentVO.getPriceType() != null) {
-                        subcontractConsignmentVO.setPriceTypeLabel(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getPriceType()));
+        List<SubcontractConsignmentVO> voList = logisticsOrderMapper.getSubcontractConsignmentList(ids);
+        if (CollectionUtils.isEmpty(voList)){
+            PageRes<SubcontractConsignmentVO> objectPageRes = new PageRes<>();
+            objectPageRes.setPage(page);
+            objectPageRes.setPageSize(pageSize);
+            return objectPageRes;
+        }
+        PageInfo<SubcontractConsignmentVO> pageInfo = new PageInfo<>(voList);
+        if (CollectionUtils.isNotEmpty(voList)) {
+            for (SubcontractConsignmentVO subcontractConsignmentVO : voList) {
+                //关联父级承运单据号
+                if (subcontractConsignmentVO.getPid() != null) {
+                    KwtLogisticsOrder kwtLogisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>().eq(KwtLogisticsOrder::getId, subcontractConsignmentVO.getPid()));
+                    if (kwtLogisticsOrder != null) {
+                        subcontractConsignmentVO.setCarrierOrderNo(kwtLogisticsOrder.getLOrderNo());
                     }
-                    if (subcontractConsignmentVO.getLossUnit() != null) {
-                        subcontractConsignmentVO.setLossUnitLabel(weightDictData == null ? null : weightDictData.get(subcontractConsignmentVO.getLossUnit()));
-                    }
-                    if (subcontractConsignmentVO.getGoodsPriceUnit() != null) {
-                        subcontractConsignmentVO.setGoodsPriceUnitLabel(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getGoodsPriceUnit()));
-                    }
-                    //分包托运不需要展示签约方式
+                }
+                subcontractConsignmentVO.setStatusLabel(LogisticsOrderEnum.getDestination(subcontractConsignmentVO.getStatus()));
+                if (subcontractConsignmentVO.getPriceType() != null) {
+                    subcontractConsignmentVO.setPriceTypeLabel(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getPriceType()));
+                }
+                if (subcontractConsignmentVO.getLossUnit() != null) {
+                    subcontractConsignmentVO.setLossUnitLabel(weightDictData == null ? null : weightDictData.get(subcontractConsignmentVO.getLossUnit()));
+                }
+                if (subcontractConsignmentVO.getGoodsPriceUnit() != null) {
+                    subcontractConsignmentVO.setGoodsPriceUnitLabel(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getGoodsPriceUnit()));
+                }
+                //分包托运不需要展示签约方式
 //                subcontractConsignmentVO.setContractSigningWay(singDictData == null ? null : singDictData.get(subcontractConsignmentVO.getContractSigningWay()));
-                    if (subcontractConsignmentVO.getBillingMode() != null) {
-                        subcontractConsignmentVO.setBillingModeLabel(chargingDictData == null ? null : chargingDictData.get(subcontractConsignmentVO.getBillingMode()));
-                    }
-                    if (subcontractConsignmentVO.getSettlementCycle() != null) {
-                        subcontractConsignmentVO.setSettlementCycleLabel(settlementDictData == null ? null : settlementDictData.get(subcontractConsignmentVO.getSettlementCycle()));
-                    }
-                    if (subcontractConsignmentVO.getCreateBy() != null) {
-                        UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(Long.parseLong(subcontractConsignmentVO.getCreateBy()));
-                        if (userCacheResDto != null) {
-                            subcontractConsignmentVO.setCreateName(userCacheResDto.getName());
-                        }
+                if (subcontractConsignmentVO.getBillingMode() != null) {
+                    subcontractConsignmentVO.setBillingModeLabel(chargingDictData == null ? null : chargingDictData.get(subcontractConsignmentVO.getBillingMode()));
+                }
+                if (subcontractConsignmentVO.getSettlementCycle() != null) {
+                    subcontractConsignmentVO.setSettlementCycleLabel(settlementDictData == null ? null : settlementDictData.get(subcontractConsignmentVO.getSettlementCycle()));
+                }
+                if (subcontractConsignmentVO.getCreateBy() != null) {
+                    UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(Long.parseLong(subcontractConsignmentVO.getCreateBy()));
+                    if (userCacheResDto != null) {
+                        subcontractConsignmentVO.setCreateName(userCacheResDto.getName());
                     }
-                    subcontractConsignmentVO.setLoadAddressDetail(subcontractConsignmentVO.getLoadCityName() + subcontractConsignmentVO.getLoadAddress());
-                    subcontractConsignmentVO.setUnloadAddressDetail(subcontractConsignmentVO.getUnloadCityName() + subcontractConsignmentVO.getUnloadAddress());
                 }
-                allList.addAll(list);
+                subcontractConsignmentVO.setLoadAddressDetail(subcontractConsignmentVO.getLoadCityName() + subcontractConsignmentVO.getLoadAddress());
+                subcontractConsignmentVO.setUnloadAddressDetail(subcontractConsignmentVO.getUnloadCityName() + subcontractConsignmentVO.getUnloadAddress());
             }
-        }
-        List<SubcontractConsignmentVO> returnList = allList.stream().skip((page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
-        PageResult build = PageResult.build(page, pageSize, allList.stream().count(), returnList);
-        return HttpResult.ok(build);
+            allList.addAll(voList);
+        }
+        return PageRes.build(pageInfo,allList);
+//        for (String lOrderId : stringList) {
+//            List<SubcontractConsignmentVO> list = logisticsOrderMapper.getSubcontractConsignmentNotPage(lOrderId);
+//            //联查数据
+//            if (CollectionUtils.isNotEmpty(list)) {
+//                for (SubcontractConsignmentVO subcontractConsignmentVO : list) {
+//                    //关联父级承运单据号
+//                    if (subcontractConsignmentVO.getPid() != null) {
+//                        KwtLogisticsOrder kwtLogisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>().eq(KwtLogisticsOrder::getId, subcontractConsignmentVO.getPid()));
+//                        if (kwtLogisticsOrder != null) {
+//                            subcontractConsignmentVO.setCarrierOrderNo(kwtLogisticsOrder.getLOrderNo());
+//                        }
+//                    }
+//                    subcontractConsignmentVO.setStatusLabel(LogisticsOrderEnum.getDestination(subcontractConsignmentVO.getStatus()));
+//                    if (subcontractConsignmentVO.getPriceType() != null) {
+//                        subcontractConsignmentVO.setPriceTypeLabel(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getPriceType()));
+//                    }
+//                    if (subcontractConsignmentVO.getLossUnit() != null) {
+//                        subcontractConsignmentVO.setLossUnitLabel(weightDictData == null ? null : weightDictData.get(subcontractConsignmentVO.getLossUnit()));
+//                    }
+//                    if (subcontractConsignmentVO.getGoodsPriceUnit() != null) {
+//                        subcontractConsignmentVO.setGoodsPriceUnitLabel(priceDictData == null ? null : priceDictData.get(subcontractConsignmentVO.getGoodsPriceUnit()));
+//                    }
+//                    //分包托运不需要展示签约方式
+////                subcontractConsignmentVO.setContractSigningWay(singDictData == null ? null : singDictData.get(subcontractConsignmentVO.getContractSigningWay()));
+//                    if (subcontractConsignmentVO.getBillingMode() != null) {
+//                        subcontractConsignmentVO.setBillingModeLabel(chargingDictData == null ? null : chargingDictData.get(subcontractConsignmentVO.getBillingMode()));
+//                    }
+//                    if (subcontractConsignmentVO.getSettlementCycle() != null) {
+//                        subcontractConsignmentVO.setSettlementCycleLabel(settlementDictData == null ? null : settlementDictData.get(subcontractConsignmentVO.getSettlementCycle()));
+//                    }
+//                    if (subcontractConsignmentVO.getCreateBy() != null) {
+//                        UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(Long.parseLong(subcontractConsignmentVO.getCreateBy()));
+//                        if (userCacheResDto != null) {
+//                            subcontractConsignmentVO.setCreateName(userCacheResDto.getName());
+//                        }
+//                    }
+//                    subcontractConsignmentVO.setLoadAddressDetail(subcontractConsignmentVO.getLoadCityName() + subcontractConsignmentVO.getLoadAddress());
+//                    subcontractConsignmentVO.setUnloadAddressDetail(subcontractConsignmentVO.getUnloadCityName() + subcontractConsignmentVO.getUnloadAddress());
+//                }
+//                allList.addAll(list);
+//            }
+//        }
+//        List<SubcontractConsignmentVO> returnList = allList.stream().skip((page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+//        PageResult build = PageResult.build(page, pageSize, allList.stream().count(), returnList);
+//        return HttpResult.ok(build);
     }
 
 

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

@@ -849,7 +849,7 @@ public class CommonService {
 //        return deficitPrice;
 
         if (StringUtils.isBlank(lossUnit)) {
-            loss = new BigDecimal(Global.AMOUNT);
+            lossUnit = String.valueOf(NumberConstant.ZERO);
         }
         //亏吨<=0
         if (deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {

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

@@ -45,8 +45,8 @@ 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.common.enums.OrderTypeEnum;
+import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;

+ 121 - 41
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
@@ -14,6 +16,7 @@ import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.enums.OrderRuleEnum;
 import com.sckw.core.model.enums.RedisOrderGenerateEnum;
+import com.sckw.core.model.page.PageRes;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.*;
 import com.sckw.core.web.constant.HttpStatus;
@@ -246,9 +249,9 @@ public class LogisticsConsignmentService {
 
 //        commonService.initIatingLogisticsConsignment(checkUnit, carriageUnit, lOrderNo, LoginUserHolder.getUserId(), LoginUserHolder.getEntId());
         commonService.newSendLogisticsOrderToMessage(checkUnit, carriageUnit, lOrderNo, LoginUserHolder.getUserId(), LoginUserHolder.getEntId(),
-                messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(),messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
-                messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(),messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
-                MessageEnum.INITIATING_LOGISTICS_CONSIGNMENT,MessageEnum.NEW_CARRIAGE_ORDER,"1");
+                messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(), messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
+                messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(), messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
+                MessageEnum.INITIATING_LOGISTICS_CONSIGNMENT, MessageEnum.NEW_CARRIAGE_ORDER, "1");
     }
 
     /**
@@ -679,6 +682,8 @@ public class LogisticsConsignmentService {
         }
         List<LogisticsOrderDTO> returnList = new ArrayList<>();
         stringList = stringList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
+        /**后期分页优化,可以使用此方法*/
+//        PageRes<LogisticsOrderDTO> logisticsOrderListByTradeOrderIds = getLogisticsOrderListByTradeOrderIds(stringList, page, pageSize, type);
         for (String id : stringList) {
             OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(id));
             if (orderDetailRes == null) {
@@ -732,6 +737,64 @@ public class LogisticsConsignmentService {
         return HttpResult.ok(build);
     }
 
+    /**
+     * 贸易订单或者物流订单分页优化代码
+     * @param stringList    贸易订单id集合
+     * @param page  分页数据
+     * @param pageSize  分页条数
+     * @param type  数据类型 1 采购2销售
+     * @return
+     */
+    public PageRes<LogisticsOrderDTO> getLogisticsOrderListByTradeOrderIds(List<String> stringList, Integer page, Integer pageSize, String type) {
+        PageHelper.startPage(page,pageSize);
+        List<Long> returnIds = new ArrayList<>();
+        for (String id : stringList) {
+            OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(id));
+            if (orderDetailRes == null) {
+                continue;
+            }
+            /**
+             * 0销售展示是供应配送  1采购展示是采购自提
+             * 根据提货方式(0供应配送/1采购自提)
+             * 决定托运数据是否展示
+             *
+             */
+            /**销售订单-供应配送的才能看*/
+            /**采购订单-采方自提的才能看*/
+            boolean flag = false;
+            if (String.valueOf(NumberConstant.ZERO).equals(orderDetailRes.getPickupType())) {
+                flag = true;
+                returnIds.add(Long.parseLong(id));
+            }
+        }
+        List<LogisticsOrderDTO> orderDTOList = kwtLogisticsOrderMapper.selectOrderListNotPageByIds(returnIds, type);
+        PageInfo<LogisticsOrderDTO> info = new PageInfo<>(orderDTOList);
+        if (CollectionUtils.isEmpty(orderDTOList)){
+            PageRes<LogisticsOrderDTO> pageRes = new PageRes<>();
+            pageRes.setPage(page);
+            pageRes.setPageSize(pageSize);
+            return pageRes;
+        }
+        /**计量单位*/
+        Map<String, String> unitTypeDictData = commonService.getDictData(DictTypeEnum.UNIT_TYPE.getType());
+        /**运价方式*/
+        Map<String, String> priceDictData = commonService.getDictData(DictTypeEnum.PRICE_TYPE.getType());
+        /**合理损耗*/
+        Map<String, String> taxRateTypeDictData = commonService.getDictData(DictTypeEnum.TAX_RATE_TYPE.getType());
+        for (LogisticsOrderDTO logisticsOrderDTO : orderDTOList) {
+            logisticsOrderDTO.setStatusLabel(LogisticsOrderEnum.getDestination(logisticsOrderDTO.getStatus()));
+            String createName = StringUtils.isBlank(logisticsOrderDTO.getCreateBy()) ? null :
+                    (remoteSystemService.queryUserCacheById(Long.parseLong(logisticsOrderDTO.getCreateBy())) == null ? null :
+                            remoteSystemService.queryUserCacheById(Long.parseLong(logisticsOrderDTO.getCreateBy())).getName());
+            logisticsOrderDTO.setCreateName(createName);
+            logisticsOrderDTO.setPriceLabel(priceDictData.get(logisticsOrderDTO.getPriceType()));
+            logisticsOrderDTO.setLossUnitLabel(taxRateTypeDictData.get(logisticsOrderDTO.getLossUnit()));
+            logisticsOrderDTO.setGoodsPriceUnitLabel(priceDictData.get(logisticsOrderDTO.getGoodsPriceUnit()));
+            logisticsOrderDTO.setUnitLabel(unitTypeDictData.get(logisticsOrderDTO.getUnit()));
+        }
+        return PageRes.build(info,orderDTOList);
+    }
+
     /**
      * 采购订单/销售订单-托运订单列表-下方数据统计
      *
@@ -883,39 +946,60 @@ public class LogisticsConsignmentService {
      * @param pageSize
      * @return
      */
-    public HttpResult purchaseLogisticsCar(String ids, Integer page, Integer pageSize) {
+    public PageRes<OrderCarDTO> purchaseLogisticsCar(String ids, Integer page, Integer pageSize) {
+        PageHelper.startPage(page,pageSize);
         List<String> stringList = StringUtils.splitStrToList(ids, String.class);
         if (CollectionUtils.isEmpty(stringList)) {
-            return HttpResult.ok();
+            PageRes<OrderCarDTO> pageRes = new PageRes<>();
+            pageRes.setPages(page);
+            pageRes.setPageSize(pageSize);
+            return pageRes;
         }
-        List<OrderCarDTO> returnList = new ArrayList<>();
-        stringList = stringList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
-        for (String id : stringList) {
-            List<OrderCarDTO> list = waybillOrderMapper.selectWaybillOrderCarListNotPage(id);
-            List<String> collect = list.stream().map(OrderCarDTO::getTruckNo).distinct().collect(Collectors.toList());
-            if (CollectionUtils.isNotEmpty(collect)) {
-                Map<String, RTruckVo> truck = remoteFleetService.findTruck(collect);
-                for (OrderCarDTO orderCarDTO : list) {
-//            orderCarDTO.setDriverId(String.valueOf(orderCarDTO.getDriverId()));
-//            orderCarDTO.setDriverName(orderCarDTO.getDriverName());
-//            orderCarDTO.setDriverPhone(orderCarDTO.getDriverPhone());
-//            orderCarDTO.setDriverCard(orderCarDTO.getDriverCard());
-                    orderCarDTO.setStatusLabel(CarWaybillEnum.getName(orderCarDTO.getStatus()));
-                    orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
-                            null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
-                            null : (String.valueOf(truck.get(orderCarDTO.getTruckNo()).getActualWeight()))));
-                }
-            }
-            if (CollectionUtils.isNotEmpty(list)) {
-                returnList.addAll(list);
-            }
+        List<Long> idsList = StringUtils.splitStrToList(ids, Long.class);
+        List<OrderCarDTO> orderCarList = waybillOrderMapper.selectWaybillOrderCarListByTradeOrderId(idsList);
+        PageInfo<OrderCarDTO> info = new PageInfo<>(orderCarList);
+        if (CollectionUtils.isEmpty(orderCarList)){
+            PageRes<OrderCarDTO> pageRes = new PageRes<>();
+            pageRes.setPage(page);
+            pageRes.setPageSize(pageSize);
+            return pageRes;
         }
-        List<OrderCarDTO> subList = new ArrayList<>();
-        if (CollectionUtils.isNotEmpty(returnList)) {
-            subList = returnList.stream().skip((page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+        List<String> collected = orderCarList.stream().map(OrderCarDTO::getTruckNo).distinct().collect(Collectors.toList());
+        for (OrderCarDTO orderCarDTO : orderCarList) {
+            if (CollectionUtils.isNotEmpty(collected)){
+                Map<String, RTruckVo> truck = remoteFleetService.findTruck(collected);
+                orderCarDTO.setStatusLabel(CarWaybillEnum.getName(orderCarDTO.getStatus()));
+                orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
+                        null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
+                        null : (String.valueOf(truck.get(orderCarDTO.getTruckNo()).getActualWeight()))));
+            }
         }
-        PageResult build = PageResult.build(page, pageSize, returnList.stream().count(), subList);
-        return HttpResult.ok(build);
+        List<OrderCarDTO> returnList = new ArrayList<>();
+        returnList.addAll(orderCarList);
+        return PageRes.build(info,returnList);
+//        stringList = stringList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
+//        for (String id : stringList) {
+//            List<OrderCarDTO> list = waybillOrderMapper.selectWaybillOrderCarListNotPage(id);
+//            List<String> collect = list.stream().map(OrderCarDTO::getTruckNo).distinct().collect(Collectors.toList());
+//            if (CollectionUtils.isNotEmpty(collect)) {
+//                Map<String, RTruckVo> truck = remoteFleetService.findTruck(collect);
+//                for (OrderCarDTO orderCarDTO : list) {
+//                    orderCarDTO.setStatusLabel(CarWaybillEnum.getName(orderCarDTO.getStatus()));
+//                    orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
+//                            null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
+//                            null : (String.valueOf(truck.get(orderCarDTO.getTruckNo()).getActualWeight()))));
+//                }
+//            }
+//            if (CollectionUtils.isNotEmpty(list)) {
+//                returnList.addAll(list);
+//            }
+//        }
+//        List<OrderCarDTO> subList = new ArrayList<>();
+//        if (CollectionUtils.isNotEmpty(returnList)) {
+//            subList = returnList.stream().skip((page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+//        }
+//        PageResult build = PageResult.build(page, pageSize, returnList.stream().count(), subList);
+//        return HttpResult.ok(build);
     }
 
     //    /**
@@ -955,10 +1039,6 @@ public class LogisticsConsignmentService {
             if (CollectionUtils.isNotEmpty(collect)) {
                 Map<String, RTruckVo> truck = remoteFleetService.findTruck(collect);
                 for (OrderCarDTO orderCarDTO : list) {
-//            orderCarDTO.setDriverId(String.valueOf(orderCarDTO.getDriverId()));
-//            orderCarDTO.setDriverName(orderCarDTO.getDriverName());
-//            orderCarDTO.setDriverPhone(orderCarDTO.getDriverPhone());
-//            orderCarDTO.setDriverCard(orderCarDTO.getDriverCard());
                     orderCarDTO.setStatusLabel(CarWaybillEnum.getName(orderCarDTO.getStatus()));
                     orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
                             null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
@@ -1111,8 +1191,8 @@ public class LogisticsConsignmentService {
 //                        kwtLogisticsOrder.getEntId(), MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS);
                 commonService.newSendLogisticsOrderToMessage(consignUnit, carriageUnit, kwtLogisticsOrder.getLOrderNo(), kwtLogisticsOrder.getCreateBy(),
                         kwtLogisticsOrder.getEntId(),
-                        messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(),messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
-                        messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(),messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
+                        messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(), messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
+                        messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(), messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
                         MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS,
                         "1");
             } else {
@@ -1211,9 +1291,9 @@ public class LogisticsConsignmentService {
 //                        kwtLogisticsOrder.getEntId(), MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS);
                 commonService.newSendLogisticsOrderToMessage(consignUnit, carriageUnit, kwtLogisticsOrder.getLOrderNo(), kwtLogisticsOrder.getCreateBy(),
                         kwtLogisticsOrder.getEntId(),
-                        messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(),messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
-                        messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(),messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
-                        MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS,"1");
+                        messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(), messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
+                        messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(), messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
+                        MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS, "1");
             } else {
                 result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
                 result.setMsg("操作失败:" + httpResult.getMsg());
@@ -1364,7 +1444,7 @@ public class LogisticsConsignmentService {
         HttpResult result1 = tradeOrderInfoService.createOrCancelLogisticsOrder(param);
         if (result1.getCode() != HttpStatus.SUCCESS_CODE) {
             log.info("采购订单/销售订单完结订单,返回信息:{}", "id:" + logisticsOrder.getTOrderId() + "orderNo" + logisticsOrder.getTOrderNo(), JSONObject.toJSONString(result1));
-            throw new BusinessException("{" + logisticsOrder.getTOrderNo() + "} 采购订单/销售订单完结订单失败!"+result1.getMsg());
+            throw new BusinessException("{" + logisticsOrder.getTOrderNo() + "} 采购订单/销售订单完结订单失败!" + result1.getMsg());
         }
         transportCommonService.closeHandle(logisticsOrder.getId());
         waybillOrderService.cancelSendCar(logisticsOrder.getId());

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

@@ -109,6 +109,43 @@
     </select>
 
 
+    <select id="selectOrderListNotPageByIds" resultType="com.sckw.transport.model.dto.LogisticsOrderDTO">
+        SELECT a.id               as lOrderId,
+        a.l_order_no       as lOrderNo,
+        b.`status`         as `status`,
+        a.t_order_id       as tOrderId,
+        a.t_order_no       as tOrderNo,
+        a.payment          as payment,
+        a.amount,
+        a.unit             as unit,
+        a.price,
+        a.price_type       as priceType,
+        a.loss,
+        a.loss_unit        AS lossUnit,
+        a.goods_price      as goodsPrice,
+        a.goods_price_unit as goodsPriceUnit,
+        c.firm_name        as companyName,
+        c.contacts,
+        c.phone,
+        a.create_by        as createBy,
+        a.create_time      as createTime
+        FROM kwt_logistics_order a
+        LEFT JOIN kwt_logistics_order_track b ON a.id = b.l_order_id and a.`status` = b.`status`
+        LEFT JOIN kwt_logistics_order_unit c ON a.id = c.l_order_id
+        WHERE a.del_flag = '0'
+        AND b.del_flag = '0'
+        <if test="type != null and type != ''">
+            AND c.unit_type = #{type}
+        </if>
+        <if test="ids != null and ids.size() > 0">
+            AND a.t_order_id in
+            <foreach collection="ids" separator="," open="(" close=")" item="item">
+                #{item}
+            </foreach>
+        </if>
+        order by createTime desc
+    </select>
+
     <select id="selectOrderListByTradeOrderIds" resultType="com.sckw.transport.model.dto.LogisticsOrderDTO">
         SELECT a.id               as lOrderId,
         a.l_order_no       as lOrderNo,
@@ -431,6 +468,71 @@
             limit #{page}, #{pageSize}
     </select>
 
+    <select id="getSubcontractConsignmentList" resultType="com.sckw.transport.model.vo.SubcontractConsignmentVO">
+        SELECT a.id,
+        a.pid,
+        a.`status` as status,
+        a.l_order_no as consignOrderNo,
+        <!--               a.l_order_no       as carrierOrderNo,-->
+        c.firm_name as carrierCompany,
+        d.goods_name as goodsName,
+        a.amount as carryingCapacity,
+        a.price,
+        a.price_type as priceType,
+        e.detail_address as loadAddress,
+        f.detail_address as unloadAddress,
+        a.billing_mode as billingMode,
+        a.loss,
+        a.loss_unit as lossUnit,
+        a.goods_price as goodsPrice,
+        a.goods_price_unit as goodsPriceUnit,
+        a.settlement_cycle as settlementCycle,
+        c.contacts as carrierContacts,
+        c.phone as carrierPhone,
+        b.firm_name as consignCompany,
+        b.contacts as consignContacts,
+        b.phone as consignPhone,
+        e.contacts as loadContacts,
+        e.phone as loadPhone,
+        f.contacts as unloadContacts,
+        f.phone as unloadPhone,
+        a.start_time as shipmentsDate,
+        a.end_time as receiveGoodsDate,
+        a.remark,
+        a.create_by as createBy,
+        a.create_time as createTime,
+        g.contract_id as contractId,
+        g.contract_no as contractNo,
+        g.contract_name as contractName,
+        g.signing_way as signing,
+        e.city_name as loadCityName,
+        f.city_name as unloadCityName
+        FROM kwt_logistics_order a
+        LEFT JOIN kwt_logistics_order_unit b ON a.id = b.l_order_id
+        AND b.unit_type = 1
+        LEFT JOIN kwt_logistics_order_unit c ON a.id = c.l_order_id
+        AND c.unit_type = 2
+        LEFT JOIN kwt_logistics_order_goods d ON a.id = d.l_order_id
+        LEFT JOIN kwt_logistics_order_address e ON a.id = e.l_order_id
+        AND e.address_type = 1
+        LEFT JOIN kwt_logistics_order_address f ON a.id = f.l_order_id
+        AND f.address_type = 2
+        LEFT JOIN kwt_logistics_order_contract g ON a.id = g.l_order_id
+        WHERE a.del_flag = 0
+        AND b.del_flag = 0
+        AND c.del_flag = 0
+        AND e.del_flag = 0
+        AND f.del_flag = 0
+        <if test="lOrderIds != null and lOrderIds.size() > 0">
+            and a.pid in
+            <foreach collection="lOrderIds" item="item" close=")" open="(" separator=",">
+                #{item,jdbcType=BIGINT}
+            </foreach>
+        </if>
+<!--        ORDER BY a.id desc-->
+        ORDER BY a.create_time desc
+    </select>
+
     <select id="getSubcontractConsignmentNotPage" resultType="com.sckw.transport.model.vo.SubcontractConsignmentVO">
         SELECT a.id,
         a.pid,

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

@@ -498,6 +498,32 @@
           and b.t_order_id = #{id,jdbcType=VARCHAR}
     </select>
 
+
+    <select id="selectWaybillOrderCarListByTradeOrderId" resultType="com.sckw.transport.model.dto.OrderCarDTO">
+        SELECT a.id            as wOrderId,
+        a.w_order_no    as wOrderNo,
+        a.driver_id     as driverId,
+        a.driver_name   as driverName,
+        a.driver_phone  as driverPhone,
+        a.driver_idcard as driverCard,
+        a.truck_no      as truckNo,
+        a.status        as status,
+        a.l_order_id    as lOrderId,
+        b.l_order_no    as lOrderNo,
+        b.t_order_id    as tOrderId,
+        b.t_order_no    as tOrderNo
+        FROM kwt_waybill_order a
+        LEFT JOIN kwt_logistics_order b ON a.l_order_id = b.id
+        WHERE a.del_flag = 0
+        and b.del_flag = 0
+        <if test="ids != null and ids.size() > 0">
+            and b.t_order_id in
+            <foreach collection="ids" item="item" close=")" open="(" separator=",">
+                #{item,jdbcType=BIGINT}
+            </foreach>
+        </if>
+    </select>
+
     <select id="selectWaybillOrderCountByStatus">
         SELECT COUNT(id)
         FROM kwt_waybill_order