Преглед на файлове

承运订单-托运订单bugfix

lengfaqiang преди 2 години
родител
ревизия
17620af31e
променени са 16 файла, в които са добавени 402 реда и са изтрити 78 реда
  1. 10 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java
  2. 7 0
      sckw-modules/sckw-report/pom.xml
  3. 57 6
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java
  4. 65 7
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java
  5. 32 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/AcceptCarriageOrderVo.java
  6. 35 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/ConsignOrderVo.java
  7. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java
  8. 14 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  9. 5 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderUnit.java
  10. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/StopOrderTakingDTO.java
  11. 6 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/DriverParam.java
  12. 5 5
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/DriverListVo.java
  13. 31 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  14. 29 7
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  15. 102 44
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml
  16. 2 1
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderUnitMapper.xml

+ 10 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java

@@ -276,6 +276,11 @@ public class SckwLogisticsOrder {
      */
     private Long checkEntId;
 
+    /**
+     * 托运一级企业主键ID
+     */
+    private Long checkTopEntId;
+
     /**
      * 托运企业名称
      */
@@ -296,6 +301,11 @@ public class SckwLogisticsOrder {
      */
     private Long carrierEntId;
 
+    /**
+     * 承运企业主键ID
+     */
+    private Long carrierTopEntId;
+
     /**
      * 承运企业名称
      */

+ 7 - 0
sckw-modules/sckw-report/pom.xml

@@ -72,6 +72,7 @@
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-system-api</artifactId>
+            <version>1.0.0</version>
         </dependency>
 
         <dependency>
@@ -80,6 +81,12 @@
             <version>1.0.0</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-order-api</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+
 
         <!--junit-->
         <dependency>

+ 57 - 6
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java

@@ -3,6 +3,7 @@ package com.sckw.report.service;
 import cn.hutool.core.util.ObjectUtil;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.StringConstant;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
@@ -15,7 +16,10 @@ import com.sckw.mongo.model.TableTops;
 import com.sckw.report.service.param.AcceptCarriageOrderQuery;
 import com.sckw.report.service.vo.AcceptCarriageOrderExcelVo;
 import com.sckw.report.service.vo.AcceptCarriageOrderVo;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
@@ -45,6 +49,9 @@ public class KwAcceptCarriageService {
     @Autowired
     public KwTransportService transportService;
 
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    RemoteSystemService remoteSystemService;
+
     /**
      * 承运列表分页查询
      *
@@ -60,10 +67,15 @@ public class KwAcceptCarriageService {
         Criteria criteria = new Criteria();
         // 1. 全等于
         //判断承运还是托运企业
+//        if (unitType.equals(NumberConstant.ONE)) {
+//            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+//        } else {
+//            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+//        }
         if (unitType.equals(NumberConstant.ONE)) {
-            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+            criteria.and("checkTopEntId").is(LoginUserHolder.getEntId());
         } else {
-            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+            criteria.and("carrierTopEntId").is(LoginUserHolder.getEntId());
         }
         //装卸货地址
         String loadCode = query.getLoadAddressCode();
@@ -170,10 +182,15 @@ public class KwAcceptCarriageService {
         Criteria criteria = new Criteria();
         // 1. 全等于
         //判断承运还是托运企业
+//        if (unitType.equals(NumberConstant.ONE)) {
+//            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+//        } else {
+//            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+//        }
         if (unitType.equals(NumberConstant.ONE)) {
-            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+            criteria.and("carrierTopEntId").is(LoginUserHolder.getEntId());
         } else {
-            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+            criteria.and("checkTopEntId").is(LoginUserHolder.getEntId());
         }
         //装卸货地址
         String loadCode = param.getLoadAddressCode();
@@ -267,6 +284,15 @@ public class KwAcceptCarriageService {
         return HttpResult.ok(map);
     }
 
+    public Map<String, String> getDictData(String type) {
+        Map<String, String> maps = new HashMap<>(NumberConstant.SIXTEEN);
+        List<SysDictResDto> list = remoteSystemService.queryDictByType(type);
+        if (CollectionUtils.isNotEmpty(list)) {
+            maps = list.stream().collect(Collectors.toMap(SysDictResDto::getValue, SysDictResDto::getLabel, (key1, key2) -> key2));
+        }
+        return maps;
+    }
+
     /**
      * 组装承运订单列表数据
      *
@@ -274,6 +300,18 @@ public class KwAcceptCarriageService {
      * @param returnList
      */
     private void packageReturnAcceptCarriageOrderList(List<SckwLogisticsOrder> list, List<AcceptCarriageOrderVo> returnList) {
+        /**计量单位*/
+        Map<String, String> unitTypeDictData = getDictData(DictTypeEnum.UNIT_TYPE.getType());
+        /**运价方式*/
+        Map<String, String> priceDictData = getDictData(DictTypeEnum.PRICE_TYPE.getType());
+        /**计费方式*/
+        Map<String, String> chargingDictData = getDictData(DictTypeEnum.CHARGING_TYPE.getType());
+        /**结算周期*/
+        Map<String, String> settlementDictData = getDictData(DictTypeEnum.SETTLEMENT_CYCLE.getType());
+        /**签约方式*/
+        Map<String, String> signingWay = getDictData(DictTypeEnum.SIGNING_WAY.getType());
+        /**合理损耗*/
+        Map<String, String> taxRateTypeDictData = getDictData(DictTypeEnum.TAX_RATE_TYPE.getType());
         for (SckwLogisticsOrder logisticsOrder : list) {
             AcceptCarriageOrderVo vo = new AcceptCarriageOrderVo();
             vo.setAccountsCycle(logisticsOrder.getSettlementCycle() == null ?
@@ -326,6 +364,14 @@ public class KwAcceptCarriageService {
             vo.setShipmentsUnit(logisticsOrder.getShipmentsUnit());
             vo.setReceiveGoodsUnitEntId(logisticsOrder.getReceiveGoodsUnitEntId());
             vo.setReceiveGoodsUnit(logisticsOrder.getReceiveGoodsUnit());
+            vo.setGoodsPrice(logisticsOrder.getGoodsPrice());
+            vo.setGoodsPriceUnit(logisticsOrder.getGoodsPriceUnit());
+            vo.setSigningLabel(signingWay.get(logisticsOrder.getContractSigningWay()));
+            vo.setLossUnit(logisticsOrder.getLossUnit());
+            vo.setStatusLabel(LogisticsOrderEnum.getDestination(logisticsOrder.getStatus()));
+            vo.setAccountsCycleLabel(logisticsOrder.getSettlementCycle() == null ?
+                    null : settlementDictData.get(String.valueOf(logisticsOrder.getSettlementCycle())));
+            vo.setBillingModeLabel(chargingDictData.get(logisticsOrder.getBillingMode()));
             returnList.add(vo);
         }
     }
@@ -415,10 +461,15 @@ public class KwAcceptCarriageService {
         // 1. 全等于
         Query query1 = new Query();
         //判断承运还是托运企业
+//        if (unitType.equals(NumberConstant.ONE)) {
+//            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+//        } else {
+//            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+//        }
         if (unitType.equals(NumberConstant.ONE)) {
-            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+            criteria.and("carrierTopEntId").is(LoginUserHolder.getEntId());
         } else {
-            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+            criteria.and("checkTopEntId").is(LoginUserHolder.getEntId());
         }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         List<String> stringList = StringUtils.splitStrToList(query.getIds(), StringConstant.COMMA, String.class);

+ 65 - 7
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java

@@ -3,6 +3,7 @@ package com.sckw.report.service;
 import cn.hutool.core.util.ObjectUtil;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.StringConstant;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
@@ -12,10 +13,13 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.DateUtil;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.mongo.model.TableTops;
+import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.report.service.param.ConsignOrderQuery;
 import com.sckw.report.service.vo.ConsignOrderExcelVo;
 import com.sckw.report.service.vo.ConsignOrderVo;
+import com.sckw.system.api.RemoteSystemService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
@@ -46,6 +50,12 @@ public class KwConsignService {
     @Autowired
     public KwTransportService transportService;
 
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    RemoteSystemService remoteSystemService;
+
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    TradeOrderInfoService tradeOrderInfoService;
+
     /**
      * 托运订单列表查询
      *
@@ -61,10 +71,15 @@ public class KwConsignService {
         Criteria criteria = new Criteria();
         // 1. 全等于
         //判断承运还是托运企业
+//        if (unitType.equals(NumberConstant.ONE)) {
+//            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+//        } else {
+//            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+//        }
         if (unitType.equals(NumberConstant.ONE)) {
-            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+            criteria.and("checkTopEntId").is(LoginUserHolder.getEntId());
         } else {
-            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+            criteria.and("carrierTopEntId").is(LoginUserHolder.getEntId());
         }
         //装卸货地址
         String loadCode = query.getLoadAddressCode();
@@ -154,7 +169,7 @@ public class KwConsignService {
      * @param list
      * @param returnList
      */
-    private void packageReturnList(List<SckwLogisticsOrder> list, List<ConsignOrderVo> returnList) {
+    public void packageReturnList(List<SckwLogisticsOrder> list, List<ConsignOrderVo> returnList) {
         for (SckwLogisticsOrder logisticsOrder : list) {
             ConsignOrderVo vo = new ConsignOrderVo();
             vo.setAccountsCycle(logisticsOrder.getSettlementCycle() == null ?
@@ -203,10 +218,43 @@ public class KwConsignService {
             vo.setShipmentsUnit(logisticsOrder.getShipmentsUnit());
             vo.setReceiveGoodsUnitEntId(logisticsOrder.getReceiveGoodsUnitEntId());
             vo.setReceiveGoodsUnit(logisticsOrder.getReceiveGoodsUnit());
+            vo.setGoodsPrice(logisticsOrder.getGoodsPrice());
+            vo.setGoodsPriceUnit(logisticsOrder.getGoodsPriceUnit());
+            vo.setSigningLabel(signingWay.get(logisticsOrder.getContractSigningWay()));
+            vo.setLossUnit(logisticsOrder.getLossUnit());
+            vo.setStatusLabel(LogisticsOrderEnum.getDestination(logisticsOrder.getStatus()));
+            vo.setAccountsCycleLabel(logisticsOrder.getSettlementCycle() == null ?
+                    null : settlementDictData.get(String.valueOf(logisticsOrder.getSettlementCycle())));
+            vo.setBillingModeLabel(chargingDictData.get(logisticsOrder.getBillingMode()));
             returnList.add(vo);
         }
     }
 
+    public Map<String, String> getDictData(String type) {
+        tradeOrderInfoService.getOrderDetailById(5456465L);
+        Map<String, String> maps = new HashMap<>(NumberConstant.SIXTEEN);
+//        List<SysDictResDto> list = remoteSystemService.queryDictByType(type);
+//        if (CollectionUtils.isNotEmpty(list)) {
+//            maps = list.stream().collect(Collectors.toMap(SysDictResDto::getValue, SysDictResDto::getLabel, (key1, key2) -> key2));
+//        }
+        return maps;
+    }
+
+
+
+    /**计量单位*/
+//    Map<String, String> unitTypeDictData = getDictData(DictTypeEnum.UNIT_TYPE.getType());
+    /**运价方式*/
+    Map<String, String> priceDictData = getDictData(DictTypeEnum.PRICE_TYPE.getType());
+    /**计费方式*/
+    Map<String, String> chargingDictData = getDictData(DictTypeEnum.CHARGING_TYPE.getType());
+    /**结算周期*/
+    Map<String, String> settlementDictData = getDictData(DictTypeEnum.SETTLEMENT_CYCLE.getType());
+    /**签约方式*/
+    Map<String, String> signingWay = getDictData(DictTypeEnum.SIGNING_WAY.getType());
+    /**合理损耗*/
+    Map<String, String> taxRateTypeDictData = getDictData(DictTypeEnum.TAX_RATE_TYPE.getType());
+
     /**
      * 托运订单导出
      *
@@ -222,10 +270,15 @@ public class KwConsignService {
         Criteria criteria = new Criteria();
         // 1. 全等于
         Query query1 = new Query();
+//        if (unitType.equals(NumberConstant.ONE)) {
+//            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+//        } else {
+//            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+//        }
         if (unitType.equals(NumberConstant.ONE)) {
-            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+            criteria.and("checkTopEntId").is(LoginUserHolder.getEntId());
         } else {
-            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+            criteria.and("carrierTopEntId").is(LoginUserHolder.getEntId());
         }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         List<String> stringList = StringUtils.splitStrToList(query.getIds(), StringConstant.COMMA, String.class);
@@ -333,10 +386,15 @@ public class KwConsignService {
         Criteria criteria = new Criteria();
         // 1. 全等于
         //判断承运还是托运企业
+//        if (unitType.equals(NumberConstant.ONE)) {
+//            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+//        } else {
+//            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+//        }
         if (unitType.equals(NumberConstant.ONE)) {
-            criteria.and("checkEntId").is(LoginUserHolder.getEntId());
+            criteria.and("checkTopEntId").is(LoginUserHolder.getEntId());
         } else {
-            criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
+            criteria.and("carrierTopEntId").is(LoginUserHolder.getEntId());
         }
         //装卸货地址
         String loadCode = param.getLoadAddressCode();

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

@@ -19,6 +19,10 @@ public class AcceptCarriageOrderVo extends PageRequest {
      * 结算周期
      */
     private String accountsCycle;
+    /**
+     * 结算周期
+     */
+    private String accountsCycleLabel;
     /**
      * 发起人
      */
@@ -28,6 +32,11 @@ public class AcceptCarriageOrderVo extends PageRequest {
      */
     private String billingMode;
 
+    /**
+     * 计费方式
+     */
+    private String billingModeLabel;
+
     /**
      * 承运单位ID
      */
@@ -103,6 +112,10 @@ public class AcceptCarriageOrderVo extends PageRequest {
      * 合理损耗
      */
     private BigDecimal loss;
+    /**
+     * 合理损耗单位
+     */
+    private String lossUnit;
     /**
      * 计划时间
      */
@@ -145,10 +158,19 @@ public class AcceptCarriageOrderVo extends PageRequest {
      * 签约方式
      */
     private String signing;
+
+    /**
+     * 签约方式
+     */
+    private String signingLabel;
     /**
      * 状态
      */
     private String status;
+    /**
+     * 状态
+     */
+    private String statusLabel;
     /**
      * 卸货地点
      */
@@ -187,4 +209,14 @@ public class AcceptCarriageOrderVo extends PageRequest {
      */
     private String receiveGoodsUnit;
 
+    /**
+     * 商品价值(扣亏货值)
+     */
+    private BigDecimal goodsPrice;
+
+    /**
+     * 商品价值(扣亏货值)单位
+     */
+    private String goodsPriceUnit;
+
 }

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

@@ -172,4 +172,39 @@ public class ConsignOrderVo implements Serializable {
      * 收货单位
      */
     private String receiveGoodsUnit;
+
+    /**
+     * 结算周期
+     */
+    private String accountsCycleLabel;
+
+    /**
+     * 计费方式
+     */
+    private String billingModeLabel;
+
+    /**
+     * 合理损耗单位
+     */
+    private String lossUnit;
+
+    /**
+     * 签约方式
+     */
+    private String signingLabel;
+
+    /**
+     * 状态
+     */
+    private String statusLabel;
+
+    /**
+     * 商品价值(扣亏货值)
+     */
+    private BigDecimal goodsPrice;
+
+    /**
+     * 商品价值(扣亏货值)单位
+     */
+    private String goodsPriceUnit;
 }

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

@@ -63,7 +63,7 @@ public class LogisticsConsignmentController {
     /**
      * 采购订单-托运订单列表-销售订单id
      *
-     * @param ids 销售订单id
+     * @param orderQuery 销售订单id
      * @return
      */
     @RequestMapping(value = "/purchaseLogisticsOrder", method = RequestMethod.POST)

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

@@ -164,4 +164,18 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
      * @return
      */
     Map<String, BigDecimal> countAmountByTradeOrderId(@Param("tOrderId") Long tOrderId);
+
+    /**
+     *  根据物流订单id查询能被停止的循环数据
+     * @param driverParam   页面请求参数
+     * @return
+     */
+    List<DriverListVo> selectLoopOrderAndDriverListByOrderId(@Param("driverParam") DriverParam driverParam);
+
+    /**
+     * 根据物流订单id查询能被停止的循环数据
+     * @param idsList 物流订单id
+     * @return
+     */
+    List<DriverListVo> selectLoopOrderAndDriverListByOrderIds(@Param("idsList") List<Long> idsList);
 }

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderUnit.java

@@ -38,6 +38,11 @@ public class KwtLogisticsOrderUnit implements Serializable {
      */
     private Long entId;
 
+    /**
+     * 一级企业id
+     */
+    private Long topEntId;
+
     /**
      * 企业名称
      */

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/StopOrderTakingDTO.java

@@ -12,7 +12,7 @@ import lombok.Data;
 @Data
 public class StopOrderTakingDTO {
     /**
-     * 车辆单ids
+     * 车辆循环单ids
      */
     @NotBlank(message = "车辆运单id不能为空")
     private String ids;

+ 6 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/DriverParam.java

@@ -38,4 +38,10 @@ public class DriverParam {
     @JsonProperty("driverPhone")
     private String driverPhone;
 
+    /**
+     * 代表循环或者趟次 1趟次 2循环
+     */
+    @JsonProperty("type")
+    private String type;
+
 }

+ 5 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/DriverListVo.java

@@ -34,9 +34,9 @@ public class DriverListVo {
     private String driverIdCard;
 
     /**
-     * 运力状态
+     * 运力状态(0空闲/1任务中)
      */
-    private String transportStatus;
+    private Integer transportStatus;
 
     /**
      * 运输次数
@@ -66,8 +66,8 @@ public class DriverListVo {
     private String wOrderId;
 
     /**
-     * 车辆运单编号
+     * 派车循环表id
      */
-    @JsonProperty("wOrderNo")
-    private String wOrderNo;
+    @JsonProperty("circulateId")
+    private String circulateId;
 }

+ 31 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -12,7 +12,6 @@ import com.sckw.core.common.enums.StringConstant;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.enums.CarWaybillEnum;
-import com.sckw.core.model.enums.CooperateTypeEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
@@ -26,7 +25,6 @@ import com.sckw.excel.utils.ValidUtil;
 import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.manage.api.RemoteManageService;
-import com.sckw.manage.api.model.dto.res.FindEntCooperateResVo;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.mongo.model.SckwWaybillOrder;
@@ -828,6 +826,7 @@ public class AcceptCarriageOrderService {
         HttpResult httpResult = ValidUtil.serviceValid(driverParam);
         if (HttpStatus.SUCCESS_CODE != httpResult.getCode()) {
             result.setMsg(httpResult.getMsg());
+            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
             return result;
         }
         /**请求参数校验*/
@@ -1500,10 +1499,10 @@ public class AcceptCarriageOrderService {
         /**2023-08-16 新增校验承运企业与托运企业是否存在合作关系*/
         String consignCompanyId = orderDTO.getConsignCompanyId();
         String acceptCompanyId = orderDTO.getAcceptCompanyId();
-        List<FindEntCooperateResVo> entCooperate = remoteManageService.findEntCooperate(Long.parseLong(acceptCompanyId), Long.parseLong(consignCompanyId), CooperateTypeEnum.CONSIGN.getCode());
-        if (entCooperate == null) {
-            return HttpResult.error("该托运企业与我方并无合作关系!");
-        }
+//        List<FindEntCooperateResVo> entCooperate = remoteManageService.findEntCooperate(Long.parseLong(acceptCompanyId), Long.parseLong(consignCompanyId), CooperateTypeEnum.CONSIGN.getCode());
+//        if (entCooperate == null) {
+//            return HttpResult.error("该托运企业与我方并无合作关系!");
+//        }
         /**保存新建数据*/
         Long lOrderId = new IdWorker(NumberConstant.ONE).nextId();
         /**生成订单编号*/
@@ -1648,10 +1647,22 @@ public class AcceptCarriageOrderService {
         order.setContractName(infoResDto.getContactName());
         order.setContractSigningWay(String.valueOf(infoResDto.getSigningWay()));
         order.setCheckEntId(Long.parseLong(orderDTO.getConsignCompanyId()));
+        Map<Long, EntCacheResDto> entMap = remoteSystemService.queryEntTreeByIds(Collections.singletonList(Long.parseLong(orderDTO.getConsignCompanyId())));
+        EntCacheResDto ent = entMap.get(Long.parseLong(orderDTO.getConsignCompanyId()));
+        if (Objects.isNull(ent)) {
+            throw new BusinessException("企业:" + orderDTO.getConsignCompany() + "的一级企业信息不存在!");
+        }
+        order.setCheckTopEntId(ent.getId());
         order.setCheckFirmName(orderDTO.getConsignCompany());
         order.setCheckContacts(orderDTO.getConsignContacts());
         order.setCheckPhone(orderDTO.getConsignContactPhone());
         order.setCarrierEntId(Long.parseLong(orderDTO.getAcceptCompanyId()));
+        Map<Long, EntCacheResDto> entMap1 = remoteSystemService.queryEntTreeByIds(Collections.singletonList(Long.parseLong(orderDTO.getAcceptCompanyId())));
+        EntCacheResDto ent1 = entMap1.get(Long.parseLong(orderDTO.getAcceptCompanyId()));
+        if (Objects.isNull(ent1)) {
+            throw new BusinessException("企业:" + orderDTO.getConsignCompany() + "的一级企业信息不存在!");
+        }
+        order.setCarrierTopEntId(ent1.getId());
         order.setCarrierFirmName(orderDTO.getAcceptCompany());
         order.setCarrierContacts(orderDTO.getAcceptContacts());
         order.setCarrierPhone(orderDTO.getAcceptContactPhone());
@@ -1701,6 +1712,15 @@ public class AcceptCarriageOrderService {
         consignUnit.setLOrderId(lOrderId);
         consignUnit.setUnitType(NumberConstant.ONE);
         consignUnit.setEntId(Long.parseLong(orderDTO.getConsignCompanyId()));
+        List<Long> entIds = new ArrayList<>();
+        entIds.add(Long.parseLong(orderDTO.getConsignCompanyId()));
+        entIds.add(Long.parseLong(orderDTO.getAcceptCompanyId()));
+        Map<Long, EntCacheResDto> entMap = remoteSystemService.queryEntTreeByIds(entIds);
+        EntCacheResDto ent = entMap.get(Long.parseLong(orderDTO.getConsignCompanyId()));
+        if (Objects.isNull(ent)) {
+            throw new BusinessException("企业:" + orderDTO.getConsignCompany() + "的一级企业信息不存在!");
+        }
+        consignUnit.setTopEntId(ent.getId());
         consignUnit.setFirmName(orderDTO.getConsignCompany());
         consignUnit.setContacts(orderDTO.getConsignContacts());
         consignUnit.setPhone(orderDTO.getConsignContactPhone());
@@ -1716,6 +1736,11 @@ public class AcceptCarriageOrderService {
         unit.setLOrderId(lOrderId);
         unit.setUnitType(NumberConstant.TWO);
         unit.setEntId(Long.parseLong(orderDTO.getAcceptCompanyId()));
+        EntCacheResDto ent1 = entMap.get(Long.parseLong(orderDTO.getAcceptCompanyId()));
+        if (Objects.isNull(ent1)) {
+            throw new BusinessException("企业:" + orderDTO.getConsignCompany() + "的一级企业信息不存在!");
+        }
+        unit.setTopEntId(ent1.getId());
         unit.setFirmName(orderDTO.getAcceptCompany());
         unit.setContacts(orderDTO.getAcceptContacts());
         unit.setPhone(orderDTO.getAcceptContactPhone());

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

@@ -9,7 +9,6 @@ import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.enums.CarWaybillEnum;
-import com.sckw.core.model.enums.CooperateTypeEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
@@ -23,7 +22,6 @@ import com.sckw.excel.utils.ValidUtil;
 import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.manage.api.RemoteManageService;
-import com.sckw.manage.api.model.dto.res.FindEntCooperateResVo;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
@@ -31,6 +29,7 @@ import com.sckw.order.api.model.CompleteLogisticsOrderParam;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
+import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
@@ -64,7 +63,7 @@ public class ConsignOrderService {
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
     TradeOrderInfoService tradeOrderInfoService;
 
-    @DubboReference(version = "1.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false,timeout = 6000)
     RemoteSystemService remoteSystemService;
     @DubboReference(version = "1.0.0", group = "design", check = false)
     RemoteContractService remoteContractService;
@@ -75,6 +74,9 @@ public class ConsignOrderService {
     @DubboReference(version = "1.0.0", group = "design", check = false)
     RemoteFleetService remoteFleetService;
 
+    @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
+    RemoteFleetService fleetService;
+
     @Autowired
     public MongoTemplate mongoTemplate;
 
@@ -940,10 +942,10 @@ public class ConsignOrderService {
         /**2023-08-16 新增校验承运企业与托运企业是否存在合作关系*/
         String consignCompanyId = addOrderDTO.getConsignCompanyId();
         String acceptCompanyId = addOrderDTO.getAcceptCompanyId();
-        List<FindEntCooperateResVo> entCooperate = remoteManageService.findEntCooperate(Long.parseLong(consignCompanyId), Long.parseLong(acceptCompanyId), CooperateTypeEnum.CARRIAGE.getCode());
-        if (entCooperate == null) {
-            return HttpResult.error("该承运企业与我方企业并无合作关系!");
-        }
+//        List<FindEntCooperateResVo> entCooperate = remoteManageService.findEntCooperate(Long.parseLong(consignCompanyId), Long.parseLong(acceptCompanyId), CooperateTypeEnum.CARRIAGE.getCode());
+//        if (entCooperate == null) {
+//            return HttpResult.error("该承运企业与我方企业并无合作关系!");
+//        }
         /**保存新建数据*/
         Long lOrderId = new IdWorker(NumberConstant.ONE).nextId();
         /**生成订单编号*/
@@ -1180,6 +1182,11 @@ public class ConsignOrderService {
         consignUnit.setLOrderId(lOrderId);
         consignUnit.setUnitType(NumberConstant.ONE);
         consignUnit.setEntId(Long.parseLong(addOrderDTO.getConsignCompanyId()));
+        Map<Long, EntCacheResDto> dtoMap = remoteSystemService.queryEntTreeByIds(Collections.singletonList(Long.parseLong(addOrderDTO.getConsignCompanyId())));
+        if (dtoMap == null || dtoMap.get(Long.parseLong(addOrderDTO.getConsignCompanyId())) == null) {
+            throw new BusinessException("该【" + addOrderDTO.getConsignCompany() + "】一级企业不存在!");
+        }
+        consignUnit.setTopEntId(dtoMap.get(Long.parseLong(addOrderDTO.getConsignCompanyId())).getId());
         consignUnit.setFirmName(addOrderDTO.getConsignCompany());
         consignUnit.setContacts(addOrderDTO.getConsignContacts());
         consignUnit.setPhone(addOrderDTO.getConsignContactPhone());
@@ -1195,6 +1202,11 @@ public class ConsignOrderService {
         unit.setLOrderId(lOrderId);
         unit.setUnitType(NumberConstant.TWO);
         unit.setEntId(Long.parseLong(addOrderDTO.getAcceptCompanyId()));
+        Map<Long, EntCacheResDto> dtoMap1 = remoteSystemService.queryEntTreeByIds(Collections.singletonList(Long.parseLong(addOrderDTO.getAcceptCompanyId())));
+        if (dtoMap1 == null || dtoMap1.get(Long.parseLong(addOrderDTO.getAcceptCompanyId())) == null) {
+            throw new BusinessException("该【" + addOrderDTO.getAcceptCompany() + "】一级企业不存在!");
+        }
+        unit.setTopEntId(dtoMap1.get(Long.parseLong(addOrderDTO.getAcceptCompanyId())).getId());
         unit.setFirmName(addOrderDTO.getAcceptCompany());
         unit.setContacts(addOrderDTO.getAcceptContacts());
         unit.setPhone(addOrderDTO.getAcceptContactPhone());
@@ -1259,10 +1271,20 @@ public class ConsignOrderService {
         order.setContractName(infoResDto.getContactName());
         order.setContractSigningWay(String.valueOf(infoResDto.getSigningWay()));
         order.setCheckEntId(Long.parseLong(addOrderDTO.getConsignCompanyId()));
+        Map<Long, EntCacheResDto> dtoMap = remoteSystemService.queryEntTreeByIds(Collections.singletonList(Long.parseLong(addOrderDTO.getConsignCompanyId())));
+        if (dtoMap == null || dtoMap.get(Long.parseLong(addOrderDTO.getConsignCompanyId())) == null) {
+            throw new BusinessException("该【" + addOrderDTO.getConsignCompany() + "】一级企业不存在!");
+        }
+        order.setCheckTopEntId(dtoMap.get(Long.parseLong(addOrderDTO.getConsignCompanyId())).getId());
         order.setCheckFirmName(addOrderDTO.getConsignCompany());
         order.setCheckContacts(addOrderDTO.getConsignContacts());
         order.setCheckPhone(addOrderDTO.getConsignContactPhone());
         order.setCarrierEntId(Long.parseLong(addOrderDTO.getAcceptCompanyId()));
+        Map<Long, EntCacheResDto> dtoMap1 = remoteSystemService.queryEntTreeByIds(Collections.singletonList(Long.parseLong(addOrderDTO.getAcceptCompanyId())));
+        if (dtoMap1 == null || dtoMap1.get(Long.parseLong(addOrderDTO.getAcceptCompanyId())) == null) {
+            throw new BusinessException("该【" + addOrderDTO.getAcceptCompany() + "】一级企业不存在!");
+        }
+        order.setCarrierTopEntId(dtoMap1.get(Long.parseLong(addOrderDTO.getAcceptCompanyId())).getId());
         order.setCarrierFirmName(addOrderDTO.getAcceptCompany());
         order.setCarrierContacts(addOrderDTO.getAcceptContacts());
         order.setCarrierPhone(addOrderDTO.getAcceptContactPhone());

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

@@ -68,7 +68,7 @@
                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_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 AND c.unit_type = #{type}
         WHERE a.del_flag = '0'
           AND b.del_flag = '0'
@@ -140,10 +140,10 @@
         FROM
         kwt_logistics_order a
         LEFT JOIN kwt_logistics_order_goods b ON a.id = b.l_order_id and a.bind_status = '0'
-<!--        LEFT JOIN kwt_logistics_order_unit d ON a.id = d.l_order_id-->
+        <!--        LEFT JOIN kwt_logistics_order_unit d ON a.id = d.l_order_id-->
         LEFT JOIN kwt_logistics_order_contract c ON a.id = c.l_order_id
-<!--        LEFT JOIN ( SELECT l_order_id FROM kwt_logistics_order_unit WHERE unit_type = 1 AND ent_id = #{entId} ) g ON a.id = g.l_order_id-->
-<!--        LEFT JOIN ( SELECT ent_id FROM kwt_logistics_order_unit WHERE unit_type = 1 AND ent_id = #{entId} ) g ON a.id = g.l_order_id-->
+        <!--        LEFT JOIN ( SELECT l_order_id FROM kwt_logistics_order_unit WHERE unit_type = 1 AND ent_id = #{entId} ) g ON a.id = g.l_order_id-->
+        <!--        LEFT JOIN ( SELECT ent_id FROM kwt_logistics_order_unit WHERE unit_type = 1 AND ent_id = #{entId} ) g ON a.id = g.l_order_id-->
         LEFT JOIN kwt_logistics_order_unit g on a.id =g.l_order_id and g.unit_type=1
         <where>
             a.del_flag = 0 and a.bind_status = '0' <!--and d.unit_type = 1-->
@@ -151,7 +151,7 @@
                 AND a.payment = #{dictValue}
             </if>
             <if test="logisticsOrderParam.companyId !=null and logisticsOrderParam.companyId != ''">
-<!--                AND d.ent_id = #{logisticsOrderParam.companyId}-->
+                <!--                AND d.ent_id = #{logisticsOrderParam.companyId}-->
                 AND g.ent_id = #{logisticsOrderParam.companyId}
             </if>
             <if test="logisticsOrderParam.taxRate != null and logisticsOrderParam.taxRate != ''">
@@ -474,7 +474,8 @@
         </where>
     </select>
 
-    <select id="findLogisticsOrder" resultType="com.sckw.transport.model.KwtLogisticsOrder" parameterType="java.util.Map">
+    <select id="findLogisticsOrder" resultType="com.sckw.transport.model.KwtLogisticsOrder"
+            parameterType="java.util.Map">
         select
         id, ent_id entId, t_order_id tOrderId, t_order_no tOrderNo, l_order_no lOrderNo, pid, pids,
         settlement_cycle settlementCycle, price, price_type priceType, billing_mode billingMode,
@@ -524,11 +525,11 @@
         SELECT a.city_code
         FROM kwt_logistics_order_address a
                  LEFT JOIN kwt_logistics_order b ON a.l_order_id = b.id
-        where a.city_code is not null AND b.ent_id =#{entId}
+        where a.city_code is not null
+          AND b.ent_id = #{entId}
         GROUP BY a.city_code
     </select>
     <select id="getAddressDetailListByEntId" resultType="com.sckw.transport.api.model.dto.AddressResDTO">
-
     </select>
     <select id="selectMaxLevel" resultType="java.lang.Integer">
         SELECT MAX(LEVEL)
@@ -538,51 +539,108 @@
     </select>
 
     <select id="countAmountByTradeOrderId" resultType="java.util.Map">
-        SELECT
-            SUM(
-                    IFNULL( unload_amount, 0 )) as unloadAmount,
-            SUM(
-                    IFNULL( load_amount, 0 )) as loadAmount,
-            SUM(
-                    IFNULL( total_load_amount, 0 )) AS totalLoadAmount,
-            SUM(
-                    IFNULL( total_unload_amount, 0 )) AS totalUnloadAmount
-        FROM
-            kwt_logistics_order
-        WHERE
-            del_flag = 0
+        SELECT SUM(
+                       IFNULL(unload_amount, 0))       as unloadAmount,
+               SUM(
+                       IFNULL(load_amount, 0))         as loadAmount,
+               SUM(
+                       IFNULL(total_load_amount, 0))   AS totalLoadAmount,
+               SUM(
+                       IFNULL(total_unload_amount, 0)) AS totalUnloadAmount
+        FROM kwt_logistics_order
+        WHERE del_flag = 0
           AND t_order_id = #{tOrderId}
-          AND `status`  IN (
+          AND `status` IN (
             8
             )
     </select>
 
     <select id="selectOrderListByIdsAndUnitType" 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.price,
-               a.loss,
-               a.goods_price as goodsPrice,
-               c.firm_name   as companyName,
-               c.contacts,
-               c.phone,
-               a.create_by   as createBy,
-               a.create_time as createTime
+        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.price,
+        a.loss,
+        a.goods_price as goodsPrice,
+        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 AND c.unit_type = #{type}
+        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 AND c.unit_type = #{type}
         WHERE a.del_flag = '0'
-          AND b.del_flag = '0'
-          AND a.t_order_id IN
-            <foreach collection="ids" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
+        AND b.del_flag = '0'
+        AND a.t_order_id IN
+        <foreach collection="ids" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
         order by createTime desc
     </select>
 
+    <select id="selectLoopOrderAndDriverListByOrderId" resultType="com.sckw.transport.model.vo.DriverListVo">
+        SELECT DISTINCT
+        b.id AS wOrderId,
+        c.id AS circulateId,
+        b.driver_id AS driverId,
+        c.l_order_id AS lOrderId,
+        b.driver_name AS driverName,
+        b.driver_phone AS driverPhone,
+        b.driver_idcard AS driverIdCard,
+        b.truck_no AS truckNo ,
+        c.total_take as count
+        FROM
+        kwt_logistics_order_circulate c
+        LEFT JOIN kwt_waybill_order b ON b.l_order_id = c.l_order_id
+        WHERE
+        b.del_flag = 0
+        AND c.del_flag = 0
+        AND b.type = '2'
+        and c.satus = 0
+        <if test="driverParam.lOrderId != null and driverParam.lOrderId != ''">
+            AND b.l_order_id =#{driverParam.lOrderId}
+        </if>
+        <if test="driverParam.driverName != null and driverParam.driverName != ''">
+            and b.driver_name like concat('%',#{driverParam.driverName},'%')
+        </if>
+        <if test="driverParam.driverPhone != null and driverParam.driverPhone != ''">
+            AND b.driver_phone like concat('%',#{driverParam.driverPhone},'%')
+        </if>
+        <if test="driverParam.truckNo != null and driverParam.truckNo != ''">
+            AND b.truck_no like concat('%',#{driverParam.truckNo},'%')
+        </if>
+        <!--        GROUP BY b.truck_no-->
+    </select>
+
+    <select id="selectLoopOrderAndDriverListByOrderIds" resultType="com.sckw.transport.model.vo.DriverListVo">
+        SELECT DISTINCT
+        b.id AS wOrderId,
+        c.id AS circulateId,
+        b.driver_id AS driverId,
+        c.l_order_id AS lOrderId,
+        b.driver_name AS driverName,
+        b.driver_phone AS driverPhone,
+        b.driver_idcard AS driverIdCard,
+        b.truck_no AS truckNo ,
+        c.total_take as count
+        FROM
+        kwt_logistics_order_circulate c
+        LEFT JOIN kwt_waybill_order b ON b.l_order_id = c.l_order_id
+        WHERE
+        b.del_flag = 0
+        AND c.del_flag = 0
+        AND b.type = '2'
+        and c.satus = 0
+        <if test="idsList != null and idsList.size() >0">
+            AND b.l_order_id IN
+            <foreach collection="idsList" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </select>
 </mapper>

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

@@ -6,6 +6,7 @@
         <result column="l_order_id" jdbcType="BIGINT" property="lOrderId" />
         <result column="unit_type" jdbcType="INTEGER" property="unitType" />
         <result column="ent_id" jdbcType="BIGINT" property="entId" />
+        <result column="top_ent_id" jdbcType="BIGINT" property="topEntId" />
         <result column="firm_name" jdbcType="VARCHAR" property="firmName" />
         <result column="contacts" jdbcType="VARCHAR" property="contacts" />
         <result column="phone" jdbcType="VARCHAR" property="phone" />
@@ -18,7 +19,7 @@
         <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
     </resultMap>
     <sql id="Base_Column_List">
-        id, l_order_id, unit_type, ent_id, firm_name, contacts, phone, remark, `status`,
+        id, l_order_id, unit_type,top_ent_id, ent_id, firm_name, contacts, phone, remark, `status`,
     create_by, create_time, update_by, update_time, del_flag
     </sql>