fix: 信用卡账单生成逻辑修改。
This commit is contained in:
@@ -294,45 +294,8 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
//如枟账单日消费计入下期(isNextBillDate=1)且今天是账单日,需要生成下一个账单周期
|
||||
|
||||
//如果账单日消费计入下期(isNextBillDate=1)且今天是账单日,直接进入下期账单生成逻辑
|
||||
if(isNextBillDate.equals("1") && dayOfMonth == bankCard.getBillDate()){
|
||||
//先将当期账单状态更新为已出账
|
||||
if(creditCardBillList.size()>0){
|
||||
@@ -341,6 +304,7 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
||||
updateCurrentBill.setUpdateBy(SecurityUtils.getUsername());
|
||||
updateCurrentBill.setUpdateTime(DateUtils.getNowDate());
|
||||
updateCurrentBill.setId(currentCreditCardBillVo.getId());
|
||||
updateCurrentBill.setBillAmount(billAmount);//更新本期账单金额
|
||||
updateCurrentBill.setBillState("1");//设置为已出账
|
||||
creditCardBillMapper.updateCreditCardBill(updateCurrentBill);
|
||||
}
|
||||
@@ -429,6 +393,45 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
||||
updateNextCreditCardBill.setBillAmount(nextBillAmount);
|
||||
creditCardBillMapper.updateCreditCardBill(updateNextCreditCardBill);
|
||||
}
|
||||
}else{
|
||||
//非账单日当天或账单日消费计入本期:正常更新或创建账单
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -525,45 +528,8 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
//如果账单日消费计入下期(isNextBillDate=1)且今天是账单日,需要生成下一个账单周期
|
||||
|
||||
//如枟账单日消费计入下期(isNextBillDate=1)且今天是账单日,直接进入下期账单生成逻辑
|
||||
if(isNextBillDate.equals("1") && dayOfMonth == bankCard.getBillDate()){
|
||||
//先将当期账单状态更新为已出账
|
||||
if(creditCardBillList.size()>0){
|
||||
@@ -572,6 +538,7 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
||||
updateCurrentBill.setUpdateBy(SecurityUtils.getUsername());
|
||||
updateCurrentBill.setUpdateTime(DateUtils.getNowDate());
|
||||
updateCurrentBill.setId(currentCreditCardBillVo.getId());
|
||||
updateCurrentBill.setBillAmount(billAmount);//更新本期账单金额
|
||||
updateCurrentBill.setBillState("1");//设置为已出账
|
||||
creditCardBillMapper.updateCreditCardBill(updateCurrentBill);
|
||||
}
|
||||
@@ -660,6 +627,45 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
||||
updateNextCreditCardBill.setBillAmount(nextBillAmount);
|
||||
creditCardBillMapper.updateCreditCardBill(updateNextCreditCardBill);
|
||||
}
|
||||
}else{
|
||||
//非账单日当天或账单日消费计入本期:正常更新或创建账单
|
||||
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