fix:定时任务相关功能完善,自测问题修复。
This commit is contained in:
@@ -52,6 +52,9 @@ public class CreditCardBill extends BaseEntity
|
||||
/** 删除标志(0代表存在 1代表删除) */
|
||||
private String delFlag;
|
||||
|
||||
/** 删除标志(0代表存在 1代表删除) */
|
||||
private String billState;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
@@ -66,6 +69,7 @@ public class CreditCardBill extends BaseEntity
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("delFlag", getDelFlag())
|
||||
.append("billState", getBillState())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 账户交易记录Dto对象 accounts_deal_record
|
||||
*
|
||||
@@ -27,7 +29,7 @@ public class AccountsDealRecordDto implements Serializable
|
||||
|
||||
/** 账户 */
|
||||
@ApiModelProperty(value="账户")
|
||||
private String accountId;
|
||||
private Long accountId;
|
||||
|
||||
/** 交易类型 */
|
||||
@ApiModelProperty(value="交易类型")
|
||||
@@ -37,12 +39,21 @@ public class AccountsDealRecordDto implements Serializable
|
||||
@ApiModelProperty(value="交易类别")
|
||||
private String dealCategory;
|
||||
|
||||
/** 交易类别 */
|
||||
/** 开始日期 */
|
||||
@ApiModelProperty(value="开始日期")
|
||||
private String startTime;
|
||||
|
||||
/** 交易类别 */
|
||||
/** 结束日期 */
|
||||
@ApiModelProperty(value="结束日期")
|
||||
private String endTime;
|
||||
|
||||
/** 开始时间*/
|
||||
@ApiModelProperty(value="开始时间")
|
||||
private Date startDateTime;
|
||||
|
||||
/** 结束时间*/
|
||||
@ApiModelProperty(value="结束时间")
|
||||
private Date endDateTime;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -25,13 +25,24 @@ public class CreditCardBillDto implements Serializable
|
||||
@ApiModelProperty(value="信用卡id")
|
||||
private Long creditCardId;
|
||||
|
||||
/** 开始月份 */
|
||||
@ApiModelProperty(value="开始月份")
|
||||
private String startMonth;
|
||||
|
||||
|
||||
/** 结束月份 */
|
||||
@ApiModelProperty(value="结束月份")
|
||||
private String endMonth;
|
||||
|
||||
|
||||
/** 开始月份 */
|
||||
@ApiModelProperty(value="开始月份")
|
||||
private String startMonth;
|
||||
/** 账单状态 */
|
||||
@ApiModelProperty(value="账单状态")
|
||||
private String billState;
|
||||
|
||||
|
||||
/** 账单日 */
|
||||
@ApiModelProperty(value="账单日")
|
||||
private String billDate;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -6,7 +6,9 @@ import com.ruoyi.common.core.utils.StringUtils;
|
||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||
import com.ruoyi.invest.domain.CreditCardBill;
|
||||
import com.ruoyi.invest.domain.dto.CreditCardBillDto;
|
||||
import com.ruoyi.invest.domain.vo.BankCardLendVo;
|
||||
import com.ruoyi.invest.domain.vo.CreditCardBillVo;
|
||||
import com.ruoyi.invest.mapper.BankCardLendMapper;
|
||||
import com.ruoyi.invest.mapper.CreditCardBillMapper;
|
||||
import com.ruoyi.invest.service.ICreditCardBillService;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -28,6 +30,8 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
||||
{
|
||||
@Resource
|
||||
private CreditCardBillMapper creditCardBillMapper;
|
||||
@Resource
|
||||
private BankCardLendMapper bankCardLendMapper;
|
||||
|
||||
/**
|
||||
* 查询信用卡账单
|
||||
@@ -74,17 +78,25 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
||||
creditCardBill.setId(IdWorker.getId());
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月账单");
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
BankCardLendVo bankCard=bankCardLendMapper.selectBankCardLendById(creditCardBill.getCreditCardId());
|
||||
//0表示当期,1表示下期
|
||||
String isNextBillDate = bankCard.getIsNextBillDate();
|
||||
if(creditCardBill.getBillDate()!=null){
|
||||
creditCardBill.setName(simpleDateFormat.format(creditCardBill.getBillDate()));
|
||||
Calendar calendarStart = Calendar.getInstance();
|
||||
calendarStart.setTime(creditCardBill.getBillDate());
|
||||
calendarStart.add(Calendar.MONTH, -1);
|
||||
if(isNextBillDate.equals("0")){
|
||||
calendarStart.add(Calendar.DATE, 1);
|
||||
}
|
||||
Date lastMonth = calendarStart.getTime();
|
||||
String periodStart = formatter.format(lastMonth);
|
||||
|
||||
Calendar calendarEnd = Calendar.getInstance();
|
||||
calendarEnd.setTime(creditCardBill.getBillDate());
|
||||
calendarEnd.add(Calendar.DATE, -1);
|
||||
if(isNextBillDate.equals("1")){
|
||||
calendarEnd.add(Calendar.DATE, -1);
|
||||
}
|
||||
Date lastDay = calendarEnd.getTime();
|
||||
String periodEnd= formatter.format(lastDay);
|
||||
creditCardBill.setBillDatePeriod(periodStart+"~"+periodEnd);
|
||||
@@ -107,17 +119,25 @@ public class CreditCardBillServiceImpl implements ICreditCardBillService
|
||||
creditCardBill.setUpdateTime(DateUtils.getNowDate());
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月账单");
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
BankCardLendVo bankCard=bankCardLendMapper.selectBankCardLendById(creditCardBill.getCreditCardId());
|
||||
//0表示当期,1表示下期
|
||||
String isNextBillDate = bankCard.getIsNextBillDate();
|
||||
if(creditCardBill.getBillDate()!=null){
|
||||
creditCardBill.setName(simpleDateFormat.format(creditCardBill.getBillDate()));
|
||||
Calendar calendarStart = Calendar.getInstance();
|
||||
calendarStart.setTime(creditCardBill.getBillDate());
|
||||
calendarStart.add(Calendar.MONTH, -1);
|
||||
if(isNextBillDate.equals("0")){
|
||||
calendarStart.add(Calendar.DATE, 1);
|
||||
}
|
||||
Date lastMonth = calendarStart.getTime();
|
||||
String periodStart = formatter.format(lastMonth);
|
||||
|
||||
Calendar calendarEnd = Calendar.getInstance();
|
||||
calendarEnd.setTime(creditCardBill.getBillDate());
|
||||
calendarEnd.add(Calendar.DATE, -1);
|
||||
if(isNextBillDate.equals("1")){
|
||||
calendarEnd.add(Calendar.DATE, -1);
|
||||
}
|
||||
Date lastDay = calendarEnd.getTime();
|
||||
String periodEnd= formatter.format(lastDay);
|
||||
creditCardBill.setBillDatePeriod(periodStart+"~"+periodEnd);
|
||||
|
||||
@@ -113,6 +113,28 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
|
||||
//返回数据
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
DecimalFormat decimalFormat = new DecimalFormat("#.##");
|
||||
|
||||
AccountsDto dto=new AccountsDto();
|
||||
dto.setState("1");
|
||||
//储蓄卡
|
||||
dto.setType("1");
|
||||
List<AccountsVo> accountsList=accountsMapper.selectAccountsList(dto);
|
||||
double debetBalance =0;
|
||||
if(accountsList.size()>0){
|
||||
debetBalance=accountsList.stream().mapToDouble(AccountsVo::getAvailableLimit).sum();
|
||||
}
|
||||
map.put("debetBalance",decimalFormat.format(debetBalance));
|
||||
|
||||
dto.setState("1");
|
||||
//信用卡
|
||||
dto.setType("2");
|
||||
accountsList=accountsMapper.selectAccountsList(dto);
|
||||
double creditBalance =0;
|
||||
if(accountsList.size()>0){
|
||||
creditBalance=accountsList.stream().mapToDouble(AccountsVo::getBalance).sum()*(-1);
|
||||
}
|
||||
map.put("creditBalance",decimalFormat.format(creditBalance));
|
||||
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat formatterMonth = new SimpleDateFormat("yyyy-MM");
|
||||
//未结清网贷数据
|
||||
@@ -148,7 +170,10 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService {
|
||||
}
|
||||
map.put("peopleLendHistory",decimalFormat.format(peopleLendHistory));
|
||||
|
||||
map.put("totalDebt",decimalFormat.format(unClearedOnlineDebt+creditInstallmentHistory+peopleLendHistory));
|
||||
//总负债
|
||||
map.put("totalDebt",decimalFormat.format(unClearedOnlineDebt+creditBalance+peopleLendHistory));
|
||||
//净资产
|
||||
map.put("netAsset",decimalFormat.format(debetBalance-unClearedOnlineDebt-creditBalance-peopleLendHistory));
|
||||
|
||||
//未结清账户数
|
||||
installmentHistoryDto.setState("0");
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.ruoyi.job.controller;
|
||||
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.web.domain.AjaxResult;
|
||||
import com.ruoyi.job.service.IInvestJobService;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 信息Controller
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2023-12-11
|
||||
*/
|
||||
@Api(tags=" 生成数据信息")
|
||||
@RestController
|
||||
@RequestMapping("/job")
|
||||
public class InvestJob
|
||||
{
|
||||
@Resource
|
||||
private IInvestJobService investJobService;
|
||||
|
||||
@PostMapping("/generateUnpaidCreditBill")
|
||||
public AjaxResult generateUnpaidCreditBill()
|
||||
{
|
||||
System.out.println("================================开始生成未出账单数据("+ DateUtils.getTime() +")=================================");
|
||||
investJobService.generateUnpaidCreditBill();
|
||||
System.out.println("================================结束生成未出账单据("+ DateUtils.getTime() +")=================================");
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
@PostMapping("/updateUnpaidInstallmentData")
|
||||
public AjaxResult updateUnpaidInstallmentData()
|
||||
{
|
||||
System.out.println("================================开始更新未出信用卡分期账单入账数据("+ DateUtils.getTime() +")=================================");
|
||||
investJobService.updateUnpaidInstallmentData();
|
||||
System.out.println("================================结束更新未出信用卡分期账单入账拟数据("+ DateUtils.getTime() +")=================================");
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.ruoyi.job.service;
|
||||
|
||||
|
||||
/**
|
||||
* 生成模拟数据
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2023-12-11
|
||||
*/
|
||||
public interface IInvestJobService
|
||||
{
|
||||
/**
|
||||
* 生成模拟数据
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2023-12-11
|
||||
*/
|
||||
public void generateUnpaidCreditBill();
|
||||
|
||||
/**
|
||||
* 生成能耗模拟数据
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2023-12-12
|
||||
*/
|
||||
public void updateUnpaidInstallmentData();
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
package com.ruoyi.job.service.impl;
|
||||
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.utils.IdWorker;
|
||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||
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.vo.AccountsDealRecordVo;
|
||||
import com.ruoyi.invest.domain.vo.BankCardLendVo;
|
||||
import com.ruoyi.invest.domain.vo.CreditCardBillVo;
|
||||
import com.ruoyi.invest.mapper.AccountsDealRecordMapper;
|
||||
import com.ruoyi.invest.mapper.AccountsMapper;
|
||||
import com.ruoyi.invest.mapper.BankCardLendMapper;
|
||||
import com.ruoyi.invest.mapper.CreditCardBillMapper;
|
||||
import com.ruoyi.job.service.IInvestJobService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 生成数据
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2023-12-11
|
||||
*/
|
||||
@Service
|
||||
public class InvestJobImpl implements IInvestJobService
|
||||
{
|
||||
@Resource
|
||||
private BankCardLendMapper bankCardLendMapper;
|
||||
@Resource
|
||||
private AccountsMapper accountsMapper;
|
||||
|
||||
@Resource
|
||||
private AccountsDealRecordMapper accountsDealRecordMapper;
|
||||
|
||||
@Resource
|
||||
private CreditCardBillMapper creditCardBillMapper;
|
||||
|
||||
|
||||
/**
|
||||
* 生成数据
|
||||
*
|
||||
* @author tianyongbao
|
||||
* @date 2023-12-11
|
||||
*/
|
||||
@Override
|
||||
public void generateUnpaidCreditBill() {
|
||||
//未出账单生成,定时任务,每3个小时同步计算一次,作为未出账单,根据信用卡基础信息,包括账单日及账单日消费信息,遍历信用卡记录信息表和交易记录表即可
|
||||
BankCardLendDto bankCardLendDto=new BankCardLendDto();
|
||||
bankCardLendDto.setType("2");
|
||||
List<BankCardLendVo> bankCardVoList=bankCardLendMapper.selectBankCardLendList(bankCardLendDto);
|
||||
// 获取当前日期
|
||||
Date currentDate = new Date();
|
||||
// 创建SimpleDateFormat实例,指定日期格式
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
||||
// 格式化日期为字符串
|
||||
String formattedDate = sdf.format(currentDate);
|
||||
// 从格式化后的字符串中提取年份和月份
|
||||
String year = formattedDate.substring(0, 4);
|
||||
String month = formattedDate.substring(5);
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月账单");
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Date billDate= new Date();
|
||||
//遍历数据,获取信用卡账单日及数据
|
||||
for (BankCardLendVo bankCard : bankCardVoList) {
|
||||
//0表示当期,1表示下期
|
||||
String isNextBillDate = bankCard.getIsNextBillDate();
|
||||
String billDateStr=year+"-"+month+"-"+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());
|
||||
accountsDealRecordDto.setStartDateTime(startDate);
|
||||
accountsDealRecordDto.setEndDateTime(endDate);
|
||||
//获取所有交易记录
|
||||
List<AccountsDealRecordVo> accountsDealRecordVoList=accountsDealRecordMapper.selectAccountsDealRecordList(accountsDealRecordDto);
|
||||
//支出转为负数
|
||||
for (AccountsDealRecordVo vo:accountsDealRecordVoList
|
||||
) {
|
||||
if(vo.getDealType().equals("2")){
|
||||
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);
|
||||
//更新未出账单
|
||||
creditCardBillMapper.updateCreditCardBill(creditCardBill);
|
||||
}else {
|
||||
|
||||
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(SecurityUtils.getUsername());
|
||||
creditCardBill.setCreateTime(DateUtils.getNowDate());
|
||||
creditCardBill.setId(IdWorker.getId());
|
||||
creditCardBill.setCreditCardId(bankCard.getId());
|
||||
creditCardBill.setBillAmount(billAmount);
|
||||
creditCardBill.setBillState("0");
|
||||
//插入未出账单
|
||||
creditCardBillMapper.insertCreditCardBill(creditCardBill);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateUnpaidInstallmentData(){
|
||||
//信用卡分期入账信息自动入账,同时更新信用卡额度相关信息
|
||||
// 获取当前日期
|
||||
Date currentDate = new Date();
|
||||
// 创建SimpleDateFormat实例,指定日期格式
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
// 格式化日期为字符串
|
||||
String formattedDate = sdf.format(currentDate);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user