diff --git a/src/main/java/com/mini/capi/api/biz/appController.java b/src/main/java/com/mini/capi/api/biz/appController.java new file mode 100644 index 0000000..bf5a79a --- /dev/null +++ b/src/main/java/com/mini/capi/api/biz/appController.java @@ -0,0 +1,83 @@ +package com.mini.capi.api.biz; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mini.capi.biz.domain.ErpPeriodSummaryAccountWeekView; +import com.mini.capi.biz.domain.ErpPeriodSummaryAccountYearView; +import com.mini.capi.biz.domain.ErpPeriodSummaryView; +import com.mini.capi.biz.service.ErpPeriodSummaryAccountWeekViewService; +import com.mini.capi.biz.service.ErpPeriodSummaryAccountYearViewService; +import com.mini.capi.biz.service.ErpPeriodSummaryViewService; +import com.mini.capi.model.ApiResult; +import com.mini.capi.model.ChartResult; +import com.mini.capi.utils.DateUtils; +import jakarta.annotation.Resource; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping("/appApi") +public class appController { + + + @Resource + private ErpPeriodSummaryViewService summaryViewService; + + + @Resource + private ErpPeriodSummaryAccountWeekViewService weekViewService; + + @Resource + private ErpPeriodSummaryAccountYearViewService yearViewService; + + + /** + * 实时汇总 + */ + @GetMapping("getSummaryChart") + public ApiResult getSummaryChart(String cycleType) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (StringUtils.hasText(cycleType)) { + queryWrapper.eq("cycle_type", cycleType); + String cycleCode = DateUtils.calculateStartCycleCode(cycleType); + if (cycleCode != null) { + queryWrapper.ge("cycle_code", cycleCode); + } + } + List summaryViews = summaryViewService.list(queryWrapper); + return ApiResult.success(summaryViews); + } + + + /** + * 账号周汇总 + */ + @GetMapping("getCardWeekChart") + public ApiResult getCardWeekChart() { + List chartResults = new ArrayList<>(); + List weekViews = weekViewService.list(); + for (ErpPeriodSummaryAccountWeekView weekView : weekViews) { + chartResults.add(new ChartResult(weekView.getAccountName(), weekView.getType(), weekView.getAmount())); + } + return ApiResult.success(chartResults); + } + + + /** + * 账号年汇总 + */ + @GetMapping("getCardYearChart") + public ApiResult getCardYearChart() { + List chartResults = new ArrayList<>(); + List weekViews = yearViewService.list(); + for (ErpPeriodSummaryAccountYearView weekView : weekViews) { + chartResults.add(new ChartResult(weekView.getAccountName(), weekView.getType(), weekView.getAmount())); + } + return ApiResult.success(chartResults); + } +} diff --git a/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryAccountWeekViewController.java b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryAccountWeekViewController.java new file mode 100644 index 0000000..9ed2398 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryAccountWeekViewController.java @@ -0,0 +1,18 @@ +package com.mini.capi.biz.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * VIEW 前端控制器 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@RestController +@RequestMapping("/biz/erpPeriodSummaryAccountWeekView") +public class ErpPeriodSummaryAccountWeekViewController { + +} diff --git a/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryAccountYearViewController.java b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryAccountYearViewController.java new file mode 100644 index 0000000..a15909d --- /dev/null +++ b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryAccountYearViewController.java @@ -0,0 +1,18 @@ +package com.mini.capi.biz.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * VIEW 前端控制器 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@RestController +@RequestMapping("/biz/erpPeriodSummaryAccountYearView") +public class ErpPeriodSummaryAccountYearViewController { + +} diff --git a/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryAllViewController.java b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryAllViewController.java new file mode 100644 index 0000000..237799d --- /dev/null +++ b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryAllViewController.java @@ -0,0 +1,18 @@ +package com.mini.capi.biz.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * VIEW 前端控制器 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@RestController +@RequestMapping("/biz/erpPeriodSummaryAllView") +public class ErpPeriodSummaryAllViewController { + +} diff --git a/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryViewController.java b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryViewController.java new file mode 100644 index 0000000..9aa558a --- /dev/null +++ b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryViewController.java @@ -0,0 +1,18 @@ +package com.mini.capi.biz.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * VIEW 前端控制器 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@RestController +@RequestMapping("/biz/erpPeriodSummaryView") +public class ErpPeriodSummaryViewController { + +} diff --git a/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryWeekViewController.java b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryWeekViewController.java new file mode 100644 index 0000000..f53f268 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryWeekViewController.java @@ -0,0 +1,18 @@ +package com.mini.capi.biz.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * VIEW 前端控制器 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@RestController +@RequestMapping("/biz/erpPeriodSummaryWeekView") +public class ErpPeriodSummaryWeekViewController { + +} diff --git a/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryYearViewController.java b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryYearViewController.java new file mode 100644 index 0000000..f100a18 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/controller/ErpPeriodSummaryYearViewController.java @@ -0,0 +1,18 @@ +package com.mini.capi.biz.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * VIEW 前端控制器 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@RestController +@RequestMapping("/biz/erpPeriodSummaryYearView") +public class ErpPeriodSummaryYearViewController { + +} diff --git a/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryAccountWeekView.java b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryAccountWeekView.java new file mode 100644 index 0000000..a80681d --- /dev/null +++ b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryAccountWeekView.java @@ -0,0 +1,33 @@ +package com.mini.capi.biz.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * VIEW + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Getter +@Setter +@TableName("erp_period_summary_account_week_view") +public class ErpPeriodSummaryAccountWeekView implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableField("account_name") + private String accountName; + + @TableField("amount") + private BigDecimal amount; + + @TableField("type") + private String type; +} diff --git a/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryAccountYearView.java b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryAccountYearView.java new file mode 100644 index 0000000..79f9500 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryAccountYearView.java @@ -0,0 +1,33 @@ +package com.mini.capi.biz.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * VIEW + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Getter +@Setter +@TableName("erp_period_summary_account_year_view") +public class ErpPeriodSummaryAccountYearView implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableField("account_name") + private String accountName; + + @TableField("amount") + private BigDecimal amount; + + @TableField("type") + private String type; +} diff --git a/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryAllView.java b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryAllView.java new file mode 100644 index 0000000..14289f3 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryAllView.java @@ -0,0 +1,39 @@ +package com.mini.capi.biz.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * VIEW + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Getter +@Setter +@TableName("erp_period_summary_all_view") +public class ErpPeriodSummaryAllView implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableField("category_name") + private String categoryName; + + @TableField("account_name") + private String accountName; + + @TableField("f_full_name") + private String fFullName; + + @TableField("type") + private String type; + + @TableField("amount") + private BigDecimal amount; +} diff --git a/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryView.java b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryView.java new file mode 100644 index 0000000..5a63dfc --- /dev/null +++ b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryView.java @@ -0,0 +1,67 @@ +package com.mini.capi.biz.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * VIEW + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Getter +@Setter +@TableName("erp_period_summary_view") +public class ErpPeriodSummaryView implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableField("create_time") + private LocalDateTime createTime; + + @TableField("summary_id") + private Long summaryId; + + @TableField("cycle_type") + private String cycleType; + + @TableField("cycle_code") + private String cycleCode; + + @TableField("total_income") + private BigDecimal totalIncome; + + @TableField("total_expense") + private BigDecimal totalExpense; + + @TableField("net_cashflow") + private BigDecimal netCashflow; + + @TableField("income_count") + private BigDecimal incomeCount; + + @TableField("expense_count") + private BigDecimal expenseCount; + + @TableField("update_time") + private LocalDateTime updateTime; + + @TableField("f_tenant_id") + private String fTenantId; + + @TableField("f_flow_id") + private byte[] fFlowId; + + @TableField("f_flow_task_id") + private byte[] fFlowTaskId; + + @TableField("f_flow_state") + private byte[] fFlowState; +} diff --git a/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryWeekView.java b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryWeekView.java new file mode 100644 index 0000000..10a716b --- /dev/null +++ b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryWeekView.java @@ -0,0 +1,39 @@ +package com.mini.capi.biz.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * VIEW + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Getter +@Setter +@TableName("erp_period_summary_week_view") +public class ErpPeriodSummaryWeekView implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableField("category_name") + private String categoryName; + + @TableField("account_name") + private String accountName; + + @TableField("f_full_name") + private String fFullName; + + @TableField("type") + private String type; + + @TableField("amount") + private BigDecimal amount; +} diff --git a/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryYearView.java b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryYearView.java new file mode 100644 index 0000000..b18dba2 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/domain/ErpPeriodSummaryYearView.java @@ -0,0 +1,39 @@ +package com.mini.capi.biz.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * VIEW + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Getter +@Setter +@TableName("erp_period_summary_year_view") +public class ErpPeriodSummaryYearView implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableField("category_name") + private String categoryName; + + @TableField("account_name") + private String accountName; + + @TableField("f_full_name") + private String fFullName; + + @TableField("type") + private String type; + + @TableField("amount") + private BigDecimal amount; +} diff --git a/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryAccountWeekViewMapper.java b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryAccountWeekViewMapper.java new file mode 100644 index 0000000..e050a2a --- /dev/null +++ b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryAccountWeekViewMapper.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.mapper; + +import com.mini.capi.biz.domain.ErpPeriodSummaryAccountWeekView; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * VIEW Mapper 接口 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryAccountWeekViewMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryAccountYearViewMapper.java b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryAccountYearViewMapper.java new file mode 100644 index 0000000..90caf3b --- /dev/null +++ b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryAccountYearViewMapper.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.mapper; + +import com.mini.capi.biz.domain.ErpPeriodSummaryAccountYearView; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * VIEW Mapper 接口 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryAccountYearViewMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryAllViewMapper.java b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryAllViewMapper.java new file mode 100644 index 0000000..5952ef6 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryAllViewMapper.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.mapper; + +import com.mini.capi.biz.domain.ErpPeriodSummaryAllView; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * VIEW Mapper 接口 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryAllViewMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryViewMapper.java b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryViewMapper.java new file mode 100644 index 0000000..b3e1ac0 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryViewMapper.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.mapper; + +import com.mini.capi.biz.domain.ErpPeriodSummaryView; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * VIEW Mapper 接口 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryViewMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryWeekViewMapper.java b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryWeekViewMapper.java new file mode 100644 index 0000000..47c7ba3 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryWeekViewMapper.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.mapper; + +import com.mini.capi.biz.domain.ErpPeriodSummaryWeekView; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * VIEW Mapper 接口 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryWeekViewMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryYearViewMapper.java b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryYearViewMapper.java new file mode 100644 index 0000000..972295a --- /dev/null +++ b/src/main/java/com/mini/capi/biz/mapper/ErpPeriodSummaryYearViewMapper.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.mapper; + +import com.mini.capi.biz.domain.ErpPeriodSummaryYearView; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * VIEW Mapper 接口 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryYearViewMapper extends BaseMapper { + +} diff --git a/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryAccountWeekViewService.java b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryAccountWeekViewService.java new file mode 100644 index 0000000..15389a8 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryAccountWeekViewService.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.service; + +import com.mini.capi.biz.domain.ErpPeriodSummaryAccountWeekView; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * VIEW 服务类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryAccountWeekViewService extends IService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryAccountYearViewService.java b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryAccountYearViewService.java new file mode 100644 index 0000000..56ebc71 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryAccountYearViewService.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.service; + +import com.mini.capi.biz.domain.ErpPeriodSummaryAccountYearView; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * VIEW 服务类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryAccountYearViewService extends IService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryAllViewService.java b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryAllViewService.java new file mode 100644 index 0000000..46be8e4 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryAllViewService.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.service; + +import com.mini.capi.biz.domain.ErpPeriodSummaryAllView; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * VIEW 服务类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryAllViewService extends IService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryViewService.java b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryViewService.java new file mode 100644 index 0000000..0263a9c --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryViewService.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.service; + +import com.mini.capi.biz.domain.ErpPeriodSummaryView; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * VIEW 服务类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryViewService extends IService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryWeekViewService.java b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryWeekViewService.java new file mode 100644 index 0000000..b8be18c --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryWeekViewService.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.service; + +import com.mini.capi.biz.domain.ErpPeriodSummaryWeekView; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * VIEW 服务类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryWeekViewService extends IService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryYearViewService.java b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryYearViewService.java new file mode 100644 index 0000000..d9aee22 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/ErpPeriodSummaryYearViewService.java @@ -0,0 +1,16 @@ +package com.mini.capi.biz.service; + +import com.mini.capi.biz.domain.ErpPeriodSummaryYearView; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * VIEW 服务类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +public interface ErpPeriodSummaryYearViewService extends IService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryAccountWeekViewServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryAccountWeekViewServiceImpl.java new file mode 100644 index 0000000..91093c0 --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryAccountWeekViewServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.capi.biz.service.impl; + +import com.mini.capi.biz.domain.ErpPeriodSummaryAccountWeekView; +import com.mini.capi.biz.mapper.ErpPeriodSummaryAccountWeekViewMapper; +import com.mini.capi.biz.service.ErpPeriodSummaryAccountWeekViewService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * VIEW 服务实现类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Service +public class ErpPeriodSummaryAccountWeekViewServiceImpl extends ServiceImpl implements ErpPeriodSummaryAccountWeekViewService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryAccountYearViewServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryAccountYearViewServiceImpl.java new file mode 100644 index 0000000..f49120c --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryAccountYearViewServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.capi.biz.service.impl; + +import com.mini.capi.biz.domain.ErpPeriodSummaryAccountYearView; +import com.mini.capi.biz.mapper.ErpPeriodSummaryAccountYearViewMapper; +import com.mini.capi.biz.service.ErpPeriodSummaryAccountYearViewService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * VIEW 服务实现类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Service +public class ErpPeriodSummaryAccountYearViewServiceImpl extends ServiceImpl implements ErpPeriodSummaryAccountYearViewService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryAllViewServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryAllViewServiceImpl.java new file mode 100644 index 0000000..cfc1ecc --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryAllViewServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.capi.biz.service.impl; + +import com.mini.capi.biz.domain.ErpPeriodSummaryAllView; +import com.mini.capi.biz.mapper.ErpPeriodSummaryAllViewMapper; +import com.mini.capi.biz.service.ErpPeriodSummaryAllViewService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * VIEW 服务实现类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Service +public class ErpPeriodSummaryAllViewServiceImpl extends ServiceImpl implements ErpPeriodSummaryAllViewService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryViewServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryViewServiceImpl.java new file mode 100644 index 0000000..c61a79d --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryViewServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.capi.biz.service.impl; + +import com.mini.capi.biz.domain.ErpPeriodSummaryView; +import com.mini.capi.biz.mapper.ErpPeriodSummaryViewMapper; +import com.mini.capi.biz.service.ErpPeriodSummaryViewService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * VIEW 服务实现类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Service +public class ErpPeriodSummaryViewServiceImpl extends ServiceImpl implements ErpPeriodSummaryViewService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryWeekViewServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryWeekViewServiceImpl.java new file mode 100644 index 0000000..10c4f4e --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryWeekViewServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.capi.biz.service.impl; + +import com.mini.capi.biz.domain.ErpPeriodSummaryWeekView; +import com.mini.capi.biz.mapper.ErpPeriodSummaryWeekViewMapper; +import com.mini.capi.biz.service.ErpPeriodSummaryWeekViewService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * VIEW 服务实现类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Service +public class ErpPeriodSummaryWeekViewServiceImpl extends ServiceImpl implements ErpPeriodSummaryWeekViewService { + +} diff --git a/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryYearViewServiceImpl.java b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryYearViewServiceImpl.java new file mode 100644 index 0000000..3c2ac0d --- /dev/null +++ b/src/main/java/com/mini/capi/biz/service/impl/ErpPeriodSummaryYearViewServiceImpl.java @@ -0,0 +1,20 @@ +package com.mini.capi.biz.service.impl; + +import com.mini.capi.biz.domain.ErpPeriodSummaryYearView; +import com.mini.capi.biz.mapper.ErpPeriodSummaryYearViewMapper; +import com.mini.capi.biz.service.ErpPeriodSummaryYearViewService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * VIEW 服务实现类 + *

+ * + * @author gaoxq + * @since 2025-11-11 + */ +@Service +public class ErpPeriodSummaryYearViewServiceImpl extends ServiceImpl implements ErpPeriodSummaryYearViewService { + +} diff --git a/src/main/java/com/mini/capi/model/ChartResult.java b/src/main/java/com/mini/capi/model/ChartResult.java new file mode 100644 index 0000000..347fa16 --- /dev/null +++ b/src/main/java/com/mini/capi/model/ChartResult.java @@ -0,0 +1,24 @@ +package com.mini.capi.model; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class ChartResult implements Serializable { + + + private String name; + + private String type; + + private BigDecimal value; + + + public ChartResult(String name, String type, BigDecimal value) { + this.name = name; + this.type = type; + this.value = value; + } +} diff --git a/src/main/java/com/mini/capi/utils/DateUtils.java b/src/main/java/com/mini/capi/utils/DateUtils.java index 3105ead..c1cc989 100644 --- a/src/main/java/com/mini/capi/utils/DateUtils.java +++ b/src/main/java/com/mini/capi/utils/DateUtils.java @@ -1,63 +1,66 @@ package com.mini.capi.utils; -import com.mini.capi.model.DateInfo; + import java.time.LocalDate; -import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class DateUtils { - /** - * 格式化当前日期 - * - * @param pattern 格式模式 - * @return 格式化后的日期字符串 - */ - public static String formatCurrentDate(String pattern) { - return LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern)); + // 日期格式化器(线程安全,复用提升性能) + private static final DateTimeFormatter DAY_FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE; // yyyy-MM-dd + private static final DateTimeFormatter MONTH_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM"); // yyyy-MM + + + public static String calculateStartCycleCode(String cycleType) { + // 默认使用当前日期计算,留参便于测试时指定日期 + return calculateStartCycleCode(cycleType, LocalDate.now()); } /** - * 格式化指定日期 + * 重载方法:支持指定基准日期计算起始cycleCode(便于测试) * - * @param date 日期 - * @param pattern 格式模式 - * @return 格式化后的日期字符串 + * @param cycleType 周期类型(D:日, M:月, Q:季度, Y:年) + * @param baseDate 基准日期(以此日期为起点计算时间范围) + * @return 起始cycleCode(符合对应格式),未识别类型返回null */ - public static String formatDate(LocalDateTime date, String pattern) { - if (date == null) { - return ""; + public static String calculateStartCycleCode(String cycleType, LocalDate baseDate) { + if (baseDate == null) { + throw new IllegalArgumentException("基准日期不能为null"); } - return date.format(DateTimeFormatter.ofPattern(pattern)); + if (cycleType == null) { + return null; + } + + return switch (cycleType) { + case "D" -> + // 日:最近30天,格式 yyyy-MM-dd + baseDate.minusDays(30).format(DAY_FORMATTER); + case "M" -> + // 月:最近1年,格式 yyyy-MM + baseDate.minusYears(1).format(MONTH_FORMATTER); + case "Q" -> + // 季度:最近3年,格式 yyyy-Qx + getQuarterCycleCode(baseDate.minusYears(3)); + case "Y" -> + // 年:最近6年,格式 yyyy + String.valueOf(baseDate.minusYears(6).getYear()); + default -> + // 未识别的周期类型,返回null + null; + }; } - - public static String getSevenDaysAgo() { - // 获取当前日期 - LocalDate today = LocalDate.now(); - // 减去7天 - LocalDate sevenDaysAgo = today.minusDays(7); - // 格式化日期为yyyymmdd - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); - return sevenDaysAgo.format(formatter); + /** + * 计算指定日期对应的季度cycleCode(格式:yyyy-Qx) + * + * @param date 日期 + * @return 季度cycleCode(如2023-Q3) + */ + private static String getQuarterCycleCode(LocalDate date) { + int month = date.getMonthValue(); // 1-12月 + int quarter = (month - 1) / 3 + 1; + return String.format("%d-Q%d", date.getYear(), quarter); } - - public static DateInfo getDates() { - // 获取当前日期 - LocalDate today = LocalDate.now(); - // 1. 获取昨天(yyyyMMdd) - LocalDate yesterday = today.minusDays(1); - String yesterdayStr = yesterday.format(DateTimeFormatter.ofPattern("yyyyMMdd")); - // 2. 获取当月(yyyyMM) - String currentMonthStr = today.format(DateTimeFormatter.ofPattern("yyyyMM")); - // 3. 获取当前季度(yyyyQ1-Q4) - int quarter = (today.getMonthValue() - 1) / 3 + 1; - String currentQuarterStr = today.format(DateTimeFormatter.ofPattern("yyyy")) + "Q" + quarter; - // 4. 获取当前年度(yyyy) - String currentYearStr = today.format(DateTimeFormatter.ofPattern("yyyy")); - DateInfo dateInfo = new DateInfo(yesterdayStr, currentMonthStr, currentQuarterStr, currentYearStr); - return dateInfo; - } } diff --git a/src/main/resources/mapper/ErpPeriodSummaryAccountWeekViewMapper.xml b/src/main/resources/mapper/ErpPeriodSummaryAccountWeekViewMapper.xml new file mode 100644 index 0000000..4ff9de4 --- /dev/null +++ b/src/main/resources/mapper/ErpPeriodSummaryAccountWeekViewMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + account_name, amount, type + + + diff --git a/src/main/resources/mapper/ErpPeriodSummaryAccountYearViewMapper.xml b/src/main/resources/mapper/ErpPeriodSummaryAccountYearViewMapper.xml new file mode 100644 index 0000000..5b87593 --- /dev/null +++ b/src/main/resources/mapper/ErpPeriodSummaryAccountYearViewMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + account_name, amount, type + + + diff --git a/src/main/resources/mapper/ErpPeriodSummaryAllViewMapper.xml b/src/main/resources/mapper/ErpPeriodSummaryAllViewMapper.xml new file mode 100644 index 0000000..377df99 --- /dev/null +++ b/src/main/resources/mapper/ErpPeriodSummaryAllViewMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + category_name, account_name, f_full_name, type, amount + + + diff --git a/src/main/resources/mapper/ErpPeriodSummaryViewMapper.xml b/src/main/resources/mapper/ErpPeriodSummaryViewMapper.xml new file mode 100644 index 0000000..729b3b7 --- /dev/null +++ b/src/main/resources/mapper/ErpPeriodSummaryViewMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + create_time, summary_id, cycle_type, cycle_code, total_income, total_expense, net_cashflow, income_count, expense_count, update_time, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state + + + diff --git a/src/main/resources/mapper/ErpPeriodSummaryWeekViewMapper.xml b/src/main/resources/mapper/ErpPeriodSummaryWeekViewMapper.xml new file mode 100644 index 0000000..4298c6c --- /dev/null +++ b/src/main/resources/mapper/ErpPeriodSummaryWeekViewMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + category_name, account_name, f_full_name, type, amount + + + diff --git a/src/main/resources/mapper/ErpPeriodSummaryYearViewMapper.xml b/src/main/resources/mapper/ErpPeriodSummaryYearViewMapper.xml new file mode 100644 index 0000000..a512d31 --- /dev/null +++ b/src/main/resources/mapper/ErpPeriodSummaryYearViewMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + category_name, account_name, f_full_name, type, amount + + +