소스 검색

Merge branch 'master' of http://git.zthymaoyi.com/gongdecai/wangluohuoyun

ccj 2 년 전
부모
커밋
3f380dc2dd
26개의 변경된 파일1120개의 추가작업 그리고 94개의 파일을 삭제
  1. 2 0
      winsea-haixin-platform-backend/src/main/resources/application.yml
  2. 11 3
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/constant/StatusEnum.java
  3. 31 3
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/HyCargoOwnerCapitalInfoController.java
  4. 59 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/HyFreightSettlementInfoController.java
  5. 29 10
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/OrderInfoController.java
  6. 1 1
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/FreightInfo.java
  7. 27 3
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyCargoOwnerCapitalInfo.java
  8. 4 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyCargoOwnerInfo.java
  9. 3 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyDriverCarInfo.java
  10. 140 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyFreightSettlementInfo.java
  11. 7 2
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/OrderInfo.java
  12. 17 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/HyCargoOwnerCapitalInfoMapper.java
  13. 36 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/HyFreightSettlementInfoMapper.java
  14. 16 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IHyCargoOwnerCapitalInfoService.java
  15. 39 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IHyFreightSettlementInfoService.java
  16. 20 5
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IOrderInfoService.java
  17. 2 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CargoOwnerInfoServiceImpl.java
  18. 20 13
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CarrierInfoServiceImpl.java
  19. 21 12
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/DriverCarInfoServiceImpl.java
  20. 50 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/HyCargoOwnerCapitalInfoServiceImpl.java
  21. 217 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/HyFreightSettlementInfoServiceImpl.java
  22. 180 42
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/OrderInfoServiceImpl.java
  23. 1 0
      winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/CargoOwnerInfoMapper.xml
  24. 1 0
      winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/DriverCarInfoMapper.xml
  25. 97 0
      winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/HyCargoOwnerCapitalInfoMapper.xml
  26. 89 0
      winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/HyFreightSettlementInfoMapper.xml

+ 2 - 0
winsea-haixin-platform-backend/src/main/resources/application.yml

@@ -86,6 +86,8 @@ auth:
     - /driverPayeeInfo/**/*
     - /hyDriverCapitalInfo/*
     - /hyDriverCapitalInfo/**/*
+    - /hyFreightSettlementInfo/*
+    - /hyFreightSettlementInfo/**/*
     - /hyOrderTravelPath/*
     - /hyOrderTravelPath/**/*
     - /publishTaskInfo/*

+ 11 - 3
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/constant/StatusEnum.java

@@ -52,10 +52,12 @@ public enum StatusEnum {
     OWNER_REJECT_UNLOAD("17", "货主驳回卸车信息", "owner_reject_unload"),
     PLATFORM_CONFIRMED_UNLOAD("19", "待平台确认卸车", "platform_confirmed_unload"),
     PLATFORM_REJECT_UNLOAD("21", "平台驳回卸车信息", "platform_reject_unload"),
-    DRIVER_ORDER_SETTLEMENT("23", "待结算", "driver_order_settlement"),
+    DRIVER_ORDER_SETTLEMENT("23", "待付款", "driver_order_settlement"),
     DRIVER_ORDER_FINISH("25", "已完结", "driver_order_finish"),
     DRIVER_ORDER_END("27", "已终止", "driver_order_end"),
-    DRIVER_ORDER_SETTLEMENTING("29", "结算中", "driver_order_settlementing"),
+    DRIVER_CONFIRM_FREIGHT("29", "待确认运费", "driver_confirm_freight"),
+    OWNER_CHECK_FREIGHT("31", "待货主核对运费", "owner_check_freight"),
+
 
     //货运app货主端订单状态
     OWNER_PENDING_STATEMENT("1", "待接单", "owner_pending_statement"),
@@ -68,7 +70,8 @@ public enum StatusEnum {
     OWNER_REPAIDED("29", "已还款", "owner_repaided"),
     OWNER_ORDER_FINISH("31", "已完结", "owner_order_finish"),
     OWNER_ORDER_END("33", "已终止", "owner_order_end"),
-    CARGO_ORDER_REVIEWED("17", "订单待审核", "cargo_order_reviewed"),
+    DRIVER_NOT_CONFIRM_FREIGHT("35", "待司机确认运费", "driver_not_confirm_freight"),
+    DRIVER_REJECTED_FREIGHT("37", "司机驳回运费信息", "driver_rejected_freight"),
 
 
     //代理货主状态
@@ -110,6 +113,11 @@ public enum StatusEnum {
     NOT_PROCESSED("1", "未处理", "not_processed"),
     PROCESSED("3", "已处理", "processed"),
 
+    //司机运费结算状态
+    NO_PAYMENT("1", "待支付", "NO_PAYMENT"),
+    PEND_ING("3", "暂缓中", "PEND_ING"),
+    PAYMENT_ED("5", "已付款", "PAYMENT_ED"),
+
     ;
     @Getter
     private String flag;

+ 31 - 3
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/HyCargoOwnerCapitalInfoController.java

@@ -7,6 +7,8 @@ import com.yh.saas.plugin.yiliangyiyun.service.IHyCargoOwnerCapitalInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * <p>
  * 记录货主资金流水信息 前端控制器
@@ -25,33 +27,59 @@ public class HyCargoOwnerCapitalInfoController {
 
     /**
      * 账单列表
+     *
      * @param hyCargoOwnerCapitalInfo
      * @return
      */
     @GetMapping("/selectBill")
-    public Page<HyCargoOwnerCapitalInfo> selectBill(HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo){
+    public Page<HyCargoOwnerCapitalInfo> selectBill(HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo) {
         return hyCargoOwnerCapitalInfoService.selectBill(hyCargoOwnerCapitalInfo);
     }
 
 
     /**
      * 提现
+     *
      * @param hyCargoOwnerCapitalInfo
      * @return
      */
     @PostMapping("/api/withdrawal")
-    public String withdrawal(@RequestBody HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo){
+    public String withdrawal(@RequestBody HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo) {
         return hyCargoOwnerCapitalInfoService.withdrawal(hyCargoOwnerCapitalInfo);
     }
 
     /**
      * 详情
+     *
      * @param hyCargoOwnerCapitalInfo
      * @return
      */
     @GetMapping("/gethyCargoOwnerCapitalInfo")
-    public HyCargoOwnerCapitalInfo gethyCargoOwnerCapitalInfo(HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo){
+    public HyCargoOwnerCapitalInfo gethyCargoOwnerCapitalInfo(HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo) {
         return hyCargoOwnerCapitalInfoService.gethyCargoOwnerCapitalInfo(hyCargoOwnerCapitalInfo);
     }
+
+    /**
+     * 后台管理货主提现列表
+     *
+     * @param hyCargoOwnerCapitalInfo
+     * @return
+     */
+    @GetMapping("/selectWithdrawal")
+    public Page<HyCargoOwnerCapitalInfo> selectWithdrawal(HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo) {
+        return hyCargoOwnerCapitalInfoService.selectWithdrawal(hyCargoOwnerCapitalInfo);
+    }
+
+    /**
+     * 后台管理货主提现批量审核
+     *
+     * @param hyCargoOwnerCapitalInfo
+     * @return
+     */
+    @PostMapping("/api/examineList")
+    public String examineList(@RequestBody HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo) {
+        return hyCargoOwnerCapitalInfoService.examineList(hyCargoOwnerCapitalInfo);
+    }
+
 }
 

+ 59 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/HyFreightSettlementInfoController.java

@@ -0,0 +1,59 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.yh.saas.plugin.yiliangyiyun.entity.HyFreightSettlementInfo;
+import com.yh.saas.plugin.yiliangyiyun.service.IHyFreightSettlementInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 记录司机运费结算信息 前端控制器
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-07-27
+ */
+@RestController
+@RequestMapping("/hyFreightSettlementInfo")
+public class HyFreightSettlementInfoController {
+
+    @Autowired
+    private IHyFreightSettlementInfoService hyFreightSettlementInfoService;
+
+
+    /**
+     * 后台管理司机运费结算列表
+     *
+     * @param hyFreightSettlementInfo
+     * @return
+     */
+    @GetMapping("/selectFreightSettlement")
+    public Page<HyFreightSettlementInfo> selectFreightSettlement(HyFreightSettlementInfo hyFreightSettlementInfo) {
+        return hyFreightSettlementInfoService.selectFreightSettlement(hyFreightSettlementInfo);
+    }
+
+    /**
+     * 后台管理司机运费结算暂缓支付
+     *
+     * @param hyFreightSettlementInfo
+     * @return
+     */
+    @PostMapping("/api/deferredPayment")
+    public String deferredPayment(@RequestBody HyFreightSettlementInfo hyFreightSettlementInfo) {
+        return hyFreightSettlementInfoService.deferredPayment(hyFreightSettlementInfo);
+    }
+
+    /**
+     * 后台管理司机运费结算批量付款
+     *
+     * @param hyFreightSettlementInfo
+     * @return
+     */
+    @PostMapping("/api/paymentList")
+    public String paymentList(@RequestBody HyFreightSettlementInfo hyFreightSettlementInfo) {
+        return hyFreightSettlementInfoService.paymentList(hyFreightSettlementInfo);
+    }
+}
+

+ 29 - 10
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/OrderInfoController.java

@@ -85,41 +85,56 @@ public class OrderInfoController {
 
     /**
      * 订单货主/司机详情,好评率
+     *
      * @param
      * @return
      */
     @GetMapping("/selectHaoPing")
-    public OrderInfo selectHaoPing(@RequestParam String commonId,String evaluateFlag) {
-        return orderInfoService.selectHaoPing(commonId,evaluateFlag);
+    public OrderInfo selectHaoPing(@RequestParam String commonId, String evaluateFlag) {
+        return orderInfoService.selectHaoPing(commonId, evaluateFlag);
     }
 
     /**
      * 终止
+     *
      * @param orderInfo
      * @return
      */
     @PostMapping("/api/end")
-    public String end(@RequestBody OrderInfo orderInfo){
+    public String end(@RequestBody OrderInfo orderInfo) {
         return orderInfoService.end(orderInfo);
     }
 
+    /**
+     * 确认运费
+     *
+     * @param orderInfo
+     * @return
+     */
+    @PostMapping("/api/confirmFreight")
+    public String confirmFreight(@RequestBody OrderInfo orderInfo) {
+        return orderInfoService.confirmFreight(orderInfo);
+    }
+
     /**
      * 完结
+     *
      * @param orderInfo
      * @return
      */
     @PostMapping("/api/editEnd")
-    public String editEnd(@RequestBody OrderInfo orderInfo){
+    public String editEnd(@RequestBody OrderInfo orderInfo) {
         return orderInfoService.editEnd(orderInfo);
     }
 
     /**
      * 接单(拒绝)
+     *
      * @param orderInfo
      * @return
      */
     @PostMapping("/api/orderReceiving")
-    public String orderReceiving(@RequestBody OrderInfo orderInfo){
+    public String orderReceiving(@RequestBody OrderInfo orderInfo) {
         return orderInfoService.orderReceiving(orderInfo);
     }
 
@@ -136,17 +151,19 @@ public class OrderInfoController {
 
     /**
      * 审核
+     *
      * @param
      * @return
      */
     @PostMapping("/api/examine")
-    public String examine(@RequestBody OrderInfo orderInfo)throws ParseException {
+    public String examine(@RequestBody OrderInfo orderInfo) throws ParseException {
         return orderInfoService.examine(orderInfo);
     }
 
 
     /**
      * 批量开票
+     *
      * @param orderInfo
      * @return
      */
@@ -154,7 +171,7 @@ public class OrderInfoController {
     public List<String> readXmlManagement(@RequestBody OrderInfo orderInfo) {
         List<OrderInfo> orderInfoList = orderInfo.getOrderInfoList();
         List<String> str = new ArrayList<>();
-        for(int i=0;i<orderInfoList.size();i++){
+        for (int i = 0; i < orderInfoList.size(); i++) {
             orderInfo = orderInfoList.get(i);
             orderInfo.setInvoicing("1");
             orderInfoService.updateById(orderInfo);
@@ -170,11 +187,12 @@ public class OrderInfoController {
 
     /**
      * 司机签合同
+     *
      * @param orderInfo
      * @return
      */
     @GetMapping("/setPdf")
-    public String setPdf( OrderInfo orderInfo) throws DocumentException, IOException, URISyntaxException {
+    public String setPdf(OrderInfo orderInfo) throws DocumentException, IOException, URISyntaxException {
         return orderInfoService.setPdf(orderInfo);
     }
 
@@ -187,17 +205,18 @@ public class OrderInfoController {
      */
     @GetMapping("/selectRouterPath")
     public void selectRouterPath() throws IOException {
-         orderInfoService.selectRouterPath();
+        orderInfoService.selectRouterPath();
     }
 
     /**
      * 后台管理订单导出
+     *
      * @return
      * @throws Exception
      */
     @PostMapping("/api/export")
     public void export(@RequestBody OrderInfo orderInfo, HttpServletResponse response) throws Exception {
-        orderInfoService.export(orderInfo,response);
+        orderInfoService.export(orderInfo, response);
     }
 }
 

+ 1 - 1
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/FreightInfo.java

@@ -93,7 +93,7 @@ public class FreightInfo extends BaseModel<FreightInfo> {
      */
     private Double totalCollection;
     /**
-     * 货主服务
+     * 工本
      */
     private Double ownerServiceCharge;
     /**

+ 27 - 3
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyCargoOwnerCapitalInfo.java

@@ -2,6 +2,7 @@ package com.yh.saas.plugin.yiliangyiyun.entity;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 
 import com.baomidou.mybatisplus.annotations.TableField;
@@ -65,7 +66,7 @@ public class HyCargoOwnerCapitalInfo extends BaseModel<HyCargoOwnerCapitalInfo>
      */
     private String bankCard;
     /**
-     * 收款人姓名
+     * 收款
      */
     private String payeeName;
     /**
@@ -96,7 +97,16 @@ public class HyCargoOwnerCapitalInfo extends BaseModel<HyCargoOwnerCapitalInfo>
     private String status;
 
 
-
+    /**
+     * 模糊查询
+     */
+    @TableField(exist = false)
+    private String searchKeyWord;
+    /**
+     * 查询类型(1待审核2已通过3已到账)
+     */
+    @TableField(exist = false)
+    private String searchType;
     /**
      * 筛选开始日期
      */
@@ -121,7 +131,21 @@ public class HyCargoOwnerCapitalInfo extends BaseModel<HyCargoOwnerCapitalInfo>
      */
     @TableField(exist = false)
     private String accountId;
-
+    /**
+     * 批量审核list
+     */
+    @TableField(exist = false)
+    private List<HyCargoOwnerCapitalInfo> hyCargoOwnerCapitalInfos;
+    /**
+     * 货主姓名
+     */
+    @TableField(exist = false)
+    private String cargoOwnerName;
+    /**
+     * 账号
+     */
+    @TableField(exist = false)
+    private String accountNumber;
 
     @Override
     protected Serializable pkVal() {

+ 4 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyCargoOwnerInfo.java

@@ -129,6 +129,10 @@ public class HyCargoOwnerInfo extends BaseModel<HyCargoOwnerInfo> {
      * 垫付比例
      */
     private Double advancePayment;
+    /**
+     * 收费比例
+     */
+    private Double chargeProportion;
     /**
      * 发运次数
      */

+ 3 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyDriverCarInfo.java

@@ -2,6 +2,7 @@ package com.yh.saas.plugin.yiliangyiyun.entity;
 
 import java.io.Serializable;
 import java.util.Date;
+
 import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
@@ -321,10 +322,12 @@ public class HyDriverCarInfo extends BaseModel<HyDriverCarInfo> {
      */
     @TableField(exist = false)
     private String vehicleTypeKey;
+
     @Override
     protected Serializable pkVal() {
         return this.id;
     }
+
     public static class QueryFiles {
 
         public static final String COMMON_ID = "common_id";

+ 140 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyFreightSettlementInfo.java

@@ -0,0 +1,140 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+import java.util.List;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+
+import com.baomidou.mybatisplus.enums.IdType;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yh.saas.common.support.entity.BaseModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 记录司机运费结算信息
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-07-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class HyFreightSettlementInfo extends BaseModel<HyFreightSettlementInfo> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.UUID)
+    private String id;
+    /**
+     * 司机用户id
+     */
+    private String commonId;
+    /**
+     * 订单id
+     */
+    private String orderId;
+    /**
+     * 订单编号
+     */
+    private String orderNo;
+    /**
+     * 是否垫付(0否1是)
+     */
+    private String freightAdvance;
+    /**
+     * 司机姓名
+     */
+    private String driverName;
+    /**
+     * 银行卡号码
+     */
+    private String bankCard;
+    /**
+     * 开户行
+     */
+    private String bankDeposit;
+    /**
+     * 开户支行
+     */
+    private String bankDepositBranch;
+    /**
+     * 付款类型
+     */
+    private String paymentType;
+    /**
+     * 金额(元)
+     */
+    private Double amountMoney;
+    /**
+     * 付款时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date paymentDate;
+    /**
+     * 状态key(1待支付3暂缓中5已付款7已到账)
+     */
+    private String statusKey;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 流水号
+     */
+    private String serialNumber;
+    /**
+     * 到账时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date arrivalDate;
+
+
+    /**
+     * 模糊查询
+     */
+    @TableField(exist = false)
+    private String searchKeyWord;
+    /**
+     * 查询类型(1待支付2已支付3暂缓中)
+     */
+    @TableField(exist = false)
+    private String searchType;
+    /**
+     * 筛选开始日期
+     */
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private String startDate;
+    /**
+     * 筛选结束日期
+     */
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private String endDate;
+    /**
+     * list
+     */
+    @TableField(exist = false)
+    private List<HyFreightSettlementInfo> hyFreightSettlementInfos;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 7 - 2
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/OrderInfo.java

@@ -162,7 +162,7 @@ public class OrderInfo extends BaseModel<OrderInfo> {
     private Double advanceCharge;
     /**
      * 司机订单状态key(1待货主确认3未装车5待货主确认装车7货主驳回装车信息9待平台确认装车11平台驳回装车信息13运输中15待货主确认卸车17货主驳回卸车信息19待平台确认卸车21平台驳回卸车信息
-     * 23待结算25已完结27已终止29结算中
+     * 23待付款25已完结27已终止29待确认运费31待货主核对运费
      */
     private String orderStatusKey;
     /**
@@ -171,7 +171,7 @@ public class OrderInfo extends BaseModel<OrderInfo> {
     private String orderStatus;
     /**
      * 货主订单状态key(1待接单3未装车5待确认装车7已驳回装车信息9待平台确认装车11平台驳回装车信息13运输中15待收货17已驳回卸车信息19待平台确认卸车21平台驳回卸车信息
-     * 23待结算25已结算27待还款29已还款31已完结33已终止)
+     * 23待结算25已结算27待还款29已还款31已完结33已终止35待司机确认运费37司机驳回运费信息
      */
     private String cargoOwnerStatusKey;
     /**
@@ -525,6 +525,11 @@ public class OrderInfo extends BaseModel<OrderInfo> {
      */
     @TableField(exist = false)
     private PublishTaskInfo publishTaskInfo;
+    /**
+     * 合计运费(元)
+     */
+    @TableField(exist = false)
+    private Double totalFreight;
 
     @Override
     protected Serializable pkVal() {

+ 17 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/HyCargoOwnerCapitalInfoMapper.java

@@ -32,4 +32,21 @@ public interface HyCargoOwnerCapitalInfoMapper extends BaseMapper<HyCargoOwnerCa
      * @return
      */
     List<HyCargoOwnerCapitalInfo> getListByCondition(Map<String, Object> pageView);
+
+
+    /**
+     * 根据条件查询货主提现总数
+     *
+     * @param pageView
+     * @return
+     */
+    Integer getWithdrawalCountByCondition(Map<String, Object> pageView);
+
+    /**
+     * 根据条件查询货主提现列表
+     *
+     * @param pageView
+     * @return
+     */
+    List<HyCargoOwnerCapitalInfo> getWithdrawalListByCondition(Map<String, Object> pageView);
 }

+ 36 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/HyFreightSettlementInfoMapper.java

@@ -0,0 +1,36 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.HyCargoOwnerCapitalInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.HyFreightSettlementInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 记录司机运费结算信息 Mapper 接口
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-07-27
+ */
+public interface HyFreightSettlementInfoMapper extends BaseMapper<HyFreightSettlementInfo> {
+
+
+    /**
+     * 根据条件查询货主提现总数
+     *
+     * @param pageView
+     * @return
+     */
+    Integer getCountByCondition(Map<String, Object> pageView);
+
+    /**
+     * 根据条件查询货主提现列表
+     *
+     * @param pageView
+     * @return
+     */
+    List<HyFreightSettlementInfo> getListByCondition(Map<String, Object> pageView);
+}

+ 16 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IHyCargoOwnerCapitalInfoService.java

@@ -5,6 +5,8 @@ import com.yh.saas.plugin.yiliangyiyun.entity.HyCargoOwnerCapitalInfo;
 import com.baomidou.mybatisplus.service.IService;
 import com.yh.saas.plugin.yiliangyiyun.entity.HyCargoOwnerPayeeInfo;
 
+import java.util.List;
+
 /**
  * <p>
  * 记录货主资金流水信息 服务类
@@ -35,4 +37,18 @@ public interface IHyCargoOwnerCapitalInfoService extends IService<HyCargoOwnerCa
      * @return
      */
     HyCargoOwnerCapitalInfo gethyCargoOwnerCapitalInfo(HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo);
+
+    /**
+     * 后台管理货主提现列表
+     * @param hyCargoOwnerCapitalInfo
+     * @return
+     */
+    Page<HyCargoOwnerCapitalInfo> selectWithdrawal(HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo);
+
+    /**
+     * 后台管理货主提现批量审核
+     * @param hyCargoOwnerCapitalInfo
+     * @return
+     */
+    String examineList(HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo);
 }

+ 39 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IHyFreightSettlementInfoService.java

@@ -0,0 +1,39 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.yh.saas.plugin.yiliangyiyun.entity.HyFreightSettlementInfo;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ * <p>
+ * 记录司机运费结算信息 服务类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-07-27
+ */
+public interface IHyFreightSettlementInfoService extends IService<HyFreightSettlementInfo> {
+
+    /**
+     * 后台管理司机运费结算列表
+     *
+     * @param hyFreightSettlementInfo
+     * @return
+     */
+    Page<HyFreightSettlementInfo> selectFreightSettlement(HyFreightSettlementInfo hyFreightSettlementInfo);
+    /**
+     * 后台管理司机运费结算暂缓支付
+     *
+     * @param hyFreightSettlementInfo
+     * @return
+     */
+    String deferredPayment(HyFreightSettlementInfo hyFreightSettlementInfo);
+
+    /**
+     * 后台管理司机运费结算批量付款
+     *
+     * @param hyFreightSettlementInfo
+     * @return
+     */
+    String paymentList(HyFreightSettlementInfo hyFreightSettlementInfo);
+}

+ 20 - 5
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IOrderInfoService.java

@@ -64,24 +64,35 @@ public interface IOrderInfoService extends IService<OrderInfo> {
 
     /**
      * 终止
+     *
+     * @param orderInfo
+     * @return
+     */
+    String end(OrderInfo orderInfo);
+
+    /**
+     * 确认运费
+     *
      * @param orderInfo
      * @return
      */
-    String end (OrderInfo orderInfo);
+    String confirmFreight(OrderInfo orderInfo);
 
     /**
      * 完结
+     *
      * @param orderInfo
      * @return
      */
-    String editEnd (OrderInfo orderInfo);
+    String editEnd(OrderInfo orderInfo);
 
     /**
      * 接单(拒绝)
+     *
      * @param orderInfo
      * @return
      */
-    String orderReceiving (OrderInfo orderInfo);
+    String orderReceiving(OrderInfo orderInfo);
 
     /**
      * 订单管理订单审核列表
@@ -93,6 +104,7 @@ public interface IOrderInfoService extends IService<OrderInfo> {
 
     /**
      * 审核
+     *
      * @param orderInfo
      * @return
      */
@@ -100,23 +112,26 @@ public interface IOrderInfoService extends IService<OrderInfo> {
 
     /**
      * 订单货主/司机详情,好评率
+     *
      * @param
      * @return
      */
-    OrderInfo selectHaoPing(String commonId,String evaluateFlag);
+    OrderInfo selectHaoPing(String commonId, String evaluateFlag);
 
     /**
      * 司机签合同
+     *
      * @param orderInfo
      * @return
      */
-    String setPdf( OrderInfo orderInfo) throws DocumentException, IOException, URISyntaxException;
+    String setPdf(OrderInfo orderInfo) throws DocumentException, IOException, URISyntaxException;
 
 
     void selectRouterPath() throws IOException;
 
     /**
      * 后台管理订单导出
+     *
      * @return
      * @throws Exception
      */

+ 2 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CargoOwnerInfoServiceImpl.java

@@ -115,6 +115,7 @@ public class CargoOwnerInfoServiceImpl extends ServiceImpl<CargoOwnerInfoMapper,
             //新增主键id
             hyCargoOwnerInfo.setId(IdGenerator.generateUUID());
             hyCargoOwnerInfo.setAdvancePayment(0.7d);
+            hyCargoOwnerInfo.setChargeProportion(0.06d);
             //判断是否存在货主身份
             HyCargoOwnerInfo hyCargoOwnerInfo1 = this.selectOne(new EntityWrapper<HyCargoOwnerInfo>().eq("phone",hyCargoOwnerInfo.getPhone())
             .eq("card_number",hyCargoOwnerInfo.getCardNumber()).eq("delete_flag", NumberConstant.CONSTANT0));
@@ -155,6 +156,7 @@ public class CargoOwnerInfoServiceImpl extends ServiceImpl<CargoOwnerInfoMapper,
             //新增主键id
             hyCargoOwnerInfo.setId(IdGenerator.generateUUID());
             hyCargoOwnerInfo.setAdvancePayment(0.7d);
+            hyCargoOwnerInfo.setChargeProportion(0.06d);
             //判断是否存在货主身份
             HyCargoOwnerInfo hyCargoOwnerInfo2 = this.selectOne(new EntityWrapper<HyCargoOwnerInfo>().eq("phone",hyCargoOwnerInfo.getPhone())
                     .eq("card_number",hyCargoOwnerInfo.getCardNumber()).eq("delete_flag", NumberConstant.CONSTANT0));

+ 20 - 13
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CarrierInfoServiceImpl.java

@@ -129,13 +129,6 @@ public class CarrierInfoServiceImpl extends ServiceImpl<CarrierInfoMapper, HyCar
                     orderInfo.setCargoOwnerStatusKey(StatusEnum.CONFIRMED_UNLOAD.getFlag());
                     orderInfoService.updateById(orderInfo);
                 }
-                //修改费用表实际运费
-                FreightInfo freightInfo = freightInfoService.selectOne(new EntityWrapper<FreightInfo>().eq("order_id", hyCarrierInfo1.getOrderId())
-                        .eq("delete_flag", "0"));
-                if (freightInfo != null) {
-                    freightInfo.setActualFreight(hyCarrierInfo.getTotalFreight());
-                    freightInfoService.updateById(freightInfo);
-                }
                 // 向货主发送信息
                 NewsInfo newsInfo = new NewsInfo();
                 newsInfo.setCrtCommonId(orderInfo.getCommonId());
@@ -160,7 +153,7 @@ public class CarrierInfoServiceImpl extends ServiceImpl<CarrierInfoMapper, HyCar
     @Override
     public String cargoOwnerLoadingAdd(HyCarrierInfo hyCarrierInfo) {
         //查询订单
-        OrderInfo orderInfo = orderInfoService.selectById(hyCarrierInfo.getId());
+        OrderInfo orderInfo = orderInfoService.selectById(hyCarrierInfo.getOrderId());
         if (orderInfo != null) {
             if ("1".equals(hyCarrierInfo.getLoadingFlag())) {
                 if ("1".equals(hyCarrierInfo.getFlag())) {
@@ -213,10 +206,24 @@ public class CarrierInfoServiceImpl extends ServiceImpl<CarrierInfoMapper, HyCar
             } else {
                 if ("1".equals(hyCarrierInfo.getFlag())) {
                     //确认卸车
-                    orderInfo.setOrderStatus(StatusEnum.PLATFORM_CONFIRMED_UNLOAD.getName());
-                    orderInfo.setOrderStatusKey(StatusEnum.PLATFORM_CONFIRMED_UNLOAD.getFlag());
-                    orderInfo.setCargoOwnerStatus(StatusEnum.PLATFORM_CONFIRMED_UNLOAD.getName());
-                    orderInfo.setCargoOwnerStatusKey(StatusEnum.PLATFORM_CONFIRMED_UNLOAD.getFlag());
+                    orderInfo.setOrderStatus(StatusEnum.DRIVER_CONFIRM_FREIGHT.getName());
+                    orderInfo.setOrderStatusKey(StatusEnum.DRIVER_CONFIRM_FREIGHT.getFlag());
+                    orderInfo.setCargoOwnerStatus(StatusEnum.DRIVER_NOT_CONFIRM_FREIGHT.getName());
+                    orderInfo.setCargoOwnerStatusKey(StatusEnum.DRIVER_NOT_CONFIRM_FREIGHT.getFlag());
+                    //修改承运表合计运费
+                    hyCarrierInfo.setTotalFreight(hyCarrierInfo.getTotalFreight());
+                    this.updateById(hyCarrierInfo);
+                    //修改费用表实际运费
+                    FreightInfo freightInfo1 = freightInfoService.selectOne(new EntityWrapper<FreightInfo>().eq("order_id", orderInfo.getId())
+                            .eq("delete_flag", "0"));
+                    if (freightInfo1 != null) {
+                        freightInfo1.setActualFreight(hyCarrierInfo.getTotalFreight());
+                        //查询货主收费比例
+                        HyCargoOwnerInfo hyCargoOwnerInfo1 = cargoOwnerInfoService.selectOne(new EntityWrapper<HyCargoOwnerInfo>()
+                                .eq("common_id", orderInfo.getCargoCommonId()).eq("delete_flag", "0"));
+                        freightInfo1.setOwnerServiceCharge(hyCargoOwnerInfo1.getChargeProportion() * freightInfo1.getActualFreight());
+                        freightInfoService.updateById(freightInfo1);
+                    }
                     //查询订单是否垫付
                     //非垫付订单
                     if("0".equals(orderInfo.getFreightAdvance())){
@@ -247,7 +254,7 @@ public class CarrierInfoServiceImpl extends ServiceImpl<CarrierInfoMapper, HyCar
                             HyCargoOwnerInfo hyCargoOwnerInfo = cargoOwnerInfoService.selectOne(new EntityWrapper<HyCargoOwnerInfo>()
                                     .eq("common_id",orderInfo.getCargoCommonId()).eq("delete_flag","0"));
                             if (hyCargoOwnerInfo.getAccountBalance() < zong){
-                                //账户余额小于预付款
+                                //账户余额小于尾款+服务费
                                 throw new YException(YExceptionEnum.INSUFFICIENT_ACCOUNT_BALANCES);
                             }else {
                                 //冻结公司账户余额

+ 21 - 12
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/DriverCarInfoServiceImpl.java

@@ -40,7 +40,8 @@ public class DriverCarInfoServiceImpl extends ServiceImpl<DriverCarInfoMapper, H
 
 
     /**
-     *后台管理车辆列表
+     * 后台管理车辆列表
+     *
      * @param hyDriverCarInfo
      * @return
      */
@@ -66,22 +67,29 @@ public class DriverCarInfoServiceImpl extends ServiceImpl<DriverCarInfoMapper, H
     }
 
     /**
-     *司机车辆列表
+     * 司机车辆列表
+     *
      * @param hyDriverCarInfo
      * @return
      */
     @Override
     public List<HyDriverCarInfo> selectDriverCar(HyDriverCarInfo hyDriverCarInfo) {
-        EntityWrapper<HyDriverCarInfo> driverCarInfoEntityWrapper = new EntityWrapper<>();
-        driverCarInfoEntityWrapper
+        if ("2".equals(hyDriverCarInfo.getSearchType())) {
+            List<HyDriverCarInfo> hyDriverCarInfoList = this.selectList(new EntityWrapper<HyDriverCarInfo>()
+                    .eq(HyDriverCarInfo.QueryFiles.DELETE_FLAG, NumberConstant.CONSTANT0)
+                    .eq(HyDriverCarInfo.QueryFiles.COMMON_ID, hyDriverCarInfo.getCommonId())
+                    .eq("status_key", "5"));
+            return hyDriverCarInfoList;
+        }
+        List<HyDriverCarInfo> hyDriverCarInfoList = this.selectList(new EntityWrapper<HyDriverCarInfo>()
                 .eq(HyDriverCarInfo.QueryFiles.DELETE_FLAG, NumberConstant.CONSTANT0)
-                .eq(HyDriverCarInfo.QueryFiles.COMMON_ID, hyDriverCarInfo.getCommonId());
-        List<HyDriverCarInfo> hyDriverCarInfoList = this.selectList(driverCarInfoEntityWrapper);
+                .eq(HyDriverCarInfo.QueryFiles.COMMON_ID, hyDriverCarInfo.getCommonId()));
         return hyDriverCarInfoList;
     }
 
     /**
      * 添加车辆信息
+     *
      * @param hyDriverCarInfo
      * @return
      */
@@ -91,9 +99,9 @@ public class DriverCarInfoServiceImpl extends ServiceImpl<DriverCarInfoMapper, H
         hyDriverCarInfo.setId(IdGenerator.generateUUID());
         //判断车牌号是否重复
         List<HyDriverCarInfo> hyDriverCarInfos = this.selectList(new EntityWrapper<HyDriverCarInfo>()
-                        .eq("driver_id", hyDriverCarInfo.getDriverId())
-                        .eq("car_number", hyDriverCarInfo.getCarNumber())
-                        .eq("delete_flag", NumberConstant.CONSTANT0));
+                .eq("driver_id", hyDriverCarInfo.getDriverId())
+                .eq("car_number", hyDriverCarInfo.getCarNumber())
+                .eq("delete_flag", NumberConstant.CONSTANT0));
         if (hyDriverCarInfos.size() > 0) {
             throw new YException(YExceptionEnum.DRIVER_CAR_ERROR);
         }
@@ -148,12 +156,13 @@ public class DriverCarInfoServiceImpl extends ServiceImpl<DriverCarInfoMapper, H
 
     /**
      * 审核
+     *
      * @param hyDriverCarInfo
      * @return
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public String examine(HyDriverCarInfo hyDriverCarInfo) throws IOException{
+    public String examine(HyDriverCarInfo hyDriverCarInfo) throws IOException {
         //查询车辆信息
         HyDriverCarInfo hyDriverCarInfo1 = this.selectById(hyDriverCarInfo.getId());
         if (hyDriverCarInfo1 != null) {
@@ -162,7 +171,7 @@ public class DriverCarInfoServiceImpl extends ServiceImpl<DriverCarInfoMapper, H
                 //上报车辆信息校验结果查询
                 String token = EntityAnalyse.GetJTToken();
                 hyDriverCarInfo.setToken(token);
-                if (!"通过".equals(EntityAnalyse.driverCarInfoCheck(hyDriverCarInfo))){
+                if (!"通过".equals(EntityAnalyse.driverCarInfoCheck(hyDriverCarInfo))) {
                     return EntityAnalyse.driverCarInfoCheck(hyDriverCarInfo);
                 }
 
@@ -175,7 +184,7 @@ public class DriverCarInfoServiceImpl extends ServiceImpl<DriverCarInfoMapper, H
                 hyDriverCarInfo1.setRejectReasonDescription(null);
             }
             //驳回
-            else if("2".equals(hyDriverCarInfo.getFlag())){
+            else if ("2".equals(hyDriverCarInfo.getFlag())) {
                 hyDriverCarInfo1.setStatusKey(StatusEnum.IDENTITY_FAILED.getFlag());
                 hyDriverCarInfo1.setStatus(StatusEnum.IDENTITY_FAILED.getName());
             }

+ 50 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/HyCargoOwnerCapitalInfoServiceImpl.java

@@ -14,6 +14,7 @@ import com.yh.saas.plugin.yiliangyiyun.service.ICargoOwnerInfoService;
 import com.yh.saas.plugin.yiliangyiyun.service.ICompanyInfoService;
 import com.yh.saas.plugin.yiliangyiyun.service.IHyCargoOwnerCapitalInfoService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -126,4 +127,53 @@ public class HyCargoOwnerCapitalInfoServiceImpl extends ServiceImpl<HyCargoOwner
        }
        return null;
     }
+
+
+    /**
+     * 后台管理货主提现列表
+     * @param hyCargoOwnerCapitalInfo
+     * @return
+     */
+    @Override
+    public Page<HyCargoOwnerCapitalInfo> selectWithdrawal(HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo){
+        Map<String, Object> pageView = new HashMap<>(8);
+        pageView.put("startRecord", (hyCargoOwnerCapitalInfo.getCurrentPage() - 1)
+                * hyCargoOwnerCapitalInfo.getPageSize());
+        //用户id
+        pageView.put("searchKeyWord", hyCargoOwnerCapitalInfo.getSearchKeyWord());
+        pageView.put("searchType", hyCargoOwnerCapitalInfo.getSearchType());
+        pageView.put("startDate", hyCargoOwnerCapitalInfo.getStartDate());
+        pageView.put("endDate", hyCargoOwnerCapitalInfo.getEndDate());
+        pageView.put("pageSize", hyCargoOwnerCapitalInfo.getPageSize());
+        pageView.put("currentPage", hyCargoOwnerCapitalInfo.getCurrentPage());
+        // 查询账单总数
+        Integer dataCount = baseMapper.getWithdrawalCountByCondition(pageView);
+        List<HyCargoOwnerCapitalInfo> dataList = baseMapper.getWithdrawalListByCondition(pageView);
+        Page<HyCargoOwnerCapitalInfo> page = new Page<>();
+        page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
+        page.setTotal(dataCount == null ? 0 : dataCount);
+        page.setCurrent(hyCargoOwnerCapitalInfo.getCurrentPage());
+        page.setSize(hyCargoOwnerCapitalInfo.getPageSize());
+        return page;
+    }
+
+    /**
+     * 后台管理货主提现批量审核
+     * @param hyCargoOwnerCapitalInfo
+     * @return
+     */
+    @Override
+    public String examineList(HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo){
+        List<HyCargoOwnerCapitalInfo> hyCargoOwnerCapitalInfoList = hyCargoOwnerCapitalInfo.getHyCargoOwnerCapitalInfos();
+        if (CollectionUtils.isNotEmpty(hyCargoOwnerCapitalInfoList)){
+            for (int i=0; i<hyCargoOwnerCapitalInfoList.size(); i++){
+                HyCargoOwnerCapitalInfo hyCargoOwnerCapitalInfo1 = this.selectById(hyCargoOwnerCapitalInfoList.get(i).getId());
+                hyCargoOwnerCapitalInfo1.setStatusKey(StatusEnum.TASK_REJECT.getFlag());
+                hyCargoOwnerCapitalInfo1.setStatus(StatusEnum.TASK_REJECT.getName());
+                this.updateById(hyCargoOwnerCapitalInfo1);
+            }
+            return "ok";
+        }
+        return "ng";
+    }
 }

+ 217 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/HyFreightSettlementInfoServiceImpl.java

@@ -0,0 +1,217 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.google.common.collect.Lists;
+import com.yh.saas.common.support.util.IdGenerator;
+import com.yh.saas.plugin.yiliangyiyun.constant.StatusEnum;
+import com.yh.saas.plugin.yiliangyiyun.entity.*;
+import com.yh.saas.plugin.yiliangyiyun.exception.YException;
+import com.yh.saas.plugin.yiliangyiyun.exception.YExceptionEnum;
+import com.yh.saas.plugin.yiliangyiyun.mapper.HyFreightSettlementInfoMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.*;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 记录司机运费结算信息 服务实现类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-07-27
+ */
+@Service
+public class HyFreightSettlementInfoServiceImpl extends ServiceImpl<HyFreightSettlementInfoMapper, HyFreightSettlementInfo> implements IHyFreightSettlementInfoService {
+
+    @Autowired
+    private IFreightInfoService freightInfoService;
+    @Autowired
+    private IOrderInfoService orderInfoService;
+    @Autowired
+    private IRepaymentInfoService repaymentInfoService;
+    @Autowired
+    private ICompanyInfoService companyInfoService;
+    @Autowired
+    private ICargoOwnerInfoService cargoOwnerInfoService;
+
+    /**
+     * 后台管理司机运费结算列表
+     *
+     * @param hyFreightSettlementInfo
+     * @return
+     */
+    @Override
+    public Page<HyFreightSettlementInfo> selectFreightSettlement(HyFreightSettlementInfo hyFreightSettlementInfo) {
+        Map<String, Object> pageView = new HashMap<>(8);
+        pageView.put("startRecord", (hyFreightSettlementInfo.getCurrentPage() - 1)
+                * hyFreightSettlementInfo.getPageSize());
+        //用户id
+        pageView.put("searchKeyWord", hyFreightSettlementInfo.getSearchKeyWord());
+        pageView.put("searchType", hyFreightSettlementInfo.getSearchType());
+        pageView.put("startDate", hyFreightSettlementInfo.getStartDate());
+        pageView.put("endDate", hyFreightSettlementInfo.getEndDate());
+        pageView.put("pageSize", hyFreightSettlementInfo.getPageSize());
+        pageView.put("currentPage", hyFreightSettlementInfo.getCurrentPage());
+        // 查询账单总数
+        Integer dataCount = baseMapper.getCountByCondition(pageView);
+        List<HyFreightSettlementInfo> dataList = baseMapper.getListByCondition(pageView);
+        Page<HyFreightSettlementInfo> page = new Page<>();
+        page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
+        page.setTotal(dataCount == null ? 0 : dataCount);
+        page.setCurrent(hyFreightSettlementInfo.getCurrentPage());
+        page.setSize(hyFreightSettlementInfo.getPageSize());
+        return page;
+    }
+
+    /**
+     * 后台管理司机运费结算暂缓支付
+     *
+     * @param hyFreightSettlementInfo
+     * @return
+     */
+    @Override
+    public String deferredPayment(HyFreightSettlementInfo hyFreightSettlementInfo) {
+        List<HyFreightSettlementInfo> hyFreightSettlementInfoList = hyFreightSettlementInfo.getHyFreightSettlementInfos();
+        if (CollectionUtils.isNotEmpty(hyFreightSettlementInfoList)) {
+            for (int i = 0; i < hyFreightSettlementInfoList.size(); i++) {
+                HyFreightSettlementInfo hyFreightSettlementInfo1 = this.selectById(hyFreightSettlementInfoList.get(i).getId());
+                hyFreightSettlementInfo1.setStatusKey(StatusEnum.PEND_ING.getFlag());
+                hyFreightSettlementInfo1.setStatus(StatusEnum.PEND_ING.getName());
+                this.updateById(hyFreightSettlementInfo1);
+            }
+            return "ok";
+        }
+        return "ng";
+    }
+
+
+    /**
+     * 后台管理司机运费结算批量付款
+     *
+     * @param hyFreightSettlementInfo
+     * @return
+     */
+    @Override
+    public String paymentList(HyFreightSettlementInfo hyFreightSettlementInfo) {
+        List<HyFreightSettlementInfo> hyFreightSettlementInfoList = hyFreightSettlementInfo.getHyFreightSettlementInfos();
+        if (CollectionUtils.isNotEmpty(hyFreightSettlementInfoList)) {
+            for (int i = 0; i < hyFreightSettlementInfoList.size(); i++) {
+                HyFreightSettlementInfo hyFreightSettlementInfo1 = this.selectById(hyFreightSettlementInfoList.get(i).getId());
+                hyFreightSettlementInfo1.setStatusKey(StatusEnum.PAYMENT_ED.getFlag());
+                hyFreightSettlementInfo1.setStatus(StatusEnum.PAYMENT_ED.getName());
+                hyFreightSettlementInfo1.setPaymentDate(new Date());
+                this.updateById(hyFreightSettlementInfo1);
+                //查询费用信息
+                FreightInfo freightInfo = freightInfoService.selectOne(new EntityWrapper<FreightInfo>()
+                        .eq("order_id", hyFreightSettlementInfo1.getOrderId()));
+                //判断是否是垫付订单
+                if ("1".equals(hyFreightSettlementInfo1.getFreightAdvance())) {
+                    //垫付订单
+                    if ("预付款".equals(hyFreightSettlementInfo1.getPaymentType())) {
+                        //预付款
+                        freightInfo.setPrepaidFreight(hyFreightSettlementInfo1.getAmountMoney());
+                        freightInfo.setPrepaidFreightDate(new Date());
+                        freightInfo.setPayabledFreight(hyFreightSettlementInfo1.getAmountMoney());
+                        freightInfo.setNopayableFreight(freightInfo.getPayableFreight() - freightInfo.getPrepaidFreight());
+                        freightInfo.setReceivableFreight(freightInfo.getPrepaidFreight());
+                    } else {
+                        //尾款
+                        freightInfo.setFreightBalance(hyFreightSettlementInfo1.getAmountMoney());
+                        freightInfo.setFreightBalanceDate(new Date());
+                        freightInfo.setOwnerFreightBalance(freightInfo.getFreightBalance() + freightInfo.getDriverServiceCharge());
+                        freightInfo.setOwnerFreightBalanceDate(new Date());
+                        Double d = freightInfo.getPayabledFreight();
+                        freightInfo.setPayabledFreight(d + hyFreightSettlementInfo1.getAmountMoney());
+                        freightInfo.setNopayableFreight(freightInfo.getPayableFreight() - freightInfo.getPayabledFreight());
+                        Double d1 = freightInfo.getReceivableFreight();
+                        freightInfo.setReceivableFreight(d1 + freightInfo.getOwnerFreightBalance() + freightInfo.getOwnerServiceCharge());
+                        freightInfo.setTotalPayment(freightInfo.getActualFreight() + freightInfo.getOwnerServiceCharge());
+                        //修改订单运费
+                        OrderInfo orderInfo1 = orderInfoService.selectById(hyFreightSettlementInfo1.getOrderId());
+                        if (orderInfo1 != null) {
+                            orderInfo1.setFreight(freightInfo.getPrepaidFreight() + freightInfo.getFreightBalance());
+                            orderInfoService.updateById(orderInfo1);
+                        }
+                        //生成还款信息
+                        RepaymentInfo repaymentInfo = new RepaymentInfo();
+                        repaymentInfo.setId(IdGenerator.generateUUID());
+                        repaymentInfo.setOrderId(orderInfo1.getId());
+                        repaymentInfo.setFreightId(freightInfo.getId());
+                        repaymentInfo.setFreight(freightInfo.getActualFreight());
+                        repaymentInfo.setOverdueFee(0d);
+                        repaymentInfo.setInterestRate(0.03);
+                        repaymentInfo.setServiceCharge(freightInfo.getOwnerServiceCharge());
+                        repaymentInfo.setTotalRepayable(freightInfo.getReceivableFreight());
+                        repaymentInfo.setAlreadyRepaid(0d);
+                        repaymentInfo.setNotRepaid(freightInfo.getReceivableFreight());
+                        repaymentInfoService.insert(repaymentInfo);
+                        //冻结货主可用余额
+                        if (orderInfo1.getCompId() != null && !orderInfo1.getCompId().isEmpty()) {
+                            //货主是公司
+                            HyCompanyInfo hyCompanyInfo = companyInfoService.selectById(orderInfo1.getCompId());
+                            if (hyCompanyInfo.getAccountBalance() < freightInfo.getReceivableFreight()) {
+                                //账户余额小于应收
+                                throw new YException(YExceptionEnum.INSUFFICIENT_ACCOUNT_BALANCES);
+                            } else {
+                                //冻结公司账户余额
+                                Double d2 = hyCompanyInfo.getAccountBalance();
+                                Double d3 = hyCompanyInfo.getFrozenAmount();
+                                hyCompanyInfo.setAccountBalance(d2 - freightInfo.getReceivableFreight());
+                                hyCompanyInfo.setFrozenAmount(d3 + freightInfo.getReceivableFreight());
+                                companyInfoService.updateById(hyCompanyInfo);
+                            }
+                        } else {
+                            //货主是个人
+                            HyCargoOwnerInfo hyCargoOwnerInfo = cargoOwnerInfoService.selectOne(new EntityWrapper<HyCargoOwnerInfo>()
+                                    .eq("common_id", orderInfo1.getCargoCommonId()).eq("delete_flag", "0"));
+                            if (hyCargoOwnerInfo.getAccountBalance() < freightInfo.getReceivableFreight()) {
+                                //账户余额小于应收
+                                throw new YException(YExceptionEnum.INSUFFICIENT_ACCOUNT_BALANCES);
+                            } else {
+                                //冻结货主账户余额
+                                Double d2 = hyCargoOwnerInfo.getAccountBalance();
+                                Double d3 = hyCargoOwnerInfo.getFrozenAmount();
+                                hyCargoOwnerInfo.setAccountBalance(d2 - freightInfo.getReceivableFreight());
+                                hyCargoOwnerInfo.setFrozenAmount(d3 + freightInfo.getReceivableFreight());
+                                cargoOwnerInfoService.updateById(hyCargoOwnerInfo);
+                            }
+                        }
+                    }
+                }
+                //非垫付订单
+                else {
+                    if ("预付款".equals(hyFreightSettlementInfo1.getPaymentType())) {
+                        //预付款
+                        freightInfo.setPrepaidFreight(hyFreightSettlementInfo1.getAmountMoney());
+                        freightInfo.setPrepaidFreightDate(new Date());
+                        freightInfo.setPayabledFreight(hyFreightSettlementInfo1.getAmountMoney());
+                        freightInfo.setNopayableFreight(freightInfo.getPayableFreight() - freightInfo.getPrepaidFreight());
+                    } else {
+                        //尾款
+                        freightInfo.setFreightBalance(hyFreightSettlementInfo1.getAmountMoney());
+                        freightInfo.setFreightBalanceDate(new Date());
+                        Double d = freightInfo.getPayabledFreight();
+                        freightInfo.setPayabledFreight(d + hyFreightSettlementInfo1.getAmountMoney());
+                        freightInfo.setNopayableFreight(freightInfo.getPayableFreight() - freightInfo.getPayabledFreight());
+                        //修改订单运费
+                        OrderInfo orderInfo1 = orderInfoService.selectById(hyFreightSettlementInfo1.getOrderId());
+                        if (orderInfo1 != null) {
+                            orderInfo1.setFreight(freightInfo.getPrepaidFreight() + freightInfo.getFreightBalance());
+                            orderInfoService.updateById(orderInfo1);
+                        }
+                    }
+                }
+            }
+            return "ok";
+        }
+        return "ng";
+    }
+}

+ 180 - 42
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/OrderInfoServiceImpl.java

@@ -96,6 +96,8 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
     private IHyCargoOwnerCapitalInfoService hyCargoOwnerCapitalInfoService;
     @Autowired
     private IHyDriverCapitalInfoService hyDriverCapitalInfoService;
+    @Autowired
+    private IHyFreightSettlementInfoService hyFreightSettlementInfoService;
     @Value("${file-root-path}")
     private String localPath;
     @Getter
@@ -462,6 +464,139 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         return "ok";
     }
 
+    /**
+     * 确认运费
+     *
+     * @param orderInfo
+     * @return 调用类型:1货主 2 司机
+     * typeFlag;
+     * flag(1通过2驳回)
+     * examineFlag
+     */
+    @Override
+    public String confirmFreight(OrderInfo orderInfo) {
+        //查询订单
+        OrderInfo orderInfo1 = this.selectById(orderInfo.getId());
+        if (orderInfo1 != null) {
+            //货主
+            if("1".equals(orderInfo.getTypeFlag())){
+                orderInfo1.setOrderStatus(StatusEnum.DRIVER_CONFIRM_FREIGHT.getName());
+                orderInfo1.setOrderStatusKey(StatusEnum.DRIVER_CONFIRM_FREIGHT.getFlag());
+                orderInfo1.setCargoOwnerStatus(StatusEnum.DRIVER_NOT_CONFIRM_FREIGHT.getName());
+                orderInfo1.setCargoOwnerStatusKey(StatusEnum.DRIVER_NOT_CONFIRM_FREIGHT.getFlag());
+                //修改承运表合计应付运费
+                HyCarrierInfo hyCarrierInfo = carrierInfoService.selectOne(new EntityWrapper<HyCarrierInfo>().eq("order_id",orderInfo1.getId())
+                        .eq("delete_flag", "0"));
+                hyCarrierInfo.setTotalFreight(orderInfo.getTotalFreight());
+                carrierInfoService.updateById(hyCarrierInfo);
+                //修改费用表实际运费
+                FreightInfo freightInfo1 = freightInfoService.selectOne(new EntityWrapper<FreightInfo>().eq("order_id", orderInfo1.getId())
+                        .eq("delete_flag", "0"));
+                if (freightInfo1 != null) {
+                    freightInfo1.setActualFreight(hyCarrierInfo.getTotalFreight());
+                    //查询货主收费比例
+                    HyCargoOwnerInfo hyCargoOwnerInfo1 = cargoOwnerInfoService.selectOne(new EntityWrapper<HyCargoOwnerInfo>()
+                            .eq("common_id", orderInfo1.getCargoCommonId()).eq("delete_flag", "0"));
+                    freightInfo1.setOwnerServiceCharge(hyCargoOwnerInfo1.getChargeProportion() * freightInfo1.getActualFreight());
+                    freightInfoService.updateById(freightInfo1);
+                }
+                //查询订单是否垫付
+                //非垫付订单
+                if("0".equals(orderInfo1.getFreightAdvance())){
+                    //查询费用信息
+                    FreightInfo freightInfo = freightInfoService.selectOne(new EntityWrapper<FreightInfo>()
+                            .eq("order_id",orderInfo1.getId()).eq("delete_flag","0"));
+                    //尾款
+                    Double weikuan = freightInfo.getActualFreight() - freightInfo.getPrepaidFreight();
+                    //尾款+服务费
+                    Double zong = weikuan + freightInfo.getOwnerServiceCharge();
+                    if (orderInfo1.getCompId() != null && !orderInfo1.getCompId().isEmpty()){
+                        //货主是公司
+                        HyCompanyInfo hyCompanyInfo = companyInfoService.selectById(orderInfo1.getCompId());
+                        if (hyCompanyInfo.getAccountBalance() < zong){
+                            //账户余额小于尾款+服务费
+                            throw new YException(YExceptionEnum.INSUFFICIENT_ACCOUNT_BALANCES);
+                        }else {
+                            //冻结公司账户余额
+                            Double d = hyCompanyInfo.getAccountBalance();
+                            Double d1 = hyCompanyInfo.getFrozenAmount();
+                            hyCompanyInfo.setAccountBalance(d-zong);
+                            hyCompanyInfo.setFrozenAmount(d1+zong);
+                            companyInfoService.updateById(hyCompanyInfo);
+                        }
+                    }
+                    else {
+                        //货主是个人
+                        HyCargoOwnerInfo hyCargoOwnerInfo = cargoOwnerInfoService.selectOne(new EntityWrapper<HyCargoOwnerInfo>()
+                                .eq("common_id",orderInfo1.getCargoCommonId()).eq("delete_flag","0"));
+                        if (hyCargoOwnerInfo.getAccountBalance() < zong){
+                            //账户余额小于尾款+服务费
+                            throw new YException(YExceptionEnum.INSUFFICIENT_ACCOUNT_BALANCES);
+                        }else {
+                            //冻结公司账户余额
+                            Double d = hyCargoOwnerInfo.getAccountBalance();
+                            Double d1 = hyCargoOwnerInfo.getFrozenAmount();
+                            hyCargoOwnerInfo.setAccountBalance(d-zong);
+                            hyCargoOwnerInfo.setFrozenAmount(d1+zong);
+                            cargoOwnerInfoService.updateById(hyCargoOwnerInfo);
+                        }
+                    }
+                }
+            }
+            //司机
+            else {
+                //通过
+                if ("1".equals(orderInfo.getExamineFlag())){
+                    orderInfo1.setOrderStatusKey(StatusEnum.PLATFORM_CONFIRMED_UNLOAD.getFlag());
+                    orderInfo1.setOrderStatus(StatusEnum.PLATFORM_CONFIRMED_UNLOAD.getName());
+                    orderInfo1.setCargoOwnerStatusKey(StatusEnum.PLATFORM_CONFIRMED_UNLOAD.getFlag());
+                    orderInfo1.setCargoOwnerStatus(StatusEnum.PLATFORM_CONFIRMED_UNLOAD.getName());
+                }
+                //驳回
+                else {
+                    orderInfo1.setOrderStatusKey(StatusEnum.OWNER_CHECK_FREIGHT.getFlag());
+                    orderInfo1.setOrderStatus(StatusEnum.OWNER_CHECK_FREIGHT.getName());
+                    orderInfo1.setCargoOwnerStatusKey(StatusEnum.DRIVER_REJECTED_FREIGHT.getFlag());
+                    orderInfo1.setCargoOwnerStatus(StatusEnum.DRIVER_REJECTED_FREIGHT.getName());
+                    //将冻结金额解冻
+                    //非垫付订单
+                    if ("0".equals(orderInfo1.getFreightAdvance())) {
+                        //查询费用信息
+                        FreightInfo freightInfo = freightInfoService.selectOne(new EntityWrapper<FreightInfo>()
+                                .eq("order_id", orderInfo1.getId()).eq("delete_flag", "0"));
+                        //尾款
+                        Double weikuan = freightInfo.getActualFreight() - freightInfo.getPrepaidFreight();
+                        //尾款+服务费
+                        Double zong = weikuan + freightInfo.getOwnerServiceCharge();
+                        if (orderInfo1.getCompId() != null && !orderInfo1.getCompId().isEmpty()) {
+                            //货主是公司
+                            HyCompanyInfo hyCompanyInfo = companyInfoService.selectById(orderInfo1.getCompId());
+                            //将货主冻结金额解冻
+                            Double d = hyCompanyInfo.getAccountBalance();
+                            Double d1 = hyCompanyInfo.getFrozenAmount();
+                            hyCompanyInfo.setAccountBalance(d + zong);
+                            hyCompanyInfo.setFrozenAmount(d1 - zong);
+                            companyInfoService.updateById(hyCompanyInfo);
+                        } else {
+                            //货主是个人
+                            HyCargoOwnerInfo hyCargoOwnerInfo = cargoOwnerInfoService.selectOne(new EntityWrapper<HyCargoOwnerInfo>()
+                                    .eq("common_id", orderInfo1.getCargoCommonId()).eq("delete_flag", "0"));
+                            //将货主冻结金额解冻
+                            Double d = hyCargoOwnerInfo.getAccountBalance();
+                            Double d1 = hyCargoOwnerInfo.getFrozenAmount();
+                            hyCargoOwnerInfo.setAccountBalance(d + zong);
+                            hyCargoOwnerInfo.setFrozenAmount(d1 - zong);
+                            cargoOwnerInfoService.updateById(hyCargoOwnerInfo);
+                        }
+                    }
+                }
+            }
+            this.updateById(orderInfo1);
+            return "ok";
+        }
+        return "ng";
+    }
+
     /**
      * 完结
      *
@@ -616,20 +751,13 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
                     freightInfo.setId(IdGenerator.generateUUID());
                     freightInfo.setOrderId(orderInfo1.getId());
                     freightInfo.setDriverServiceCharge(150d);
-                    freightInfo.setOwnerServiceCharge(150d);
                     freightInfo.setPayableFreight(orderInfo1.getAdvanceCharge());
+                    freightInfo.setPayabledFreight(0d);
+                    freightInfo.setNopayableFreight(freightInfo.getPayableFreight());
                     //判断是否是垫付订单
-                    if ("1".equals(orderInfo1.getFreightAdvance())) {
-                        //垫付的订单
-                        freightInfo.setPayabledFreight(0d);
-                        freightInfo.setNopayableFreight(freightInfo.getPayableFreight() - freightInfo.getPayabledFreight());
-                    } else {
+                    if ("0".equals(orderInfo1.getFreightAdvance())){
                         //非垫付订单
-                        freightInfo.setPayabledFreight(orderInfo1.getAdvanceCharge());
-                        freightInfo.setPrepaidFreight(orderInfo1.getAdvanceCharge());
-                        freightInfo.setPrepaidFreightDate(df.parse(Time));
-                        freightInfo.setNopayableFreight(freightInfo.getPayableFreight() - freightInfo.getPayabledFreight());
-                        freightInfo.setReceivableFreight(orderInfo1.getAdvanceCharge() + freightInfo.getOwnerServiceCharge());
+                        freightInfo.setReceivableFreight(orderInfo1.getAdvanceCharge());
                         freightInfo.setReceivabledFreight(orderInfo1.getAdvanceCharge());
                         if (orderInfo1.getCompId() != null && !orderInfo1.getCompId().isEmpty()) {
                             //货主是公司
@@ -669,19 +797,26 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
                                 hyCargoOwnerCapitalInfoService.insert(hyCargoOwnerCapitalInfo);
                             }
                         }
-                        //生成司机账单
-                        if (freightInfo.getPrepaidFreight() != 0) {
-                            HyDriverCapitalInfo hyDriverCapitalInfo = new HyDriverCapitalInfo();
-                            hyDriverCapitalInfo.setId(IdGenerator.generateUUID());
-                            hyDriverCapitalInfo.setCommonId(orderInfo1.getCommonId());
-                            hyDriverCapitalInfo.setTypes("预付款");
-                            hyDriverCapitalInfo.setAmountMoney(freightInfo.getPrepaidFreight());
-                            hyDriverCapitalInfo.setOrderId(orderInfo1.getId());
-                            hyDriverCapitalInfo.setOrderNo(orderInfo1.getOrderNo());
-                            hyDriverCapitalInfoService.insert(hyDriverCapitalInfo);
-                        }
                     }
                     freightInfoService.insert(freightInfo);
+                    //如果预付款大于0,生成司机运费结算信息
+                    if (freightInfo.getPrepaidFreight() != 0) {
+                        HyFreightSettlementInfo hyFreightSettlementInfo = new HyFreightSettlementInfo();
+                        hyFreightSettlementInfo.setId(IdGenerator.generateUUID());
+                        hyFreightSettlementInfo.setCommonId(orderInfo1.getCommonId());
+                        hyFreightSettlementInfo.setOrderId(orderInfo1.getId());
+                        hyFreightSettlementInfo.setOrderNo(orderInfo1.getOrderNo());
+                        hyFreightSettlementInfo.setFreightAdvance(orderInfo1.getFreightAdvance());
+                        hyFreightSettlementInfo.setDriverName(orderInfo1.getDriverName());
+                        hyFreightSettlementInfo.setBankCard(orderInfo1.getBankCard());
+                        hyFreightSettlementInfo.setBankDeposit(orderInfo1.getBankDeposit());
+                        hyFreightSettlementInfo.setBankDepositBranch(orderInfo1.getBankDepositBranch());
+                        hyFreightSettlementInfo.setPaymentType("预付款");
+                        hyFreightSettlementInfo.setAmountMoney(freightInfo.getPayableFreight());
+                        hyFreightSettlementInfo.setStatusKey(StatusEnum.NO_PAYMENT.getFlag());
+                        hyFreightSettlementInfo.setStatus(StatusEnum.NO_PAYMENT.getName());
+                        hyFreightSettlementInfoService.insert(hyFreightSettlementInfo);
+                    }
                 } else {
                     //驳回装车更改订单状态
                     orderInfo1.setOrderStatus(StatusEnum.PLATFORM_REJECT_LOADING.getName());
@@ -721,13 +856,13 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
                 if ("1".equals(orderInfo.getExamineFlag())) {
                     if ("1".equals(orderInfo1.getFreightAdvance())) {
                         //确认卸车更改订单状态
-                        orderInfo1.setOrderStatus(StatusEnum.DRIVER_ORDER_FINISH.getName());
-                        orderInfo1.setOrderStatusKey(StatusEnum.DRIVER_ORDER_FINISH.getFlag());
+                        orderInfo1.setOrderStatus(StatusEnum.DRIVER_ORDER_SETTLEMENT.getName());
+                        orderInfo1.setOrderStatusKey(StatusEnum.DRIVER_ORDER_SETTLEMENT.getFlag());
                         orderInfo1.setCargoOwnerStatus(StatusEnum.OWNER_REPAID.getName());
                         orderInfo1.setCargoOwnerStatusKey(StatusEnum.OWNER_REPAID.getFlag());
                     } else {
-                        orderInfo1.setOrderStatus(StatusEnum.DRIVER_ORDER_FINISH.getName());
-                        orderInfo1.setOrderStatusKey(StatusEnum.DRIVER_ORDER_FINISH.getFlag());
+                        orderInfo1.setOrderStatus(StatusEnum.DRIVER_ORDER_SETTLEMENT.getName());
+                        orderInfo1.setOrderStatusKey(StatusEnum.DRIVER_ORDER_SETTLEMENT.getFlag());
                         orderInfo1.setCargoOwnerStatus(StatusEnum.OWNER_ORDER_FINISH.getName());
                         orderInfo1.setCargoOwnerStatusKey(StatusEnum.OWNER_ORDER_FINISH.getFlag());
                     }
@@ -737,18 +872,14 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
                     //非垫付订单
                     if ("0".equals(orderInfo1.getFreightAdvance())) {
                         freightInfo.setPayableFreight(freightInfo.getActualFreight() - freightInfo.getDriverServiceCharge() - freightInfo.getPrepaidFreight());
-                        freightInfo.setPayabledFreight(freightInfo.getPayableFreight());
                         freightInfo.setNopayableFreight(freightInfo.getPayableFreight() - freightInfo.getPayabledFreight());
-                        freightInfo.setFreightBalance(freightInfo.getPayableFreight());
-                        freightInfo.setFreightBalanceDate(df.parse(Time));
                         freightInfo.setOwnerFreightBalance(freightInfo.getActualFreight() - freightInfo.getPrepaidFreight());
                         freightInfo.setOwnerFreightBalanceDate(df.parse(Time));
                         Double d = freightInfo.getReceivableFreight();
-                        freightInfo.setReceivableFreight(d + freightInfo.getActualFreight() - freightInfo.getPrepaidFreight());
+                        freightInfo.setReceivableFreight(d + freightInfo.getOwnerFreightBalance() + freightInfo.getOwnerServiceCharge());
                         freightInfo.setReceivabledFreight(freightInfo.getReceivableFreight());
                         freightInfo.setTotalCollection(freightInfo.getActualFreight() - freightInfo.getDriverServiceCharge());
                         freightInfo.setTotalPayment(freightInfo.getActualFreight() + freightInfo.getOwnerServiceCharge());
-                        orderInfo1.setFreight(freightInfo.getPrepaidFreight() + freightInfo.getFreightBalance());
                         if (orderInfo1.getCompId() != null && !orderInfo1.getCompId().isEmpty()) {
                             //货主是公司
                             HyCompanyInfo hyCompanyInfo = companyInfoService.selectById(orderInfo1.getCompId());
@@ -761,7 +892,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
                             hyCargoOwnerCapitalInfo.setId(IdGenerator.generateUUID());
                             hyCargoOwnerCapitalInfo.setCompanyId(hyCompanyInfo.getId());
                             hyCargoOwnerCapitalInfo.setTypes("支付尾款");
-                            hyCargoOwnerCapitalInfo.setAmountMoney(freightInfo.getFreightBalance() + freightInfo.getDriverServiceCharge() + freightInfo.getOwnerServiceCharge());
+                            hyCargoOwnerCapitalInfo.setAmountMoney(freightInfo.getOwnerFreightBalance() + freightInfo.getOwnerServiceCharge());
                             hyCargoOwnerCapitalInfo.setOrderId(orderInfo1.getId());
                             hyCargoOwnerCapitalInfo.setOrderNo(orderInfo1.getOrderNo());
                             hyCargoOwnerCapitalInfoService.insert(hyCargoOwnerCapitalInfo);
@@ -778,20 +909,11 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
                             hyCargoOwnerCapitalInfo.setId(IdGenerator.generateUUID());
                             hyCargoOwnerCapitalInfo.setCommonId(hyCargoOwnerInfo.getCommonId());
                             hyCargoOwnerCapitalInfo.setTypes("支付尾款");
-                            hyCargoOwnerCapitalInfo.setAmountMoney(freightInfo.getFreightBalance() + freightInfo.getDriverServiceCharge() + freightInfo.getOwnerServiceCharge());
+                            hyCargoOwnerCapitalInfo.setAmountMoney(freightInfo.getOwnerFreightBalance() + freightInfo.getOwnerServiceCharge());
                             hyCargoOwnerCapitalInfo.setOrderId(orderInfo1.getId());
                             hyCargoOwnerCapitalInfo.setOrderNo(orderInfo1.getOrderNo());
                             hyCargoOwnerCapitalInfoService.insert(hyCargoOwnerCapitalInfo);
                         }
-                        //生成司机订单
-                        HyDriverCapitalInfo hyDriverCapitalInfo = new HyDriverCapitalInfo();
-                        hyDriverCapitalInfo.setId(IdGenerator.generateUUID());
-                        hyDriverCapitalInfo.setCommonId(orderInfo1.getCommonId());
-                        hyDriverCapitalInfo.setTypes("尾款");
-                        hyDriverCapitalInfo.setAmountMoney(freightInfo.getFreightBalance());
-                        hyDriverCapitalInfo.setOrderId(orderInfo1.getId());
-                        hyDriverCapitalInfo.setOrderNo(orderInfo1.getOrderNo());
-                        hyDriverCapitalInfoService.insert(hyDriverCapitalInfo);
                         //司机承运次数+1,计算累计支付运费
                         HyDriverInfo hyDriverInfo = driverInfoService.selectOne(new EntityWrapper<HyDriverInfo>()
                                 .eq("common_id", orderInfo1.getCommonId()).eq("delete_flag", "0"));
@@ -820,6 +942,22 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
                         freightInfo.setTotalCollection(freightInfo.getPayableFreight());
                     }
                     freightInfoService.updateById(freightInfo);
+                    //生成司机运费结算信息
+                    HyFreightSettlementInfo hyFreightSettlementInfo = new HyFreightSettlementInfo();
+                    hyFreightSettlementInfo.setId(IdGenerator.generateUUID());
+                    hyFreightSettlementInfo.setCommonId(orderInfo1.getCommonId());
+                    hyFreightSettlementInfo.setOrderId(orderInfo1.getId());
+                    hyFreightSettlementInfo.setOrderNo(orderInfo1.getOrderNo());
+                    hyFreightSettlementInfo.setFreightAdvance(orderInfo1.getFreightAdvance());
+                    hyFreightSettlementInfo.setDriverName(orderInfo1.getDriverName());
+                    hyFreightSettlementInfo.setBankCard(orderInfo1.getBankCard());
+                    hyFreightSettlementInfo.setBankDeposit(orderInfo1.getBankDeposit());
+                    hyFreightSettlementInfo.setBankDepositBranch(orderInfo1.getBankDepositBranch());
+                    hyFreightSettlementInfo.setPaymentType("尾款");
+                    hyFreightSettlementInfo.setAmountMoney(freightInfo.getActualFreight() - freightInfo.getPrepaidFreight() - freightInfo.getDriverServiceCharge());
+                    hyFreightSettlementInfo.setStatusKey(StatusEnum.NO_PAYMENT.getFlag());
+                    hyFreightSettlementInfo.setStatus(StatusEnum.NO_PAYMENT.getName());
+                    hyFreightSettlementInfoService.insert(hyFreightSettlementInfo);
                 } else {
                     //驳回卸车更改订单状态
                     orderInfo1.setOrderStatus(StatusEnum.PLATFORM_REJECT_UNLOAD.getName());

+ 1 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/CargoOwnerInfoMapper.xml

@@ -56,6 +56,7 @@
         o.shipments_number as shipmentsNumber,
         o.favorable_rate as favorableRate,
         o.advance_payment as advancePayment,
+        o.charge_proportion as chargeProportion,
         o.accumulated_freight as accumulatedFreight,
         GROUP_CONCAT(co.company) as proxyIdentity,
         o.authentication_status_key as authenticationStatusKey,

+ 1 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/DriverCarInfoMapper.xml

@@ -48,6 +48,7 @@
         c.car_number as carNumber,
         c.car_number_colour as carNumberColour,
         c.gua_car_number as guaCarNumber,
+        c.energy_type as energyType,
         c.driving_license_home_page as drivingLicenseHomePage,
         c.driving_license_back_page as drivingLicenseBackPage,
         c.driving_license_number as drivingLicenseNumber,

+ 97 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/HyCargoOwnerCapitalInfoMapper.xml

@@ -60,4 +60,101 @@
             LIMIT ${startRecord}, ${pageSize}
         </if>
     </select>
+
+
+    <!-- 获得货主提现总数 -->
+    <select id="getWithdrawalCountByCondition" parameterType="Map" resultType="java.lang.Integer">
+        select
+        count(c.id)
+        FROM hy_cargo_owner_capital_info c
+        LEFT JOIN hy_cargo_owner_info co ON co.common_id = c.common_id AND co.delete_flag = '0'
+        LEFT JOIN hy_company_info ho ON ho.id = c.company_id AND ho.delete_flag = '0'
+        LEFT JOIN common_user cu ON cu.id = co.common_id AND cu.delete_flag = '0'
+        LEFT JOIN common_user cs ON cs.id = ho.common_id AND cs.delete_flag = '0'
+        WHERE
+        c.delete_flag = '0'
+        AND c.types = '提现'
+        <if test="searchKeyWord != null and searchKeyWord != ''">
+            AND (lower(co.name) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(cu.phone) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(ho.legal_person_name) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(cs.phone) like lower(CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND c.status_key = '1'
+            </if>
+            <if test="searchType == 2">
+                AND c.status_key = '5'
+            </if>
+            <if test="searchType == 3">
+                AND c.status_key = '7'
+            </if>
+        </if>
+        <if test="startDate != null and startDate != ''">
+            AND (DATE_FORMAT(c.create_date,"%Y%m%d") >=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null and endDate != ''">
+            AND (DATE_FORMAT(c.create_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+    </select>
+
+    <!-- 货主提现列表查询 -->
+    <select id="getWithdrawalListByCondition" parameterType="Map"
+            resultType="com.yh.saas.plugin.yiliangyiyun.entity.HyCargoOwnerCapitalInfo">
+        SELECT
+        c.id,
+        c.common_id as commonId,
+        c.company_id as companyId,
+        case when c.company_id is null then co.name else ho.legal_person_name end as cargoOwnerName,
+        case when c.company_id is null then cu.phone else cs.phone end as accountNumber,
+        c.payee_name as payeeName,
+        c.bank_deposit as bankDeposit,
+        c.bank_card as bankCard,
+        c.amount_money as amountMoney,
+        c.status_key as statusKey,
+        c.status,
+        c.serial_number as serialNumber,
+        c.payment_date as paymentDate,
+        c.create_date as createDate
+        FROM hy_cargo_owner_capital_info c
+        LEFT JOIN hy_cargo_owner_info co ON co.common_id = c.common_id AND co.delete_flag = '0'
+        LEFT JOIN hy_company_info ho ON ho.id = c.company_id AND ho.delete_flag = '0'
+        LEFT JOIN common_user cu ON cu.id = co.common_id AND cu.delete_flag = '0'
+        LEFT JOIN common_user cs ON cs.id = ho.common_id AND cs.delete_flag = '0'
+        WHERE
+        c.delete_flag = '0'
+        AND c.types = '提现'
+        <if test="searchKeyWord != null and searchKeyWord != ''">
+            AND (lower(co.name) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(cu.phone) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(ho.legal_person_name) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(cs.phone) like lower(CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND c.status_key = '1'
+            </if>
+            <if test="searchType == 2">
+                AND c.status_key = '5'
+            </if>
+            <if test="searchType == 3">
+                AND c.status_key = '7'
+            </if>
+        </if>
+        <if test="startDate != null and startDate != ''">
+            AND (DATE_FORMAT(c.create_date,"%Y%m%d") >=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null and endDate != ''">
+            AND (DATE_FORMAT(c.create_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        ORDER BY c.create_date DESC
+        <if test="currentPage != null and currentPage != ''">
+            LIMIT ${startRecord}, ${pageSize}
+        </if>
+    </select>
 </mapper>

+ 89 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/HyFreightSettlementInfoMapper.xml

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yh.saas.plugin.yiliangyiyun.mapper.HyFreightSettlementInfoMapper">
+
+
+    <!-- 获得司机运费结算总数 -->
+    <select id="getCountByCondition" parameterType="Map" resultType="java.lang.Integer">
+        select
+        count(id)
+        FROM hy_freight_settlement_info
+        WHERE
+        delete_flag = '0'
+        <if test="searchKeyWord != null and searchKeyWord != ''">
+            AND (lower(driver_name) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(order_no) like lower(CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND status_key = '1'
+            </if>
+            <if test="searchType == 2">
+                AND status_key = '5'
+            </if>
+            <if test="searchType == 3">
+                AND status_key = '3'
+            </if>
+        </if>
+        <if test="startDate != null and startDate != ''">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") >=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null and endDate != ''">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+    </select>
+
+    <!-- 司机运费结算列表查询 -->
+    <select id="getListByCondition" parameterType="Map"
+            resultType="com.yh.saas.plugin.yiliangyiyun.entity.HyFreightSettlementInfo">
+        SELECT
+        id,
+        order_id as orderId,
+        order_no as orderNo,
+        freight_advance as freightAdvance,
+        driver_name as driverName,
+        bank_card as bankCard,
+        bank_deposit as bankDeposit,
+        bank_deposit_branch as bankDepositBranch,
+        payment_type as paymentType,
+        amount_money as amountMoney,
+        payment_date as paymentDate,
+        status_key as statusKey,
+        status,
+        serial_number as serialNumber,
+        arrival_date as arrivalDate,
+        create_date as createDate
+        FROM hy_freight_settlement_info
+        WHERE
+        delete_flag = '0'
+        <if test="searchKeyWord != null and searchKeyWord != ''">
+            AND (lower(driver_name) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(order_no) like lower(CONCAT('%',#{searchKeyWord},'%')))
+        </if>
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND status_key = '1'
+            </if>
+            <if test="searchType == 2">
+                AND status_key = '5'
+            </if>
+            <if test="searchType == 3">
+                AND status_key = '3'
+            </if>
+        </if>
+        <if test="startDate != null and startDate != ''">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") >=
+            DATE_FORMAT(#{startDate},"%Y%m%d"))
+        </if>
+        <if test="endDate != null and endDate != ''">
+            AND (DATE_FORMAT(create_date,"%Y%m%d") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d"))
+        </if>
+        ORDER BY create_date DESC
+        <if test="currentPage != null and currentPage != ''">
+            LIMIT ${startRecord}, ${pageSize}
+        </if>
+    </select>
+</mapper>