Explorar el Código

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

czh hace 2 años
padre
commit
104ff5762e
Se han modificado 38 ficheros con 1170 adiciones y 416 borrados
  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. 1 1
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml
  5. 2 2
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckReportMapper.xml
  6. 5 0
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/req/BannerQueryReqVo.java
  7. 2 2
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/service/BannerService.java
  8. 13 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  9. 19 2
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTransportDemandService.java
  10. 11 2
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwpWantBuyService.java
  11. 20 3
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerLogisticsMapper.java
  12. 8 3
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerTradeMapper.java
  13. 7 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/KwpLedgerLogisticsUnit.java
  14. 5 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/KwpLedgerTradeUnit.java
  15. 4 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/res/ChannelDetail.java
  16. 13 4
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java
  17. 13 8
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java
  18. 2 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/WalletService.java
  19. 235 16
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerLogisticsMapper.xml
  20. 247 11
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerTradeMapper.xml
  21. 19 5
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  22. 2 1
      sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/WorkbenchPurchaseVO.java
  23. 29 8
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  24. 16 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderStatisticsService.java
  25. 6 99
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  26. 8 7
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java
  27. 3 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  28. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java
  29. 10 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  30. 9 14
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java
  31. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/SubcontractConsignmentVO.java
  32. 94 43
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  33. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/CommonService.java
  34. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  35. 121 41
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  36. 21 120
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java
  37. 102 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml
  38. 51 13
      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");

+ 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

+ 5 - 0
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/req/BannerQueryReqVo.java

@@ -52,4 +52,9 @@ public class BannerQueryReqVo extends PageRequest implements Serializable {
      */
     private String Keywords;
 
+    /**
+     * 搜索
+     */
+    private Integer district;
+
 }

+ 2 - 2
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/service/BannerService.java

@@ -76,7 +76,7 @@ public class BannerService {
      */
     private List<KwoBanner> findList(BannerQueryReqVo reqVo) {
         LambdaQueryWrapper<KwoBanner> wrapper = new LambdaQueryWrapper<>();
-        if(Objects.isNull(reqVo.getStatus()))
+        if(Objects.nonNull(reqVo.getDistrict()))
         {
             reqVo.setStatus(1);
         }
@@ -85,7 +85,7 @@ public class BannerService {
                 and(StringUtils.isNotBlank(reqVo.getKeywords()),
                         wq -> wq.like(KwoBanner::getUrl, reqVo.getKeywords()).or().
                                 like(KwoBanner::getClientType, reqVo.getKeywords())).
-                orderByDesc(KwoBanner::getUpdateTime);
+                orderByDesc(KwoBanner::getDistrict,KwoBanner::getSort);
 
         if (Objects.nonNull(reqVo.getStartTime())) {
             wrapper.ge(KwoBanner::getStartTime, reqVo.getStartTime());

+ 13 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -771,7 +771,19 @@ public class KwoTradeOrderService {
                 .setPrice(param.getPrice()).setTrading(param.getTrading()).setPickupType(param.getPickupType())
                 .setDeliveryType(param.getDeliveryType()).setStartTime(param.getStartTime()).setEndTime(param.getEndTime())
                 .setRemark(param.getRemark());
-        kwoTradeOrderMapper.updateById(order);
+        LambdaUpdateWrapper<KwoTradeOrder> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.set(KwoTradeOrder::getAmount, order.getAmount())
+                .set(KwoTradeOrder::getUnit, order.getUnit())
+                .set(KwoTradeOrder::getPrice, order.getPrice())
+                .set(KwoTradeOrder::getTrading, order.getTrading())
+                .set(KwoTradeOrder::getPickupType, order.getPickupType())
+                .set(KwoTradeOrder::getDeliveryType, order.getDeliveryType())
+                .set(KwoTradeOrder::getStartTime, order.getStartTime())
+                .set(KwoTradeOrder::getEndTime, order.getEndTime())
+                .set(KwoTradeOrder::getRemark, order.getRemark())
+                .set(KwoTradeOrder::getStatus, order.getStatus())
+                .eq(KwoTradeOrder::getId, order.getId());
+        kwoTradeOrderMapper.update(null, wrapper);
         ValetOrderParam valetOrderParam = BeanUtils.copyProperties(param, ValetOrderParam.class);
 
         addOtherOrderInfo(order, valetOrderParam, true);

+ 19 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTransportDemandService.java

@@ -145,8 +145,25 @@ public class KwoTransportDemandService {
         if (Objects.isNull(demand)) {
             throw new BusinessException("数据不存在!");
         }
-        BeanUtils.copyProperties(param, demand);
-        kwoTransportDemandMapper.updateById(demand);
+        LambdaUpdateWrapper<KwoTransportDemand> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.set(KwoTransportDemand::getName, param.getName())
+                .set(KwoTransportDemand::getGoodsType, param.getGoodsType())
+                .set(KwoTransportDemand::getSpec, param.getSpec())
+                .set(KwoTransportDemand::getTrading, param.getTrading())
+                .set(KwoTransportDemand::getPrice, param.getPrice())
+                .set(KwoTransportDemand::getAmount, param.getAmount())
+                .set(KwoTransportDemand::getDeadline, param.getDeadline())
+                .set(KwoTransportDemand::getContacts, param.getContacts())
+                .set(KwoTransportDemand::getPhone, param.getPhone())
+                .set(KwoTransportDemand::getLoadAreaCode, param.getLoadAreaCode())
+                .set(KwoTransportDemand::getLoadAreaName, param.getLoadAreaName())
+                .set(KwoTransportDemand::getLoadDetailAddress, param.getLoadDetailAddress())
+                .set(KwoTransportDemand::getUnloadAreaCode, param.getUnloadAreaCode())
+                .set(KwoTransportDemand::getUnloadAreaName, param.getUnloadAreaName())
+                .set(KwoTransportDemand::getUnloadDetailAddress, param.getUnloadDetailAddress())
+                .set(KwoTransportDemand::getRemark, param.getRemark())
+                .eq(KwoTransportDemand::getId, param.getId());
+        kwoTransportDemandMapper.update(null, wrapper);
     }
 
     /**

+ 11 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwpWantBuyService.java

@@ -420,8 +420,17 @@ public class KwpWantBuyService {
             throw new BusinessException("求购信息不存在");
         }
         //1.更新求购信息
-        BeanUtils.copyProperties(param, kwoWantBuy);
-        kwpWantBuyMapper.updateById(kwoWantBuy);
+        LambdaUpdateWrapper<KwoWantBuy> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.set(KwoWantBuy::getName, param.getName())
+                .set(KwoWantBuy::getGoodsType, param.getGoodsType())
+                .set(KwoWantBuy::getSpec, param.getSpec())
+                .set(KwoWantBuy::getPrice, param.getPrice())
+                .set(KwoWantBuy::getAmount, param.getAmount())
+                .set(KwoWantBuy::getContacts, param.getContacts())
+                .set(KwoWantBuy::getPhone, param.getPhone())
+                .set(KwoWantBuy::getRemark, param.getRemark())
+                .eq(KwoWantBuy::getId, param.getId());
+        kwpWantBuyMapper.update(null, wrapper);
         //2.更新求购地址信息
         kwoWantBuyAddressService.delAddressByWantBuyIds(List.of(id));
         if (Objects.nonNull(param.getAddressInfo())) {

+ 20 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerLogisticsMapper.java

@@ -30,7 +30,7 @@ public interface KwpLedgerLogisticsMapper extends BaseMapper<KwpLedgerLogistics>
      * @param logisticsReq
      * @return
      */
-    List<LedgerShipperDto> shipperSelect(@Param("logisticsReq") LogisticsReq logisticsReq);
+    List<LedgerShipperDto> shipperSelect(@Param("logisticsReq") LogisticsReq logisticsReq, @Param("authList") List<Long> authList);
 
     /**
      * 运营端
@@ -46,7 +46,7 @@ public interface KwpLedgerLogisticsMapper extends BaseMapper<KwpLedgerLogistics>
      * @param logisticsReq
      * @return
      */
-    List<LedgerCarrierDto> carrierSelect(@Param("logisticsReq") LogisticsReq logisticsReq);
+    List<LedgerCarrierDto> carrierSelect(@Param("logisticsReq") LogisticsReq logisticsReq, @Param("authList") List<Long> authList);
 
     /**
      * 统计订单数量
@@ -56,6 +56,23 @@ public interface KwpLedgerLogisticsMapper extends BaseMapper<KwpLedgerLogistics>
      */
     Map<String, Long> countOrder(@Param("logisticsReq") LogisticsReq logisticsReq);
 
+    /**
+     * 承运方统计订单数量
+     *
+     * @param logisticsReq
+     * @return
+     */
+    Map<String, Long> countSendOrder(@Param("logisticsReq") LogisticsReq logisticsReq, @Param("authList") List<Long> authList);
+
+    /**
+     * 托运方统计订单数量
+     *
+     * @param logisticsReq
+     * @param authList
+     * @return
+     */
+    Map<String, Long> countAuditOrder(@Param("logisticsReq") LogisticsReq logisticsReq, @Param("authList") List<Long> authList);
+
     /**
      * 运营端统计
      *
@@ -124,5 +141,5 @@ public interface KwpLedgerLogisticsMapper extends BaseMapper<KwpLedgerLogistics>
      * @param idList
      * @return
      */
-    List<LedgerLogisticsDto> exportList(@Param("logisticsReq") LogisticsReq logisticsReq, @Param("idList") List<Long> idList);
+    List<LedgerLogisticsDto> exportList(@Param("logisticsReq") LogisticsReq logisticsReq, @Param("idList") List<Long> idList, @Param("authList") List<Long> authList);
 }

+ 8 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dao/KwpLedgerTradeMapper.java

@@ -23,7 +23,7 @@ import java.util.Map;
 @Mapper
 public interface KwpLedgerTradeMapper extends BaseMapper<KwpLedgerTrade> {
 
-    List<LedgerSellDto> sellList(@Param("tradeReq") TradeReq tradeReq);
+    List<LedgerSellDto> sellList(@Param("tradeReq") TradeReq tradeReq, @Param("authList") List<Long> authList);
 
     /**
      * 运营端 对账列表数据
@@ -40,7 +40,7 @@ public interface KwpLedgerTradeMapper extends BaseMapper<KwpLedgerTrade> {
      * @return
      */
 
-    List<LedgerPurchaseDto> purchaseList(@Param("tradeReq") TradeReq tradeReq);
+    List<LedgerPurchaseDto> purchaseList(@Param("tradeReq") TradeReq tradeReq, @Param("authList") List<Long> authList);
 
     /**
      * 统计对账单数量
@@ -50,6 +50,10 @@ public interface KwpLedgerTradeMapper extends BaseMapper<KwpLedgerTrade> {
      */
     Map<String, Long> countOrder(@Param("tradeReq") TradeReq tradeReq);
 
+    Map<String, Long> countSellOrder(@Param("tradeReq") TradeReq tradeReq, @Param("authList") List<Long> authList);
+
+    Map<String, Long> countPurchaseOrder(@Param("tradeReq") TradeReq tradeReq, @Param("authList") List<Long> authList);
+
     /**
      * 运营端统计对账单数量
      *
@@ -72,6 +76,7 @@ public interface KwpLedgerTradeMapper extends BaseMapper<KwpLedgerTrade> {
      * @return
      */
     Long countSum(@Param("tradeReq") TradeReq tradeReq, @Param("status") List<Integer> status);
+
     /**
      * app端对账统计
      *
@@ -100,5 +105,5 @@ public interface KwpLedgerTradeMapper extends BaseMapper<KwpLedgerTrade> {
      */
     List<LedgerSell> selectIds(@Param("ids") List<Long> ids);
 
-    List<LedgerTradeDto> exportList(@Param("tradeReq") TradeReq tradeReq, @Param("idList") List<Long> idList);
+    List<LedgerTradeDto> exportList(@Param("tradeReq") TradeReq tradeReq, @Param("idList") List<Long> idList, @Param("authList") List<Long> authList);
 }

+ 7 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/KwpLedgerLogisticsUnit.java

@@ -16,8 +16,8 @@ import java.time.LocalDateTime;
  */
 
 /**
-    * 物流对账单托运方或承运方企业信息
-    */
+ * 物流对账单托运方或承运方企业信息
+ */
 @Getter
 @Setter
 @ToString
@@ -70,6 +70,11 @@ public class KwpLedgerLogisticsUnit {
      */
     @TableField(value = "contacts")
     private String contacts;
+    /**
+     * 联系人ID
+     */
+    @TableField(value = "contacts_id")
+    private Long contactsId;
 
     /**
      * 联系电话

+ 5 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/KwpLedgerTradeUnit.java

@@ -67,6 +67,11 @@ public class KwpLedgerTradeUnit {
      */
     @TableField(value = "contacts")
     private String contacts;
+    /**
+     * 联系人ID
+     */
+    @TableField(value = "contacts_id")
+    private Long contactsId;
 
     /**
      * 联系电话

+ 4 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/res/ChannelDetail.java

@@ -23,6 +23,10 @@ public class ChannelDetail implements Serializable {
      * 渠道名称
      */
     private String name;
+    /**
+     * 当前企业在当前渠道的中台用户id
+     */
+    private String uid;
 
     /**
      * 可用金额统计

+ 13 - 4
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java

@@ -122,7 +122,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         logisticsReq.setUnitType(LogisticsUnitType.CARRIER);
         logisticsReq.setUnitTypeTwo(LogisticsUnitType.SHIPPER);
         PageHelper.startPage(logisticsReq.getPage(), logisticsReq.getPageSize());
-        List<LedgerShipperDto> kwpLedgerLogisticsList = logisticsMapper.shipperSelect(logisticsReq);
+        List<LedgerShipperDto> kwpLedgerLogisticsList = logisticsMapper.shipperSelect(logisticsReq, LoginUserHolder.getAuthUserIdList());
         PageInfo<ILedger> ledgerShipperDtoPageInfo = new PageInfo<>(kwpLedgerLogisticsList);
         //字典转换
         if (!CollectionUtils.isEmpty(kwpLedgerLogisticsList)) {
@@ -156,7 +156,8 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         logisticsReq.setUnitType(LogisticsUnitType.SHIPPER);
         logisticsReq.setUnitTypeTwo(LogisticsUnitType.CARRIER);
         PageHelper.startPage(logisticsReq.getPage(), logisticsReq.getPageSize());
-        List<LedgerCarrierDto> kwpLedgerLogisticsList = logisticsMapper.carrierSelect(logisticsReq);
+        List<Long> authUserIdList = LoginUserHolder.getAuthUserIdList();
+        List<LedgerCarrierDto> kwpLedgerLogisticsList = logisticsMapper.carrierSelect(logisticsReq, authUserIdList);
         PageInfo<ILedger> ledgerShipperDtoPageInfo = new PageInfo<>(kwpLedgerLogisticsList);
         //字典转换
         if (!CollectionUtils.isEmpty(kwpLedgerLogisticsList)) {
@@ -333,6 +334,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogisticsUnit.setTopEntId(entCacheResDto.getId());
         kwpLedgerLogisticsUnit.setFirmName(entCacheResDto.getFirmName());
         kwpLedgerLogisticsUnit.setContacts(entCacheResDto.getContacts());
+        kwpLedgerLogisticsUnit.setContactsId(entCacheResDto.getContactsId());
         kwpLedgerLogisticsUnit.setPhone(entCacheResDto.getPhone());
         kwpLedgerLogisticsUnit.setRemark(Global.EMPTY_STRING);
         kwpLedgerLogisticsUnit.setStatus(NumberConstant.ZERO);
@@ -360,6 +362,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         carrierUnit.setTopEntId(entCacheResDto1.getId());
         carrierUnit.setFirmName(entCacheResDto1.getFirmName());
         carrierUnit.setContacts(entCacheResDto1.getContacts());
+        carrierUnit.setContactsId(entCacheResDto1.getContactsId());
         carrierUnit.setPhone(entCacheResDto1.getPhone());
         carrierUnit.setRemark(Global.EMPTY_STRING);
         carrierUnit.setStatus(NumberConstant.ZERO);
@@ -647,7 +650,13 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      */
     public List<TableTop> orderCount(LogisticsReq logisticsReq) {
         logisticsReq.setEntId(LoginUserHolder.getEntId());
-        Map<String, Long> map = logisticsMapper.countOrder(logisticsReq);
+        Map<String, Long> map;
+        List<Long> authUserIdList = LoginUserHolder.getAuthUserIdList();
+        if (Objects.equals(logisticsReq.getUnitType(), LogisticsUnitType.SHIPPER)) {
+            map = logisticsMapper.countSendOrder(logisticsReq, authUserIdList);
+        } else {
+            map = logisticsMapper.countAuditOrder(logisticsReq, authUserIdList);
+        }
         TableTop ledgerCountVo;
         /*统计数据转换*/
         List<TableTop> res = new ArrayList<>();
@@ -804,7 +813,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
 
     public List<LedgerLogisticsDto> exportList(LogisticsReq logisticsReq, List<Long> idList) {
         fillPara(logisticsReq);
-        List<LedgerLogisticsDto> ledgerLogisticsDtos = logisticsMapper.exportList(logisticsReq, idList);
+        List<LedgerLogisticsDto> ledgerLogisticsDtos = logisticsMapper.exportList(logisticsReq, idList, LoginUserHolder.getAuthUserIdList());
         changeDict(ledgerLogisticsDtos);
         return ledgerLogisticsDtos;
     }

+ 13 - 8
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java

@@ -18,10 +18,7 @@ import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.*;
 import com.sckw.payment.dao.KwpLedgerTradeMapper;
 import com.sckw.payment.model.*;
-import com.sckw.payment.model.constant.LedgerEnum;
-import com.sckw.payment.model.constant.SettlementEnum;
-import com.sckw.payment.model.constant.TradeUnitType;
-import com.sckw.payment.model.constant.TradingEnum;
+import com.sckw.payment.model.constant.*;
 import com.sckw.payment.model.dto.*;
 import com.sckw.payment.model.vo.req.*;
 import com.sckw.payment.model.vo.res.LedgerCountSumVo;
@@ -128,7 +125,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         }
         tradeReq.setUnitType(TradeUnitType.PURCHASE);
         tradeReq.setUnitTypeTwo(TradeUnitType.SELL);
-        List<LedgerSellDto> ledgerTradeDto = tradeMapper.sellList(tradeReq);
+        List<LedgerSellDto> ledgerTradeDto = tradeMapper.sellList(tradeReq, LoginUserHolder.getAuthUserIdList());
         //字典转换
         if (!CollectionUtils.isEmpty(ledgerTradeDto)) {
             changeDict(ledgerTradeDto);
@@ -167,7 +164,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         }
         tradeReq.setUnitType(TradeUnitType.SELL);
         tradeReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
-        List<LedgerPurchaseDto> ledgerTradeDto = tradeMapper.purchaseList(tradeReq);
+        List<LedgerPurchaseDto> ledgerTradeDto = tradeMapper.purchaseList(tradeReq, LoginUserHolder.getAuthUserIdList());
         //字典转换
         if (!CollectionUtils.isEmpty(ledgerTradeDto)) {
             changeDict(ledgerTradeDto);
@@ -317,6 +314,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         kwpLedgerTradeUnit.setTopEntId(entCacheResDto.getId());
         kwpLedgerTradeUnit.setFirmName(entCacheResDto.getFirmName());
         kwpLedgerTradeUnit.setContacts(entCacheResDto.getContacts());
+        kwpLedgerTradeUnit.setContactsId(entCacheResDto.getContactsId());
         kwpLedgerTradeUnit.setPhone(entCacheResDto.getPhone());
         kwpLedgerTradeUnit.setRemark(Global.EMPTY_STRING);
         kwpLedgerTradeUnit.setStatus(NumberConstant.ZERO);
@@ -343,6 +341,7 @@ public class KwpLedgerTradeService extends AbsLedger {
         sellLedgerTradeUnit.setTopEntId(entCacheResDto1.getId());
         sellLedgerTradeUnit.setFirmName(entCacheResDto1.getFirmName());
         sellLedgerTradeUnit.setContacts(entCacheResDto1.getContacts());
+        sellLedgerTradeUnit.setContactsId(entCacheResDto1.getContactsId());
         sellLedgerTradeUnit.setPhone(entCacheResDto1.getPhone());
         sellLedgerTradeUnit.setRemark(Global.EMPTY_STRING);
         sellLedgerTradeUnit.setStatus(NumberConstant.ZERO);
@@ -678,7 +677,13 @@ public class KwpLedgerTradeService extends AbsLedger {
      */
     public List<TableTop> orderCount(TradeReq tradeReq) {
         tradeReq.setEntId(LoginUserHolder.getEntId());
-        Map<String, Long> map = tradeMapper.countOrder(tradeReq);
+        Map<String, Long> map;
+        List<Long> authUserIdList = LoginUserHolder.getAuthUserIdList();
+        if (Objects.equals(tradeReq.getUnitTypeTwo(), TradeUnitType.SELL)) {
+            map = tradeMapper.countSellOrder(tradeReq, authUserIdList);
+        } else {
+            map = tradeMapper.countPurchaseOrder(tradeReq, authUserIdList);
+        }
         TableTop ledgerCountVo;
         List<TableTop> res = new ArrayList<>();
         for (LedgerEnum value : LedgerEnum.values()) {
@@ -912,7 +917,7 @@ public class KwpLedgerTradeService extends AbsLedger {
 
     public List<LedgerTradeDto> exportList(TradeReq tradeReq, List<Long> idList) {
         fillPara(tradeReq);
-        List<LedgerTradeDto> ledgerTradeDtos = tradeMapper.exportList(tradeReq, idList);
+        List<LedgerTradeDto> ledgerTradeDtos = tradeMapper.exportList(tradeReq, idList, LoginUserHolder.getAuthUserIdList());
         changeDict(ledgerTradeDtos);
         return ledgerTradeDtos;
     }

+ 2 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/WalletService.java

@@ -386,6 +386,7 @@ public class WalletService {
                 List<ChannelDetail> res = new ArrayList<>();
                 for (WalletChannelEnum value : WalletChannelEnum.channelEnumList()) {
                     ChannelDetail channelDetail = new ChannelDetail();
+                    channelDetail.setUid(uid);
                     channelDetail.setChannel(value.getChannel());
                     channelDetail.setName(value.getDesc());
                     channelDetail.setMoney("-");
@@ -398,6 +399,7 @@ public class WalletService {
         }
         return WalletChannelEnum.channelEnumList().stream().map(a -> {
             ChannelDetail channelDetail = new ChannelDetail();
+            channelDetail.setUid("");
             channelDetail.setChannel(a.getChannel());
             channelDetail.setName(a.getDesc());
             channelDetail.setMoney("-");

+ 235 - 16
sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerLogisticsMapper.xml

@@ -147,6 +147,33 @@
                         or kllu.contacts like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
                     )
             </if>
+            <if test="authList != null and authList.size() != 0">
+                and (
+                case
+                    when kll.status = 2 then
+                        true
+                when kll.status in (3, 4, 5) then
+                (
+                (
+                    kllu2.contacts_id in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>)
+                or
+            (
+            select kllt.id
+            from kwp_ledger_logistics_track kllt where kllt.del_flag = 0
+                                                   and kllt.l_ledger_id = kll.id
+                                                   and kllt.status in (3, 5)
+                                                   and kllt.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                )
+                    )
+                    end
+                    )
+            </if>
         </where>
         order by kll.generate_time desc
     </select>
@@ -359,10 +386,151 @@
                         or kllu.contacts like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
                     )
             </if>
+            <if test="authList != null and authList.size() != 0">
+                and (
+                case when kll.status in (1, 6)
+                    then
+                    kll.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                when kll.status in (2, 3, 4, 5) then
+                (
+                    kll.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                or kllu2.contacts_id in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                )
+                    end
+                    )
+            </if>
         </where>
         order by kll.generate_time desc
     </select>
-
+    <!--对账发起方-->
+    <select id="countSendOrder" resultType="java.util.Map">
+        SELECT count(1)                           "0",
+               count(IF(kll.status = 1, 1, NULL)) "1",
+               count(IF(kll.status = 2, 1, NULL)) "2",
+               count(IF(kll.status = 3, 1, NULL)) "3",
+               count(IF(kll.status = 4, 1, NULL)) "4",
+               count(IF(kll.status = 5, 1, NULL)) "5",
+               count(IF(kll.status = 6, 1, NULL)) "6"
+        FROM kwp_ledger_logistics kll
+                 inner join kwp_ledger_logistics_unit kllu
+                            on kll.id = kllu.l_ledger_id and kllu.del_flag = 0 and
+                               kllu.unit_type = #{logisticsReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_logistics_unit kllu2
+                            on kll.id = kllu2.l_ledger_id and kllu2.del_flag = 0 and
+                               kllu2.unit_type = #{logisticsReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            kll.del_flag = 0
+              and kllu2.top_ent_id = #{logisticsReq.entId,jdbcType=BIGINT}
+            <if test="logisticsReq.trading != null">
+                and kll.trading = #{logisticsReq.trading,jdbcType=INTEGER}
+            </if>
+            <if test="logisticsReq.startCreateTime != null and logisticsReq.startCreateTime != '' and logisticsReq.endCreateTime != null and logisticsReq.endCreateTime != ''">
+                and kll.generate_time between #{logisticsReq.startCreateTime,jdbcType=TIMESTAMP}
+                    and #{logisticsReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="logisticsReq.keywords != null and logisticsReq.keywords != ''">
+                and (
+                            kll.l_ledger_no like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kllu.firm_name like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kllu.contacts like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
+                    )
+            </if>
+            <if test="authList != null and authList.size() != 0">
+                and (
+                case when kll.status in (1, 6)
+                    then
+                    kll.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                when kll.status in (2, 3, 4, 5) then
+                (
+                    kll.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                or kllu2.contacts_id in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                )
+                    end
+                    )
+            </if>
+        </where>
+    </select>
+    <!--对账审核方-->
+    <select id="countAuditOrder" resultType="java.util.Map">
+        SELECT count(1)                           "0",
+               count(IF(kll.status = 1, 1, NULL)) "1",
+               count(IF(kll.status = 2, 1, NULL)) "2",
+               count(IF(kll.status = 3, 1, NULL)) "3",
+               count(IF(kll.status = 4, 1, NULL)) "4",
+               count(IF(kll.status = 5, 1, NULL)) "5",
+               count(IF(kll.status = 6, 1, NULL)) "6"
+        FROM kwp_ledger_logistics kll
+                 inner join kwp_ledger_logistics_unit kllu
+                            on kll.id = kllu.l_ledger_id and kllu.del_flag = 0 and
+                               kllu.unit_type = #{logisticsReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_logistics_unit kllu2
+                            on kll.id = kllu2.l_ledger_id and kllu2.del_flag = 0 and
+                               kllu2.unit_type = #{logisticsReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            kll.del_flag = 0
+              and kllu2.top_ent_id = #{logisticsReq.entId,jdbcType=BIGINT}
+              and kll.status not in (1, 6)
+            <if test="logisticsReq.trading != null">
+                and kll.trading = #{logisticsReq.trading,jdbcType=INTEGER}
+            </if>
+            <if test="logisticsReq.startCreateTime != null and logisticsReq.startCreateTime != '' and logisticsReq.endCreateTime != null and logisticsReq.endCreateTime != ''">
+                and kll.generate_time between #{logisticsReq.startCreateTime,jdbcType=TIMESTAMP}
+                    and #{logisticsReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="logisticsReq.keywords != null and logisticsReq.keywords != ''">
+                and (
+                            kll.l_ledger_no like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kllu.firm_name like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kllu.contacts like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
+                    )
+            </if>
+            <if test="authList != null and authList.size() != 0">
+                and (
+                case
+                    when kll.status = 2 then
+                        true
+                when kll.status in (3, 4, 5) then
+                (
+                (
+                    kllu2.contacts_id in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>)
+                or
+            (
+            select kllt.id
+            from kwp_ledger_logistics_track kllt where kllt.del_flag = 0
+                                                   and kllt.l_ledger_id = kll.id
+                                                   and kllt.status in (3, 5)
+                                                   and kllt.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                )
+                    )
+                    end
+                    )
+            </if>
+        </where>
+    </select>
     <select id="countOrder" resultType="java.util.Map">
         SELECT count(1)                           "0",
                count(IF(kll.status = 1, 1, NULL)) "1",
@@ -507,31 +675,31 @@
 
     <select id="exportList" resultType="com.sckw.payment.model.dto.LedgerLogisticsDto">
         select kll.id,
-               kll.l_ledger_no                  lLedgerNo,
+               kll.l_ledger_no                     lLedgerNo,
                kll.name,
-               kll.start_time                   startTime,
-               kll.end_time                     endTime,
-               kll.tax_rate                     taxRate,
+               kll.start_time                      startTime,
+               kll.end_time                        endTime,
+               kll.tax_rate                        taxRate,
                kll.trading,
-               kll.total_price                  totalPrice,
-               kll.ex_tax_price                 exTaxPrice,
-               kll.settle_price                 settlePrice,
-               kll.actual_price                 actualPrice,
+               kll.total_price                     totalPrice,
+               kll.ex_tax_price                    exTaxPrice,
+               kll.settle_price                    settlePrice,
+               kll.actual_price                    actualPrice,
                kll.url,
-               kll.generate_time                generateTime,
-               kll.receipt_time                 receiptTime,
+               kll.generate_time                   generateTime,
+               kll.receipt_time                    receiptTime,
                kll.remark,
                kll.status,
-               kll.create_by                    createBy,
-               kllu.top_ent_id                  checkEntId,
+               kll.create_by                       createBy,
+               kllu.top_ent_id                     checkEntId,
                (case
                     when #{logisticsReq.unitType,jdbcType=INTEGER} = 1 then kll.audit_user
-                    else kll.success_user end) as contacts,
+                    else kll.success_user end)  as contacts,
                (case
                     when #{logisticsReq.unitType,jdbcType=INTEGER} = 1 then kll.audit_phone
                     else kll.success_phone end) as phone,
-               kllu.firm_name                   firmName,
-               kll.order_count                  orderCount
+               kllu.firm_name                      firmName,
+               kll.order_count                     orderCount
         from kwp_ledger_logistics kll
                  inner join kwp_ledger_logistics_unit kllu
                             on kll.id = kllu.l_ledger_id and kllu.del_flag = 0 and
@@ -567,6 +735,57 @@
                                 or kllu.contacts like concat('%', #{logisticsReq.keywords,jdbcType=VARCHAR}, '%')
                             )
                     </if>
+                    <if test="authList != null and authList.size() != 0">
+                        <if test="logisticsReq.unitType == 1">
+                            and (
+                            case when kll.status in (1, 6)
+                                then
+                                kll.create_by in
+                            <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                                #{item,jdbcType=BIGINT}
+                            </foreach>
+                            when kll.status in (2, 3, 4, 5) then
+                            (
+                                kll.create_by in
+                            <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                                #{item,jdbcType=BIGINT}
+                            </foreach>
+                            or kllu2.contacts_id in
+                            <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                                #{item,jdbcType=BIGINT}
+                            </foreach>
+                            )
+                                end
+                                )
+                        </if>
+                        <if test="logisticsReq.unitType == 2">
+                            and (
+                            case
+                                when kll.status = 2 then
+                                    true
+                            when kll.status in (3, 4, 5) then
+                            (
+                            (
+                                kllu2.contacts_id in
+                            <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                                #{item,jdbcType=BIGINT}
+                            </foreach>)
+                            or
+                        (
+                        select kllt.id
+                        from kwp_ledger_logistics_track kllt where kllt.del_flag = 0
+                                                               and kllt.l_ledger_id = kll.id
+                                                               and kllt.status in (3, 5)
+                                                               and kllt.create_by in
+                            <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                                #{item,jdbcType=BIGINT}
+                            </foreach>
+                            )
+                                )
+                                end
+                                )
+                        </if>
+                    </if>
                 </otherwise>
             </choose>
         </where>

+ 247 - 11
sckw-modules/sckw-payment/src/main/resources/mapper/KwpLedgerTradeMapper.xml

@@ -149,6 +149,28 @@
                         , '%')
                     )
             </if>
+            <if test="authList != null and authList.size() != 0">
+                and (
+                case when klt.status in (1, 6)
+                    then
+                    klt.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                when klt.status in (2, 3, 4, 5) then
+                (
+                    klt.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                or kltu2.contacts_id in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                )
+                    end
+                    )
+            </if>
         </where>
         order by klt.generate_time desc
     </select>
@@ -299,6 +321,33 @@
                         , '%')
                     )
             </if>
+            <if test="authList != null and authList.size() != 0">
+                and (
+                case
+                    when klt.status = 2 then
+                        true
+                when klt.status in (3, 4, 5) then
+                (
+                (
+                    kltu2.contacts_id in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>)
+                or
+            (
+            select kllt.id
+            from kwp_ledger_logistics_track kllt where kllt.del_flag = 0
+                                                   and kllt.l_ledger_id = klt.id
+                                                   and kllt.status in (3, 5)
+                                                   and kllt.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                )
+                    )
+                    end
+                    )
+            </if>
         </where>
         order by klt.generate_time desc
     </select>
@@ -438,6 +487,142 @@
             </if>
         </where>
     </select>
+    <select id="countSellOrder" resultType="java.util.Map">
+        SELECT count(1)                           "0",
+               count(IF(klt.status = 1, 1, NULL)) "1",
+               count(IF(klt.status = 2, 1, NULL)) "2",
+               count(IF(klt.status = 3, 1, NULL)) "3",
+               count(IF(klt.status = 4, 1, NULL)) "4",
+               count(IF(klt.status = 5, 1, NULL)) "5",
+               count(IF(klt.status = 6, 1, NULL)) "6"
+        from kwp_ledger_trade klt
+                 inner join kwp_ledger_trade_unit kltu
+                            on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
+                               kltu.unit_type = #{tradeReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_trade_unit kltu2
+                            on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and kltu2.unit_type =
+                                                                                     #{tradeReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            klt.del_flag = 0
+              and kltu2.top_ent_id = #{tradeReq.entId,jdbcType=BIGINT}
+            <if test="tradeReq.unitType != null and tradeReq.unitType == 2">
+                and klt.status not in (1, 6)
+            </if>
+            <if test="tradeReq.trading != null">
+                and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
+            </if>
+            <if test="tradeReq.endCreateTime != null and tradeReq.endCreateTime != '' and tradeReq.startCreateTime != null and tradeReq.startCreateTime != ''">
+                and klt.generate_time between #{tradeReq.startCreateTime,jdbcType=TIMESTAMP}
+                    and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="tradeReq.keywords != null and tradeReq.keywords != ''">
+                and (
+                            klt.t_ledger_no like concat('%'
+                            , #{tradeReq.keywords,jdbcType=VARCHAR}
+                            , '%')
+                        or kltu.firm_name like concat('%'
+                        , #{tradeReq.keywords,jdbcType=VARCHAR}
+                        , '%')
+                        or kltu.contacts like concat('%'
+                        , #{tradeReq.keywords,jdbcType=VARCHAR}
+                        , '%')
+                    )
+            </if>
+            <if test="authList != null and authList.size() != 0">
+                and (
+                case when klt.status in (1, 6)
+                    then
+                    klt.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                when klt.status in (2, 3, 4, 5) then
+                (
+                    klt.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                or kltu2.contacts_id in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                )
+                    end
+                    )
+            </if>
+        </where>
+    </select>
+    <select id="countPurchaseOrder" resultType="java.util.Map">
+        SELECT count(1)                           "0",
+               count(IF(klt.status = 1, 1, NULL)) "1",
+               count(IF(klt.status = 2, 1, NULL)) "2",
+               count(IF(klt.status = 3, 1, NULL)) "3",
+               count(IF(klt.status = 4, 1, NULL)) "4",
+               count(IF(klt.status = 5, 1, NULL)) "5",
+               count(IF(klt.status = 6, 1, NULL)) "6"
+        from kwp_ledger_trade klt
+                 inner join kwp_ledger_trade_unit kltu
+                            on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
+                               kltu.unit_type = #{tradeReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_trade_unit kltu2
+                            on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and kltu2.unit_type =
+                                                                                     #{tradeReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            klt.del_flag = 0
+              and kltu2.top_ent_id = #{tradeReq.entId,jdbcType=BIGINT}
+            <if test="tradeReq.unitType != null and tradeReq.unitType == 2">
+                and klt.status not in (1, 6)
+            </if>
+            <if test="tradeReq.trading != null">
+                and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
+            </if>
+            <if test="tradeReq.endCreateTime != null and tradeReq.endCreateTime != '' and tradeReq.startCreateTime != null and tradeReq.startCreateTime != ''">
+                and klt.generate_time between #{tradeReq.startCreateTime,jdbcType=TIMESTAMP}
+                    and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="tradeReq.keywords != null and tradeReq.keywords != ''">
+                and (
+                            klt.t_ledger_no like concat('%'
+                            , #{tradeReq.keywords,jdbcType=VARCHAR}
+                            , '%')
+                        or kltu.firm_name like concat('%'
+                        , #{tradeReq.keywords,jdbcType=VARCHAR}
+                        , '%')
+                        or kltu.contacts like concat('%'
+                        , #{tradeReq.keywords,jdbcType=VARCHAR}
+                        , '%')
+                    )
+            </if>
+            <if test="authList != null and authList.size() != 0">
+                and (
+                case
+                    when klt.status = 2 then
+                        true
+                when klt.status in (3, 4, 5) then
+                (
+                (
+                    kltu2.contacts_id in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>)
+                or
+            (
+            select kllt.id
+            from kwp_ledger_logistics_track kllt where kllt.del_flag = 0
+                                                   and kllt.l_ledger_id = klt.id
+                                                   and kllt.status in (3, 5)
+                                                   and kllt.create_by in
+                <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                    #{item,jdbcType=BIGINT}
+                </foreach>
+                )
+                    )
+                    end
+                    )
+            </if>
+        </where>
+    </select>
+
     <select id="countOrder2" resultType="java.util.Map">
         SELECT count(1)                                    "0",
                count(IF(kll_distinct.status = 1, 1, NULL)) "1",
@@ -661,20 +846,71 @@
                     </if>
                     <if test="tradeReq.endCreateTime != null and tradeReq.endCreateTime != '' and tradeReq.startCreateTime != null and tradeReq.startCreateTime != ''">
                         and klt.generate_time between #{tradeReq.startCreateTime,jdbcType=TIMESTAMP}
-                        and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
+                            and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
                     </if>
                     <if test="tradeReq.keywords != null and tradeReq.keywords != ''">
                         and (
-                        klt.t_ledger_no like concat('%'
-                        , #{tradeReq.keywords,jdbcType=VARCHAR}
-                        , '%')
-                        or kltu.firm_name like concat('%'
-                        , #{tradeReq.keywords,jdbcType=VARCHAR}
-                        , '%')
-                        or kltu.contacts like concat('%'
-                        , #{tradeReq.keywords,jdbcType=VARCHAR}
-                        , '%')
-                        )
+                                    klt.t_ledger_no like concat('%'
+                                    , #{tradeReq.keywords,jdbcType=VARCHAR}
+                                    , '%')
+                                or kltu.firm_name like concat('%'
+                                , #{tradeReq.keywords,jdbcType=VARCHAR}
+                                , '%')
+                                or kltu.contacts like concat('%'
+                                , #{tradeReq.keywords,jdbcType=VARCHAR}
+                                , '%')
+                            )
+                    </if>
+                    <if test="authList != null and authList.size() != 0">
+                        <if test="tradeReq.unitType == 1">
+                            and (
+                            case when klt.status in (1, 6)
+                                then
+                                klt.create_by in
+                            <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                                #{item,jdbcType=BIGINT}
+                            </foreach>
+                            when klt.status in (2, 3, 4, 5) then
+                            (
+                                klt.create_by in
+                            <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                                #{item,jdbcType=BIGINT}
+                            </foreach>
+                            or kltu2.contacts_id in
+                            <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                                #{item,jdbcType=BIGINT}
+                            </foreach>
+                            )
+                                end
+                                )
+                        </if>
+                        <if test="tradeReq.unitType == 2">
+                            and (
+                            case
+                                when klt.status = 2 then
+                                    true
+                            when klt.status in (3, 4, 5) then
+                            (
+                            (
+                                kltu2.contacts_id in
+                            <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                                #{item,jdbcType=BIGINT}
+                            </foreach>)
+                            or
+                        (
+                        select kllt.id
+                        from kwp_ledger_logistics_track kllt where kllt.del_flag = 0
+                                                               and kllt.l_ledger_id = klt.id
+                                                               and kllt.status in (3, 5)
+                                                               and kllt.create_by in
+                            <foreach collection="authList" item="item" open="(" close=")" separator=",">
+                                #{item,jdbcType=BIGINT}
+                            </foreach>
+                            )
+                                )
+                                end
+                                )
+                        </if>
                     </if>
                 </otherwise>
             </choose>

+ 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);
+    }
 }

+ 6 - 99
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -155,7 +155,6 @@ public class KwTransportService {
      * @date 2023/07/21
      */
     public HttpResult getWaybillOrders(WaybillOrderListSelect query) throws ParseException {
-//        Criteria criteria = buildWaybillOrdersQuery(query);
         Criteria criteria = newBuildWaybillOrdersQuery(query);
         Query queryFormat = new Query(criteria);
         // in查询
@@ -163,6 +162,7 @@ public class KwTransportService {
         if (CollectionUtils.isNotEmpty(wOrderIds)) {
             queryFormat.addCriteria(Criteria.where("wOrderId").in(wOrderIds));
         }
+
         // 总记录数
         long total = mongoTemplate.count(queryFormat, SckwWaybillOrder.class);
         queryFormat.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
@@ -177,102 +177,6 @@ public class KwTransportService {
         return HttpResult.ok(build);
     }
 
-    /**
-     * 构造运单关联查询条件
-     *
-     * @param query
-     * @return
-     */
-    public Criteria buildWaybillOrdersQuery(WaybillOrderQuery query) {
-        // 模糊匹配
-        // 根据条件查询所有并排序,且分页
-        // 设置模糊查询匹配规则  忽略大小写
-        // 创建条件对象
-        Criteria criteria = new Criteria();
-        criteria.and("entId").is(LoginUserHolder.getEntId());
-        criteria.and("delFlag").is(NumberConstant.ZERO);
-
-        if (StringUtils.isNotBlank(query.getStatus())) {
-            // TODO 此处需要修改
-            if (query.getStatus().equals(String.valueOf(NumberConstant.ONE_ZERO_ZERO))) {
-                List<Long> statuses = new ArrayList<>();
-                statuses.add(CarWaybillEnum.REJECT_ORDER.getCode().longValue());
-                statuses.add(CarWaybillEnum.REFUSE_TRAFFIC.getCode().longValue());
-                statuses.add(CarWaybillEnum.REVOKED.getCode().longValue());
-//                statuses.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode().longValue());
-                criteria.and("status").in(statuses);
-            } else if (query.getStatus().equals(String.valueOf(CarWaybillEnum.COMPLETION_UNLOADING.getCode()))) {
-                List<Long> statuses = new ArrayList<>();
-                statuses.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode().longValue());
-                statuses.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode().longValue());
-                criteria.and("status").in(statuses);
-            } else if (!query.getStatus().equals("all")
-                    && (!query.getStatus().equals(String.valueOf(CarWaybillEnum.COMPLETION_UNLOADING.getCode())))
-                    && (!query.getStatus().equals(String.valueOf(NumberConstant.ONE_ZERO_ZERO)))
-            ) {
-                criteria.and("status").is(Integer.valueOf(query.getStatus()));
-            }
-        }
-        // 装载时间
-        if (Objects.nonNull(query.getStartLoadTime()) && Objects.nonNull(query.getEndLoadTime())) {
-            criteria.and("loadTime").gte(query.getStartLoadTime()).lte(DateUtil.offsetDay(query.getEndLoadTime(), 1));
-        } else if (Objects.nonNull(query.getStartLoadTime())) {
-            criteria.and("loadTime").gte(query.getStartLoadTime());
-        } else if (Objects.nonNull(query.getEndLoadTime())) {
-            criteria.and("loadTime").lte(DateUtil.offsetDay(query.getEndLoadTime(), 1));
-        }
-        // 派车时间
-        if (Objects.nonNull(query.getStartSendCarTime()) && Objects.nonNull(query.getEndSendCarTime())) {
-            criteria.and("sendCarTime").gte(query.getStartSendCarTime()).lte(DateUtil.offsetDay(query.getEndSendCarTime(), 1));
-        } else if (Objects.nonNull(query.getStartSendCarTime())) {
-            criteria.and("sendCarTime").gte(query.getStartSendCarTime());
-        } else if (Objects.nonNull(query.getEndSendCarTime())) {
-            criteria.and("sendCarTime").lte(DateUtil.offsetDay(query.getEndSendCarTime(), 1));
-        }
-        // 卸货时间
-        if (Objects.nonNull(query.getStartUnloadTime()) && Objects.nonNull(query.getEndUnloadTime())) {
-            criteria.and("unloadTime").gte(query.getStartUnloadTime()).lte(DateUtil.offsetDay(query.getEndUnloadTime(), 1));
-        } else if (Objects.nonNull(query.getStartUnloadTime())) {
-            criteria.and("unloadTime").gte(query.getStartUnloadTime());
-        } else if (Objects.nonNull(query.getEndUnloadTime())) {
-            criteria.and("unloadTime").lte(DateUtil.offsetDay(query.getEndUnloadTime(), 1));
-        }
-        // 装货地址
-        String loadCode = query.getLoadCityCode();
-        if (StringUtils.isNotBlank(loadCode)) {
-            switch (query.getLoadCityCodeLevel()) {
-                case 1 -> criteria.and("loadCityCode")
-                        .regex(Pattern.compile("^" + loadCode.substring(0, 2) + ".*$", Pattern.CASE_INSENSITIVE));
-                case 2 -> criteria.and("loadCityCode")
-                        .regex(Pattern.compile("^" + loadCode.substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE));
-                case 3 -> criteria.and("loadCityCode").is(loadCode);
-            }
-        }
-        // 卸货地址
-        String unloadCode = query.getUnloadCityCode();
-        if (StringUtils.isNotBlank(unloadCode)) {
-            switch (query.getUnloadCityCodeLevel()) {
-                case 1 -> criteria.and("unloadCityCode")
-                        .regex(Pattern.compile("^" + unloadCode.substring(0, 2) + ".*$", Pattern.CASE_INSENSITIVE));
-                case 2 -> criteria.and("unloadCityCode")
-                        .regex(Pattern.compile("^" + unloadCode.substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE));
-                case 3 -> criteria.and("unloadCityCode").is(unloadCode);
-            }
-        }
-        // 多条件模糊查询
-        List<Criteria> orCriteria = new ArrayList<>();
-        if (StringUtils.isNotBlank(query.getKeywords())) {
-            Pattern pattern = Pattern.compile("^.*" + query.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
-            orCriteria.add(Criteria.where("wOrderNo").regex(pattern));
-            orCriteria.add(Criteria.where("truckNo").regex(pattern));
-            orCriteria.add(Criteria.where("driverName").regex(pattern));
-            orCriteria.add(Criteria.where("firmName").regex(pattern));
-            criteria.orOperator(orCriteria);
-        }
-        return criteria;
-    }
-
-
     /**
      * 构造运单关联查询条件
      *
@@ -288,6 +192,10 @@ public class KwTransportService {
         criteria.and("entId").is(LoginUserHolder.getEntId());
         criteria.and("delFlag").is(NumberConstant.ZERO);
 
+        // 运单创建人或有关授权用户
+        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
+        criteria.and("createBy").in(userIds);
+
         /**
          * 【拒绝接单】、【拒绝出车】、【已撤销】状态在列表页的表头,都归类到【已作废】状态中;
          *
@@ -378,7 +286,6 @@ public class KwTransportService {
      * @date 2023/07/21
      */
     public HttpResult getWayBillStatistics(WaybillOrderQuery query) {
-//        Criteria criteria = buildWaybillOrdersQuery(query);
         Criteria criteria = newBuildWaybillOrdersQuery(query);
         Aggregation aggregation = Aggregation.newAggregation(
                 Aggregation.match(criteria),
@@ -551,7 +458,7 @@ public class KwTransportService {
      */
     public HttpResult wayBillTotalCount(WaybillOrderQuery query) {
         // 统计项字段
-        Criteria criteria = buildWaybillOrdersQuery(query);
+        Criteria criteria = newBuildWaybillOrdersQuery(query);
         Aggregation aggregation = Aggregation.newAggregation(
                 Aggregation.match(criteria),
                 Aggregation.group("id").count().as("countTotal")

+ 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;
     /**
      * 归属项目
      */

+ 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

+ 9 - 14
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
@@ -142,6 +149,7 @@ public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
      */
     Long selectWaybillOrderCountByStatus(
             @Param("entId") Long entId,
+            @Param("createBys") List<Long> createBys,
             @Param("statuses") List<Long> statuses,
             @Param("keyword") String keyword,
             @Param("startDate") String startDate,
@@ -149,20 +157,6 @@ public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
 
     Map<String,Object> selectOrderByOrderId(@Param("orderId") Long orderId, @Param("type") Integer type, @Param("statusList") List<Long> statusList);
 
-    /**
-     * 按装卸量统计运单
-     * @param entId 企业ID
-     * @param statuses 查询状态
-     * @return
-     */
-    Map<String,Object> selectWaybillOrderAmountByStatus(
-            @Param("entId") Long entId,
-            @Param("statuses") List<Long> statuses,
-            @Param("keyword") String keyword,
-            @Param("startDate") String startDate,
-            @Param("endDate") String endDate
-    );
-
     /**
      * 按装卸量统计运单
      * @param entId 企业ID
@@ -171,6 +165,7 @@ public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
      */
     List<WaybillAmountDTO> selectWaybillOrdersByStatus(
             @Param("entId") Long entId,
+            @Param("createBys") List<Long> createBys,
             @Param("statuses") List<Long> statuses,
             @Param("keyword") String keyword,
             @Param("startDate") String startDate,

+ 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());

+ 21 - 120
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

@@ -322,64 +322,6 @@ public class WaybillManagementService {
         }
         waybillSimpleDataVO.setProcess(statusVOS);
         return HttpResult.ok(waybillSimpleDataVO);
-        /*WaybillSimpleDataVO waybillSimpleDataVO = new WaybillSimpleDataVO();
-        Criteria criteria = new Criteria();
-        criteria.and("wOrderId").is(id);
-        criteria.and("entId").is(LoginUserHolder.getEntId());
-        criteria.and("delFlag").is(NumberConstant.ZERO);
-        Query queryFormat = new Query(criteria);
-        SckwWaybillOrder info = mongoTemplate.findOne(queryFormat, SckwWaybillOrder.class);
-        if(!ObjectUtils.isEmpty(info)) {
-            waybillSimpleDataVO.setWOrderId(info.getWOrderId() == null ?
-                    String.valueOf(info.get_id()) : String.valueOf(info.getWOrderId()));
-            waybillSimpleDataVO.setWOrderNo(info.getWOrderNo());
-            waybillSimpleDataVO.setLOrderId(String.valueOf(info.getLOrderId()));
-            waybillSimpleDataVO.setLOrderNo(info.getLOrderNo());
-            waybillSimpleDataVO.setLOrderNo(info.getLOrderNo());
-            waybillSimpleDataVO.setTruckId(info.getTruckId());
-            waybillSimpleDataVO.setStatus(String.valueOf(info.getStatus()));
-            waybillSimpleDataVO.setTruckNo(info.getTruckNo());
-            waybillSimpleDataVO.setDriverId(info.getDriverId());
-            waybillSimpleDataVO.setDriverName(info.getDriverName());
-            waybillSimpleDataVO.setDriverPhone(info.getDriverPhone());
-            waybillSimpleDataVO.setDriverId(info.getDriverId());
-            waybillSimpleDataVO.setType(String.valueOf(info.getType()));
-        }
-        List<Integer> statuses = initWaybillIndexStatus();
-        // 初始化各状态
-        List<WaybillStatusVO> statusVOS = new ArrayList<>();
-        statuses.forEach(e -> {
-            WaybillStatusVO waybillStatusVO = new WaybillStatusVO();
-            waybillStatusVO.setStatus(false);
-            waybillStatusVO.setCode(e);
-            waybillStatusVO.setDestination(CarWaybillEnum.getName(e));
-            statusVOS.add(waybillStatusVO);
-        });
-        List<KwtWaybillOrderTrack> kwtWaybillOrderTracks = kwtWaybillOrderTrackMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
-                .eq(KwtWaybillOrderTrack::getWOrderId, id));
-        if (CollectionUtils.isNotEmpty(kwtWaybillOrderTracks)) {
-            List<Long> userIds = new ArrayList<>();
-            kwtWaybillOrderTracks.forEach(e -> userIds.add(e.getCreateBy()));
-            List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
-            Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
-            users.forEach(e -> usersMap.put(e.getId(), e));
-            for (KwtWaybillOrderTrack kwtWaybillOrderTrack : kwtWaybillOrderTracks) {
-                for (WaybillStatusVO statusVO : statusVOS) {
-                    if (statusVO.getCode().equals(kwtWaybillOrderTrack.getStatus())) {
-                        statusVO.setStatus(true);
-                        statusVO.setId(kwtWaybillOrderTrack.getId());
-                        statusVO.setCreateTime(DateUtil.getDateTime(kwtWaybillOrderTrack.getCreateTime()));
-                        statusVO.setOperateTime(kwtWaybillOrderTrack.getOperateTime() == null
-                                ? null : DateUtil.getDateTime(kwtWaybillOrderTrack.getOperateTime()));
-                        statusVO.setCreateByName(usersMap.get(kwtWaybillOrderTrack.getCreateBy()) == null
-                                ? null : usersMap.get(kwtWaybillOrderTrack.getCreateBy()).getName());
-                        break;
-                    }
-                }
-            }
-        }
-        waybillSimpleDataVO.setProcess(statusVOS);
-        return HttpResult.ok(waybillSimpleDataVO);*/
     }
 
     /**
@@ -520,29 +462,14 @@ public class WaybillManagementService {
         criteria.and("entId").is(LoginUserHolder.getEntId());
         criteria.and("delFlag").is(NumberConstant.ZERO);
 
+        // 运单创建人或有关授权用户
+        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
+        criteria.and("createBy").in(userIds);
+
         List<Long> wOrderIds = StringUtils.splitStrToList(query.getIds(), ",", Long.class);
         if (CollectionUtils.isNotEmpty(wOrderIds)) {
             Criteria.where("wOrderId").in(wOrderIds);
         }
-//        if (StringUtils.isNotBlank(query.getStatus())) {
-//            if (query.getStatus().equals(String.valueOf(CarWaybillEnum.COMPLETION_UNLOADING.getCode()))) {
-//                List<Integer> _statuses = new ArrayList<>();
-//                _statuses.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
-//                _statuses.add(CarWaybillEnum.APPROVAL_NO_PASS.getCode());
-//                criteria.and("status").in(_statuses);
-//            } else if (query.getStatus().equals(String.valueOf(NumberConstant.ONE_ZERO_ZERO))) {
-//                List<Integer> _statuses = new ArrayList<>();
-//                _statuses.add(CarWaybillEnum.REJECT_ORDER.getCode());
-//                _statuses.add(CarWaybillEnum.REFUSE_TRAFFIC.getCode());
-//                _statuses.add(CarWaybillEnum.REVOKED.getCode());
-//                criteria.and("status").in(_statuses);
-//            } else if (!query.getStatus().equals("all")
-//                    && (!query.getStatus().equals(String.valueOf(CarWaybillEnum.COMPLETION_UNLOADING.getCode())))
-//                    && (!query.getStatus().equals(String.valueOf(NumberConstant.ONE_ZERO_ZERO)))
-//            ) {
-//                criteria.and("status").is(Integer.valueOf(query.getStatus()));
-//            }
-//        }
         /**
          * 【拒绝接单】、【拒绝出车】、【已撤销】状态在列表页的表头,都归类到【已作废】状态中;
          *
@@ -666,23 +593,6 @@ public class WaybillManagementService {
         list.add(topExpired);
         list.add(documentCheck);
 
-//        statuses.forEach(e -> {
-//            TableTops top = new TableTops();
-//            top.setValue(String.valueOf(e));
-//            top.setTotal(0);
-//            top.setName(CarWaybillEnum.getName(e));
-//            listMap.put(String.valueOf(e), top);
-//        });
-        /**计算总条数*/
-//        if (CollectionUtils.isNotEmpty(results)) {
-//            for (TableTops result : results) {
-//                if (listMap.containsKey(result.getValue())) {
-//                    listMap.get(result.getValue()).setTotal(result.getTotal());
-//                }
-//                allTotal += result.getTotal();
-//            }
-//        }
-
         /**数据统计计算*/
         //单证审核合并计算
         documentCheckNumberCount(list);
@@ -709,7 +619,6 @@ public class WaybillManagementService {
                 }
             }
         }
-//        list.add(topExpired);
         /**去除不展示统计字段*/
         List<TableTops> returnList = new ArrayList<>();
         for (TableTops tops : list) {
@@ -728,30 +637,8 @@ public class WaybillManagementService {
         /**排序*/
         returnList = returnList.stream().sorted(Comparator.comparing(TableTops::getSort)).collect(Collectors.toList());
         allTotal = results.stream().collect(Collectors.summingInt(TableTops::getTotal));
-        // allTotal= Math.toIntExact(results.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTotal())).collect(Collectors.summarizingInt(item -> item.getTotal())).getSum());
-//        long sum = results.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTotal())).collect(Collectors.summarizingInt(TableTops::getTotal)).getSum();
         topTotal.setTotal(allTotal);
         returnList.add(0, topTotal);
-
-        /**数据状态整合做计算
-         * 整合页面数据状态查询*/
-//        if (CollectionUtils.isNotEmpty(results)) {
-//            //已卸货包含本身以及审核不通过
-//            Integer number = 0;
-//            for (TableTops result : results) {
-//                if (CarWaybillEnum.APPROVAL_NO_PASS.getStatus().equals(result.getValue())) {
-//                    Integer total = result.getTotal();
-//                    number = number + total;
-//                }
-//            }
-//            for (TableTops result : results) {
-//                if (CarWaybillEnum.COMPLETION_UNLOADING.getStatus().equals(result.getValue())) {
-//                    result.setTotal(result.getTotal() + number);
-//                    listMap.put(result.getValue(), result);
-//                }
-//            }
-//        }
-
         return HttpResult.ok(returnList);
     }
 
@@ -840,7 +727,14 @@ public class WaybillManagementService {
         _onway.put("value", "onway");
         _onway.put("total", "0");
         List<Long> onWayStates = getWallBillStatues("onway");
-        Long onWayCount = kwtWaybillOrderMapper.selectWaybillOrderCountByStatus(entId, onWayStates, keyword, null, null);
+        Long onWayCount = kwtWaybillOrderMapper.selectWaybillOrderCountByStatus(
+            entId,
+            LoginUserHolder.getAuthUserIdList(),
+            onWayStates,
+            keyword,
+            null,
+            null
+        );
         _onway.put("total", onWayCount.toString());
         // 已完成
         Map<String, String> _finish = new HashMap<>();
@@ -848,7 +742,14 @@ public class WaybillManagementService {
         _finish.put("value", "finish");
         _finish.put("total", "0");
         List<Long> finishStates = getWallBillStatues("finish");
-        Long finishCount = kwtWaybillOrderMapper.selectWaybillOrderCountByStatus(entId, finishStates, keyword, startDate, endDate);
+        Long finishCount = kwtWaybillOrderMapper.selectWaybillOrderCountByStatus(
+            entId,
+            LoginUserHolder.getAuthUserIdList(),
+            finishStates,
+            keyword,
+            startDate,
+            endDate
+        );
         _finish.put("total", finishCount.toString());
         List<Map<String, String>> _list = new ArrayList<>();
         _list.add(_onway);
@@ -921,7 +822,6 @@ public class WaybillManagementService {
             return HttpResult.ok();
         }
         criteria.and("lOrderId").in(lOrderIds);
-//        criteria.and("wOrderId").exists(true);
         criteria.and("wOrderId").ne("").ne(null);
         // 多条件模糊查询
         List<Criteria> orCriteria = new ArrayList<>();
@@ -968,6 +868,7 @@ public class WaybillManagementService {
         List<Long> _statuses = getWallBillStatues(query.getStatus());
         List<WaybillAmountDTO> wOrders = kwtWaybillOrderMapper.selectWaybillOrdersByStatus(
                 LoginUserHolder.getEntId(),
+                LoginUserHolder.getAuthUserIdList(),
                 _statuses,
                 query.getKeyword(),
                 StringUtils.isBlank(query.getStartDate()) ? null : query.getStartDate().concat(" 00:00:00"),

+ 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,

+ 51 - 13
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -498,18 +498,42 @@
           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
         WHERE ent_id = #{entId}
         AND del_flag = 0
-        <if test="keyword != null and keyword != ''">
-            AND (
-                w_order_no LIKE concat('%',#{keyword},'%')
-                OR truck_no LIKE concat('%',#{keyword},'%')
-                OR driver_name LIKE concat('%',#{keyword},'%')
-                OR driver_phone LIKE concat('%',#{keyword},'%')
-            )
+        <if test="createBys != null and createBys.size() > 0">
+            AND create_by IN
+            <foreach collection="createBys" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
         </if>
         <if test="statuses != null and statuses.size() > 0">
             AND status IN
@@ -517,6 +541,14 @@
                 #{item}
             </foreach>
         </if>
+        <if test="keyword != null and keyword != ''">
+            AND (
+            w_order_no LIKE concat('%',#{keyword},'%')
+            OR truck_no LIKE concat('%',#{keyword},'%')
+            OR driver_name LIKE concat('%',#{keyword},'%')
+            OR driver_phone LIKE concat('%',#{keyword},'%')
+            )
+        </if>
     </select>
 
     <select id="selectOrderByOrderId" resultType="java.util.Map">
@@ -580,6 +612,18 @@
         <if test="startDate != null and startDate != '' and endDate != null and endDate != ''">
             AND wo.create_time BETWEEN #{startDate} AND #{endDate}
         </if>
+        <if test="createBys != null and createBys.size() > 0">
+            AND wo.create_by IN
+            <foreach collection="createBys" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="statuses != null and statuses.size() > 0">
+            AND wo.status IN
+            <foreach collection="statuses" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="keyword != null and keyword != ''">
             AND (
             wo.w_order_no LIKE concat('%',#{keyword},'%')
@@ -588,12 +632,6 @@
             OR wo.driver_phone LIKE concat('%',#{keyword},'%')
             )
         </if>
-        <if test="statuses != null and statuses.size() > 0">
-            AND wo.status IN
-            <foreach collection="statuses" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
-        </if>
     </select>
 
     <select id="getMaxOrderNo" resultType="java.lang.String">