Sfoglia il codice sorgente

fix

release_toaliyun_real
winter 1 anno fa
parent
commit
a6b61be3e3
3 ha cambiato i file con 39 aggiunte e 10 eliminazioni
  1. +18
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/FinanceSetOffCalcuteDTO.java
  2. +2
    -2
      mallinkService/src/main/java/com/iformall/domain/po/base/WxBillBaseEntity.java
  3. +19
    -8
      mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java

+ 18
- 0
mallinkService/src/main/java/com/iformall/domain/dto/FinanceSetOffCalcuteDTO.java Vedi File

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

import java.util.List;

import com.iformall.domain.po.WxFinanceReceive;
import com.iformall.domain.po.base.TenantEntity;
import lombok.Data;

/**
*/
@Data
public class FinanceSetOffCalcuteDTO extends TenantEntity{
private static final long serialVersionUID = -5605457206509995420L;
//可抵扣的预充值列表
List<WxFinanceReceive> advanceList;
//预充值列表计数开始位置(预充值为0了会往后移)
Integer currentIndex;
}

+ 2
- 2
mallinkService/src/main/java/com/iformall/domain/po/base/WxBillBaseEntity.java Vedi File

@@ -215,9 +215,9 @@ public class WxBillBaseEntity extends TenantEntity {
private List<FinanceSetOffDetailVo> setOffDetailList; private List<FinanceSetOffDetailVo> setOffDetailList;
@TableField(exist = false) @TableField(exist = false)
public String currentSetOff = "0";
private String currentSetOff;
@TableField(exist = false) @TableField(exist = false)
public String currentReceive = "0";
private String currentReceive;
} }

+ 19
- 8
mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java Vedi File

@@ -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.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;
import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.MallUserInfo;
@@ -247,15 +248,16 @@ public class WxFinanceServiceImpl implements WxFinanceService {
} }
} }
private void setSetOff(WxBillBaseEntity bill,List<WxFinanceReceive> advanceList,Integer currentIndex) {
//根据预充值收款单来冲抵账单
private void setSetOff(WxBillBaseEntity bill,FinanceSetOffCalcuteDTO calcuteDto) {
BigDecimal owe = new BigDecimal(bill.getOwe()); BigDecimal owe = new BigDecimal(bill.getOwe());
BigDecimal b0 = new BigDecimal(0); BigDecimal b0 = new BigDecimal(0);
if (owe.compareTo(b0) <= 0) { if (owe.compareTo(b0) <= 0) {
return; return;
}else { }else {
List<FinanceSetOffDetailVo> setoffList = bill.getSetOffDetailList(); List<FinanceSetOffDetailVo> setoffList = bill.getSetOffDetailList();
for (int j = currentIndex ; j < advanceList.size() ; j++) {
WxFinanceReceive advance = advanceList.get(j);
for (int j = calcuteDto.getCurrentIndex(); j < calcuteDto.getAdvanceList().size() ; j++) {
WxFinanceReceive advance = calcuteDto.getAdvanceList().get(j);
BigDecimal remain = new BigDecimal(advance.getRemain()); BigDecimal remain = new BigDecimal(advance.getRemain());
if (remain.compareTo(b0) > 0) { if (remain.compareTo(b0) > 0) {
if (null == setoffList) { if (null == setoffList) {
@@ -269,7 +271,10 @@ public class WxFinanceServiceImpl implements WxFinanceService {
}else { }else {
billSetOff = b0; billSetOff = b0;
} }
BigDecimal billCurrentSetOff = new BigDecimal(bill.getCurrentSetOff());
BigDecimal billCurrentSetOff = new BigDecimal(0);
if (StringUtils.isNotBlank(bill.getCurrentSetOff())) {
billCurrentSetOff = new BigDecimal(bill.getCurrentSetOff());
}
//如果前面的不够,则后面的继续补 //如果前面的不够,则后面的继续补
if (remain.compareTo(owe) <= 0 ) { if (remain.compareTo(owe) <= 0 ) {
//设置账单历史抵扣 //设置账单历史抵扣
@@ -280,16 +285,18 @@ public class WxFinanceServiceImpl implements WxFinanceService {
advance.setUseMoney(advance.getReceiveMoney()); advance.setUseMoney(advance.getReceiveMoney());
dv.setSetoff(remain.toPlainString()); dv.setSetoff(remain.toPlainString());
setoffList.add(dv); setoffList.add(dv);
setSetOff(bill,advanceList,currentIndex);
bill.setSetOffDetailList(setoffList);
setSetOff(bill,calcuteDto);
}else { }else {
bill.setSetOff(billSetOff.add(owe).toPlainString()); bill.setSetOff(billSetOff.add(owe).toPlainString());
bill.setCurrentSetOff(billCurrentSetOff.add(owe).toPlainString()); bill.setCurrentSetOff(billCurrentSetOff.add(owe).toPlainString());
advance.setUseMoney(new BigDecimal(advance.getUseMoney()).add(owe).toPlainString()); advance.setUseMoney(new BigDecimal(advance.getUseMoney()).add(owe).toPlainString());
dv.setSetoff(owe.toPlainString()); dv.setSetoff(owe.toPlainString());
setoffList.add(dv); setoffList.add(dv);
bill.setSetOffDetailList(setoffList);
} }
}else { }else {
currentIndex = currentIndex+1;
calcuteDto.setCurrentIndex(calcuteDto.getCurrentIndex()+1);
} }
} }
} }
@@ -313,7 +320,9 @@ public class WxFinanceServiceImpl implements WxFinanceService {
//每个账单去计算抵扣 //每个账单去计算抵扣
WxMerchant merchant = new WxMerchant(); WxMerchant merchant = new WxMerchant();
merchant.updateTenantInfo(dto); merchant.updateTenantInfo(dto);
Integer currentIndex = 0;
FinanceSetOffCalcuteDTO calcuteDto = new FinanceSetOffCalcuteDTO();
calcuteDto.setCurrentIndex(0);
calcuteDto.setAdvanceList(advanceList);
List<WxBillBaseEntity> retList = new ArrayList<WxBillBaseEntity>(); List<WxBillBaseEntity> retList = new ArrayList<WxBillBaseEntity>();
for (int i = 0 ; i < bills.size() ; i ++) { for (int i = 0 ; i < bills.size() ; i ++) {
WxBillBaseEntity be = bills.get(i); WxBillBaseEntity be = bills.get(i);
@@ -321,10 +330,12 @@ public class WxFinanceServiceImpl implements WxFinanceService {
be.setReceivePay(bill.getReceivePay()); be.setReceivePay(bill.getReceivePay());
be.setPay(bill.getPay()); be.setPay(bill.getPay());
be.setSetOff(bill.getSetOff()); be.setSetOff(bill.getSetOff());
setSetOff(be, advanceList,currentIndex);
setSetOff(be, calcuteDto);
WxBillBaseEntity retb = new WxBillBaseEntity(); WxBillBaseEntity retb = new WxBillBaseEntity();
retb.setId(be.getId()); retb.setId(be.getId());
retb.setSetOffDetailList(be.getSetOffDetailList()); retb.setSetOffDetailList(be.getSetOffDetailList());
retb.setCurrentSetOff(be.getCurrentSetOff());
retb.setCurrentReceive(be.getCurrentReceive());
retList.add(retb); retList.add(retb);
} }
return retList; return retList;


Caricamento…
Annulla
Salva