From 893d30becdf1d3babf9ac66fcf2ecb00c25d3a38 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Mon, 20 May 2024 15:28:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B4=A6=E6=88=B7=E6=94=B6=E6=94=AF?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=EF=BC=8C=E6=96=B0=E5=8A=9F=E8=83=BD=E5=BC=80?= =?UTF-8?q?=E5=8F=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StatisticAnalysisController.java | 7 + .../domain/vo/AccountsDealRecordVo.java | 4 + .../mapper/StatisticAnalysisMapper.java | 10 + .../service/IStatisticAnalysisService.java | 2 + .../AccountsTransferRecordServiceImpl.java | 43 ++- .../service/impl/PosMachineServiceImpl.java | 23 ++ .../service/impl/StatisticAnalysisImpl.java | 270 ++++++++++++++++++ .../ruoyi/job/service/impl/InvestJobImpl.java | 4 +- .../mapper/invest/StatisticAnalysisMapper.xml | 98 +++++++ 9 files changed, 451 insertions(+), 10 deletions(-) diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/controller/StatisticAnalysisController.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/controller/StatisticAnalysisController.java index 73dc45c..a6cb633 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/controller/StatisticAnalysisController.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/controller/StatisticAnalysisController.java @@ -116,6 +116,13 @@ public class StatisticAnalysisController { return AjaxResult.success(resultMap); } + @ApiOperation("收支统计分析") + @GetMapping("/accountsOutInAnalysis") + public Map getAccountsOutInAnalysis(AnalysisDto analysisDto){ + Map resultMap = iStatisticAnalysisService.getAccountsOutInAnalysis(analysisDto); + return AjaxResult.success(resultMap); + } + diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/AccountsDealRecordVo.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/AccountsDealRecordVo.java index 23231eb..a6d1c2d 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/AccountsDealRecordVo.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/vo/AccountsDealRecordVo.java @@ -17,6 +17,10 @@ public class AccountsDealRecordVo extends AccountsDealRecord /** 账户 */ private String accountName; + private String code; + + private String nameCode; + private String dealCategoryName; diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/mapper/StatisticAnalysisMapper.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/mapper/StatisticAnalysisMapper.java index 51c1105..bc1defd 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/mapper/StatisticAnalysisMapper.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/mapper/StatisticAnalysisMapper.java @@ -1,7 +1,9 @@ package com.ruoyi.invest.mapper; import com.ruoyi.common.datascope.annotation.DataScope; +import com.ruoyi.invest.domain.dto.AccountsDealRecordDto; import com.ruoyi.invest.domain.dto.BankCardLendDto; +import com.ruoyi.invest.domain.vo.AccountsDealRecordVo; import com.ruoyi.invest.domain.vo.BankCardLendVo; import org.apache.ibatis.annotations.Mapper; @@ -19,5 +21,13 @@ public interface StatisticAnalysisMapper { @DataScope(businessAlias = "a") public List selectBankCardLendList(BankCardLendDto bankCardLendDto); + /** + * 查询收支记录 + * + * @param accountsDealRecordDto + * @return 收支集合 + */ + @DataScope(businessAlias = "a") + public List selectAccountsOutInList(AccountsDealRecordDto accountsDealRecordDto); } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/IStatisticAnalysisService.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/IStatisticAnalysisService.java index ee2fc7a..d74f746 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/IStatisticAnalysisService.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/IStatisticAnalysisService.java @@ -36,4 +36,6 @@ public interface IStatisticAnalysisService { public Map getAccountsDealAnalysis(AnalysisDto analysisDto); + public Map getAccountsOutInAnalysis(AnalysisDto analysisDto); + } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/AccountsTransferRecordServiceImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/AccountsTransferRecordServiceImpl.java index dc00142..e336cc4 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/AccountsTransferRecordServiceImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/AccountsTransferRecordServiceImpl.java @@ -240,8 +240,8 @@ public class AccountsTransferRecordServiceImpl implements IAccountsTransferRecor creditDeal.setType("1"); //1 收入,2 支出,3 转账,4 借贷 creditDeal.setDealType("2"); - //POS机刷卡 - creditDeal.setDealCategory("5"); + //POS机刷卡手续费 + creditDeal.setDealCategory("13"); //POS机名称+信用卡+商户名称 creditDeal.setName(pos.getName()+"-"+creditAccount.getName()+"("+ StringUtils.getLastNumberChars(3,creditAccount.getCode())+")"+"-"+pos.getMerchantName()); creditDeal.setRemark("刷卡手续费"); @@ -595,26 +595,53 @@ public class AccountsTransferRecordServiceImpl implements IAccountsTransferRecor //储蓄卡消费记录明细,支出 dealRecord.setAccountId(debitAccount.getAccountId()); dealRecord.setId(IdWorker.getId()); - //支出金额 - dealRecord.setAmount(accountsTransferRecord.getActualAmount()); - //实时余额 - dealRecord.setCurrentBalance(debitAccount.getBalance()); + //支出本金金额 + dealRecord.setAmount(accountsTransferRecord.getAmount()); + //1储蓄卡,2 信用卡,3 网贷,4 人情,5 投资账户 dealRecord.setType("3"); //1 收入,2 支出,3 转账,4 借贷 //1表示借款,2表示还款 if(accountsTransferRecord.getDealType().equals("1")){ dealRecord.setDealType("1"); + //实时余额 + dealRecord.setCurrentBalance(debitAccount.getBalance()); dealRecord.setRemark("借贷记账借款。"); //投资账户账至储蓄卡转 dealRecord.setName(lendVo.getName()+"("+StringUtils.getLastNumberChars(3,lendVo.getCode())+")借款至"+debitCardVo.getName()+"("+StringUtils.getLastNumberChars(3,debitCardVo.getCode())+")"); }else if(accountsTransferRecord.getDealType().equals("2")){ dealRecord.setDealType("2"); - dealRecord.setRemark("借贷记账还款,本息合计。"); + //实时余额 + dealRecord.setCurrentBalance(debitAccount.getBalance()-accountsTransferRecord.getCommission()); + dealRecord.setRemark("借贷记账还款,本金。"); //储蓄卡还款至投资账户 dealRecord.setName(debitCardVo.getName()+"("+StringUtils.getLastNumberChars(3,debitCardVo.getCode())+")还款至"+lendVo.getName()+"("+StringUtils.getLastNumberChars(3,lendVo.getCode())+")"); + + + AccountsDealRecord dealInterest=new AccountsDealRecord(); + + dealInterest.setAccountId(debitAccount.getAccountId()); + dealInterest.setId(IdWorker.getId()); + //支出金额 + dealInterest.setAmount(accountsTransferRecord.getCommission()); + //实时余额 + dealInterest.setCurrentBalance(debitAccount.getBalance()); + //1储蓄卡,2 信用卡,3 网贷,4 人情,5 投资账户 + dealInterest.setType("3"); + dealInterest.setDealType("2"); + //实时余额 + dealInterest.setCurrentBalance(debitAccount.getBalance()-accountsTransferRecord.getCommission()); + dealInterest.setRemark("借贷记账还款,利息。"); + //储蓄卡还款至投资账户 + dealInterest.setName(debitCardVo.getName()+"("+StringUtils.getLastNumberChars(3,debitCardVo.getCode())+")还款至"+lendVo.getName()+"("+StringUtils.getLastNumberChars(3,lendVo.getCode())+")"); + //借贷账户转账利息 + dealInterest.setDealCategory("15"); + + dealInterest.setCreateBy(SecurityUtils.getUsername()); + dealInterest.setCreateTime(accountsTransferRecord.getCreateTime()); + insertAccountsDealRecord(dealInterest); } - //投资账户转账 + //借贷账户转账 dealRecord.setDealCategory("9"); dealRecord.setCreateBy(SecurityUtils.getUsername()); diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/PosMachineServiceImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/PosMachineServiceImpl.java index 95772da..e412d87 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/PosMachineServiceImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/PosMachineServiceImpl.java @@ -4,9 +4,11 @@ import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.IdWorker; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.invest.domain.Accounts; import com.ruoyi.invest.domain.PosMachine; import com.ruoyi.invest.domain.dto.PosMachineDto; import com.ruoyi.invest.domain.vo.PosMachineVo; +import com.ruoyi.invest.mapper.AccountsMapper; import com.ruoyi.invest.mapper.PosMachineMapper; import com.ruoyi.invest.service.IPosMachineService; import org.springframework.stereotype.Service; @@ -26,6 +28,9 @@ public class PosMachineServiceImpl implements IPosMachineService @Resource private PosMachineMapper posMachineMapper; + @Resource + private AccountsMapper accountsMapper; + /** * 查询pos机信息 * @@ -68,6 +73,24 @@ public class PosMachineServiceImpl implements IPosMachineService posMachine.setCreateBy(SecurityUtils.getUsername()); posMachine.setCreateTime(DateUtils.getNowDate()); posMachine.setId(IdWorker.getId()); + + //记账账户信息插入 + Accounts accounts=new Accounts(); + accounts.setCreateBy(SecurityUtils.getUsername()); + accounts.setCreateTime(DateUtils.getNowDate()); + accounts.setId(IdWorker.getId()); + accounts.setAccountId(accounts.getId()); + accounts.setBalance(0.0); + accounts.setId(posMachine.getId()); + accounts.setAccountId(posMachine.getId()); + accounts.setName(posMachine.getName()); + accounts.setType("6"); + accounts.setCreditLimit(0); + accounts.setCode(posMachine.getCode()); + accounts.setAvailableLimit(0d); + accounts.setState("1"); + accountsMapper.insertAccounts(accounts); + return posMachineMapper.insertPosMachine(posMachine); } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java index 8af0c0b..9d7c960 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/service/impl/StatisticAnalysisImpl.java @@ -1895,4 +1895,274 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { return map; } + @Override + public Map getAccountsOutInAnalysis(AnalysisDto analysisDto) { + //返回数据 + HashMap map = new HashMap<>(); + DecimalFormat decimalFormat = new DecimalFormat("#.###"); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat dateFormatSecond = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat formatterMonth = new SimpleDateFormat("yyyy-MM"); + //月查询 + if(analysisDto.getType().equals("2")){ + if(StringUtils.isEmpty(analysisDto.getStartTime())&&StringUtils.isEmpty(analysisDto.getEndTime())){ + String endTime=dateFormat.format(DateUtils.addMonths(DateUtils.getNowDate(),0)); + String startTime=dateFormat.format(DateUtils.addMonths(DateUtils.getNowDate(),-24)); + analysisDto.setStartTime(startTime); + analysisDto.setEndTime(endTime); + }else { + analysisDto.setStartTime(analysisDto.getStartTime()+"-01"); + if(analysisDto.getEndTime().equals(formatterMonth.format(new Date()))){ + SimpleDateFormat sdf = new SimpleDateFormat("dd"); + analysisDto.setEndTime(analysisDto.getEndTime()+"-"+sdf.format(new Date())); + }else { + analysisDto.setEndTime(analysisDto.getEndTime()+"-31"); + } + + } + + //年查询 + }else if(analysisDto.getType().equals("3")){ + if(StringUtils.isEmpty(analysisDto.getStartTime())&&StringUtils.isEmpty(analysisDto.getEndTime())){ + String endTime=dateFormat.format(DateUtils.getNowDate()); + String startTime=dateFormat.format(DateUtils.addYears(DateUtils.getNowDate(),-5)); + analysisDto.setStartTime(startTime); + analysisDto.setEndTime(endTime); + }else { + analysisDto.setStartTime(analysisDto.getStartTime()+"-01-01"); + SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy"); + if(analysisDto.getEndTime().equals(sdfYear.format(new Date()))){ + SimpleDateFormat sdf = new SimpleDateFormat("MM-dd"); + analysisDto.setEndTime(analysisDto.getEndTime()+"-"+sdf.format(new Date())); + }else { + analysisDto.setEndTime(analysisDto.getEndTime()+"-12-31"); + } + + } + } + AccountsDealRecordDto dto=new AccountsDealRecordDto(); + //获取数据 + dto.setEndTime(analysisDto.getEndTime()); + dto.setStartTime(analysisDto.getStartTime()); + dto.setDealCategory(analysisDto.getDealCategory()); + List accountsDealRecordVoList=statisticAnalysisMapper.selectAccountsOutInList(dto); + //修改名称加卡号 + for (AccountsDealRecordVo accounts : accountsDealRecordVoList) { + + if(accounts.getCode()!=null){ + accounts.setNameCode(accounts.getAccountName()+"("+ StringUtils.getLastNumberChars(4,accounts.getCode()+")")); + }else { + accounts.setNameCode(accounts.getAccountName()); + } + } + //收支差额 + double balance =0; + //支出总额 + double totalOutcome =0; + //收益总额 + double totalIncome =0; + //刷卡手续费 13 + double posExpenses =0; + //信用卡分期利息 14 + double creditInterest =0; + //网贷利息 15 + double onLineInterest=0; + //日常支出 1 + double dailyExpenses=0; + //投资收益 2 + double investIncome=0; + //工资收入 11 + double salaryIncome=0; + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ) { + if(vo.getDealType().equals("1")){ + totalIncome+=vo.getAmount(); + if(vo.getDealCategory().equals("11")){ + salaryIncome+=vo.getAmount(); + } + if(vo.getDealCategory().equals("2")){ + investIncome+=vo.getAmount(); + } + } + //支出 + if(vo.getDealType().equals("2")){ + totalOutcome+=vo.getAmount(); + if(vo.getDealCategory().equals("1")){ + dailyExpenses+=vo.getAmount(); + } + if(vo.getDealCategory().equals("2")){ + investIncome-=vo.getAmount(); + } + if(vo.getDealCategory().equals("13")){ + posExpenses+=vo.getAmount(); + } + if(vo.getDealCategory().equals("14")){ + creditInterest+=vo.getAmount(); + } + if(vo.getDealCategory().equals("15")){ + onLineInterest+=vo.getAmount(); + } + } + } + //收支差额 + map.put("balance",decimalFormat.format(totalIncome-totalOutcome)); + //支出总额 + map.put("totalOutcome",decimalFormat.format(totalOutcome)); + //收益总额 + map.put("totalIncome",decimalFormat.format(totalIncome)); + //刷卡手续费 13 + map.put("posExpenses",decimalFormat.format(posExpenses)); + //信用卡分期利息 14 + map.put("creditInterest",decimalFormat.format(creditInterest)); + //网贷利息 15 + map.put("onLineInterest",decimalFormat.format(onLineInterest)); + //日常支出 1 + map.put("dailyExpenses",decimalFormat.format(dailyExpenses)); + //投资收益 2 + map.put("investIncome",decimalFormat.format(investIncome)); + //工资收入 11 + map.put("salaryIncome",decimalFormat.format(salaryIncome)); + //非日常支出 1 + map.put("notDailyExpenses",decimalFormat.format(totalOutcome-dailyExpenses)); + + List queryList =new ArrayList<>(); + + if("1".equals(analysisDto.getType())){ + //日列表 + List staticsTimeList=new ArrayList<>(); + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ) { + if (null != vo.getDealCategory()) { + vo.setDealCategoryName(DictUtils.getDictLabel("deal_category", vo.getDealCategory().toString())); + } + String dayString=dateFormat.format(vo.getCreateTime()); + + if(!staticsTimeList.contains(dayString)){ + staticsTimeList.add(dayString); + } + } + + for (String staticsTime :staticsTimeList + ) { + double actualCreditBillDay=0; + String details=""; + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ) { + String dayString=dateFormat.format(vo.getCreateTime()); + + if(staticsTime.equals(dayString)){ + if(vo.getDealType().equals("1")){ + actualCreditBillDay+=vo.getAmount(); + details+=vo.getNameCode()+"于"+dateFormatSecond.format(vo.getCreateTime())+"因交易类别【"+vo.getDealCategoryName()+"】收入"+vo.getAmount()+";
"; + } + if(vo.getDealType().equals("2")){ + actualCreditBillDay-=vo.getAmount(); + details+=vo.getNameCode()+"于"+dateFormatSecond.format(vo.getCreateTime())+"因交易类别【"+vo.getDealCategoryName()+"】支出"+vo.getAmount()+";
"; + } + } + } + AccountsDealRecordVo analysisVo=new AccountsDealRecordVo(); + analysisVo.setAmount(actualCreditBillDay); + analysisVo.setRemark(staticsTime); + analysisVo.setName(details); + queryList.add(analysisVo); + } + + //年查询 + } + else if("2".equals(analysisDto.getType())){ + //月列表 + List staticsTimeList=new ArrayList<>(); + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ) { + String monthString=dateFormat.format(vo.getCreateTime()).substring(0,7); + + if(!staticsTimeList.contains(monthString)){ + staticsTimeList.add(monthString); + } + } + + for (String staticsTime :staticsTimeList + ) { + double actualCreditBillMonth=0; + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ) { + String monthString=dateFormat.format(vo.getCreateTime()).substring(0,7); + + if(staticsTime.equals(monthString)){ + if(vo.getDealType().equals("1")){ + actualCreditBillMonth+=vo.getAmount(); + } + if(vo.getDealType().equals("2")){ + actualCreditBillMonth-=vo.getAmount(); + } + } + } + AccountsDealRecordVo analysisVo=new AccountsDealRecordVo(); + analysisVo.setAmount(actualCreditBillMonth); + analysisVo.setRemark(staticsTime); + queryList.add(analysisVo); + } + + //年查询 + }else if("3".equals(analysisDto.getType())){ + List staticsTimeList=new ArrayList<>(); + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ) { + String yearString=dateFormat.format(vo.getCreateTime()).substring(0,4); + + if(!staticsTimeList.contains(yearString)){ + staticsTimeList.add(yearString); + } + } + + for (String staticsTime :staticsTimeList + ) { + double actualCreditBillYear=0; + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ) { + String yearString=dateFormat.format(vo.getCreateTime()).substring(0,4); + if(staticsTime.equals(yearString)){ + if(vo.getDealType().equals("1")){ + actualCreditBillYear+=vo.getAmount(); + } + if(vo.getDealType().equals("2")){ + actualCreditBillYear-=vo.getAmount(); + } + } + } + AccountsDealRecordVo analysisVo=new AccountsDealRecordVo(); + analysisVo.setAmount(actualCreditBillYear); + analysisVo.setRemark(staticsTime); + queryList.add(analysisVo); + + } + + } + + ArrayList> acccountsList = new ArrayList<>(); + ArrayList> tableAccountsList = new ArrayList<>(); + for (AccountsDealRecordVo vo:queryList + ) { + Map datamap = new HashMap<>(); + datamap.put("time", vo.getRemark()); + datamap.put("value", decimalFormat.format(vo.getAmount())); + datamap.put("detail", vo.getName()); + tableAccountsList.add(datamap); + } + Collections.reverse(queryList); + for (AccountsDealRecordVo vo:queryList + ) { + Map datamap = new HashMap<>(); + datamap.put("time", vo.getRemark()); + datamap.put("value", decimalFormat.format(vo.getAmount())); + acccountsList.add(datamap); + } + //列表 + map.put("acccountsList",acccountsList); + map.put("tableAccountsList",tableAccountsList); + + return map; + } + } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java index 75d97e6..3811b8d 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/job/service/impl/InvestJobImpl.java @@ -225,13 +225,13 @@ public class InvestJobImpl implements IInvestJobService //支出金额 creditDeal.setAmount(installmentHistoryDetail.getInterest()); //实时余额 - creditDeal.setCurrentBalance(creditAccount.getBalance()); + creditDeal.setCurrentBalance(creditAccount.getBalance()-installmentHistoryDetail.getPrincipal()); //1储蓄卡,2 信用卡,3 网贷,4 人情,5 投资账户 creditDeal.setType("2"); //1 收入,2 支出,3 转账,4 借贷 creditDeal.setDealType("2"); //分期利息支出 - creditDeal.setDealCategory("10"); + creditDeal.setDealCategory("14"); creditDeal.setName(creditAccount.getName()+"("+ StringUtils.getLastNumberChars(4,creditAccount.getCode()+")")); creditDeal.setRemark("分期利息"); creditDeal.setCreateBy(creditAccount.getCreateBy()); diff --git a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/StatisticAnalysisMapper.xml b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/StatisticAnalysisMapper.xml index 684274c..9570021 100644 --- a/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/StatisticAnalysisMapper.xml +++ b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/StatisticAnalysisMapper.xml @@ -49,4 +49,102 @@ ${params.dataScope} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file