fix: 信用卡账单生成问题修复。
This commit is contained in:
@@ -332,8 +332,19 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//如果账单日消费计入下期(isNextBillDate=1)且今天是账单日,需要生成下一个账单周期
|
//如枟账单日消费计入下期(isNextBillDate=1)且今天是账单日,需要生成下一个账单周期
|
||||||
if(isNextBillDate.equals("1") && dayOfMonth == bankCard.getBillDate()){
|
if(isNextBillDate.equals("1") && dayOfMonth == bankCard.getBillDate()){
|
||||||
|
//先将当期账单状态更新为已出账
|
||||||
|
if(creditCardBillList.size()>0){
|
||||||
|
CreditCardBillVo currentCreditCardBillVo=creditCardBillList.get(0);
|
||||||
|
CreditCardBill updateCurrentBill=new CreditCardBill();
|
||||||
|
updateCurrentBill.setUpdateBy(SecurityUtils.getUsername());
|
||||||
|
updateCurrentBill.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
updateCurrentBill.setId(currentCreditCardBillVo.getId());
|
||||||
|
updateCurrentBill.setBillState("1");//设置为已出账
|
||||||
|
creditCardBillMapper.updateCreditCardBill(updateCurrentBill);
|
||||||
|
}
|
||||||
|
|
||||||
//计算下一个账单日期
|
//计算下一个账单日期
|
||||||
String nextBillDateStr;
|
String nextBillDateStr;
|
||||||
if(month==12){
|
if(month==12){
|
||||||
@@ -364,6 +375,30 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
|||||||
Date nextEndDate = nextCalendarEnd.getTime();
|
Date nextEndDate = nextCalendarEnd.getTime();
|
||||||
String nextPeriodEnd= formatter.format(nextEndDate);
|
String nextPeriodEnd= formatter.format(nextEndDate);
|
||||||
|
|
||||||
|
//计算下一个账单周期的账单金额
|
||||||
|
double nextBillAmount=0;
|
||||||
|
AccountsDealRecordDto nextAccountsDealRecordDto=new AccountsDealRecordDto();
|
||||||
|
nextAccountsDealRecordDto.setAccountId(bankCard.getId());
|
||||||
|
try {
|
||||||
|
nextAccountsDealRecordDto.setStartDateTime(formatterTime.parse(nextPeriodStart+" 00:00:00"));
|
||||||
|
nextAccountsDealRecordDto.setEndDateTime(formatterTime.parse(nextPeriodEnd+" 23:59:59"));
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
nextAccountsDealRecordDto.setCreditBill("6");
|
||||||
|
|
||||||
|
//获取下一个账单周期的所有交易记录
|
||||||
|
List<AccountsDealRecordVo> nextAccountsDealRecordVoList=accountsDealRecordMapper.selectAccountsDealRecordList(nextAccountsDealRecordDto);
|
||||||
|
//收入转为负数
|
||||||
|
for (AccountsDealRecordVo vo:nextAccountsDealRecordVoList) {
|
||||||
|
if(vo.getDealType().equals("1")){
|
||||||
|
vo.setAmount(vo.getAmount()*(-1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(nextAccountsDealRecordVoList.size()>0){
|
||||||
|
nextBillAmount=nextAccountsDealRecordVoList.stream().mapToDouble(AccountsDealRecordVo::getAmount).sum();
|
||||||
|
}
|
||||||
|
|
||||||
//检查下一个账单周期是否已存在
|
//检查下一个账单周期是否已存在
|
||||||
CreditCardBillDto nextCreditCardBillDto=new CreditCardBillDto();
|
CreditCardBillDto nextCreditCardBillDto=new CreditCardBillDto();
|
||||||
nextCreditCardBillDto.setCreditCardId(bankCard.getId());
|
nextCreditCardBillDto.setCreditCardId(bankCard.getId());
|
||||||
@@ -381,9 +416,18 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
|||||||
nextCreditCardBill.setCreateTime(DateUtils.getNowDate());
|
nextCreditCardBill.setCreateTime(DateUtils.getNowDate());
|
||||||
nextCreditCardBill.setId(IdWorker.getId());
|
nextCreditCardBill.setId(IdWorker.getId());
|
||||||
nextCreditCardBill.setCreditCardId(bankCard.getId());
|
nextCreditCardBill.setCreditCardId(bankCard.getId());
|
||||||
nextCreditCardBill.setBillAmount(0.0);
|
nextCreditCardBill.setBillAmount(nextBillAmount);
|
||||||
nextCreditCardBill.setBillState("0");
|
nextCreditCardBill.setBillState("0");
|
||||||
creditCardBillMapper.insertCreditCardBill(nextCreditCardBill);
|
creditCardBillMapper.insertCreditCardBill(nextCreditCardBill);
|
||||||
|
}else{
|
||||||
|
//如果下期账单已存在,更新账单金额
|
||||||
|
CreditCardBillVo existNextCreditCardBillVo=nextCreditCardBillList.get(0);
|
||||||
|
CreditCardBill updateNextCreditCardBill=new CreditCardBill();
|
||||||
|
updateNextCreditCardBill.setUpdateBy(SecurityUtils.getUsername());
|
||||||
|
updateNextCreditCardBill.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
updateNextCreditCardBill.setId(existNextCreditCardBillVo.getId());
|
||||||
|
updateNextCreditCardBill.setBillAmount(nextBillAmount);
|
||||||
|
creditCardBillMapper.updateCreditCardBill(updateNextCreditCardBill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -521,6 +565,17 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
|||||||
|
|
||||||
//如果账单日消费计入下期(isNextBillDate=1)且今天是账单日,需要生成下一个账单周期
|
//如果账单日消费计入下期(isNextBillDate=1)且今天是账单日,需要生成下一个账单周期
|
||||||
if(isNextBillDate.equals("1") && dayOfMonth == bankCard.getBillDate()){
|
if(isNextBillDate.equals("1") && dayOfMonth == bankCard.getBillDate()){
|
||||||
|
//先将当期账单状态更新为已出账
|
||||||
|
if(creditCardBillList.size()>0){
|
||||||
|
CreditCardBillVo currentCreditCardBillVo=creditCardBillList.get(0);
|
||||||
|
CreditCardBill updateCurrentBill=new CreditCardBill();
|
||||||
|
updateCurrentBill.setUpdateBy(SecurityUtils.getUsername());
|
||||||
|
updateCurrentBill.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
updateCurrentBill.setId(currentCreditCardBillVo.getId());
|
||||||
|
updateCurrentBill.setBillState("1");//设置为已出账
|
||||||
|
creditCardBillMapper.updateCreditCardBill(updateCurrentBill);
|
||||||
|
}
|
||||||
|
|
||||||
//计算下一个账单日期
|
//计算下一个账单日期
|
||||||
String nextBillDateStr;
|
String nextBillDateStr;
|
||||||
if(month==12){
|
if(month==12){
|
||||||
@@ -551,6 +606,30 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
|||||||
Date nextEndDate = nextCalendarEnd.getTime();
|
Date nextEndDate = nextCalendarEnd.getTime();
|
||||||
String nextPeriodEnd= formatter.format(nextEndDate);
|
String nextPeriodEnd= formatter.format(nextEndDate);
|
||||||
|
|
||||||
|
//计算下一个账单周期的账单金额
|
||||||
|
double nextBillAmount=0;
|
||||||
|
AccountsDealRecordDto nextAccountsDealRecordDto=new AccountsDealRecordDto();
|
||||||
|
nextAccountsDealRecordDto.setAccountId(bankCard.getId());
|
||||||
|
try {
|
||||||
|
nextAccountsDealRecordDto.setStartDateTime(formatterTime.parse(nextPeriodStart+" 00:00:00"));
|
||||||
|
nextAccountsDealRecordDto.setEndDateTime(formatterTime.parse(nextPeriodEnd+" 23:59:59"));
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
nextAccountsDealRecordDto.setCreditBill("6");
|
||||||
|
|
||||||
|
//获取下一个账单周期的所有交易记录
|
||||||
|
List<AccountsDealRecordVo> nextAccountsDealRecordVoList=accountsDealRecordMapper.selectAccountsDealRecordList(nextAccountsDealRecordDto);
|
||||||
|
//收入转为负数
|
||||||
|
for (AccountsDealRecordVo vo:nextAccountsDealRecordVoList) {
|
||||||
|
if(vo.getDealType().equals("1")){
|
||||||
|
vo.setAmount(vo.getAmount()*(-1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(nextAccountsDealRecordVoList.size()>0){
|
||||||
|
nextBillAmount=nextAccountsDealRecordVoList.stream().mapToDouble(AccountsDealRecordVo::getAmount).sum();
|
||||||
|
}
|
||||||
|
|
||||||
//检查下一个账单周期是否已存在
|
//检查下一个账单周期是否已存在
|
||||||
CreditCardBillDto nextCreditCardBillDto=new CreditCardBillDto();
|
CreditCardBillDto nextCreditCardBillDto=new CreditCardBillDto();
|
||||||
nextCreditCardBillDto.setCreditCardId(bankCard.getId());
|
nextCreditCardBillDto.setCreditCardId(bankCard.getId());
|
||||||
@@ -568,9 +647,18 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
|||||||
nextCreditCardBill.setCreateTime(DateUtils.getNowDate());
|
nextCreditCardBill.setCreateTime(DateUtils.getNowDate());
|
||||||
nextCreditCardBill.setId(IdWorker.getId());
|
nextCreditCardBill.setId(IdWorker.getId());
|
||||||
nextCreditCardBill.setCreditCardId(bankCard.getId());
|
nextCreditCardBill.setCreditCardId(bankCard.getId());
|
||||||
nextCreditCardBill.setBillAmount(0.0);
|
nextCreditCardBill.setBillAmount(nextBillAmount);
|
||||||
nextCreditCardBill.setBillState("0");
|
nextCreditCardBill.setBillState("0");
|
||||||
creditCardBillMapper.insertCreditCardBill(nextCreditCardBill);
|
creditCardBillMapper.insertCreditCardBill(nextCreditCardBill);
|
||||||
|
}else{
|
||||||
|
//如枟下期账单已存在,更新账单金额
|
||||||
|
CreditCardBillVo existNextCreditCardBillVo=nextCreditCardBillList.get(0);
|
||||||
|
CreditCardBill updateNextCreditCardBill=new CreditCardBill();
|
||||||
|
updateNextCreditCardBill.setUpdateBy(SecurityUtils.getUsername());
|
||||||
|
updateNextCreditCardBill.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
updateNextCreditCardBill.setId(existNextCreditCardBillVo.getId());
|
||||||
|
updateNextCreditCardBill.setBillAmount(nextBillAmount);
|
||||||
|
creditCardBillMapper.updateCreditCardBill(updateNextCreditCardBill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -186,8 +186,19 @@ public class InvestJobImpl implements IInvestJobService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//如枟账单日消费计入下期(isNextBillDate=1)且今天是账单日,需要生成下一个账单周期
|
//如果账单日消费计入下期(isNextBillDate=1)且今天是账单日,需要生成下一个账单周期
|
||||||
if(isNextBillDate.equals("1") && dayOfMonth == bankCard.getBillDate()){
|
if(isNextBillDate.equals("1") && dayOfMonth == bankCard.getBillDate()){
|
||||||
|
//先将当期账单状态更新为已出账
|
||||||
|
if(creditCardBillList.size()>0){
|
||||||
|
CreditCardBillVo currentCreditCardBillVo=creditCardBillList.get(0);
|
||||||
|
CreditCardBill updateCurrentBill=new CreditCardBill();
|
||||||
|
updateCurrentBill.setUpdateBy(SecurityUtils.getUsername());
|
||||||
|
updateCurrentBill.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
updateCurrentBill.setId(currentCreditCardBillVo.getId());
|
||||||
|
updateCurrentBill.setBillState("1");//设置为已出账
|
||||||
|
creditCardBillMapper.updateCreditCardBill(updateCurrentBill);
|
||||||
|
}
|
||||||
|
|
||||||
//计算下一个账单日期
|
//计算下一个账单日期
|
||||||
String nextBillDateStr;
|
String nextBillDateStr;
|
||||||
if(month==12){
|
if(month==12){
|
||||||
@@ -218,6 +229,30 @@ public class InvestJobImpl implements IInvestJobService
|
|||||||
Date nextEndDate = nextCalendarEnd.getTime();
|
Date nextEndDate = nextCalendarEnd.getTime();
|
||||||
String nextPeriodEnd= formatter.format(nextEndDate);
|
String nextPeriodEnd= formatter.format(nextEndDate);
|
||||||
|
|
||||||
|
//计算下一个账单周期的账单金额
|
||||||
|
double nextBillAmount=0;
|
||||||
|
AccountsDealRecordDto nextAccountsDealRecordDto=new AccountsDealRecordDto();
|
||||||
|
nextAccountsDealRecordDto.setAccountId(bankCard.getId());
|
||||||
|
try {
|
||||||
|
nextAccountsDealRecordDto.setStartDateTime(formatterTime.parse(nextPeriodStart+" 00:00:00"));
|
||||||
|
nextAccountsDealRecordDto.setEndDateTime(formatterTime.parse(nextPeriodEnd+" 23:59:59"));
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
nextAccountsDealRecordDto.setCreditBill("6");
|
||||||
|
|
||||||
|
//获取下一个账单周期的所有交易记录
|
||||||
|
List<AccountsDealRecordVo> nextAccountsDealRecordVoList=accountsDealRecordMapper.selectAccountsDealRecordList(nextAccountsDealRecordDto);
|
||||||
|
//收入转为负数
|
||||||
|
for (AccountsDealRecordVo vo:nextAccountsDealRecordVoList) {
|
||||||
|
if(vo.getDealType().equals("1")){
|
||||||
|
vo.setAmount(vo.getAmount()*(-1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(nextAccountsDealRecordVoList.size()>0){
|
||||||
|
nextBillAmount=nextAccountsDealRecordVoList.stream().mapToDouble(AccountsDealRecordVo::getAmount).sum();
|
||||||
|
}
|
||||||
|
|
||||||
//检查下一个账单周期是否已存在
|
//检查下一个账单周期是否已存在
|
||||||
CreditCardBillDto nextCreditCardBillDto=new CreditCardBillDto();
|
CreditCardBillDto nextCreditCardBillDto=new CreditCardBillDto();
|
||||||
nextCreditCardBillDto.setCreditCardId(bankCard.getId());
|
nextCreditCardBillDto.setCreditCardId(bankCard.getId());
|
||||||
@@ -235,9 +270,18 @@ public class InvestJobImpl implements IInvestJobService
|
|||||||
nextCreditCardBill.setCreateTime(DateUtils.getNowDate());
|
nextCreditCardBill.setCreateTime(DateUtils.getNowDate());
|
||||||
nextCreditCardBill.setId(IdWorker.getId());
|
nextCreditCardBill.setId(IdWorker.getId());
|
||||||
nextCreditCardBill.setCreditCardId(bankCard.getId());
|
nextCreditCardBill.setCreditCardId(bankCard.getId());
|
||||||
nextCreditCardBill.setBillAmount(0.0);
|
nextCreditCardBill.setBillAmount(nextBillAmount);
|
||||||
nextCreditCardBill.setBillState("0");
|
nextCreditCardBill.setBillState("0");
|
||||||
creditCardBillMapper.insertCreditCardBill(nextCreditCardBill);
|
creditCardBillMapper.insertCreditCardBill(nextCreditCardBill);
|
||||||
|
}else{
|
||||||
|
//如果下期账单已存在,更新账单金额
|
||||||
|
CreditCardBillVo existNextCreditCardBillVo=nextCreditCardBillList.get(0);
|
||||||
|
CreditCardBill updateNextCreditCardBill=new CreditCardBill();
|
||||||
|
updateNextCreditCardBill.setUpdateBy(SecurityUtils.getUsername());
|
||||||
|
updateNextCreditCardBill.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
updateNextCreditCardBill.setId(existNextCreditCardBillVo.getId());
|
||||||
|
updateNextCreditCardBill.setBillAmount(nextBillAmount);
|
||||||
|
creditCardBillMapper.updateCreditCardBill(updateNextCreditCardBill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user