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 a6cb633..71612f8 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 @@ -123,7 +123,12 @@ public class StatisticAnalysisController { return AjaxResult.success(resultMap); } - + @ApiOperation("日常支出统计分析") + @GetMapping("/dailyExpensesAnalysis") + public Map getDailyExpensesAnalysis(AnalysisDto analysisDto){ + Map resultMap = iStatisticAnalysisService.getDailyExpensesAnalysis(analysisDto); + return AjaxResult.success(resultMap); + } diff --git a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/AnalysisDto.java b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/AnalysisDto.java index c609539..d0101fc 100644 --- a/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/AnalysisDto.java +++ b/ruoyi-modules/intc-invest/src/main/java/com/ruoyi/invest/domain/dto/AnalysisDto.java @@ -47,4 +47,8 @@ public class AnalysisDto extends BaseEntity implements Serializable @ApiModelProperty(value="交易类别") private String dealCategory; + /** 交易类别 */ + @ApiModelProperty(value="交易子类别") + private String childCategory; + } 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 bc1defd..054612d 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 @@ -30,4 +30,12 @@ public interface StatisticAnalysisMapper { @DataScope(businessAlias = "a") public List selectAccountsOutInList(AccountsDealRecordDto accountsDealRecordDto); + /** + * 查询收支记录 + * + * @param accountsDealRecordDto + * @return 收支集合 + */ + @DataScope(businessAlias = "a") + public List selectDailyExpensesList(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 d74f746..2ac19a3 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 @@ -38,4 +38,6 @@ public interface IStatisticAnalysisService { public Map getAccountsOutInAnalysis(AnalysisDto analysisDto); + public Map getDailyExpensesAnalysis(AnalysisDto analysisDto); + } 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 8bd892f..7557cb0 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 @@ -2203,4 +2203,89 @@ public class StatisticAnalysisImpl implements IStatisticAnalysisService { return map; } + @Override + public Map getDailyExpensesAnalysis(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.setAccountId(analysisDto.getId()); + dto.setChildCategory(analysisDto.getChildCategory()); + List accountsDealRecordVoList=statisticAnalysisMapper.selectDailyExpensesList(dto); + + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ){ + if (null != vo.getChildCategory()) { + vo.setName(DictUtils.getDictLabel("daily_expenses", vo.getChildCategory().toString())); + }else{ + vo.setName("未分类"); + } + } + + ArrayList> acccountsList = new ArrayList<>(); + ArrayList> tableAccountsList = new ArrayList<>(); + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ) { + Map datamap = new HashMap<>(); + datamap.put("time", vo.getName()); + datamap.put("value", decimalFormat.format(vo.getAmount())); + tableAccountsList.add(datamap); + } + Collections.reverse(accountsDealRecordVoList); + for (AccountsDealRecordVo vo:accountsDealRecordVoList + ) { + Map datamap = new HashMap<>(); + datamap.put("time", vo.getName()); + 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/resources/mapper/invest/StatisticAnalysisMapper.xml b/ruoyi-modules/intc-invest/src/main/resources/mapper/invest/StatisticAnalysisMapper.xml index 6e02334..022e0ce 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 @@ -67,6 +67,7 @@ + - + \ No newline at end of file