fix: 信用卡有交易记录后,直接更新账单。
This commit is contained in:
@@ -1,10 +1,11 @@
|
|||||||
package com.ruoyi.invest.service;
|
package com.ruoyi.invest.service;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import com.ruoyi.invest.domain.CreditCardBill;
|
import com.ruoyi.invest.domain.CreditCardBill;
|
||||||
import com.ruoyi.invest.domain.dto.CreditCardBillDto;
|
import com.ruoyi.invest.domain.dto.CreditCardBillDto;
|
||||||
import com.ruoyi.invest.domain.vo.CreditCardBillVo;
|
import com.ruoyi.invest.domain.vo.CreditCardBillVo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 信用卡账单Service接口
|
* 信用卡账单Service接口
|
||||||
*
|
*
|
||||||
@@ -60,4 +61,21 @@ public interface ICreditCardBillService
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteCreditCardBillById(Long id);
|
public int deleteCreditCardBillById(Long id);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新信用卡账单信息
|
||||||
|
*
|
||||||
|
* @param id 信用卡账单主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public void updateCreditBill(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新信用卡未出账单
|
||||||
|
*
|
||||||
|
* @author tianyongbao
|
||||||
|
* @date 2023-12-11
|
||||||
|
*/
|
||||||
|
public void updateAllCreditBill();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.ruoyi.invest.domain.vo.AccountsVo;
|
|||||||
import com.ruoyi.invest.mapper.AccountsDealRecordMapper;
|
import com.ruoyi.invest.mapper.AccountsDealRecordMapper;
|
||||||
import com.ruoyi.invest.mapper.AccountsMapper;
|
import com.ruoyi.invest.mapper.AccountsMapper;
|
||||||
import com.ruoyi.invest.service.IAccountsDealRecordService;
|
import com.ruoyi.invest.service.IAccountsDealRecordService;
|
||||||
|
import com.ruoyi.invest.service.ICreditCardBillService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -28,6 +29,8 @@ import java.util.Map;
|
|||||||
@Service
|
@Service
|
||||||
public class AccountsDealRecordServiceImpl implements IAccountsDealRecordService
|
public class AccountsDealRecordServiceImpl implements IAccountsDealRecordService
|
||||||
{
|
{
|
||||||
|
@Resource
|
||||||
|
private ICreditCardBillService creditCardBillService;
|
||||||
@Resource
|
@Resource
|
||||||
private AccountsDealRecordMapper accountsDealRecordMapper;
|
private AccountsDealRecordMapper accountsDealRecordMapper;
|
||||||
|
|
||||||
@@ -147,7 +150,10 @@ public class AccountsDealRecordServiceImpl implements IAccountsDealRecordService
|
|||||||
map.put("currentBalance", accountsDealRecord.getAmount());
|
map.put("currentBalance", accountsDealRecord.getAmount());
|
||||||
accountsDealRecordMapper.batchMinusCurrentBalance(map);
|
accountsDealRecordMapper.batchMinusCurrentBalance(map);
|
||||||
}
|
}
|
||||||
|
//如果是信用卡交易,更新信用卡账单数据
|
||||||
|
if(accountsDealRecord.getDealType().equals("2")){
|
||||||
|
creditCardBillService.updateCreditBill(accountsDealRecord.getAccountId());
|
||||||
|
}
|
||||||
return accountsDealRecordMapper.insertAccountsDealRecord(accountsDealRecord);
|
return accountsDealRecordMapper.insertAccountsDealRecord(accountsDealRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,7 +190,10 @@ public class AccountsDealRecordServiceImpl implements IAccountsDealRecordService
|
|||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
updateDeleteDealRecord(id);
|
updateDeleteDealRecord(id);
|
||||||
}
|
}
|
||||||
return accountsDealRecordMapper.removeAccountsDealRecordByIds(ids);
|
//删除后,更新信用卡账单
|
||||||
|
int i= accountsDealRecordMapper.removeAccountsDealRecordByIds(ids);
|
||||||
|
creditCardBillService.updateAllCreditBill();
|
||||||
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -197,6 +206,7 @@ public class AccountsDealRecordServiceImpl implements IAccountsDealRecordService
|
|||||||
public int deleteAccountsDealRecordById(Long id)
|
public int deleteAccountsDealRecordById(Long id)
|
||||||
{
|
{
|
||||||
updateDeleteDealRecord(id);
|
updateDeleteDealRecord(id);
|
||||||
|
|
||||||
return accountsDealRecordMapper.removeAccountsDealRecordById(id);
|
return accountsDealRecordMapper.removeAccountsDealRecordById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.ruoyi.invest.domain.dto.AccountsTransferRecordDto;
|
|||||||
import com.ruoyi.invest.domain.vo.*;
|
import com.ruoyi.invest.domain.vo.*;
|
||||||
import com.ruoyi.invest.mapper.*;
|
import com.ruoyi.invest.mapper.*;
|
||||||
import com.ruoyi.invest.service.IAccountsTransferRecordService;
|
import com.ruoyi.invest.service.IAccountsTransferRecordService;
|
||||||
|
import com.ruoyi.invest.service.ICreditCardBillService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -46,6 +47,9 @@ public class AccountsTransferRecordServiceImpl implements IAccountsTransferRecor
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private FutureStocksMapper futureStocksMapper;
|
private FutureStocksMapper futureStocksMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ICreditCardBillService creditCardBillService;
|
||||||
/**
|
/**
|
||||||
* 查询账户转账记录
|
* 查询账户转账记录
|
||||||
*
|
*
|
||||||
@@ -100,10 +104,14 @@ public class AccountsTransferRecordServiceImpl implements IAccountsTransferRecor
|
|||||||
//pos机刷卡,进行计算
|
//pos机刷卡,进行计算
|
||||||
if(accountsTransferRecord.getType().equals("1")){
|
if(accountsTransferRecord.getType().equals("1")){
|
||||||
dealPosTransfer(accountsTransferRecord);
|
dealPosTransfer(accountsTransferRecord);
|
||||||
|
//更新信用卡账单
|
||||||
|
creditCardBillService.updateCreditBill(accountsTransferRecord.getOutAccountId());
|
||||||
}
|
}
|
||||||
//信用卡还款,进行计算
|
//信用卡还款,进行计算
|
||||||
if(accountsTransferRecord.getType().equals("2")){
|
if(accountsTransferRecord.getType().equals("2")){
|
||||||
dealCreditTransfer(accountsTransferRecord);
|
dealCreditTransfer(accountsTransferRecord);
|
||||||
|
//更新信用卡账单
|
||||||
|
creditCardBillService.updateCreditBill(accountsTransferRecord.getInAccountId());
|
||||||
}
|
}
|
||||||
//投资转账,进行计算
|
//投资转账,进行计算
|
||||||
if(accountsTransferRecord.getType().equals("3")){
|
if(accountsTransferRecord.getType().equals("3")){
|
||||||
@@ -163,8 +171,10 @@ public class AccountsTransferRecordServiceImpl implements IAccountsTransferRecor
|
|||||||
//更新完成后,根据转账记录id进行物理删除
|
//更新完成后,根据转账记录id进行物理删除
|
||||||
accountsDealRecordMapper.deleteAccountsDealRecordByTransferId(id);
|
accountsDealRecordMapper.deleteAccountsDealRecordByTransferId(id);
|
||||||
}
|
}
|
||||||
//全部删除后,对记录进行删除
|
//全部删除后,更新信用卡账单,对记录进行删除
|
||||||
return accountsTransferRecordMapper.removeAccountsTransferRecordByIds(ids);
|
int i= accountsTransferRecordMapper.removeAccountsTransferRecordByIds(ids);
|
||||||
|
creditCardBillService.updateAllCreditBill();
|
||||||
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,13 @@ import com.ruoyi.common.core.utils.IdWorker;
|
|||||||
import com.ruoyi.common.core.utils.StringUtils;
|
import com.ruoyi.common.core.utils.StringUtils;
|
||||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||||
import com.ruoyi.invest.domain.CreditCardBill;
|
import com.ruoyi.invest.domain.CreditCardBill;
|
||||||
|
import com.ruoyi.invest.domain.dto.AccountsDealRecordDto;
|
||||||
|
import com.ruoyi.invest.domain.dto.BankCardLendDto;
|
||||||
import com.ruoyi.invest.domain.dto.CreditCardBillDto;
|
import com.ruoyi.invest.domain.dto.CreditCardBillDto;
|
||||||
|
import com.ruoyi.invest.domain.vo.AccountsDealRecordVo;
|
||||||
import com.ruoyi.invest.domain.vo.BankCardLendVo;
|
import com.ruoyi.invest.domain.vo.BankCardLendVo;
|
||||||
import com.ruoyi.invest.domain.vo.CreditCardBillVo;
|
import com.ruoyi.invest.domain.vo.CreditCardBillVo;
|
||||||
|
import com.ruoyi.invest.mapper.AccountsDealRecordMapper;
|
||||||
import com.ruoyi.invest.mapper.BankCardLendMapper;
|
import com.ruoyi.invest.mapper.BankCardLendMapper;
|
||||||
import com.ruoyi.invest.mapper.CreditCardBillMapper;
|
import com.ruoyi.invest.mapper.CreditCardBillMapper;
|
||||||
import com.ruoyi.invest.service.ICreditCardBillService;
|
import com.ruoyi.invest.service.ICreditCardBillService;
|
||||||
@@ -15,7 +19,10 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalTime;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -34,6 +41,9 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
|||||||
@Resource
|
@Resource
|
||||||
private BankCardLendMapper bankCardLendMapper;
|
private BankCardLendMapper bankCardLendMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AccountsDealRecordMapper accountsDealRecordMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询信用卡账单
|
* 查询信用卡账单
|
||||||
*
|
*
|
||||||
@@ -182,4 +192,260 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
|||||||
return creditCardBillMapper.removeCreditCardBillById(id);
|
return creditCardBillMapper.removeCreditCardBillById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成数据
|
||||||
|
*
|
||||||
|
* @author tianyongbao
|
||||||
|
* @date 2023-12-11
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void updateCreditBill(Long id) {
|
||||||
|
//未出账单生成,定时任务,每3个小时同步计算一次,作为未出账单,根据信用卡基础信息,包括账单日及账单日消费信息,遍历信用卡记录信息表和交易记录表即可
|
||||||
|
BankCardLendVo bankCard=bankCardLendMapper.selectBankCardLendById(id);
|
||||||
|
// 获取当前日期
|
||||||
|
LocalDate currentDate = LocalDate.now();
|
||||||
|
int month = currentDate.getMonthValue();
|
||||||
|
int year = currentDate.getYear();
|
||||||
|
int dayOfMonth = currentDate.getDayOfMonth();
|
||||||
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月账单");
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
SimpleDateFormat formatterTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
Date billDate= new Date();
|
||||||
|
//0表示当期,1表示下期
|
||||||
|
String isNextBillDate = bankCard.getIsNextBillDate();
|
||||||
|
String billDateStr=year+"-"+String.format("%02d", month)+"-"+String.format("%02d", bankCard.getBillDate());
|
||||||
|
//如果当前日期大于账单日,进入下个账单周期
|
||||||
|
if(dayOfMonth>bankCard.getBillDate()){
|
||||||
|
if(month==12){
|
||||||
|
billDateStr=(year+1)+"-"+String.format("%02d", month-11)+"-"+String.format("%02d", bankCard.getBillDate());
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
billDateStr=(year)+"-"+String.format("%02d", month+1)+"-"+String.format("%02d", bankCard.getBillDate());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
billDate=formatter.parse(billDateStr);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
Calendar calendarStart = Calendar.getInstance();
|
||||||
|
calendarStart.setTime(billDate);
|
||||||
|
calendarStart.add(Calendar.MONTH, -1);
|
||||||
|
if(isNextBillDate.equals("0")){
|
||||||
|
calendarStart.add(Calendar.DATE, 1);
|
||||||
|
}
|
||||||
|
Date startDate = calendarStart.getTime();
|
||||||
|
String periodStart = formatter.format(startDate);
|
||||||
|
|
||||||
|
Calendar calendarEnd = Calendar.getInstance();
|
||||||
|
calendarEnd.setTime(billDate);
|
||||||
|
if(isNextBillDate.equals("1")){
|
||||||
|
calendarEnd.add(Calendar.DATE, -1);
|
||||||
|
}
|
||||||
|
Date endDate = calendarEnd.getTime();
|
||||||
|
String periodEnd= formatter.format(endDate);
|
||||||
|
|
||||||
|
double billAmount=0;
|
||||||
|
AccountsDealRecordDto accountsDealRecordDto=new AccountsDealRecordDto();
|
||||||
|
accountsDealRecordDto.setAccountId(bankCard.getId());
|
||||||
|
try {
|
||||||
|
accountsDealRecordDto.setStartDateTime(formatterTime.parse(periodStart+" 00:00:00"));
|
||||||
|
accountsDealRecordDto.setEndDateTime(formatterTime.parse(periodEnd+" 23:59:59"));
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
accountsDealRecordDto.setCreditBill("6");
|
||||||
|
|
||||||
|
//获取所有交易记录
|
||||||
|
List<AccountsDealRecordVo> accountsDealRecordVoList=accountsDealRecordMapper.selectAccountsDealRecordList(accountsDealRecordDto);
|
||||||
|
//收入转为负数
|
||||||
|
for (AccountsDealRecordVo vo:accountsDealRecordVoList
|
||||||
|
) {
|
||||||
|
if(vo.getDealType().equals("1")){
|
||||||
|
vo.setAmount(vo.getAmount()*(-1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(accountsDealRecordVoList.size()>0){
|
||||||
|
billAmount=accountsDealRecordVoList.stream().mapToDouble(AccountsDealRecordVo::getAmount).sum();
|
||||||
|
}
|
||||||
|
CreditCardBillDto creditCardBillDto=new CreditCardBillDto();
|
||||||
|
creditCardBillDto.setCreditCardId(bankCard.getId());
|
||||||
|
creditCardBillDto.setBillDate(billDateStr);
|
||||||
|
creditCardBillDto.setBillState("0");
|
||||||
|
List<CreditCardBillVo> creditCardBillList=creditCardBillMapper.selectCreditCardBillList(creditCardBillDto);
|
||||||
|
if(creditCardBillList.size()>0){
|
||||||
|
CreditCardBillVo creditCardBillVo=creditCardBillList.get(0);
|
||||||
|
CreditCardBill creditCardBill=new CreditCardBill();
|
||||||
|
creditCardBill.setUpdateBy(SecurityUtils.getUsername());
|
||||||
|
creditCardBill.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
creditCardBill.setId(creditCardBillVo.getId());
|
||||||
|
creditCardBill.setBillAmount(billAmount);
|
||||||
|
//如果账单日与当前日期相同,将账单修改为已出账
|
||||||
|
LocalTime currentTime = LocalTime.now();
|
||||||
|
LocalTime eveningThreshold = LocalTime.of(23, 0);
|
||||||
|
if(billDateStr.equals(formatter.format(new Date()))&¤tTime.isAfter(eveningThreshold)){
|
||||||
|
creditCardBill.setBillState("1");
|
||||||
|
}
|
||||||
|
//更新未出账单
|
||||||
|
creditCardBillMapper.updateCreditCardBill(creditCardBill);
|
||||||
|
}else {
|
||||||
|
//如果账单日大于当前日期,未出账,进行插入操作
|
||||||
|
int flag=billDateStr.compareTo(formatter.format(new Date()));
|
||||||
|
if(flag>=0){
|
||||||
|
CreditCardBill creditCardBill=new CreditCardBill();
|
||||||
|
try {
|
||||||
|
creditCardBill.setBillDate(formatter.parse(billDateStr));
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
creditCardBill.setName(simpleDateFormat.format(creditCardBill.getBillDate()));
|
||||||
|
creditCardBill.setBillDatePeriod(periodStart+"~"+periodEnd);
|
||||||
|
creditCardBill.setCreateBy(bankCard.getCreateBy());
|
||||||
|
creditCardBill.setCreateTime(DateUtils.getNowDate());
|
||||||
|
creditCardBill.setId(IdWorker.getId());
|
||||||
|
creditCardBill.setCreditCardId(bankCard.getId());
|
||||||
|
creditCardBill.setBillAmount(billAmount);
|
||||||
|
creditCardBill.setBillState("0");
|
||||||
|
//插入未出账单
|
||||||
|
creditCardBillMapper.insertCreditCardBill(creditCardBill);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新数据
|
||||||
|
*
|
||||||
|
* @author tianyongbao
|
||||||
|
* @date 2023-12-11
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void updateAllCreditBill() {
|
||||||
|
//未出账单生成,定时任务,每3个小时同步计算一次,作为未出账单,根据信用卡基础信息,包括账单日及账单日消费信息,遍历信用卡记录信息表和交易记录表即可
|
||||||
|
BankCardLendDto bankCardLendDto=new BankCardLendDto();
|
||||||
|
bankCardLendDto.setType("2");
|
||||||
|
List<BankCardLendVo> bankCardVoList=bankCardLendMapper.selectBankCardLendList(bankCardLendDto);
|
||||||
|
// 获取当前日期
|
||||||
|
LocalDate currentDate = LocalDate.now();
|
||||||
|
int month = currentDate.getMonthValue();
|
||||||
|
int year = currentDate.getYear();
|
||||||
|
int dayOfMonth = currentDate.getDayOfMonth();
|
||||||
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月账单");
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
SimpleDateFormat formatterTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
Date billDate= new Date();
|
||||||
|
//遍历数据,获取信用卡账单日及数据
|
||||||
|
for (BankCardLendVo bankCard : bankCardVoList) {
|
||||||
|
//如果信用卡额度为0,不需要生成账单信息
|
||||||
|
if(bankCard.getCreditLimit()==0){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//0表示当期,1表示下期
|
||||||
|
String isNextBillDate = bankCard.getIsNextBillDate();
|
||||||
|
String billDateStr=year+"-"+String.format("%02d", month)+"-"+String.format("%02d", bankCard.getBillDate());
|
||||||
|
//如果当前日期大于账单日,进入下个账单周期
|
||||||
|
if(dayOfMonth>bankCard.getBillDate()){
|
||||||
|
if(month==12){
|
||||||
|
billDateStr=(year+1)+"-"+String.format("%02d", month-11)+"-"+String.format("%02d", bankCard.getBillDate());
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
billDateStr=(year)+"-"+String.format("%02d", month+1)+"-"+String.format("%02d", bankCard.getBillDate());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
billDate=formatter.parse(billDateStr);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
Calendar calendarStart = Calendar.getInstance();
|
||||||
|
calendarStart.setTime(billDate);
|
||||||
|
calendarStart.add(Calendar.MONTH, -1);
|
||||||
|
if(isNextBillDate.equals("0")){
|
||||||
|
calendarStart.add(Calendar.DATE, 1);
|
||||||
|
}
|
||||||
|
Date startDate = calendarStart.getTime();
|
||||||
|
String periodStart = formatter.format(startDate);
|
||||||
|
|
||||||
|
Calendar calendarEnd = Calendar.getInstance();
|
||||||
|
calendarEnd.setTime(billDate);
|
||||||
|
if(isNextBillDate.equals("1")){
|
||||||
|
calendarEnd.add(Calendar.DATE, -1);
|
||||||
|
}
|
||||||
|
Date endDate = calendarEnd.getTime();
|
||||||
|
String periodEnd= formatter.format(endDate);
|
||||||
|
|
||||||
|
double billAmount=0;
|
||||||
|
AccountsDealRecordDto accountsDealRecordDto=new AccountsDealRecordDto();
|
||||||
|
accountsDealRecordDto.setAccountId(bankCard.getId());
|
||||||
|
try {
|
||||||
|
accountsDealRecordDto.setStartDateTime(formatterTime.parse(periodStart+" 00:00:00"));
|
||||||
|
accountsDealRecordDto.setEndDateTime(formatterTime.parse(periodEnd+" 23:59:59"));
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
accountsDealRecordDto.setCreditBill("6");
|
||||||
|
|
||||||
|
//获取所有交易记录
|
||||||
|
List<AccountsDealRecordVo> accountsDealRecordVoList=accountsDealRecordMapper.selectAccountsDealRecordList(accountsDealRecordDto);
|
||||||
|
//收入转为负数
|
||||||
|
for (AccountsDealRecordVo vo:accountsDealRecordVoList
|
||||||
|
) {
|
||||||
|
if(vo.getDealType().equals("1")){
|
||||||
|
vo.setAmount(vo.getAmount()*(-1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(accountsDealRecordVoList.size()>0){
|
||||||
|
billAmount=accountsDealRecordVoList.stream().mapToDouble(AccountsDealRecordVo::getAmount).sum();
|
||||||
|
}
|
||||||
|
CreditCardBillDto creditCardBillDto=new CreditCardBillDto();
|
||||||
|
creditCardBillDto.setCreditCardId(bankCard.getId());
|
||||||
|
creditCardBillDto.setBillDate(billDateStr);
|
||||||
|
creditCardBillDto.setBillState("0");
|
||||||
|
List<CreditCardBillVo> creditCardBillList=creditCardBillMapper.selectCreditCardBillList(creditCardBillDto);
|
||||||
|
if(creditCardBillList.size()>0){
|
||||||
|
CreditCardBillVo creditCardBillVo=creditCardBillList.get(0);
|
||||||
|
CreditCardBill creditCardBill=new CreditCardBill();
|
||||||
|
creditCardBill.setUpdateBy(SecurityUtils.getUsername());
|
||||||
|
creditCardBill.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
creditCardBill.setId(creditCardBillVo.getId());
|
||||||
|
creditCardBill.setBillAmount(billAmount);
|
||||||
|
//如果账单日与当前日期相同,将账单修改为已出账
|
||||||
|
LocalTime currentTime = LocalTime.now();
|
||||||
|
LocalTime eveningThreshold = LocalTime.of(23, 0);
|
||||||
|
if(billDateStr.equals(formatter.format(new Date()))&¤tTime.isAfter(eveningThreshold)){
|
||||||
|
creditCardBill.setBillState("1");
|
||||||
|
}
|
||||||
|
//更新未出账单
|
||||||
|
creditCardBillMapper.updateCreditCardBill(creditCardBill);
|
||||||
|
}else {
|
||||||
|
//如果账单日大于当前日期,未出账,进行插入操作
|
||||||
|
int flag=billDateStr.compareTo(formatter.format(new Date()));
|
||||||
|
if(flag>=0){
|
||||||
|
CreditCardBill creditCardBill=new CreditCardBill();
|
||||||
|
try {
|
||||||
|
creditCardBill.setBillDate(formatter.parse(billDateStr));
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
creditCardBill.setName(simpleDateFormat.format(creditCardBill.getBillDate()));
|
||||||
|
creditCardBill.setBillDatePeriod(periodStart+"~"+periodEnd);
|
||||||
|
creditCardBill.setCreateBy(bankCard.getCreateBy());
|
||||||
|
creditCardBill.setCreateTime(DateUtils.getNowDate());
|
||||||
|
creditCardBill.setId(IdWorker.getId());
|
||||||
|
creditCardBill.setCreditCardId(bankCard.getId());
|
||||||
|
creditCardBill.setBillAmount(billAmount);
|
||||||
|
creditCardBill.setBillState("0");
|
||||||
|
//插入未出账单
|
||||||
|
creditCardBillMapper.insertCreditCardBill(creditCardBill);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user