From 2c7a0e07f2a2a18119e5d51f99511cb46495d4f0 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Sun, 1 Mar 2026 09:52:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=A1=E7=94=A8=E5=8D=A1=E8=B4=A6?= =?UTF-8?q?=E5=8D=95=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CreditCardBillServiceImpl.java | 162 +++++++++--------- 1 file changed, 84 insertions(+), 78 deletions(-) diff --git a/intc-modules/intc-invest/src/main/java/com/intc/invest/service/impl/CreditCardBillServiceImpl.java b/intc-modules/intc-invest/src/main/java/com/intc/invest/service/impl/CreditCardBillServiceImpl.java index 9f1684f..dfd6766 100644 --- a/intc-modules/intc-invest/src/main/java/com/intc/invest/service/impl/CreditCardBillServiceImpl.java +++ b/intc-modules/intc-invest/src/main/java/com/intc/invest/service/impl/CreditCardBillServiceImpl.java @@ -294,45 +294,8 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService creditCardBillDto.setBillDate(billDateStr); creditCardBillDto.setBillState("0"); List 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 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); + } + } } }