fix: 修改health包名。

This commit is contained in:
tianyongbao
2025-01-15 22:59:07 +08:00
parent 34ccd2ed25
commit 9b9f3053e6
337 changed files with 1 additions and 1 deletions

View File

@@ -0,0 +1,124 @@
package com.intc.job.controller;
import com.intc.common.core.utils.DateUtils;
import com.intc.common.core.web.domain.AjaxResult;
import com.intc.invest.service.IMTService;
import com.intc.invest.service.IUserService;
import com.intc.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;
@Resource
private IMTService imtService;
@Resource
private IUserService iUserService;
@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();
}
@PostMapping("/generateFutureStocksBill")
public AjaxResult generateFutureStocksBill()
{
System.out.println("================================开始生成投资账单数据("+ DateUtils.getTime() +")=================================");
investJobService.generateFutureStocksBill();
System.out.println("================================结束生成投资账单据("+ DateUtils.getTime() +")=================================");
return AjaxResult.success();
}
/**
* 110 批量修改用户随机预约的时间
*/
@PostMapping("/updateUserMinuteBatch")
public AjaxResult updateUserMinuteBatch()
{
System.out.println("================================开始批量修改用户预约时间("+ DateUtils.getTime() +")=================================");
iUserService.updateUserMinuteBatch();
System.out.println("================================结束批量修改用户预约时间("+ DateUtils.getTime() +")=================================");
return AjaxResult.success();
}
/**
* 11点期间每分钟执行一次批量获得旅行奖励
*/
@PostMapping("/getTravelRewardBatch")
public AjaxResult getTravelRewardBatch()
{
System.out.println("================================开始批量获得旅行奖励("+ DateUtils.getTime() +")=================================");
imtService.getTravelRewardBatch();
System.out.println("================================结束批量获得旅行奖励("+ DateUtils.getTime() +")=================================");
return AjaxResult.success();
}
/**
* 9点期间每分钟执行一次
*/
@PostMapping("/reservationBatchTask")
public AjaxResult reservationBatchTask()
{
System.out.println("================================开始批量预约茅台("+ DateUtils.getTime() +")=================================");
imtService.reservationBatch();
System.out.println("================================结束批量预约茅台("+ DateUtils.getTime() +")=================================");
return AjaxResult.success();
}
/**
* 更新茅台版本,门店列表,预约商品列表
*/
@PostMapping("/refreshAll")
public AjaxResult refreshAll()
{
System.out.println("================================开始批量更新茅台版本、门店列表、预约商品列表("+ DateUtils.getTime() +")=================================");
imtService.refreshAll();
System.out.println("================================结束批量更新茅台版本、门店列表、预约商品列表("+ DateUtils.getTime() +")=================================");
return AjaxResult.success();
}
/**
* 18.05分获取申购结果
*/
@PostMapping("/appointmentResults")
public AjaxResult appointmentResults()
{
System.out.println("================================开始批量获取申购结果("+ DateUtils.getTime() +")=================================");
imtService.appointmentResults();
System.out.println("================================结束批量获取申购结果("+ DateUtils.getTime() +")=================================");
return AjaxResult.success();
}
}

View File

@@ -0,0 +1,38 @@
package com.intc.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();
/**
* 更新投资账户未出账单
*
* @author tianyongbao
* @date 2023-12-11
*/
public void generateFutureStocksBill();
}

View File

@@ -0,0 +1,422 @@
package com.intc.job.service.impl;
import com.intc.common.core.utils.DateUtils;
import com.intc.common.core.utils.IdWorker;
import com.intc.common.core.utils.StringUtils;
import com.intc.common.security.utils.SecurityUtils;
import com.intc.invest.domain.*;
import com.intc.invest.domain.dto.*;
import com.intc.invest.domain.vo.*;
import com.intc.invest.mapper.*;
import com.intc.job.service.IInvestJobService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.*;
import java.util.concurrent.TimeUnit;
/**
* 生成数据
*
* @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;
@Resource
private InstallmentHistoryDetailMapper installmentHistoryDetailMapper;
@Resource
private InstallmentHistoryMapper installmentHistoryMapper;
@Resource
private FutureStocksBillMapper futureStocksBillMapper;
@Resource
private FutureStocksMapper futureStocksMapper;
/**
* 生成数据
*
* @author tianyongbao
* @date 2023-12-11
*/
@Override
public void generateUnpaidCreditBill() {
//未出账单生成定时任务每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()))&&currentTime.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);
}
}
}
}
@Override
public void updateUnpaidInstallmentData(){
//信用卡分期入账信息自动入账,同时更新信用卡额度相关信息
// 获取当前日期
Date currentDate = new Date();
// 创建SimpleDateFormat实例指定日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 格式化日期为字符串
String formattedDate = sdf.format(currentDate);
InstallmentHistoryDetailDto installmentHistoryDetailDto=new InstallmentHistoryDetailDto();
installmentHistoryDetailDto.setRepaymentEqualDate(formattedDate);
installmentHistoryDetailDto.setState("0");
installmentHistoryDetailDto.setType("2");
List<InstallmentHistoryDetailVo> historyDetailList=installmentHistoryDetailMapper.selectInstallmentHistoryDetailList(installmentHistoryDetailDto);
//修改名称加卡号
for (InstallmentHistoryDetailVo installmentHistoryDetail : historyDetailList) {
installmentHistoryDetail.setPostingState("1");
InstallmentHistoryDetail detail=new InstallmentHistoryDetail();
detail.setUpdateBy(SecurityUtils.getUsername());
detail.setUpdateTime(DateUtils.getNowDate());
detail.setId(installmentHistoryDetail.getId());
detail.setPostingState(installmentHistoryDetail.getPostingState());
installmentHistoryDetailMapper.updateInstallmentHistoryDetail(detail);
//已入账
Calendar cal1 = Calendar.getInstance();
cal1.setTime(installmentHistoryDetail.getRepaymentDate());
Calendar cal2 = Calendar.getInstance();
cal2.setTime(new Date());
long diffInMillis = cal2.getTimeInMillis() - cal1.getTimeInMillis();
int daysDiff = Long.valueOf(TimeUnit.MILLISECONDS.toDays(diffInMillis)).intValue();
//入账日期小于一个月的
if("1".equals(installmentHistoryDetail.getPostingState())&&daysDiff<31){
//更新主表已还期数
InstallmentHistoryVo historyVo=installmentHistoryMapper.selectInstallmentHistoryById(installmentHistoryDetail.getInstallmentHistoryId());
InstallmentHistory his=new InstallmentHistory();
his.setRepaidPeriod(historyVo.getRepaidPeriod()+1);
his.setId(historyVo.getId());
his.setUpdateTime(new Date());
installmentHistoryMapper.updateInstallmentHistory(his);
//信用卡账户余额计算
AccountsVo creditAccount=accountsMapper.selectAccountsById(installmentHistoryDetail.getBankCardLendId());
//工行提前将利息额度占用,余额不再重新计算。
if(!creditAccount.getName().contains("工商银行")){
creditAccount.setBalance(creditAccount.getBalance()-installmentHistoryDetail.getInterest());
creditAccount.setAvailableLimit(creditAccount.getBalance()+creditAccount.getCreditLimit());
}
creditAccount.setUpdateTime(installmentHistoryDetail.getUpdateTime());
accountsMapper.updateAccounts(creditAccount);
//信用卡消费记录明细
AccountsDealRecord creditDeal=new AccountsDealRecord();
creditDeal.setTransferRecordId(installmentHistoryDetail.getId());
creditDeal.setAccountId(creditAccount.getAccountId());
creditDeal.setId(IdWorker.getId());
//支出金额
creditDeal.setAmount(installmentHistoryDetail.getInterest());
//实时余额
creditDeal.setCurrentBalance(creditAccount.getBalance()-installmentHistoryDetail.getPrincipal());
//1储蓄卡2 信用卡3 网贷4 人情5 投资账户
creditDeal.setType("2");
//1 收入2 支出3 转账4 借贷
creditDeal.setDealType("2");
//分期利息支出
creditDeal.setDealCategory("14");
creditDeal.setChildCategory("14");
creditDeal.setName(creditAccount.getName()+""+ StringUtils.getLastNumberChars(4,creditAccount.getCode()+""));
creditDeal.setRemark("分期利息");
creditDeal.setCreateBy(creditAccount.getCreateBy());
creditDeal.setCreateTime(new Date());
// accountsDealRecordMapper.insertAccountsDealRecord(creditDeal);
insertAccountsDealRecord(creditDeal);
//信用卡消费记录明细,应还本金
AccountsDealRecord creditDealPrinciple=new AccountsDealRecord();
creditDealPrinciple.setTransferRecordId(installmentHistoryDetail.getId());
creditDealPrinciple.setAccountId(creditAccount.getAccountId());
creditDealPrinciple.setId(IdWorker.getId());
//支出金额
creditDealPrinciple.setAmount(installmentHistoryDetail.getPrincipal());
//实时余额
creditDealPrinciple.setCurrentBalance(creditAccount.getBalance());
//1储蓄卡2 信用卡3 网贷4 人情5 投资账户
creditDealPrinciple.setType("2");
//1 收入2 支出3 转账4 借贷
creditDealPrinciple.setDealType("2");
//分期利息支出
creditDealPrinciple.setDealCategory("10");
creditDealPrinciple.setName(creditAccount.getName()+""+ StringUtils.getLastNumberChars(4,creditAccount.getCode()+""));
creditDealPrinciple.setRemark("应还本金");
creditDealPrinciple.setChildCategory("10");
creditDealPrinciple.setCreateBy(creditAccount.getCreateBy());
creditDealPrinciple.setCreateTime(new Date());
// accountsDealRecordMapper.insertAccountsDealRecord(creditDealPrinciple);
insertAccountsDealRecord(creditDealPrinciple);
}
}
}
public int insertAccountsDealRecord(AccountsDealRecord accountsDealRecord)
{
accountsDealRecord.setId(IdWorker.getId());
//获取最新一条记录的数据,计算余额
Map<String, Object> lastMap = new HashMap<>();
lastMap.put("startDateTime", accountsDealRecord.getCreateTime());
lastMap.put("accountId", accountsDealRecord.getAccountId());
AccountsDealRecord lastOneAccountsDealRecord=accountsDealRecordMapper.getLastOneAccountsDealRecordByMap(lastMap);
if(lastOneAccountsDealRecord==null){
lastOneAccountsDealRecord=new AccountsDealRecord();
lastOneAccountsDealRecord.setCurrentBalance(0d);
}
//收入
if(accountsDealRecord.getDealType().equals("1")){
Map<String, Object> map = new HashMap<>();
map.put("startDateTime", accountsDealRecord.getCreateTime());
map.put("accountId", accountsDealRecord.getAccountId());
map.put("currentBalance", accountsDealRecord.getAmount());
accountsDealRecordMapper.batchPlusCurrentBalance(map);
}
//支出
if(accountsDealRecord.getDealType().equals("2")){
Map<String, Object> map = new HashMap<>();
map.put("startDateTime", accountsDealRecord.getCreateTime());
map.put("accountId", accountsDealRecord.getAccountId());
map.put("currentBalance", accountsDealRecord.getAmount());
accountsDealRecordMapper.batchMinusCurrentBalance(map);
}
return accountsDealRecordMapper.insertAccountsDealRecord(accountsDealRecord);
}
/**
* 生成数据
*
* @author tianyongbao
* @date 2023-12-11
*/
@Override
public void generateFutureStocksBill() {
//未出账单生成定时任务每1个小时同步计算一次作为未出账单根据投资账户基础信息遍历投资账户记录信息表和交易记录表即可
FutureStocksDto futureStocksDto=new FutureStocksDto();
// futureStocksDto.setStatus("1");
List<FutureStocksVo> list =futureStocksMapper.selectFutureStocksList(futureStocksDto);
// 获取当前日期
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");
SimpleDateFormat yearFormatter = new SimpleDateFormat("yyyy");
SimpleDateFormat monthFormatter = new SimpleDateFormat("yyyy-MM");
Date billDate= new Date();
//遍历数据,获取信用卡账单日及数据
for (FutureStocksVo futureStocksVo : list) {
//如果不是正常使用的账户,不需要生成账单信息
if(!futureStocksVo.getStatus().equals("1")){
continue;
}
Calendar calendarStart = Calendar.getInstance();
calendarStart.setTime(billDate);
calendarStart.set(Calendar.DAY_OF_MONTH, 1); // 设置为当月的第一天
Date startDate = calendarStart.getTime();
String periodStart = formatter.format(startDate);
Calendar calendarEnd = Calendar.getInstance();
calendarEnd.setTime(billDate);
int lastDay = calendarEnd.getActualMaximum(Calendar.DAY_OF_MONTH); // 当月的最后一天
calendarEnd.set(Calendar.DAY_OF_MONTH, lastDay);
Date endDate = calendarEnd.getTime();
String periodEnd= formatter.format(endDate);
double billAmount=0;
AccountsDealRecordDto accountsDealRecordDto=new AccountsDealRecordDto();
accountsDealRecordDto.setAccountId(futureStocksVo.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.setDealCategory("2");
//获取所有交易记录
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();
FutureStocksBillDto futureStocksBillDto=new FutureStocksBillDto();
futureStocksBillDto.setFutureStocksId(futureStocksVo.getId());
String billMonth=year+"-"+String.format("%02d", month);
futureStocksBillDto.setBillMonth(billMonth);
List<FutureStocksBillVo> futureStocksBillVoList=futureStocksBillMapper.selectFutureStocksBillList(futureStocksBillDto);
if(futureStocksBillVoList.size()>0){
FutureStocksBillVo futureStocksBillVo=futureStocksBillVoList.get(0);
FutureStocksBill futureStocksBill=new FutureStocksBill();
futureStocksBill.setUpdateBy(SecurityUtils.getUsername());
futureStocksBill.setUpdateTime(DateUtils.getNowDate());
futureStocksBill.setId(futureStocksBillVo.getId());
futureStocksBill.setBillAmount(billAmount);
//更新账单
futureStocksBillMapper.updateFutureStocksBill(futureStocksBill);
}else {
//进行插入操作
FutureStocksBill futureStocksBill=new FutureStocksBill();
futureStocksBill.setBillDate(endDate);
futureStocksBill.setName(simpleDateFormat.format(endDate));
futureStocksBill.setBillDatePeriod(periodStart+"~"+periodEnd);
futureStocksBill.setCreateBy(futureStocksVo.getCreateBy());
futureStocksBill.setCreateTime(DateUtils.getNowDate());
futureStocksBill.setId(IdWorker.getId());
futureStocksBill.setFutureStocksId(futureStocksVo.getId());
futureStocksBill.setBillAmount(billAmount);
futureStocksBill.setType(futureStocksVo.getType());
futureStocksBill.setBillDatePeriod(periodStart+"~"+periodEnd);
futureStocksBill.setBillYear(yearFormatter.format(futureStocksBill.getBillDate()));
futureStocksBill.setBillMonth(monthFormatter.format(futureStocksBill.getBillDate()));
//插入未出账单
futureStocksBillMapper.insertFutureStocksBill(futureStocksBill);
}
}
}
}
}