瀏覽代碼

fix

release_toaliyun_real
winter 1 年之前
父節點
當前提交
a5258aba5a
共有 4 個檔案被更改,包括 47 行新增13 行删除
  1. +5
    -4
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
  2. +18
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/FinanceReceiveCalcuteDTO.java
  3. +2
    -1
      mallinkService/src/main/java/com/iformall/domain/po/base/WxBillBaseEntity.java
  4. +22
    -8
      mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java

+ 5
- 4
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java 查看文件

@@ -878,13 +878,14 @@ public class WxRentContractController extends WxContractBaseController {
if(StringUtils.isBlank(payAccountBill.getBankCardId())) { if(StringUtils.isBlank(payAccountBill.getBankCardId())) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "甲方银行账户卡号未填写"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "甲方银行账户卡号未填写");
} }
if (payAccountBill.getServiceChargeRate() == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "手续费费率未填写");
}
//服务费暂时不支持配置。账单,财务收款等部分暂时不支持
// if (payAccountBill.getServiceChargeRate() == null) {
// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL, "手续费费率未填写");
// }
WxPayAccountBill payAccountBillNew = payAccountBillService.getByTenantInfo(getTenantInfo()); WxPayAccountBill payAccountBillNew = payAccountBillService.getByTenantInfo(getTenantInfo());
payAccountBillNew.setBankAccountName(payAccountBill.getBankAccountName()); payAccountBillNew.setBankAccountName(payAccountBill.getBankAccountName());
payAccountBillNew.setBankCardId(payAccountBill.getBankCardId()); payAccountBillNew.setBankCardId(payAccountBill.getBankCardId());
payAccountBillNew.setServiceChargeRate(payAccountBill.getServiceChargeRate());
//payAccountBillNew.setServiceChargeRate(payAccountBill.getServiceChargeRate());
payAccountBillService.saveOrUpdate(payAccountBillNew); payAccountBillService.saveOrUpdate(payAccountBillNew);
return new ResultData(); return new ResultData();
} }


+ 18
- 0
mallinkService/src/main/java/com/iformall/domain/dto/FinanceReceiveCalcuteDTO.java 查看文件

@@ -0,0 +1,18 @@
package com.iformall.domain.dto;

import java.math.BigDecimal;
import java.util.List;

import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.po.base.WxBillBaseEntity;

import lombok.Data;

/**
*/
@Data
public class FinanceReceiveCalcuteDTO extends TenantEntity{
private static final long serialVersionUID = 5653697108361199126L;
private BigDecimal totalRemainReceive;
private BigDecimal totalSetoff;
}

+ 2
- 1
mallinkService/src/main/java/com/iformall/domain/po/base/WxBillBaseEntity.java 查看文件

@@ -108,7 +108,8 @@ public class WxBillBaseEntity extends TenantEntity {
returnPay = "0"; returnPay = "0";
} }
if (StringUtils.isNotBlank(receivePay) && StringUtils.isNotBlank(pay)) { if (StringUtils.isNotBlank(receivePay) && StringUtils.isNotBlank(pay)) {
return new BigDecimal(receivePay).subtract(new BigDecimal(pay)).subtract(new BigDecimal(returnPay)).subtract(new BigDecimal(setOff)).toPlainString();
String o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).subtract(new BigDecimal(returnPay)).subtract(new BigDecimal(setOff)).toPlainString();
return o;
} }
return "0"; return "0";
} }


+ 22
- 8
mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java 查看文件

@@ -8,6 +8,7 @@ import com.iformall.common.ErrorCode;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.common.Result; import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.dto.FinanceReceiveCalcuteDTO;
import com.iformall.domain.dto.FinanceSetOffCalcuteDTO; import com.iformall.domain.dto.FinanceSetOffCalcuteDTO;
import com.iformall.domain.dto.FinanceSetOffDTO; import com.iformall.domain.dto.FinanceSetOffDTO;
import com.iformall.domain.dto.WxBillPayDTO; import com.iformall.domain.dto.WxBillPayDTO;
@@ -521,11 +522,15 @@ public class WxFinanceServiceImpl implements WxFinanceService {
WxMerchant merchant = new WxMerchant(); WxMerchant merchant = new WxMerchant();
merchant.updateTenantInfo(record); merchant.updateTenantInfo(record);
boolean isAllEmpity = true; boolean isAllEmpity = true;
FinanceReceiveCalcuteDTO calcuteDto = new FinanceReceiveCalcuteDTO();
calcuteDto.setTotalRemainReceive(receiveTotal);
calcuteDto.setTotalSetoff(setOffTotal);
//建立子账单关联单 //建立子账单关联单
for (int i = 0 ; i < record.getBills().size(); i++) { for (int i = 0 ; i < record.getBills().size(); i++) {
WxBillBaseEntity be = record.getBills().get(i); WxBillBaseEntity be = record.getBills().get(i);
//每个账单要创建一个收款关联单,如果有冲抵,要额外创建 //每个账单要创建一个收款关联单,如果有冲抵,要额外创建
boolean noNeedCreate = createBillReceive(receiveTotal,setOffTotal,user,addreceive,be,merchant,payWay0);
boolean noNeedCreate = createBillReceive(calcuteDto,user,addreceive,be,merchant,payWay0);
if (!noNeedCreate) { if (!noNeedCreate) {
isAllEmpity = false; isAllEmpity = false;
} }
@@ -541,24 +546,32 @@ public class WxFinanceServiceImpl implements WxFinanceService {
return bills; return bills;
} }
public boolean createBillReceive(BigDecimal receiveTotal,BigDecimal setOffTotal,MallUserInfo user,WxFinanceReceive addreceive,WxBillBaseEntity be,WxMerchant merchant,WxBillPayWay payWay0) {
public boolean createBillReceive(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxBillBaseEntity be,WxMerchant merchant,WxBillPayWay payWay0) {
//如果既没有收款,也没有冲抵,则不更新 //如果既没有收款,也没有冲抵,则不更新
boolean noNeedCreate = true; boolean noNeedCreate = true;
//计算账单收款费用,更新账单收款 //计算账单收款费用,更新账单收款
BigDecimal b0 = new BigDecimal(0); BigDecimal b0 = new BigDecimal(0);
WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId()); WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId());
if (receiveTotal.compareTo(b0) > 0) {
if (calcuteDto.getTotalRemainReceive().compareTo(b0) > 0) {
noNeedCreate = false; noNeedCreate = false;
//有收款,就要更新账单的收款 //有收款,就要更新账单的收款
//更新账单收款信息 //更新账单收款信息
String money = ""; String money = "";
if (StringUtils.isNotBlank(be.getCurrentSetOff())) {
if (StringUtils.isNotBlank(bill.getSetOff())) {
bill.setSetOff(new BigDecimal(bill.getSetOff()).add(new BigDecimal(be.getCurrentSetOff())).toPlainString() );
}else {
bill.setSetOff(be.getCurrentSetOff());
}
}
BigDecimal oweDecimal = new BigDecimal(bill.getOwe()); BigDecimal oweDecimal = new BigDecimal(bill.getOwe());
if (oweDecimal.compareTo(receiveTotal) < 0 ) {
if (oweDecimal.compareTo(calcuteDto.getTotalRemainReceive()) < 0 ) {
money = bill.getOwe(); money = bill.getOwe();
receiveTotal = receiveTotal.subtract(oweDecimal);
calcuteDto.setTotalRemainReceive(calcuteDto.getTotalRemainReceive().subtract(oweDecimal));
}else { }else {
money = receiveTotal.toPlainString();
receiveTotal = b0;
money = calcuteDto.getTotalRemainReceive().toPlainString();
calcuteDto.setTotalRemainReceive(new BigDecimal(0));
} }
WxBillPayDTO payDto = new WxBillPayDTO(); WxBillPayDTO payDto = new WxBillPayDTO();
payDto.updateTenantInfo(addreceive); payDto.updateTenantInfo(addreceive);
@@ -575,6 +588,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
bill.setCurrentReceive(money); bill.setCurrentReceive(money);
//并且有抵扣 //并且有抵扣
if(StringUtils.isNotBlank(be.getCurrentSetOff())) { if(StringUtils.isNotBlank(be.getCurrentSetOff())) {
calcuteDto.setTotalSetoff(calcuteDto.getTotalSetoff().add(new BigDecimal(be.getCurrentSetOff())));
payDto.setSetOff(be.getCurrentSetOff()); payDto.setSetOff(be.getCurrentSetOff());
//创建一个冲抵收款单 //创建一个冲抵收款单
createFinanceReceiveBill(addreceive,bill,be.getCurrentSetOff(),Constant.bill_pay_way_setoff); createFinanceReceiveBill(addreceive,bill,be.getCurrentSetOff(),Constant.bill_pay_way_setoff);
@@ -585,7 +599,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
}else if (StringUtils.isNotBlank(be.getCurrentSetOff())) { }else if (StringUtils.isNotBlank(be.getCurrentSetOff())) {
noNeedCreate = false; noNeedCreate = false;
setOffTotal = setOffTotal.add(new BigDecimal(be.getCurrentSetOff()));
calcuteDto.setTotalSetoff(calcuteDto.getTotalSetoff().add(new BigDecimal(be.getCurrentSetOff())));
//没收款,有冲抵,就要更新账单的冲抵,然后把对应的预充值使用金额更新,并进行关联 //没收款,有冲抵,就要更新账单的冲抵,然后把对应的预充值使用金额更新,并进行关联
//创建一个冲抵收款单 //创建一个冲抵收款单
createFinanceReceiveBill(addreceive,bill,be.getCurrentSetOff(),Constant.bill_pay_way_setoff); createFinanceReceiveBill(addreceive,bill,be.getCurrentSetOff(),Constant.bill_pay_way_setoff);


Loading…
取消
儲存