Explorar el Código

付款管理-支付

ZhangWenQiang hace 5 años
padre
commit
b6fe2fc03d

+ 1 - 1
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwcpmanager/entity/HlwCpSubcontractor.java

@@ -47,7 +47,7 @@ public class HlwCpSubcontractor implements Serializable {
 	/**服务费率*/
 	@Excel(name = "服务费率", width = 15)
     @ApiModelProperty(value = "服务费率")
-    private BigDecimal serviceRate;
+    private Double serviceRate;
 	/**创建时间*/
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")

+ 43 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/controller/HlwPaymentController.java

@@ -10,6 +10,9 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.businessAccountUtils;
+import org.jeecg.modules.hlwcpmanager.entity.HlwCpSubcontractor;
+import org.jeecg.modules.hlwcpmanager.service.IHlwCpSubcontractorService;
 import org.jeecg.modules.hlwpayment.entity.HlwPayment;
 import org.jeecg.modules.hlwpayment.service.IHlwPaymentService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +21,7 @@ import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
 import java.util.Arrays;
 
 /**
@@ -33,6 +37,8 @@ import java.util.Arrays;
 public class HlwPaymentController extends JeecgController<HlwPayment, IHlwPaymentService> {
     @Autowired
     private IHlwPaymentService hlwPaymentService;
+    @Autowired
+    private IHlwCpSubcontractorService hlwCpSubcontractorService;
 
     /**
      * 分页列表查询
@@ -57,6 +63,43 @@ public class HlwPaymentController extends JeecgController<HlwPayment, IHlwPaymen
     }
 
     /**
+     * 查询通过平台支付的服务商到款、服务费率等信息
+     *
+     * @return
+     */
+    @GetMapping(value = "/cpSubcontractor")
+    public Result<?> queryCpSubcontractor(HlwPayment hlwPayment, HttpServletRequest req) {
+        //付款实体
+        HlwPayment hlwPaymentEntity = hlwPaymentService.getById(hlwPayment.getId());
+        //平台服务商
+        QueryWrapper<HlwCpSubcontractor> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("subcontractor_id", hlwPayment.getSubcontractorId());
+        HlwCpSubcontractor hlwCpSubcontractor = hlwCpSubcontractorService.getOne(queryWrapper);
+        if (hlwCpSubcontractor != null) {
+            hlwPaymentEntity.setCpServiceRate(hlwCpSubcontractor.getServiceRate());
+            //计算服务商到款(付款合计×(1+费率),四舍五入
+            Double arrivalAmount = businessAccountUtils.round(businessAccountUtils.mul(hlwPaymentEntity.getPayment(), businessAccountUtils.add(1, hlwCpSubcontractor.getServiceRate() / 100)), 2);
+            //服务商结余(服务费)
+            Double arrivalServiceFee = businessAccountUtils.sub(arrivalAmount, hlwPaymentEntity.getPayment());
+            hlwPaymentEntity.setArrivalAmount(arrivalAmount);
+            hlwPaymentEntity.setArrivalServiceFee(arrivalServiceFee);
+        } else {
+            hlwPaymentEntity.setCpServiceRate(0.00);
+            hlwPaymentEntity.setArrivalAmount(0.00);
+            hlwPaymentEntity.setArrivalServiceFee(0.00);
+        }
+        //默认可以支付
+        hlwPaymentEntity.setIsCpPay(1);
+        //比较服务费和企业支付的服务费
+        BigDecimal dataArrivalServiceFee = BigDecimal.valueOf(hlwPaymentEntity.getArrivalServiceFee());
+        BigDecimal dataServiceFee = BigDecimal.valueOf(hlwPaymentEntity.getServiceFee());
+        if (dataArrivalServiceFee.compareTo(dataServiceFee) == 1) {
+            hlwPaymentEntity.setIsCpPay(0);
+        }
+        return Result.ok(hlwPaymentEntity);
+    }
+
+    /**
      * 添加
      *
      * @param hlwPayment

+ 41 - 14
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/entity/HlwPayment.java

@@ -1,23 +1,20 @@
 package org.jeecg.modules.hlwpayment.entity;
 
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import java.math.BigDecimal;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
 
 /**
  * @Description: 付款信息表
@@ -74,31 +71,31 @@ public class HlwPayment implements Serializable {
      */
     @Excel(name = "项目金额", width = 15)
     @ApiModelProperty(value = "项目金额")
-    private java.math.BigDecimal payment;
+    private Double payment;
     /**
      * 服务费率(仅记录,不参与后续业务)
      */
     @Excel(name = "服务费率(仅记录,不参与后续业务)", width = 15)
     @ApiModelProperty(value = "服务费率(仅记录,不参与后续业务)")
-    private java.math.BigDecimal serviceRate;
+    private Double serviceRate;
     /**
      * 服务费(仅作展示用,不参与业务,记录企业支付的服务费)
      */
     @Excel(name = "服务费(仅作展示用,不参与业务,记录企业支付的服务费)", width = 15)
     @ApiModelProperty(value = "服务费(仅作展示用,不参与业务,记录企业支付的服务费)")
-    private java.math.BigDecimal serviceFee;
+    private Double serviceFee;
     /**
      * 付款合计(payment+service_fee=total_payment)
      */
     @Excel(name = "付款合计(payment+service_fee=total_payment)", width = 15)
     @ApiModelProperty(value = "付款合计(payment+service_fee=total_payment)")
-    private java.math.BigDecimal totalPayment;
+    private Double totalPayment;
     /**
      * 总税费
      */
     @Excel(name = "总税费", width = 15)
     @ApiModelProperty(value = "总税费")
-    private java.math.BigDecimal totalTaxFee;
+    private Double totalTaxFee;
     /**
      * 支付时间(提交银行接口时间)
      */
@@ -219,4 +216,34 @@ public class HlwPayment implements Serializable {
      */
     @TableField(exist = false)
     private Double accountBalance;
+
+    /**
+     * 企业账户结余(计算完当前付款后)
+     */
+    @TableField(exist = false)
+    private Double surplus;
+
+    /**
+     * 平台服务商服务费率
+     */
+    @TableField(exist = false)
+    private Double cpServiceRate;
+
+    /**
+     * 服务商到款
+     */
+    @TableField(exist = false)
+    private Double arrivalAmount;
+
+    /**
+     * 服务商结余服务费
+     */
+    @TableField(exist = false)
+    private Double arrivalServiceFee;
+
+    /**
+     * 通过平台是否满足支付条件(0:否;1:是)
+     */
+    @TableField(exist = false)
+    private Integer isCpPay;
 }

+ 4 - 0
happy-cloud-wisdom/happy-cloud-wisdom-biz/src/main/java/org/jeecg/modules/hlwpayment/service/impl/HlwPaymentServiceImpl.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.hlwpayment.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.businessAccountUtils;
 import org.jeecg.modules.hlwpayment.entity.HlwPayment;
 import org.jeecg.modules.hlwpayment.entity.HlwPaymentDetail;
 import org.jeecg.modules.hlwpayment.mapper.HlwPaymentMapper;
@@ -68,6 +69,9 @@ public class HlwPaymentServiceImpl extends ServiceImpl<HlwPaymentMapper, HlwPaym
                     break;
             }
             hlwPaymentT.setRemark(remark.toString());
+            //计算账户结余
+            Double surplus = businessAccountUtils.sub(businessAccountUtils.sub(hlwPaymentT.getAccountBalance(), hlwPaymentT.getPayment()), hlwPaymentT.getServiceFee());
+            hlwPaymentT.setSurplus(surplus);
         }
         return page.setRecords(list);
     }