Просмотр исходного кода

提供dubbo接口
对账界面bugfix
承运订单/托运订单-根据原型增加请求参数

lengfaqiang 2 лет назад
Родитель
Сommit
d4ddba4f6d
17 измененных файлов с 1023 добавлено и 94 удалено
  1. 1 1
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java
  2. 8 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java
  3. 1 1
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java
  4. 41 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  5. 37 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java
  6. 21 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  7. 16 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderContract.java
  8. 19 10
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddOrderDTO.java
  9. 53 18
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/AcceptCarriageOrderQuery.java
  10. 9 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java
  11. 164 52
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/AcceptCarriageOrderVO.java
  12. 150 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  13. 93 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/CommonService.java
  14. 148 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  15. 6 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  16. 33 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java
  17. 223 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

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

@@ -461,7 +461,7 @@ public class SckwLogisticsOrder {
     private String delFlag;
 
     /**
-     * 关联的承运订单
+     * 车辆运单编
      */
     private String wOrderNo;
 

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

@@ -90,4 +90,12 @@ public interface TransportDubboService {
      * @return  ture 代表还有未完结的  false代表没有未完结的
      */
     boolean checkLogisticsOrderFinishByEntId(Long entId);
+
+    /**
+     * 根据企业id 判断是否存在未完成完结的物流订单
+     *
+     * @param entId 企业id
+     * @return   根据data是否为空判断 是否存在未完结订单  空  不存在  不为空  存在
+     */
+    HttpResult checkLogisticsOrderIsFinishByEntId(Long entId);
 }

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

@@ -120,7 +120,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
             changeDict(ledgerShipperDtoPageInfo.getList());
             return new PageRes<>(ledgerShipperDtoPageInfo);
         }
-        return new PageRes<>();
+        return new PageRes<>(ledgerShipperDtoPageInfo);
     }
 
     /**

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

@@ -1,10 +1,12 @@
 package com.sckw.transport.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.sckw.core.model.page.PageRes;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.*;
+import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
 import com.sckw.transport.model.param.DriverParam;
 import com.sckw.transport.model.param.LogisticsOrderParam;
 import com.sckw.transport.service.AcceptCarriageOrderService;
@@ -38,6 +40,44 @@ public class AcceptCarriageOrderController {
     @Autowired
     private TransportCommonService transportCommonService;
 
+
+
+    /**
+     * 承运订单首页条件查询
+     *
+     * @param query 查询参数
+     * @return
+     */
+    @RequestMapping(value = "/selectAcceptCarriageOrderList", method = RequestMethod.POST)
+    public HttpResult acceptCarriageOrderList(@Valid @RequestBody AcceptCarriageOrderQuery query) {
+        try {
+            PageRes result = acceptCarriageOrderService.selectLogisticsOrderList(query, "2");
+            return HttpResult.ok(result);
+        } catch (Exception e) {
+            log.error("承运订单首页条件查询 查询失败:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+
+    /**
+     * 承运订单top统计
+     *
+     * @param query 查询参数
+     * @return
+     */
+    @RequestMapping(value = "/statisticsAcceptCarriage", method = RequestMethod.POST)
+    public HttpResult statisticsAcceptCarriage(@Valid @RequestBody AcceptCarriageOrderQuery query) {
+        try {
+            HttpResult result = acceptCarriageOrderService.statisticsAcceptCarriage(query, "2");
+            return result;
+        } catch (Exception e) {
+            log.error("承运订单top统计 查询失败:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+
     /**
      * 获取订单详情-托运订单-承运订单-销售订单-采购订单
      *
@@ -78,7 +118,7 @@ public class AcceptCarriageOrderController {
      * @return
      */
     @RequestMapping(value = "/getAcceptCarriageOrder", method = RequestMethod.POST)
-    public HttpResult getAcceptCarriageOrder(@RequestBody @Validated LogisticsOrderParam logisticsOrderParam) {
+    public HttpResult getAcceptCarriageOrder(@RequestBody @Valid LogisticsOrderParam logisticsOrderParam) {
         log.info("对账管理查询物流订单信息:{}",JSONObject.toJSONString(logisticsOrderParam));
         try {
             return transportCommonService.getAcceptCarriageOrder(logisticsOrderParam);

+ 37 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java

@@ -1,11 +1,13 @@
 package com.sckw.transport.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.sckw.core.model.page.PageRes;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.AddOrderDTO;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.model.dto.OrderFinishDTO;
+import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
 import com.sckw.transport.service.ConsignOrderService;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotBlank;
@@ -30,6 +32,41 @@ public class ConsignOrderController {
     @Autowired
     ConsignOrderService consignOrderService;
 
+    /**
+     * 托运订单首页条件查询
+     *
+     * @param query 查询参数
+     * @return
+     */
+    @RequestMapping(value = "/selectConsignOrderList", method = RequestMethod.POST)
+    public HttpResult selectConsignOrderList(@Valid @RequestBody AcceptCarriageOrderQuery query) {
+        try {
+            PageRes result = consignOrderService.selectConsignOrderList(query, "1");
+            return HttpResult.ok(result);
+        } catch (Exception e) {
+            log.error("托运订单首页条件查询 查询失败:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+
+    /**
+     * 托运订单-top统计
+     *
+     * @param query 查询参数
+     * @return
+     */
+    @RequestMapping(value = "/statisticsConsign", method = RequestMethod.POST)
+    public HttpResult statisticsConsign(@Valid @RequestBody AcceptCarriageOrderQuery query) {
+        try {
+            HttpResult result = consignOrderService.statisticsConsign(query, "1");
+            return result;
+        } catch (Exception e) {
+            log.error("托运订单-top统计 查询失败:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
 
     /**
      * 托运订单/承运订单-获取车辆运单

+ 21 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java

@@ -1,12 +1,15 @@
 package com.sckw.transport.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.mongo.model.TableTops;
 import com.sckw.transport.api.model.dto.AddressResDTO;
 import com.sckw.transport.api.model.dto.LogisticsOrderDTO;
 import com.sckw.transport.api.model.vo.LogisticsOrderVO;
 import com.sckw.transport.model.KwtLogisticsOrder;
+import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
 import com.sckw.transport.model.param.DriverParam;
 import com.sckw.transport.model.param.LogisticsOrderParam;
+import com.sckw.transport.model.vo.AcceptCarriageOrderVO;
 import com.sckw.transport.model.vo.DriverListVo;
 import com.sckw.transport.model.vo.OrderFinishVO;
 import com.sckw.transport.model.vo.SubcontractConsignmentVO;
@@ -27,7 +30,7 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
      * 查询物流订单数据
      *
      * @param logisticsOrderParam 查询参数
-     * @param dictValue              字典id
+     * @param dictValue           字典id
      * @return
      */
     List<LogisticsOrderVO> selectLogisticOrderData(@Param("logisticsOrderParam") LogisticsOrderParam logisticsOrderParam, @Param("dictValue") String dictValue, @Param("entId") Long entId);
@@ -166,16 +169,31 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
     Map<String, BigDecimal> countAmountByTradeOrderId(@Param("tOrderId") Long tOrderId);
 
     /**
-     *  根据物流订单id查询能被停止的循环数据
-     * @param driverParam   页面请求参数
+     * 根据物流订单id查询能被停止的循环数据
+     *
+     * @param driverParam 页面请求参数
      * @return
      */
     List<DriverListVo> selectLoopOrderAndDriverListByOrderId(@Param("driverParam") DriverParam driverParam);
 
     /**
      * 根据物流订单id查询能被停止的循环数据
+     *
      * @param idsList 物流订单id
      * @return
      */
     List<DriverListVo> selectLoopOrderAndDriverListByOrderIds(@Param("idsList") List<Long> idsList);
+
+    List<AcceptCarriageOrderVO> selectLogisticsOrderList(@Param("query") AcceptCarriageOrderQuery query,
+                                                         @Param("orderList") List<Integer> orderList,
+                                                         @Param("type") String type,
+                                                         @Param("entId") Long entId
+    );
+
+
+    List<TableTops> selectLogisticsOrderListByStatus(@Param("query") AcceptCarriageOrderQuery query,
+                                                     @Param("orderList") List<Integer> orderList,
+                                                     @Param("type") String type,
+                                                     @Param("entId") Long entId
+    );
 }

+ 16 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderContract.java

@@ -25,6 +25,22 @@ public class KwtLogisticsOrderContract implements Serializable {
      */
     private Long contractId;
 
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 合同名称
+     */
+    private String contractName;
+
+
+     /**
+     * 签约方式
+     */
+    private String signingWay;
+
     /**
      * 物流订单id
      */

+ 19 - 10
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddOrderDTO.java

@@ -159,14 +159,14 @@ public class AddOrderDTO {
      * 计划卸货时间
      */
     @NotNull(message = "计划卸货时间不能为空")
-    @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate endTime;
 
     /**
      * 计划发货时间
      */
     @NotNull(message = "计划发货时间不能为空")
-    @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate startTime;
 
     /**
@@ -195,13 +195,22 @@ public class AddOrderDTO {
     private String contractName;
 
     /**
-     * 合同签约方式
+     * 支付方式
      */
-    @NotNull(message = "合同签约方式不能为空")
-    @Min(value = 0,message = "合同签约方式必须大于等于{value}")
-    @Max(value = 4,message = "合同签约方式必须小于等于{value}")
+    @NotNull(message = "支付方式不能为空")
+    @Min(value = 0, message = "支付方式必须大于等于{value}")
+    @Max(value = 4, message = "支付方式必须小于等于{value}")
     private Long payment;
 
+
+    /**
+     * 签约方式
+     */
+    @NotNull(message = "签约方式不能为空")
+    @Min(value = 0, message = "签约方式必须大于等于{value}")
+    @Max(value = 4, message = "签约方式必须小于等于{value}")
+    private String signingWay;
+
     /**
      * 备注
      */
@@ -212,8 +221,8 @@ public class AddOrderDTO {
      * 装货城市编码
      */
     @NotNull(message = "装货城市编码不能为空")
-    @Min(value = 0,message = "装货城市编码必须大于等于{value}")
-    @Max(value = 1000000,message = "装货城市编码必须小于等于{value}")
+    @Min(value = 0, message = "装货城市编码必须大于等于{value}")
+    @Max(value = 1000000, message = "装货城市编码必须小于等于{value}")
     private Integer loadCityCode;
 
     /**
@@ -254,8 +263,8 @@ public class AddOrderDTO {
      * 卸货城市编码
      */
     @NotNull(message = "卸货城市编码不能为空")
-    @Min(value = 0,message = "卸货城市编码必须大于等于{value}")
-    @Max(value = 1000000,message = "卸货城市编码必须小于等于{value}")
+    @Min(value = 0, message = "卸货城市编码必须大于等于{value}")
+    @Max(value = 1000000, message = "卸货城市编码必须小于等于{value}")
     private Integer unloadCityCode;
 
     /**

+ 53 - 18
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/AcceptCarriageOrderQuery.java

@@ -4,7 +4,6 @@ import com.sckw.core.model.page.PageRequest;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.List;
 
 /**
  * @author lfdc
@@ -13,39 +12,75 @@ import java.util.List;
  */
 @Data
 public class AcceptCarriageOrderQuery extends PageRequest implements Serializable {
-    private List<String> ids;
+
     /**
-     * 订单id
+     * 数据id-主要用于订单导出
      */
-    private String orderId;
+    private String ids;
     /**
-     * 单位名称
+     * 计费方式
      */
-    private String companyName;
+    private String billingMode;
     /**
-     * 货物名称
+     * 计划结束时间(起)
      */
-    private String goodsName;
+    private String endBeginDateTime;
 
     /**
-     *装载地点
+     * 计划结束时间(止)
      */
-    private String stowageAddress;
+    private String endOverDateTime;
+    /**
+     * 关键字搜索
+     */
+    private String keywords;
+    /**
+     * 装货地址code
+     */
+    private String loadAddressCode;
+//    /**
+//     * 装货地址
+//     */
+//    private String loadAddress;
+    /**
+     * 装货地址等级
+     */
+    private Integer loadAddressLevel;
 
     /**
-     * 卸载地点
+     * 计划开始时间(起)
      */
-    private String unloadAddress;
+    private String startBeginDateTime;
+
     /**
-     * 开始时间
+     * 计划开始时间(止)
      */
-    private String startDate;
+    private String startOverDateTime;
+
     /**
-     * 结束时间
+     * 创建时间(起)
      */
-    private String endDate;
+    private String createStartTime;
+
     /**
-     * 计费方式
+     * 创建时间(止)
      */
-    private String billingMode;
+    private String createEndTime;
+
+    /**
+     * 单据状态
+     */
+    private String status;
+    /**
+     * 卸货地址code
+     */
+    private String unloadAddressCode;
+//    /**
+//     * 卸货地址
+//     */
+//    private String unloadAddress;
+    /**
+     * 卸货地址等级
+     */
+    private Integer unloadAddressLevel;
 }

+ 9 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java

@@ -130,10 +130,17 @@ public class LogisticsConsignmentParam {
     private String contractName;
 
     /**
-     * 合同签约方式
+     * 支付方式
      */
-    @NotNull(message = "合同签约方式不能为空")
+    @NotNull(message = "支付方式不能为空")
     private String payment;
+
+    /**
+     * 签约方式
+     */
+    @NotNull(message = "签约方式不能为空")
+    private String signingWay;
+
     /**
      * 货物名称
      */

+ 164 - 52
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/AcceptCarriageOrderVO.java

@@ -1,8 +1,11 @@
 package com.sckw.transport.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
-import java.util.List;
+import java.math.BigDecimal;
+import java.time.LocalDate;
 
 /**
  * @author lfdc
@@ -10,117 +13,226 @@ import java.util.List;
  * @date 2023-06-27 10:06:30
  */
 @Data
-public class AcceptCarriageOrderVO {
+public class AcceptCarriageOrderVO /*extends PageRequest*/ {
     /**
-     * 状态
+     * 结算周期
+     */
+    private String accountsCycle;
+    /**
+     * 结算周期
+     */
+    private String accountsCycleLabel;
+    /**
+     * 发起人
+     */
+    private String appointor;
+
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+
+    /**
+     * 计费方式
+     */
+    private String billingModeLabel;
+
+    /**
+     * 承运单位ID
+     */
+    private String carrierCompanyId;
+    /**
+     * 承运单位
+     */
+    private String carrierCompany;
+    /**
+     * 承运联系人
+     */
+    private String carrierContacts;
+//    /**
+//     * 承运订单
+//     */
+//    private String carrierOrder;
+    /**
+     * 承运联系电话
+     */
+    private String carrierPhone;
+    /**
+     * 分配承运量
      */
-    private String status;
+    private BigDecimal carryingCapacity;
+
     /**
-     * 承运订单号
+     * 托运单位id
      */
-    private String orderId;
+    private String consignCompanyId;
     /**
      * 托运单位
      */
-    private String companyName;
+    private String consignCompany;
+    /**
+     * 托运联系人
+     */
+    private String consignContacts;
+    /**
+     * 托运联系电话
+     */
+    private String consignPhone;
+    /**
+     * 合同
+     */
+    private String contract;
+    /**
+     * 扣亏货值/元/吨
+     */
+    private BigDecimal deficitAmount;
     /**
      * 货物名称
      */
     private String goodsName;
     /**
-     * 分配承运量
+     * 装货地点
      */
-    private String carryingCapacity;
+    private String loadAddress;
     /**
-     * 装货地点
+     * 装货区域名称
      */
-    private String stowageAddress;
+    private String loadCityName;
     /**
-     * 卸货地点
+     * 数据库id
      */
-    private String unloadAddress;
+    @JsonProperty("lOrderId")
+    private String lOrderId;
     /**
-     * 运价
+     * 托运订单号
      */
-    private String freightRate;
+    @JsonProperty("lOrderNo")
+    private String lOrderNo;
+
     /**
-     * 结算周期
+     * 贸易订单id
      */
-    private String accountsCycle;
+    @JsonProperty("tOrderId")
+    private String tOrderId;
     /**
-     * 计费方式
+     *  贸易订单编号
      */
-    private String billingMode;
+    @JsonProperty("tOrderNo")
+    private String tOrderNo;
+
     /**
      * 合理损耗
      */
-    private String wastage;
+    private BigDecimal loss;
     /**
-     * 扣亏货值/元/吨
+     * 合理损耗单位
      */
-    private String defectiveValue;
+    private String lossUnit;
     /**
-     * 承运联系人
+     * 计划时间
      */
-    private String acceptCarriagePerson;
+//    private String plannedDateTime;
     /**
-     * 承运联系电话
+     * 运价
      */
-    private String acceptCarriageTel;
+    private BigDecimal price;
     /**
-     * 托运单位
+     * 收货联系人
      */
-    private String consignCompany;
+    private String receiveGoodsContacts;
     /**
-     * 托运联系人
+     * 计划收货时间
      */
-    private String consignPerson;
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private LocalDate receiveGoodsDateTime;
     /**
-     * 托运联系电话
+     * 收货电话
+     */
+    private String receiveGoodsPhone;
+    /**
+     * 备注
      */
-    private String consignTel;
+    private String remark;
     /**
      * 发货联系人
      */
-    private String shipmentsPerson;
+    private String shipmentsContacts;
+    /**
+     * 计划发货时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private LocalDate shipmentsDateTime;
     /**
      * 发货电话
      */
-    private String shipmentsTel;
+    private String shipmentsPhone;
     /**
-     * 收货联系人
+     * 签约方式
      */
-    private String receiveGoodsPerson;
+    private String signing;
+
     /**
-     * 收货电话
+     * 签约方式
      */
-    private String receiveGoodsTel;
+    private String signingLabel;
     /**
-     * 计划发货时间
+     * 状态
      */
-    private String shipmentsDate;
+    private Integer status;
     /**
-     * 计划收货时间
+     * 状态
      */
-    private String receiveGoodsDate;
+    private String statusLabel;
     /**
-     * 合同
+     * 卸货地点
      */
-    private String contract;
+    private String unloadAddress;
     /**
-     * 备注
+     * 卸货区域名称
      */
-    private String remark;
+    private String unloadCityName;
+//    /**
+//     * 关联承运订单号
+//     */
+//    @JsonProperty("wOrderNo")
+//    private String wOrderNo;
+
+    private String createTime;
+
+    private String updateTime;
+
     /**
-     * 发起人
+     * 发货单位
      */
-    private String appointor;
+    private String shipmentsUnitEntId;
+
     /**
-     * 计划时间
+     * 发货单位
+     */
+    private String shipmentsUnit;
+
+    /**
+     * 收货单位
+     */
+    private String receiveGoodsUnitEntId;
+
+    /**
+     * 收货单位
      */
-    private String plannedDate;
+    private String receiveGoodsUnit;
 
-    private List<CarWaybillVO> carWaybillList;
-    private List<ConsignmentVO> consignmentList;
+    /**
+     * 商品价值(扣亏货值)
+     */
+    private BigDecimal goodsPrice;
+
+    /**
+     * 商品价值(扣亏货值)单位
+     */
+    private String goodsPriceUnit;
 
 }

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

@@ -5,6 +5,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.contract.api.RemoteContractService;
 import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
 import com.sckw.core.common.enums.NumberConstant;
@@ -14,8 +16,12 @@ 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.PageRes;
 import com.sckw.core.model.page.PageResult;
-import com.sckw.core.utils.*;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.IdWorker;
+import com.sckw.core.utils.RegularUtils;
+import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
@@ -27,17 +33,22 @@ 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;
+import com.sckw.mongo.model.TableTops;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.CompleteLogisticsOrderParam;
+import com.sckw.order.api.model.OrderDetailRes;
+import com.sckw.order.api.model.UnitInfoDetailRes;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
+import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
 import com.sckw.transport.model.param.DriverParam;
 import com.sckw.transport.model.vo.*;
 import jakarta.annotation.Resource;
@@ -82,6 +93,9 @@ public class AcceptCarriageOrderService {
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
     RemoteManageService remoteManageService;
 
+    @Autowired
+    public CommonService commonService;
+
     @Resource
     private StreamBridge streamBridge;
 
@@ -556,6 +570,7 @@ public class AcceptCarriageOrderService {
         order.setIgnoreAmount(decimal);
         order.setDeficitPrice(decimal);
         order.setDeficitAmount(decimal);
+        order.setBindStatus(String.valueOf(NumberConstant.ZERO));
         kwtLogisticsOrderMapper.insert(order);
     }
 
@@ -599,8 +614,8 @@ public class AcceptCarriageOrderService {
             return result;
         }
         KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
-                .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
+                        .eq(StringUtils.isNotBlank(orderDTO.getLOrderId()), KwtLogisticsOrder::getId, orderDTO.getLOrderId())
+                        .eq(StringUtils.isNotBlank(orderDTO.getLOrderNo()), KwtLogisticsOrder::getLOrderNo, orderDTO.getLOrderNo())
                 /*.eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/
         );
         if (logisticsOrder == null) {
@@ -1842,6 +1857,9 @@ public class AcceptCarriageOrderService {
         contract.setId(new IdWorker(NumberConstant.ONE).nextId());
         contract.setContractId(Long.parseLong(orderDTO.getContractId()));
         contract.setLOrderId(lOrderId);
+        contract.setContractNo(orderDTO.getContractNo());
+        contract.setContractName(orderDTO.getContractName());
+        contract.setSigningWay(orderDTO.getSigningWay());
         contract.setStatus(NumberConstant.ZERO);
         contract.setCreateBy(LoginUserHolder.getUserId());
         contract.setCreateTime(new Date());
@@ -1895,7 +1913,136 @@ public class AcceptCarriageOrderService {
         order.setCreateTime(new Date());
         order.setUpdateBy(LoginUserHolder.getUserId());
         order.setUpdateTime(new Date());
+        order.setBindStatus(String.valueOf(NumberConstant.ZERO));
         logisticsOrderMapper.insert(order);
     }
 
+    public PageRes selectLogisticsOrderList(AcceptCarriageOrderQuery query, String type) {
+        Long entId = LoginUserHolder.getEntId();
+        PageHelper.startPage(query.getPage(), query.getPageSize());
+        List<Integer> orderList = new ArrayList<>();
+        if (StringUtils.isNotBlank(query.getStatus())) {
+            if (String.valueOf(NumberConstant.EIGHT).equals(query.getStatus())) {
+                orderList.add(LogisticsOrderEnum.REJECT_ORDER.getCode());
+                orderList.add(LogisticsOrderEnum.CANCEL_ORDER.getCode());
+            } else {
+                orderList.add(Integer.valueOf(query.getStatus()));
+            }
+        }
+        //装卸货地址
+        String loadCode = query.getLoadAddressCode();
+        if (StringUtils.isNotBlank(loadCode)) {
+            switch (query.getLoadAddressLevel()) {
+                case 1 -> query.setLoadAddressCode(
+                        loadCode.substring(0, 2).trim());
+                case 2 -> query.setLoadAddressCode(
+                        loadCode.substring(0, 4).trim());
+                case 3 -> query.setLoadAddressCode(loadCode);
+            }
+        }
+        String unloadCode = query.getUnloadAddressCode();
+        if (StringUtils.isNotBlank(unloadCode)) {
+            switch (query.getUnloadAddressLevel()) {
+                case 1 -> query.setUnloadAddressCode(
+                        loadCode.substring(0, 2).trim());
+                case 2 -> query.setUnloadAddressCode(
+                        loadCode.substring(0, 4).trim());
+                case 3 -> query.setUnloadAddressCode(loadCode);
+            }
+        }
+        List<AcceptCarriageOrderVO> list = logisticsOrderMapper.selectLogisticsOrderList(query, orderList, type, entId);
+        PageInfo<AcceptCarriageOrderVO> pageInfo = new PageInfo<>(list);
+        if (CollectionUtils.isEmpty(list)) {
+            return PageRes.build(pageInfo, list);
+        }
+//        List<AcceptCarriageOrderVO> detailRes = new ArrayList<>();
+        /**计量单位*/
+        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_TYPE.getType());
+        /**合理损耗*/
+//        Map<String, String> taxRateTypeDictData = getDictData(DictTypeEnum.TAX_RATE_TYPE.getType());
+        Map<Long, UserCacheResDto> longUserMap = new HashMap<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            List<Long> collect = list.stream().map(AcceptCarriageOrderVO::getCreateBy).collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(collect)) {
+                longUserMap = remoteSystemService.queryUserCacheMapByIds(collect);
+            }
+        }
+        for (AcceptCarriageOrderVO vo : list) {
+            vo.setAccountsCycleLabel(settlementDictData.get(vo.getAccountsCycle()));
+            vo.setAppointor(longUserMap.get(vo.getCreateBy()) == null ? null : longUserMap.get(vo.getCreateBy()).getName());
+            vo.setBillingModeLabel(chargingDictData.get(vo.getBillingMode()));
+            vo.setSigningLabel(signingWay.get(vo.getSigning()));
+            vo.setStatusLabel(LogisticsOrderEnum.getName(vo.getStatus()));
+            vo.setLoadAddress(vo.getLoadCityName() + vo.getLoadAddress());
+            vo.setUnloadAddress(vo.getUnloadCityName() + vo.getUnloadAddress());
+            if (vo.getTOrderId() != null) {
+                OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.valueOf(vo.getTOrderId()));
+                if (orderDetailRes != null) {
+                    List<UnitInfoDetailRes> unitInfo = orderDetailRes.getUnitInfo();
+                    for (UnitInfoDetailRes detailRes : unitInfo) {
+                        if (String.valueOf(NumberConstant.ONE).equals(detailRes.getUnitType())) {
+                            vo.setShipmentsUnitEntId(String.valueOf(detailRes.getEntId()));
+                            vo.setShipmentsUnit(detailRes.getFirmName());
+                        } else {
+                            vo.setReceiveGoodsUnitEntId(String.valueOf(detailRes.getEntId()));
+                            vo.setReceiveGoodsUnit(detailRes.getFirmName());
+                        }
+                    }
+                }
+            }
+        }
+        return PageRes.build(pageInfo, list);
+    }
+
+    public HttpResult statisticsAcceptCarriage(AcceptCarriageOrderQuery query, String type) {
+        Long entId = LoginUserHolder.getEntId();
+        List<Integer> orderList = new ArrayList<>();
+        if (StringUtils.isNotBlank(query.getStatus())) {
+            if (String.valueOf(NumberConstant.EIGHT).equals(query.getStatus())) {
+                orderList.add(LogisticsOrderEnum.REJECT_ORDER.getCode());
+                orderList.add(LogisticsOrderEnum.CANCEL_ORDER.getCode());
+            } else {
+                orderList.add(Integer.valueOf(query.getStatus()));
+            }
+        }
+        //装卸货地址
+        String loadCode = query.getLoadAddressCode();
+        if (StringUtils.isNotBlank(loadCode)) {
+            switch (query.getLoadAddressLevel()) {
+                case 1 -> query.setLoadAddressCode(
+                        loadCode.substring(0, 2).trim());
+                case 2 -> query.setLoadAddressCode(
+                        loadCode.substring(0, 4).trim());
+                case 3 -> query.setLoadAddressCode(loadCode);
+            }
+        }
+        String unloadCode = query.getUnloadAddressCode();
+        if (StringUtils.isNotBlank(unloadCode)) {
+            switch (query.getUnloadAddressLevel()) {
+                case 1 -> query.setUnloadAddressCode(
+                        loadCode.substring(0, 2).trim());
+                case 2 -> query.setUnloadAddressCode(
+                        loadCode.substring(0, 4).trim());
+                case 3 -> query.setUnloadAddressCode(loadCode);
+            }
+        }
+        List<TableTops> list = logisticsOrderMapper.selectLogisticsOrderListByStatus(query, orderList, type, entId);
+        List<TableTops> arrayList = new ArrayList<>();
+        arrayList.addAll(list);
+        /**补全数据状态不齐的情况*/
+        arrayList = commonService.packageReturnStatistics(list, arrayList);
+        // 查询结果
+        Map<String, Object> map = new HashMap<>(NumberConstant.SIXTEEN);
+        map.put("tableTop", arrayList);
+        // 查询结果
+        return HttpResult.ok(map);
+    }
 }

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

@@ -1,8 +1,19 @@
 package com.sckw.transport.service;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.enums.LogisticsOrderEnum;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.mongo.model.TableTops;
+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.stereotype.Service;
 
+import java.util.*;
+import java.util.stream.Collectors;
+
 /**
  * @author lfdc
  * @description 通用Service
@@ -12,4 +23,86 @@ import org.springframework.stereotype.Service;
 @Service
 public class CommonService {
 
+    @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
+    RemoteSystemService remoteSystemService;
+
+    /**
+     * 组装返回数据
+     *
+     * @param mappedResults
+     * @param arrayList
+     */
+    public List<TableTops> packageReturnStatistics(List<com.sckw.mongo.model.TableTops> mappedResults, List<TableTops> arrayList) {
+        List<String> codeList = LogisticsOrderEnum.getCodeStringList();
+        List<String> collect = mappedResults.stream().map(e -> e.getValue()).collect(Collectors.toList());
+        List<String> diffrentList = getDiffrentList(collect, codeList);
+        if (CollectionUtils.isNotEmpty(mappedResults)) {
+            if (CollectionUtils.isNotEmpty(diffrentList)) {
+                for (String s : diffrentList) {
+                    TableTops top = new TableTops();
+                    top.setValue(s);
+                    top.setTotal(NumberConstant.ZERO);
+                    arrayList.add(top);
+                }
+            }
+            for (TableTops top : arrayList) {
+                top.setName(LogisticsOrderEnum.getName(Integer.valueOf(top.getValue())));
+            }
+        } else {
+            for (LogisticsOrderEnum logisticsOrderEnum : LogisticsOrderEnum.values()) {
+                TableTops top = new TableTops();
+                top.setName(logisticsOrderEnum.getDestination());
+                top.setValue(logisticsOrderEnum.getStatus());
+                top.setTotal(NumberConstant.ZERO);
+                arrayList.add(top);
+            }
+        }
+        arrayList = arrayList.stream().sorted(Comparator.comparing(TableTops::getValue)).collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(arrayList)) {
+            int total = 0;
+            for (TableTops tops : arrayList) {
+                if (LogisticsOrderEnum.REJECT_ORDER.getStatus().equals(tops.getValue())) {
+                    total = total + tops.getTotal();
+                }
+                if (LogisticsOrderEnum.CANCEL_ORDER.getStatus().equals(tops.getValue())) {
+                    total = total + tops.getTotal();
+                }
+            }
+            for (TableTops tops : arrayList) {
+                if (LogisticsOrderEnum.SEND_BACK.getStatus().equals(tops.getValue())) {
+                    tops.setTotal(tops.getTotal() + total);
+                }
+            }
+            Iterator iterator = arrayList.iterator();
+            while (iterator.hasNext()) {
+                TableTops tableTops = (TableTops) iterator.next();
+                if (tableTops.getValue().equals(LogisticsOrderEnum.REJECT_ORDER.getStatus())) {
+                    iterator.remove();
+                }
+                if (tableTops.getValue().equals(LogisticsOrderEnum.CANCEL_ORDER.getStatus())) {
+                    iterator.remove();
+                }
+            }
+            /**补全统计【全部字段】*/
+            Integer sum = Math.toIntExact(arrayList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTotal())).collect(Collectors.summarizingInt(item -> item.getTotal())).getSum());
+            TableTops top = new TableTops();
+            top.setName("全部");
+            top.setValue("all");
+            top.setTotal(sum);
+            arrayList.add(0, top);
+        }
+        return arrayList;
+    }
+    public List<String> getDiffrentList(List<String> sourceList, List<String> targetList) {
+        return targetList.stream().filter(item -> sourceList.stream().allMatch(each -> !item.equals(each))).collect(Collectors.toList());
+    }
+
+    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;
+    }
 }

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

@@ -4,13 +4,17 @@ 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.contract.api.RemoteContractService;
 import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
 import com.sckw.core.common.enums.NumberConstant;
+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.PageRes;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
@@ -26,15 +30,21 @@ 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.TableTops;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.CompleteLogisticsOrderParam;
+import com.sckw.order.api.model.OrderDetailRes;
+import com.sckw.order.api.model.UnitInfoDetailRes;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
+import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
+import com.sckw.transport.model.vo.AcceptCarriageOrderVO;
 import com.sckw.transport.model.vo.CarWaybillVO;
 import com.sckw.transport.model.vo.OrderFinishVO;
 import com.sckw.transport.model.vo.WaybillCountVo;
@@ -79,6 +89,9 @@ public class ConsignOrderService {
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
     RemoteFleetService fleetService;
 
+    @Autowired
+    public CommonService commonService;
+
     @Autowired
     public MongoTemplate mongoTemplate;
 
@@ -1079,6 +1092,7 @@ public class ConsignOrderService {
         order.setCreateTime(new Date());
         order.setUpdateBy(LoginUserHolder.getUserId());
         order.setUpdateTime(new Date());
+        order.setBindStatus(String.valueOf(NumberConstant.ZERO));
         kwtLogisticsOrderMapper.insert(order);
     }
 
@@ -1145,6 +1159,9 @@ public class ConsignOrderService {
         consignContract.setId(new IdWorker(NumberConstant.ONE).nextId());
         consignContract.setContractId(Long.parseLong(addOrderDTO.getContractId()));
         consignContract.setLOrderId(lOrderId);
+        consignContract.setContractNo(addOrderDTO.getContractNo());
+        consignContract.setContractName(addOrderDTO.getContractName());
+        consignContract.setSigningWay(addOrderDTO.getSigningWay());
         consignContract.setStatus(NumberConstant.ZERO);
         consignContract.setCreateBy(LoginUserHolder.getUserId());
         consignContract.setCreateTime(new Date());
@@ -1361,4 +1378,135 @@ public class ConsignOrderService {
         res.setLoadAddressList(loadTree).setUnloadAddressList(unloadTree);
         return HttpResult.ok(res);
     }
+
+    public PageRes selectConsignOrderList(AcceptCarriageOrderQuery query, String type) {
+        Long entId = LoginUserHolder.getEntId();
+        PageHelper.startPage(query.getPage(), query.getPageSize());
+        List<Integer> orderList = new ArrayList<>();
+        if (StringUtils.isNotBlank(query.getStatus())) {
+            if (String.valueOf(NumberConstant.EIGHT).equals(query.getStatus())) {
+                orderList.add(LogisticsOrderEnum.REJECT_ORDER.getCode());
+                orderList.add(LogisticsOrderEnum.CANCEL_ORDER.getCode());
+            } else {
+                orderList.add(Integer.valueOf(query.getStatus()));
+            }
+        }
+        //装卸货地址
+        String loadCode = query.getLoadAddressCode();
+        if (StringUtils.isNotBlank(loadCode)) {
+            switch (query.getLoadAddressLevel()) {
+                case 1 -> query.setLoadAddressCode(
+                        loadCode.substring(0, 2).trim());
+                case 2 -> query.setLoadAddressCode(
+                        loadCode.substring(0, 4).trim());
+                case 3 -> query.setLoadAddressCode(loadCode);
+            }
+        }
+        String unloadCode = query.getUnloadAddressCode();
+        if (StringUtils.isNotBlank(unloadCode)) {
+            switch (query.getUnloadAddressLevel()) {
+                case 1 -> query.setUnloadAddressCode(
+                        loadCode.substring(0, 2).trim());
+                case 2 -> query.setUnloadAddressCode(
+                        loadCode.substring(0, 4).trim());
+                case 3 -> query.setUnloadAddressCode(loadCode);
+            }
+        }
+        List<AcceptCarriageOrderVO> list = kwtLogisticsOrderMapper.selectLogisticsOrderList(query, orderList, type, entId);
+        PageInfo<AcceptCarriageOrderVO> pageInfo = new PageInfo<>(list);
+        if (CollectionUtils.isEmpty(list)) {
+            return PageRes.build(pageInfo, list);
+        }
+//        List<AcceptCarriageOrderVO> detailRes = new ArrayList<>();
+        /**计量单位*/
+        Map<String, String> unitTypeDictData = commonService.getDictData(DictTypeEnum.UNIT_TYPE.getType());
+        /**运价方式*/
+        Map<String, String> priceDictData = commonService.getDictData(DictTypeEnum.PRICE_TYPE.getType());
+        /**计费方式*/
+        Map<String, String> chargingDictData = commonService.getDictData(DictTypeEnum.CHARGING_TYPE.getType());
+        /**结算周期*/
+        Map<String, String> settlementDictData = commonService.getDictData(DictTypeEnum.SETTLEMENT_CYCLE.getType());
+        /**签约方式*/
+        Map<String, String> signingWay = commonService.getDictData(DictTypeEnum.SIGNING_TYPE.getType());
+        /**合理损耗*/
+//        Map<String, String> taxRateTypeDictData = getDictData(DictTypeEnum.TAX_RATE_TYPE.getType());
+        Map<Long, UserCacheResDto> longUserMap = new HashMap<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            List<Long> collect = list.stream().map(AcceptCarriageOrderVO::getCreateBy).collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(collect)) {
+                longUserMap = remoteSystemService.queryUserCacheMapByIds(collect);
+            }
+        }
+        for (AcceptCarriageOrderVO vo : list) {
+            vo.setAccountsCycleLabel(settlementDictData.get(vo.getAccountsCycle()));
+            vo.setAppointor(longUserMap.get(vo.getCreateBy()) == null ? null : longUserMap.get(vo.getCreateBy()).getName());
+            vo.setBillingModeLabel(chargingDictData.get(vo.getBillingMode()));
+            vo.setSigningLabel(signingWay.get(vo.getSigning()));
+            vo.setStatusLabel(LogisticsOrderEnum.getName(vo.getStatus()));
+            vo.setLoadAddress(vo.getLoadCityName() + vo.getLoadAddress());
+            vo.setUnloadAddress(vo.getUnloadCityName() + vo.getUnloadAddress());
+            if (vo.getTOrderId() != null) {
+                OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.valueOf(vo.getTOrderId()));
+                if (orderDetailRes != null) {
+                    List<UnitInfoDetailRes> unitInfo = orderDetailRes.getUnitInfo();
+                    for (UnitInfoDetailRes detailRes : unitInfo) {
+                        if (String.valueOf(NumberConstant.ONE).equals(detailRes.getUnitType())) {
+                            vo.setShipmentsUnitEntId(String.valueOf(detailRes.getEntId()));
+                            vo.setShipmentsUnit(detailRes.getFirmName());
+                        } else {
+                            vo.setReceiveGoodsUnitEntId(String.valueOf(detailRes.getEntId()));
+                            vo.setReceiveGoodsUnit(detailRes.getFirmName());
+                        }
+                    }
+                }
+            }
+        }
+        return PageRes.build(pageInfo, list);
+    }
+
+    public HttpResult statisticsConsign(AcceptCarriageOrderQuery query, String type) {
+        Long entId = LoginUserHolder.getEntId();
+        List<Integer> orderList = new ArrayList<>();
+        if (StringUtils.isNotBlank(query.getStatus())) {
+            if (String.valueOf(NumberConstant.EIGHT).equals(query.getStatus())) {
+                orderList.add(LogisticsOrderEnum.REJECT_ORDER.getCode());
+                orderList.add(LogisticsOrderEnum.CANCEL_ORDER.getCode());
+            } else {
+                orderList.add(Integer.valueOf(query.getStatus()));
+            }
+        }
+        //装卸货地址
+        String loadCode = query.getLoadAddressCode();
+        if (StringUtils.isNotBlank(loadCode)) {
+            switch (query.getLoadAddressLevel()) {
+                case 1 -> query.setLoadAddressCode(
+                        loadCode.substring(0, 2).trim());
+                case 2 -> query.setLoadAddressCode(
+                        loadCode.substring(0, 4).trim());
+                case 3 -> query.setLoadAddressCode(loadCode);
+            }
+        }
+        String unloadCode = query.getUnloadAddressCode();
+        if (StringUtils.isNotBlank(unloadCode)) {
+            switch (query.getUnloadAddressLevel()) {
+                case 1 -> query.setUnloadAddressCode(
+                        loadCode.substring(0, 2).trim());
+                case 2 -> query.setUnloadAddressCode(
+                        loadCode.substring(0, 4).trim());
+                case 3 -> query.setUnloadAddressCode(loadCode);
+            }
+        }
+        List<TableTops> list = kwtLogisticsOrderMapper.selectLogisticsOrderListByStatus(query, orderList, type, entId);
+        List<TableTops> arrayList = new ArrayList<>();
+        arrayList.addAll(list);
+        /**补全数据状态不齐的情况*/
+        arrayList = commonService.packageReturnStatistics(list, arrayList);
+        // 查询结果
+        Map<String, Object> map = new HashMap<>(NumberConstant.SIXTEEN);
+        map.put("tableTop", arrayList);
+        // 查询结果
+        return HttpResult.ok(map);
+    }
+
+
 }

+ 6 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -457,6 +457,7 @@ public class LogisticsConsignmentService {
         order.setIgnoreAmount(decimal);
         order.setDeficitPrice(decimal);
         order.setDeficitAmount(decimal);
+        order.setBindStatus(String.valueOf(NumberConstant.ZERO));
         kwtLogisticsOrderMapper.insert(order);
     }
 
@@ -470,6 +471,9 @@ public class LogisticsConsignmentService {
         kwtLogisticsOrderContract.setId(new IdWorker(NumberConstant.ONE).nextId());
         kwtLogisticsOrderContract.setLOrderId(orderId);
         kwtLogisticsOrderContract.setContractId(Long.parseLong(bo.getContractId()));
+        kwtLogisticsOrderContract.setContractNo(bo.getContractNo());
+        kwtLogisticsOrderContract.setContractName(bo.getContractName());
+        kwtLogisticsOrderContract.setSigningWay(bo.getSigningWay());
         kwtLogisticsOrderContract.setRemark(bo.getRemark());
         kwtLogisticsOrderContract.setCreateBy(LoginUserHolder.getUserId());
         kwtLogisticsOrderContract.setUpdateBy(LoginUserHolder.getUserId());
@@ -943,7 +947,7 @@ public class LogisticsConsignmentService {
                             .set(KwtLogisticsOrder::getUpdateTime, new Date()));
                     KwtLogisticsOrderTrack orderTrack = kwtLogisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
                             .eq(KwtLogisticsOrderTrack::getLOrderId, s)
-                            .eq(KwtLogisticsOrderTrack::getStatus,LogisticsOrderEnum.CANCEL_ORDER.getCode())
+                            .eq(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.CANCEL_ORDER.getCode())
                     );
                     if (orderTrack == null) {
                         KwtLogisticsOrderTrack track = new KwtLogisticsOrderTrack();
@@ -1028,7 +1032,7 @@ public class LogisticsConsignmentService {
                             .set(KwtLogisticsOrder::getUpdateTime, new Date()));
                     KwtLogisticsOrderTrack orderTrack = kwtLogisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
                             .eq(KwtLogisticsOrderTrack::getLOrderId, s)
-                            .eq(KwtLogisticsOrderTrack::getStatus,LogisticsOrderEnum.CANCEL_ORDER.getCode())
+                            .eq(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.CANCEL_ORDER.getCode())
                     );
                     if (orderTrack == null) {
                         KwtLogisticsOrderTrack track = new KwtLogisticsOrderTrack();

+ 33 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java

@@ -338,7 +338,7 @@ public class TransportDubboServiceImpl implements TransportDubboService {
     @Override
     public boolean checkLogisticsOrderFinishByEntId(Long entId) {
         List<KwtLogisticsOrderUnit> logisticsOrderUnits = logisticsOrderUnitMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrderUnit>()
-                .eq(KwtLogisticsOrderUnit::getEntId, entId)
+                .eq(KwtLogisticsOrderUnit::getTopEntId, entId)
         );
         if (CollectionUtils.isEmpty(logisticsOrderUnits)) {
             return false;
@@ -354,10 +354,42 @@ public class TransportDubboServiceImpl implements TransportDubboService {
         Long count = logisticsOrderMapper.selectCount(new LambdaQueryWrapper<KwtLogisticsOrder>()
                 .in(KwtLogisticsOrder::getId, collect)
                 .in(KwtLogisticsOrder::getStatus, orderStatus)
+                .eq(KwtLogisticsOrder::getDelFlag,NumberConstant.ZERO)
         );
         if (count > 0) {
             return true;
         }
         return false;
     }
+
+    @Override
+    public HttpResult checkLogisticsOrderIsFinishByEntId(Long entId) {
+        HttpResult httpResult = new HttpResult();
+        httpResult.setCode(HttpStatus.SUCCESS_CODE);
+        List<KwtLogisticsOrderUnit> logisticsOrderUnits = logisticsOrderUnitMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrderUnit>()
+                .eq(KwtLogisticsOrderUnit::getTopEntId, entId)
+        );
+        if (CollectionUtils.isEmpty(logisticsOrderUnits)) {
+            return HttpResult.ok();
+        }
+        List<Integer> orderStatus = new ArrayList<>();
+        orderStatus.add(LogisticsOrderEnum.TO_BE_PLANNED.getCode());
+        orderStatus.add(LogisticsOrderEnum.PENDING_ORDER.getCode());
+        orderStatus.add(LogisticsOrderEnum.WAIT_DELIVERY.getCode());
+        orderStatus.add(LogisticsOrderEnum.IN_TRANSIT.getCode());
+        orderStatus.add(LogisticsOrderEnum.HAVE_FINISHED.getCode());
+        orderStatus.add(LogisticsOrderEnum.HAVE_RECONCILED.getCode());
+        logisticsOrderUnits.stream().map(KwtLogisticsOrderUnit::getLOrderId).distinct().collect(Collectors.toList());
+        List<Long> collect = logisticsOrderUnits.stream().map(KwtLogisticsOrderUnit::getLOrderId).distinct().collect(Collectors.toList());
+        List<KwtLogisticsOrder> orderList = logisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                .in(KwtLogisticsOrder::getId, collect)
+                .in(KwtLogisticsOrder::getStatus, orderStatus)
+                .eq(KwtLogisticsOrder::getDelFlag,NumberConstant.ZERO)
+        );
+        if (CollectionUtils.isNotEmpty(orderList)) {
+            List<String> orderNo = orderList.stream().map(KwtLogisticsOrder::getLOrderNo).collect(Collectors.toList());
+            httpResult.setData(orderNo);
+        }
+        return httpResult;
+    }
 }

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

@@ -643,4 +643,227 @@
             </foreach>
         </if>
     </select>
+
+    <sql id="Query_Column_List">
+        a.id AS lOrderId,
+        a.l_order_no AS lOrderNo,
+        a.t_order_id AS tOrderId,
+        a.t_order_no AS tOrderNo,
+        a.loss AS loss,
+        a.loss_unit AS lossUnit,
+        a.settlement_cycle AS accountsCycle,
+        a.billing_mode AS billingMode,
+        a.amount AS carryingCapacity,
+        a.goods_price AS goodsPrice,
+        a.goods_price_unit AS goodsPriceUnit,
+        a.`status` AS `status`,
+        a.settlement_cycle AS settlementCycle,
+        a.price AS price,
+        a.price_type AS priceType,
+        a.type AS type,
+        a.unit AS unit,
+        a.subcontract_amount AS subcontractAmount,
+        a.entrust_amount AS entrustAmount,
+        a.unload_amount AS unloadAmount,
+        a.load_amount AS loadAmount,
+        a.ignore_amount AS ignoreAmount,
+        a.deficit_amount AS deficitAmount,
+        a.deficit_price AS deficitPrice,
+        a.total_load_amount AS totalLoadAmount,
+        a.total_unload_amount AS totalUnloadAmount,
+        a.payment AS payment,
+        a.tax_rate AS taxRate,
+        a.ent_id AS entId,
+        a.create_by AS createBy,
+        a.create_time AS createTime,
+        a.update_by AS updateBy,
+        a.update_time AS updateTime,
+        a.start_time AS shipmentsDateTime,
+        a.end_time AS receiveGoodsDateTime,
+        a.remark AS remark,
+        g.goods_id AS goodsId,
+        g.goods_name AS goodsName,
+        g.goods_type AS goodsType,
+        f.contract_id AS contractId,
+        f.contract_no AS contractNo,
+<!--        f.contract_name AS contractName,-->
+        f.signing_way AS signing,
+        d.ent_id AS consignCompanyId,
+        d.top_ent_id AS consignTopEntId,
+        d.firm_name AS consignCompany,
+        d.contacts AS consignContacts,
+        d.phone AS consignPhone,
+        e.ent_id AS carrierCompanyId,
+        e.firm_name AS carrierCompany,
+        e.top_ent_id AS carrierTopEntId,
+        e.contacts AS carrierContacts,
+        e.phone AS carrierPhone,
+        b.`name` AS loadName,
+        b.address_type AS loadType,
+        b.city_name AS loadCityName,
+        b.city_code AS loadCityCode,
+        b.detail_address AS loadAddress,
+        b.contacts AS shipmentsContacts,
+        b.phone AS shipmentsPhone,
+        b.lat AS loadLat,
+        b.lng AS loadLng,
+        c.address_type AS unloadType,
+        c.contacts AS receiveGoodsContacts,
+        c.phone AS receiveGoodsPhone,
+        c.city_name AS unloadCityName,
+        c.city_code AS unloadCityCode,
+        c.detail_address AS unloadAddress,
+        c.lat AS unloadLat,
+        c.lng AS unloadLng,
+        f.contract_name as contract
+        <!--        ,-->
+        <!--            a.del_flag,-->
+        <!--            b.del_flag,-->
+        <!--            c.del_flag,-->
+        <!--            d.del_flag,-->
+        <!--            e.del_flag,-->
+        <!--            f.del_flag,-->
+        <!--            g.del_flag-->
+    </sql>
+    <select id="selectLogisticsOrderList" resultType="com.sckw.transport.model.vo.AcceptCarriageOrderVO">
+        SELECT
+        <include refid="Query_Column_List">
+        </include>
+        FROM
+        kwt_logistics_order a
+        LEFT JOIN kwt_logistics_order_address b ON a.id = b.l_order_id
+        AND b.address_type = 1
+        LEFT JOIN kwt_logistics_order_address c ON a.id = c.l_order_id
+        AND c.address_type = 2
+        LEFT JOIN kwt_logistics_order_unit d ON a.id = d.l_order_id
+        AND d.unit_type = 1
+        LEFT JOIN kwt_logistics_order_unit e ON a.id = e.l_order_id
+        AND e.unit_type = 2
+        LEFT JOIN kwt_logistics_order_goods g ON a.id = g.id
+        LEFT JOIN kwt_logistics_order_contract f ON a.id = f.id
+        <where>
+            a.del_flag = 0
+            AND b.del_flag = 0
+            AND c.del_flag = 0
+            AND d.del_flag = 0
+            AND f.del_flag = 0
+            AND g.del_flag = 0
+            <if test="type == 1">
+                and d.top_ent_id = #{entId} or d.ent_id = #{entId}
+            </if>
+            <if test="type == 2">
+                and e.top_ent_id = #{entId} or e.ent_id = #{entId}
+            </if>
+            <if test="query.keywords != null and query.keywords != ''">
+                and (
+                a.t_order_no like concat('%',#{query.keywords},'%')
+                or a.l_order_no like concat('%',#{query.keywords},'%')
+                or d.firm_name like concat('%',#{query.keywords},'%')
+                or e.firm_name like concat('%',#{query.keywords},'%')
+                or g.goods_name like concat('%',#{query.keywords},'%'))
+            </if>
+            <if test="orderList != null and orderList.size() > 0 ">
+                and a.status in
+                <foreach collection="orderList" item="status" open="(" close=")" separator=",">
+                    #{status}
+                </foreach>
+            </if>
+            <if test="query.endBeginDateTime != null and query.endBeginDateTime != '' ">
+                and DATE( a.end_time) <![CDATA[ >= ]]> #{query.endBeginDateTime}
+            </if>
+            <if test="query.endOverDateTime != null and query.endOverDateTime != '' ">
+                and DATE( a.end_time ) <![CDATA[ <= ]]> #{query.endOverDateTime}
+            </if>
+            <if test="query.startBeginDateTime != null and query.startBeginDateTime != '' ">
+                and DATE( a.start_time) <![CDATA[ >= ]]> #{query.startBeginDateTime}
+            </if>
+            <if test="query.startOverDateTime != null and query.startOverDateTime != '' ">
+                and DATE( a.start_time ) <![CDATA[ <= ]]> #{query.startOverDateTime}
+            </if>
+            <if test="query.createStartTime != null and query.createStartTime != '' ">
+                and a.create_time &gt;=#{query.createStartTime}
+            </if>
+            <if test="query.createEndTime != null and query.createEndTime != ''">
+                and a.create_time &lt;=#{query.createEndTime}
+            </if>
+            <if test="query.loadAddressCode != null and query.loadAddressCode != ''">
+                and b.city_code = #{query.loadAddressCode}
+            </if>
+            <if test="query.unloadAddressCode != null and query.unloadAddressCode != ''">
+                and c.city_code = #{query.unloadAddressCode}
+            </if>
+        </where>
+        ORDER BY a.id DESC
+        <!--               ,a.create_time-->
+    </select>
+    <select id="selectLogisticsOrderListByStatus" resultType="com.sckw.mongo.model.TableTops">
+        SELECT
+        a.`status` AS value ,
+        COUNT(a.`status`) AS total
+        FROM
+        kwt_logistics_order a
+        LEFT JOIN kwt_logistics_order_address b ON a.id = b.l_order_id
+        AND b.address_type = 1
+        LEFT JOIN kwt_logistics_order_address c ON a.id = c.l_order_id
+        AND c.address_type = 2
+        LEFT JOIN kwt_logistics_order_unit d ON a.id = d.l_order_id
+        AND d.unit_type = 1
+        LEFT JOIN kwt_logistics_order_unit e ON a.id = e.l_order_id
+        AND e.unit_type = 2
+        LEFT JOIN kwt_logistics_order_goods g ON a.id = g.id
+        LEFT JOIN kwt_logistics_order_contract f ON a.id = f.id
+        <where>
+            a.del_flag = 0
+            AND b.del_flag = 0
+            AND c.del_flag = 0
+            AND d.del_flag = 0
+            AND f.del_flag = 0
+            AND g.del_flag = 0
+            <if test="type == 1">
+                and d.top_ent_id = #{entId} or d.ent_id = #{entId}
+            </if>
+            <if test="type == 2">
+                and e.top_ent_id = #{entId} or e.ent_id = #{entId}
+            </if>
+            <if test="query.keywords != null and query.keywords != ''">
+                and (
+                a.t_order_no like concat('%',#{query.keywords},'%')
+                or a.l_order_no like concat('%',#{query.keywords},'%')
+                or d.firm_name like concat('%',#{query.keywords},'%')
+                or e.firm_name like concat('%',#{query.keywords},'%')
+                or g.goods_name like concat('%',#{query.keywords},'%'))
+            </if>
+            <if test="orderList != null and orderList.size() > 0 ">
+                and a.status in
+                <foreach collection="orderList" item="status" open="(" close=")" separator=",">
+                    #{status}
+                </foreach>
+            </if>
+            <if test="query.endBeginDateTime != null and query.endBeginDateTime != '' ">
+                and DATE( a.end_time) <![CDATA[ >= ]]> #{query.endBeginDateTime}
+            </if>
+            <if test="query.endOverDateTime != null and query.endOverDateTime != '' ">
+                and DATE( a.end_time ) <![CDATA[ <= ]]> #{query.endOverDateTime}
+            </if>
+            <if test="query.startBeginDateTime != null and query.startBeginDateTime != '' ">
+                and DATE( a.start_time) <![CDATA[ >= ]]> #{query.startBeginDateTime}
+            </if>
+            <if test="query.startOverDateTime != null and query.startOverDateTime != '' ">
+                and DATE( a.start_time ) <![CDATA[ <= ]]> #{query.startOverDateTime}
+            </if>
+            <if test="query.createStartTime != null and query.createStartTime != '' ">
+                and a.create_time &gt;=#{query.createStartTime}
+            </if>
+            <if test="query.createEndTime != null and query.createEndTime != ''">
+                and a.create_time &lt;=#{query.createEndTime}
+            </if>
+            <if test="query.loadAddressCode != null and query.loadAddressCode != ''">
+                and b.city_code = #{query.loadAddressCode}
+            </if>
+            <if test="query.unloadAddressCode != null and query.unloadAddressCode != ''">
+                and c.city_code = #{query.unloadAddressCode}
+            </if>
+        </where>
+        group by a.status
+    </select>
 </mapper>