From a6f51ccae4bc650247d07838da97787d5302f1f8 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期三, 06 八月 2025 14:55:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into pim_yys

---
 src/main/java/com/ruoyi/account/service/AccountExpenseService.java          |   20 +
 src/main/java/com/ruoyi/account/pojo/AccountIncome.java                     |  119 ++++++
 src/main/resources/mapper/account/AccountExpenseMapper.xml                  |   59 +++
 src/main/resources/mapper/account/AccountIncomeMapper.xml                   |   59 +++
 src/main/java/com/ruoyi/account/mapper/AccountFileMapper.java               |   15 
 src/main/java/com/ruoyi/account/service/AccountFileService.java             |   13 
 src/main/java/com/ruoyi/account/controller/AccountIncomeController.java     |  105 +++++
 src/main/java/com/ruoyi/account/pojo/AccountExpense.java                    |  119 ++++++
 src/main/java/com/ruoyi/account/mapper/AccountExpenseMapper.java            |   26 +
 src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java |   77 ++++
 src/main/java/com/ruoyi/account/mapper/AccountIncomeMapper.java             |   25 +
 src/main/java/com/ruoyi/account/service/impl/AccountFileServiceImpl.java    |   27 +
 src/main/java/com/ruoyi/account/controller/AccountExpenseController.java    |  111 +++++
 src/main/java/com/ruoyi/account/controller/AccountFileController.java       |   65 +++
 src/main/java/com/ruoyi/account/dto/AccountDto.java                         |   69 +++
 src/main/java/com/ruoyi/account/pojo/AccountFile.java                       |   67 +++
 src/main/java/com/ruoyi/account/dto/AccountDto2.java                        |   35 +
 src/main/resources/mapper/account/AccountFileMapper.xml                     |   17 
 src/main/java/com/ruoyi/account/service/AccountIncomeService.java           |   17 
 src/main/java/com/ruoyi/account/service/impl/AccountIncomeServiceImpl.java  |   41 ++
 20 files changed, 1,086 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/account/controller/AccountExpenseController.java b/src/main/java/com/ruoyi/account/controller/AccountExpenseController.java
new file mode 100644
index 0000000..ebaa40f
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/controller/AccountExpenseController.java
@@ -0,0 +1,111 @@
+package com.ruoyi.account.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.pojo.AccountExpense;
+import com.ruoyi.account.pojo.AccountIncome;
+import com.ruoyi.account.service.AccountExpenseService;
+import com.ruoyi.account.service.AccountFileService;
+import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.dto.DateQueryDto;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 璐㈠姟绠$悊--鏀嚭绠$悊
+ */
+@RestController
+@RequestMapping("/account/accountExpense")
+public class AccountExpenseController {
+
+    @Resource
+    private AccountExpenseService accountExpenseService;
+
+
+    /**
+     * 鏂板
+     * @param accountExpense
+     * @return
+     */
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody AccountExpense accountExpense) {
+        accountExpense.setInputTime(new Date());
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        accountExpense.setInputUser(loginUser.getNickName());
+        return AjaxResult.success(accountExpenseService.save(accountExpense));
+    }
+
+    /**
+     * 鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @DeleteMapping("/del")
+    public AjaxResult delQualityInspect(@RequestBody List<Integer> ids) {
+        if(CollectionUtils.isEmpty(ids)){
+            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        }
+        //鍒犻櫎妫�楠屽崟
+        return AjaxResult.success(accountExpenseService.removeBatchByIds(ids));
+    }
+
+    /**
+     * 淇敼
+     * @param accountExpense
+     * @return
+     */
+    @PostMapping("/update")
+    public AjaxResult update(@RequestBody AccountExpense accountExpense) {
+        return AjaxResult.success(accountExpenseService.updateById(accountExpense));
+    }
+
+    /**
+     *鍒嗛〉鏌ヨ
+     * @param page
+     * @param accountExpense
+     * @return
+     */
+    @GetMapping("/listPage")
+    public AjaxResult accountExpenseListPage(Page page, AccountExpense accountExpense) {
+        return AjaxResult.success(accountExpenseService.accountExpenseListPage(page, accountExpense));
+    }
+
+    /**
+     * 璇︽儏
+     * @param id
+     * @return
+     */
+    @GetMapping("/{id}")
+    public AjaxResult accountExpenseDetail(@PathVariable("id") Integer id) {
+        return AjaxResult.success(accountExpenseService.getById(id));
+    }
+
+    /**
+     * 瀵煎嚭
+     * @param response
+     * @param accountExpense
+     */
+    @PostMapping("/export")
+    public void accountExpenseExport(HttpServletResponse response,AccountExpense accountExpense) {
+        accountExpenseService.accountExpenseExport(response, accountExpense);
+    }
+
+    /**
+     * 璐㈠姟鎶ヨ〃鍥捐〃鏌ヨ
+     * @param dateQueryDto
+     * @return
+     */
+    @GetMapping("/report/forms")
+    public AjaxResult report(DateQueryDto dateQueryDto) {
+        return AjaxResult.success(accountExpenseService.report(dateQueryDto));
+    }
+
+
+}
diff --git a/src/main/java/com/ruoyi/account/controller/AccountFileController.java b/src/main/java/com/ruoyi/account/controller/AccountFileController.java
new file mode 100644
index 0000000..3757bb2
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/controller/AccountFileController.java
@@ -0,0 +1,65 @@
+package com.ruoyi.account.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.pojo.AccountFile;
+import com.ruoyi.account.service.AccountFileService;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import com.ruoyi.quality.service.IQualityInspectFileService;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 璐㈠姟闄勪欢
+ */
+@RestController
+@RequestMapping("/account/accountFile")
+public class AccountFileController {
+
+
+    @Resource
+    private AccountFileService accountFileService;
+
+
+    /**
+     * 鏂板
+     * @param accountFile
+     * @return
+     */
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody AccountFile accountFile) {
+        return AjaxResult.success(accountFileService.save(accountFile));
+    }
+
+    /**
+     * 鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @DeleteMapping("/del")
+    public AjaxResult delAccountFile(@RequestBody List<Integer> ids) {
+        if(CollectionUtils.isEmpty(ids)){
+            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        }
+        //鍒犻櫎妫�楠岄檮浠�
+        return AjaxResult.success(accountFileService.removeBatchByIds(ids));
+    }
+
+    /**
+     *鍒嗛〉鏌ヨ
+     * @param page
+     * @param accountFile
+     * @return
+     */
+    @GetMapping("/listPage")
+    public AjaxResult accountFileListPage(Page page, AccountFile accountFile) {
+        return AjaxResult.success(accountFileService.accountFileListPage(page, accountFile));
+    }
+
+
+
+
+}
diff --git a/src/main/java/com/ruoyi/account/controller/AccountIncomeController.java b/src/main/java/com/ruoyi/account/controller/AccountIncomeController.java
new file mode 100644
index 0000000..68e50f7
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/controller/AccountIncomeController.java
@@ -0,0 +1,105 @@
+package com.ruoyi.account.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.pojo.AccountIncome;
+import com.ruoyi.account.service.AccountFileService;
+import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import com.ruoyi.quality.pojo.QualityInspectParam;
+import com.ruoyi.quality.service.IQualityInspectFileService;
+import com.ruoyi.quality.service.IQualityInspectParamService;
+import com.ruoyi.quality.service.IQualityInspectService;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 璐㈠姟绠$悊--鏀跺叆绠$悊
+ */
+@RestController
+@RequestMapping("/account/accountIncome")
+public class AccountIncomeController {
+
+    @Resource
+    private AccountIncomeService accountIncomeService;
+
+
+    /**
+     * 鏂板
+     * @param accountIncome
+     * @return
+     */
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody AccountIncome accountIncome) {
+        accountIncome.setInputTime(new Date());
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        accountIncome.setInputUser(loginUser.getNickName());
+        return AjaxResult.success(accountIncomeService.save(accountIncome));
+    }
+
+    /**
+     * 鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @DeleteMapping("/del")
+    public AjaxResult delQualityInspect(@RequestBody List<Integer> ids) {
+        if(CollectionUtils.isEmpty(ids)){
+            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        }
+        //鍒犻櫎妫�楠屽崟
+        return AjaxResult.success(accountIncomeService.removeBatchByIds(ids));
+    }
+
+    /**
+     * 淇敼
+     * @param accountIncome
+     * @return
+     */
+    @PostMapping("/update")
+    public AjaxResult update(@RequestBody AccountIncome accountIncome) {
+        return AjaxResult.success(accountIncomeService.updateById(accountIncome));
+    }
+
+    /**
+     *鍒嗛〉鏌ヨ
+     * @param page
+     * @param accountIncome
+     * @return
+     */
+    @GetMapping("/listPage")
+    public AjaxResult accountIncomeListPage(Page page, AccountIncome accountIncome) {
+        return AjaxResult.success(accountIncomeService.accountIncomeListPage(page, accountIncome));
+    }
+
+    /**
+     * 璇︽儏
+     * @param id
+     * @return
+     */
+    @GetMapping("/{id}")
+    public AjaxResult accountIncomeDetail(@PathVariable("id") Integer id) {
+        return AjaxResult.success(accountIncomeService.getById(id));
+    }
+
+    /**
+     * 瀵煎嚭
+     * @param response
+     * @param accountIncome
+     */
+    @PostMapping("/export")
+    public void accountIncomeExport(HttpServletResponse response,AccountIncome accountIncome) {
+        accountIncomeService.accountIncomeExport(response, accountIncome);
+    }
+
+
+}
diff --git a/src/main/java/com/ruoyi/account/dto/AccountDto.java b/src/main/java/com/ruoyi/account/dto/AccountDto.java
new file mode 100644
index 0000000..c8e0d06
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/dto/AccountDto.java
@@ -0,0 +1,69 @@
+package com.ruoyi.account.dto;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.account.pojo.AccountExpense;
+import com.ruoyi.account.pojo.AccountIncome;
+import com.ruoyi.dto.DateQueryDto;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 璐㈠姟绠$悊--璐㈠姟鎶ヨ〃
+ */
+
+@Data
+public class AccountDto implements Serializable {
+
+
+    /**
+     * 鎬绘敹鍏�
+     */
+    private BigDecimal totalIncome;
+
+    /**
+     * 鍚勭被鍨嬫敹鍏ラ噾棰�(閿�鍞敹鍏ワ紝鏈嶅姟鏀跺叆锛屽叾浠栨敹鍏�)
+     */
+    private List<AccountDto2> incomeType;
+
+
+    /**
+     * 鏀跺叆绗旀暟
+     */
+    private Long incomeNumber;
+
+    /**
+     * 鎬绘敮鍑�
+     */
+    private BigDecimal totalExpense;
+
+
+    /**
+     * 鍚勭被鍨嬫敮鍑洪噾棰�(鍔炲叕鐢ㄥ搧锛屽憳宸ュ伐璧勶紝宸梾璐癸紝璁惧璐圭敤锛屽叾浠�)
+     */
+    private List<AccountDto2> expenseType;
+
+    /**
+     * 鏀嚭绗旀暟
+     */
+    private Long expenseNumber;
+
+    /**
+     * 鍑�鏀跺叆
+     */
+    private BigDecimal netRevenue;
+
+
+
+
+}
diff --git a/src/main/java/com/ruoyi/account/dto/AccountDto2.java b/src/main/java/com/ruoyi/account/dto/AccountDto2.java
new file mode 100644
index 0000000..169ff81
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/dto/AccountDto2.java
@@ -0,0 +1,35 @@
+package com.ruoyi.account.dto;
+
+import com.ruoyi.account.pojo.AccountExpense;
+import com.ruoyi.account.pojo.AccountIncome;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 璐㈠姟绠$悊--璐㈠姟鎶ヨ〃(绫诲瀷)
+ */
+
+@Data
+public class AccountDto2 implements Serializable {
+
+
+    /**
+     * 绫诲瀷
+     */
+    private String typeName;
+
+
+
+    /**
+     * 閲戦
+     */
+    private BigDecimal account;
+
+
+
+
+
+}
diff --git a/src/main/java/com/ruoyi/account/mapper/AccountExpenseMapper.java b/src/main/java/com/ruoyi/account/mapper/AccountExpenseMapper.java
new file mode 100644
index 0000000..b534736
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/mapper/AccountExpenseMapper.java
@@ -0,0 +1,26 @@
+package com.ruoyi.account.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.dto.AccountDto;
+import com.ruoyi.account.dto.AccountDto2;
+import com.ruoyi.account.pojo.AccountExpense;
+import com.ruoyi.account.pojo.AccountIncome;
+import com.ruoyi.dto.DateQueryDto;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface AccountExpenseMapper extends BaseMapper<AccountExpense> {
+    IPage<AccountExpense> accountExpenseListPage(Page page, @Param("accountExpense") AccountExpense accountExpense);
+
+    List<AccountExpense> accountExpenseExport(@Param("accountExpense") AccountExpense accountExpense);
+
+
+    List<AccountDto2> report(@Param("dateQueryDto") DateQueryDto dateQueryDto);
+}
diff --git a/src/main/java/com/ruoyi/account/mapper/AccountFileMapper.java b/src/main/java/com/ruoyi/account/mapper/AccountFileMapper.java
new file mode 100644
index 0000000..d5b55be
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/mapper/AccountFileMapper.java
@@ -0,0 +1,15 @@
+package com.ruoyi.account.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.pojo.AccountFile;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface AccountFileMapper extends BaseMapper<AccountFile> {
+
+    IPage<AccountFile> accountFileListPage(Page page, @Param("accountFile") AccountFile accountFile);
+}
diff --git a/src/main/java/com/ruoyi/account/mapper/AccountIncomeMapper.java b/src/main/java/com/ruoyi/account/mapper/AccountIncomeMapper.java
new file mode 100644
index 0000000..1d4db3d
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/mapper/AccountIncomeMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.account.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.dto.AccountDto2;
+import com.ruoyi.account.pojo.AccountFile;
+import com.ruoyi.account.pojo.AccountIncome;
+import com.ruoyi.dto.DateQueryDto;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface AccountIncomeMapper extends BaseMapper<AccountIncome> {
+
+    IPage<AccountIncome> accountIncomeListPage(Page page, @Param("accountIncome") AccountIncome accountIncome);
+
+    List<AccountIncome> accountIncomeExport(@Param("accountIncome") AccountIncome accountIncome);
+
+    List<AccountDto2> report(@Param("dateQueryDto") DateQueryDto dateQueryDto);
+}
diff --git a/src/main/java/com/ruoyi/account/pojo/AccountExpense.java b/src/main/java/com/ruoyi/account/pojo/AccountExpense.java
new file mode 100644
index 0000000..f55055b
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/pojo/AccountExpense.java
@@ -0,0 +1,119 @@
+package com.ruoyi.account.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.dto.DateQueryDto;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 璐㈠姟绠$悊--鏀嚭绠$悊
+ * account_expense
+ */
+@TableName(value = "account_expense")
+@Data
+public class AccountExpense extends DateQueryDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鏀嚭鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "鏀嚭鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date expenseDate;
+
+    /**
+     * 鏀嚭绫诲瀷(鍔炲叕鐢ㄥ搧锛屽憳宸ュ伐璧勶紝宸梾璐癸紝璁惧璐圭敤锛屽叾浠�)
+     */
+    @Excel(name = "鏀嚭绫诲瀷",readConverterExp = "0=鍔炲叕鐢ㄥ搧,1=鍛樺伐宸ヨ祫,2=宸梾璐�,3=璁惧璐圭敤,4=鍏朵粬")
+    @NotBlank(message = "鏀嚭绫诲瀷涓嶈兘涓虹┖!!")
+    private String expenseType;
+
+    /**
+     * 渚涘簲鍟嗗悕绉�
+     */
+    @Excel(name = "渚涘簲鍟嗗悕绉�")
+    private String supplierName;
+
+    /**
+     * 鏀嚭閲戦
+     */
+    @Excel(name = "鏀嚭閲戦")
+    private BigDecimal expenseMoney;
+
+    /**
+     * 鏀嚭鎻忚堪
+     */
+    @Excel(name = "鏀嚭鎻忚堪")
+    private String expenseDescribed;
+
+    /**
+     * 浠樻鏂瑰紡(鐜伴噾锛屾敮绁紝閾惰杞处锛屽叾浠�)
+     */
+    @Excel(name = "浠樻鏂瑰紡",readConverterExp = "0=鐜伴噾,1=鏀エ,2=閾惰杞处,3=鍏朵粬")
+    private String expenseMethod;
+
+    /**
+     * 鍙戠エ鍙风爜
+     */
+    @Excel(name = "鍙戠エ鍙风爜")
+    private String invoiceNumber;
+
+    /**
+     * 澶囨敞
+     */
+    @Excel(name = "澶囨敞")
+    private String note;
+
+    /**
+     * 褰曞叆浜哄憳
+     */
+    @Excel(name = "褰曞叆浜哄憳")
+    private String inputUser;
+
+    /**
+     * 褰曞叆鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "褰曞叆鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date inputTime;
+
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+
+}
diff --git a/src/main/java/com/ruoyi/account/pojo/AccountFile.java b/src/main/java/com/ruoyi/account/pojo/AccountFile.java
new file mode 100644
index 0000000..4dad77d
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/pojo/AccountFile.java
@@ -0,0 +1,67 @@
+package com.ruoyi.account.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 璐㈠姟绠$悊--闄勪欢
+ * account_file
+ */
+@TableName(value = "account_file")
+@Data
+public class AccountFile implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "鏂囦欢鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "鏂囦欢璺緞")
+    private String url;
+
+    @ApiModelProperty(value = "鏂囦欢澶у皬")
+    private int fileSize;
+
+    @ApiModelProperty(value = "璐㈠姟ID")
+    @NotBlank(message = "璐㈠姟id涓嶈兘涓虹┖!")
+    private Long accountId;
+
+    /**
+     * 绫诲瀷(鏀跺叆/鏀嚭)
+     */
+    @ApiModelProperty(value = "绫诲瀷(鏀跺叆/鏀嚭)")
+    private String accountType;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+
+}
diff --git a/src/main/java/com/ruoyi/account/pojo/AccountIncome.java b/src/main/java/com/ruoyi/account/pojo/AccountIncome.java
new file mode 100644
index 0000000..e5d6c37
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/pojo/AccountIncome.java
@@ -0,0 +1,119 @@
+package com.ruoyi.account.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.dto.DateQueryDto;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 璐㈠姟绠$悊--鏀跺叆绠$悊
+ * account_income
+ */
+@TableName(value = "account_income")
+@Data
+public class AccountIncome extends DateQueryDto  implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鏀跺叆鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "鏀跺叆鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date incomeDate;
+
+    /**
+     * 鏀跺叆绫诲瀷(閿�鍞敹鍏ワ紝鏈嶅姟鏀跺叆锛屽叾浠栨敹鍏�)
+     */
+    @Excel(name = "鏀跺叆绫诲瀷",readConverterExp = "0=閿�鍞敹鍏�,1=鏈嶅姟鏀跺叆,2=鍏朵粬鏀跺叆")
+    @NotBlank(message = "鏀跺叆绫诲瀷涓嶈兘涓虹┖!!")
+    private String incomeType;
+
+    /**
+     * 瀹㈡埛鍚嶇О
+     */
+    @Excel(name = "瀹㈡埛鍚嶇О")
+    private String customerName;
+
+    /**
+     * 鏀跺叆閲戦
+     */
+    @Excel(name = "鏀跺叆閲戦")
+    private BigDecimal incomeMoney;
+
+    /**
+     * 鏀跺叆鎻忚堪
+     */
+    @Excel(name = "鏀跺叆鎻忚堪")
+    private String incomeDescribed;
+
+    /**
+     * 鏀舵鏂瑰紡(鐜伴噾锛屾敮绁紝閾惰杞处锛屽叾浠�)
+     */
+    @Excel(name = "鏀舵鏂瑰紡",readConverterExp = "0=鐜伴噾,1=鏀エ,2=閾惰杞处,3=鍏朵粬")
+    private String incomeMethod;
+
+    /**
+     * 鍙戠エ鍙风爜
+     */
+    @Excel(name = "鍙戠エ鍙风爜")
+    private String invoiceNumber;
+
+    /**
+     * 澶囨敞
+     */
+    @Excel(name = "澶囨敞")
+    private String note;
+
+    /**
+     * 褰曞叆浜哄憳
+     */
+    @Excel(name = "褰曞叆浜哄憳")
+    private String inputUser;
+
+    /**
+     * 褰曞叆鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "褰曞叆鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date inputTime;
+
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+
+}
diff --git a/src/main/java/com/ruoyi/account/service/AccountExpenseService.java b/src/main/java/com/ruoyi/account/service/AccountExpenseService.java
new file mode 100644
index 0000000..a1f2677
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/service/AccountExpenseService.java
@@ -0,0 +1,20 @@
+package com.ruoyi.account.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.account.dto.AccountDto;
+import com.ruoyi.account.pojo.AccountExpense;
+import com.ruoyi.account.pojo.AccountIncome;
+import com.ruoyi.dto.DateQueryDto;
+
+import javax.servlet.http.HttpServletResponse;
+
+public interface AccountExpenseService extends IService<AccountExpense> {
+
+    IPage<AccountExpense> accountExpenseListPage(Page page, AccountExpense accountExpense);
+
+    void accountExpenseExport(HttpServletResponse response, AccountExpense accountExpense);
+
+    AccountDto report(DateQueryDto dateQueryDto);
+}
diff --git a/src/main/java/com/ruoyi/account/service/AccountFileService.java b/src/main/java/com/ruoyi/account/service/AccountFileService.java
new file mode 100644
index 0000000..fe24512
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/service/AccountFileService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.account.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.account.pojo.AccountFile;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+
+public interface AccountFileService extends IService<AccountFile> {
+
+
+    IPage<AccountFile> accountFileListPage(Page page, AccountFile accountFile);
+}
diff --git a/src/main/java/com/ruoyi/account/service/AccountIncomeService.java b/src/main/java/com/ruoyi/account/service/AccountIncomeService.java
new file mode 100644
index 0000000..a92a51a
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/service/AccountIncomeService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.account.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.account.pojo.AccountFile;
+import com.ruoyi.account.pojo.AccountIncome;
+
+import javax.servlet.http.HttpServletResponse;
+
+public interface AccountIncomeService extends IService<AccountIncome> {
+
+
+    IPage<AccountIncome> accountIncomeListPage(Page page, AccountIncome accountIncome);
+
+    void accountIncomeExport(HttpServletResponse response, AccountIncome accountIncome);
+}
diff --git a/src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java b/src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java
new file mode 100644
index 0000000..f80804d
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java
@@ -0,0 +1,77 @@
+package com.ruoyi.account.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.dto.AccountDto;
+import com.ruoyi.account.dto.AccountDto2;
+import com.ruoyi.account.mapper.AccountExpenseMapper;
+import com.ruoyi.account.mapper.AccountFileMapper;
+import com.ruoyi.account.mapper.AccountIncomeMapper;
+import com.ruoyi.account.pojo.AccountExpense;
+import com.ruoyi.account.pojo.AccountIncome;
+import com.ruoyi.account.service.AccountExpenseService;
+import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.dto.DateQueryDto;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+@AllArgsConstructor
+@Service
+public class AccountExpenseServiceImpl extends ServiceImpl<AccountExpenseMapper, AccountExpense> implements AccountExpenseService {
+
+    private AccountExpenseMapper accountExpenseMapper;
+
+    private AccountIncomeMapper accountIncomeMapper;
+
+
+    //鍒嗛〉鏌ヨ
+    @Override
+    public IPage<AccountExpense> accountExpenseListPage(Page page, AccountExpense accountExpense) {
+        return accountExpenseMapper.accountExpenseListPage(page,accountExpense);
+    }
+
+    //瀵煎嚭
+    @Override
+    public void accountExpenseExport(HttpServletResponse response, AccountExpense accountExpense) {
+        List<AccountExpense> accountExpenses =accountExpenseMapper.accountExpenseExport(accountExpense);
+        ExcelUtil<AccountExpense> util = new ExcelUtil<AccountExpense>(AccountExpense.class);
+        util.exportExcel(response, accountExpenses, "鏀嚭绠$悊瀵煎嚭");
+    }
+
+    //璐㈠姟鎶ヨ〃鍥捐〃
+    @Override
+    public AccountDto report(DateQueryDto dateQueryDto) {
+        AccountDto accountDto = new AccountDto();
+        //鑾峰彇璇ユ鏃堕棿鍐呯殑鎵�鏈夋敹鍏�
+        List<AccountDto2> accountIncomes =accountIncomeMapper.report(dateQueryDto);
+        accountDto.setIncomeType(accountIncomes);
+        Long incomeNumber = accountIncomeMapper.selectCount(Wrappers.<AccountIncome>lambdaQuery()
+                .between(AccountIncome::getIncomeDate, dateQueryDto.getEntryDateStart(), dateQueryDto.getEntryDateEnd()));
+        accountDto.setIncomeNumber(incomeNumber);
+        BigDecimal totalIncome = accountIncomes.stream().map(AccountDto2::getAccount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        accountDto.setTotalIncome(totalIncome);
+        //鑾峰彇璇ユ鏃堕棿鍐呯殑鎵�鏈夋敮鍑�
+        List<AccountDto2> accountExpenses =accountExpenseMapper.report(dateQueryDto);
+        accountDto.setExpenseType(accountExpenses);
+        Long expenseNumber = accountExpenseMapper.selectCount(Wrappers.<AccountExpense>lambdaQuery()
+                .between(AccountExpense::getExpenseDate, dateQueryDto.getEntryDateStart(), dateQueryDto.getEntryDateEnd()));
+        accountDto.setExpenseNumber(expenseNumber);
+        BigDecimal totalExpense = accountExpenses.stream().map(AccountDto2::getAccount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        accountDto.setTotalExpense(totalExpense);
+        //鍑�鏀跺叆
+        BigDecimal netRevenue = totalIncome.subtract(totalExpense);
+        accountDto.setNetRevenue(netRevenue);
+        return accountDto;
+    }
+
+
+}
diff --git a/src/main/java/com/ruoyi/account/service/impl/AccountFileServiceImpl.java b/src/main/java/com/ruoyi/account/service/impl/AccountFileServiceImpl.java
new file mode 100644
index 0000000..b1e8f84
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/service/impl/AccountFileServiceImpl.java
@@ -0,0 +1,27 @@
+package com.ruoyi.account.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.mapper.AccountFileMapper;
+import com.ruoyi.account.pojo.AccountFile;
+import com.ruoyi.account.service.AccountFileService;
+import com.ruoyi.quality.mapper.QualityInspectFileMapper;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import com.ruoyi.quality.service.IQualityInspectFileService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+@AllArgsConstructor
+@Service
+public class AccountFileServiceImpl extends ServiceImpl<AccountFileMapper, AccountFile> implements AccountFileService {
+
+    private AccountFileMapper accountFileMapper;
+
+
+    @Override
+    public IPage<AccountFile> accountFileListPage(Page page, AccountFile accountFile) {
+        return accountFileMapper.accountFileListPage(page,accountFile);
+    }
+}
diff --git a/src/main/java/com/ruoyi/account/service/impl/AccountIncomeServiceImpl.java b/src/main/java/com/ruoyi/account/service/impl/AccountIncomeServiceImpl.java
new file mode 100644
index 0000000..b43888c
--- /dev/null
+++ b/src/main/java/com/ruoyi/account/service/impl/AccountIncomeServiceImpl.java
@@ -0,0 +1,41 @@
+package com.ruoyi.account.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.mapper.AccountFileMapper;
+import com.ruoyi.account.mapper.AccountIncomeMapper;
+import com.ruoyi.account.pojo.AccountFile;
+import com.ruoyi.account.pojo.AccountIncome;
+import com.ruoyi.account.service.AccountFileService;
+import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.quality.pojo.QualityInspect;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+@AllArgsConstructor
+@Service
+public class AccountIncomeServiceImpl extends ServiceImpl<AccountIncomeMapper, AccountIncome> implements AccountIncomeService {
+
+    private AccountIncomeMapper accountIncomeMapper;
+
+
+    //鍒嗛〉鏌ヨ
+    @Override
+    public IPage<AccountIncome> accountIncomeListPage(Page page, AccountIncome accountIncome) {
+        return accountIncomeMapper.accountIncomeListPage(page,accountIncome);
+    }
+
+    //瀵煎嚭
+    @Override
+    public void accountIncomeExport(HttpServletResponse response, AccountIncome accountIncome) {
+        List<AccountIncome> accountIncomes =accountIncomeMapper.accountIncomeExport(accountIncome);
+        ExcelUtil<AccountIncome> util = new ExcelUtil<AccountIncome>(AccountIncome.class);
+        util.exportExcel(response, accountIncomes, "鏀跺叆绠$悊瀵煎嚭");
+    }
+}
diff --git a/src/main/resources/mapper/account/AccountExpenseMapper.xml b/src/main/resources/mapper/account/AccountExpenseMapper.xml
new file mode 100644
index 0000000..909f372
--- /dev/null
+++ b/src/main/resources/mapper/account/AccountExpenseMapper.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.account.mapper.AccountExpenseMapper">
+    <select id="accountExpenseListPage" resultType="com.ruoyi.account.pojo.AccountExpense">
+        SELECT
+        *
+        FROM account_expense
+        where
+        1=1
+        <if test="accountExpense.entryDateStart != null and accountExpense.entryDateStart != '' ">
+            AND expense_date &gt;= DATE_FORMAT(#{accountExpense.entryDateStart},'%Y-%m-%d')
+        </if>
+        <if test="accountExpense.entryDateEnd != null and accountExpense.entryDateEnd != '' ">
+            AND  expense_date &lt;= DATE_FORMAT(#{accountExpense.entryDateEnd},'%Y-%m-%d')
+        </if>
+        <if test="accountExpense.expenseType != null and accountExpense.expenseType != '' ">
+            AND expense_type = #{accountExpense.expenseType}
+        </if>
+        <if test="accountExpense.expenseMethod != null and accountExpense.expenseMethod != '' ">
+            AND expense_method = #{accountExpense.expenseMethod}
+        </if>
+    </select>
+    <select id="accountExpenseExport" resultType="com.ruoyi.account.pojo.AccountExpense">
+        SELECT
+        *
+        FROM account_expense
+        where
+        1=1
+        <if test="accountExpense.entryDateStart != null and accountExpense.entryDateStart != '' ">
+            AND expense_date &gt;= DATE_FORMAT(#{accountExpense.entryDateStart},'%Y-%m-%d')
+        </if>
+        <if test="accountExpense.entryDateEnd != null and accountExpense.entryDateEnd != '' ">
+            AND  expense_date &lt;= DATE_FORMAT(#{accountExpense.entryDateEnd},'%Y-%m-%d')
+        </if>
+        <if test="accountExpense.expenseType != null and accountExpense.expenseType != '' ">
+            AND expense_type = #{accountExpense.expenseType}
+        </if>
+        <if test="accountExpense.expenseMethod != null and accountExpense.expenseMethod != '' ">
+            AND expense_method = #{accountExpense.expenseMethod}
+        </if>
+    </select>
+    <select id="report" resultType="com.ruoyi.account.dto.AccountDto2">
+        SELECT
+        sdd.dict_label typeName,
+        sum(expense_money) account
+        FROM account_expense ae
+        left join sys_dict_data sdd on ae.expense_type = sdd.dict_value and  sdd.dict_type='expense_types'
+        where
+        1=1
+        <if test="dateQueryDto.entryDateStart != null and dateQueryDto.entryDateStart != '' ">
+            AND expense_date &gt;= DATE_FORMAT(#{dateQueryDto.entryDateStart},'%Y-%m-%d')
+        </if>
+        <if test="dateQueryDto.entryDateEnd != null and dateQueryDto.entryDateEnd != '' ">
+            AND expense_date &lt;= DATE_FORMAT(#{dateQueryDto.entryDateEnd},'%Y-%m-%d')
+        </if>
+        group by expense_type
+    </select>
+
+</mapper>
diff --git a/src/main/resources/mapper/account/AccountFileMapper.xml b/src/main/resources/mapper/account/AccountFileMapper.xml
new file mode 100644
index 0000000..8def6e1
--- /dev/null
+++ b/src/main/resources/mapper/account/AccountFileMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.account.mapper.AccountFileMapper">
+    <select id="accountFileListPage" resultType="com.ruoyi.account.pojo.AccountFile">
+        SELECT
+        *
+        FROM account_file
+        where
+        1=1
+        <if test="accountFile.name != null and accountFile.name != '' ">
+            AND name = #{accountFile.name}
+        </if>
+        <if test="accountFile.accountType != null and accountFile.accountType != '' ">
+            AND account_type = #{accountFile.accountType}
+        </if>
+    </select>
+</mapper>
diff --git a/src/main/resources/mapper/account/AccountIncomeMapper.xml b/src/main/resources/mapper/account/AccountIncomeMapper.xml
new file mode 100644
index 0000000..bfb6d73
--- /dev/null
+++ b/src/main/resources/mapper/account/AccountIncomeMapper.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.account.mapper.AccountIncomeMapper">
+
+    <select id="accountIncomeListPage" resultType="com.ruoyi.account.pojo.AccountIncome">
+        SELECT
+        *
+        FROM account_income
+        where
+        1=1
+        <if test="accountIncome.entryDateStart != null and accountIncome.entryDateStart != '' ">
+            AND income_date &gt;= DATE_FORMAT(#{accountIncome.entryDateStart},'%Y-%m-%d')
+        </if>
+        <if test="accountIncome.entryDateEnd != null and accountIncome.entryDateEnd != '' ">
+            AND income_date &lt;= DATE_FORMAT(#{accountIncome.entryDateEnd},'%Y-%m-%d')
+        </if>
+        <if test="accountIncome.incomeType != null and accountIncome.incomeType != '' ">
+            AND income_type = #{accountIncome.incomeType}
+        </if>
+        <if test="accountIncome.incomeMethod != null and accountIncome.incomeMethod != '' ">
+            AND income_method = #{accountIncome.incomeMethod}
+        </if>
+    </select>
+    <select id="accountIncomeExport" resultType="com.ruoyi.account.pojo.AccountIncome">
+        SELECT
+        *
+        FROM account_income
+        where
+        1=1
+        <if test="accountIncome.entryDateStart != null and accountIncome.entryDateStart != '' ">
+            AND income_date &gt;= DATE_FORMAT(#{accountIncome.entryDateStart},'%Y-%m-%d')
+        </if>
+        <if test="accountIncome.entryDateEnd != null and accountIncome.entryDateEnd != '' ">
+            AND income_date &lt;= DATE_FORMAT(#{accountIncome.entryDateEnd},'%Y-%m-%d')
+        </if>
+        <if test="accountIncome.incomeType != null and accountIncome.incomeType != '' ">
+            AND income_type = #{accountIncome.incomeType}
+        </if>
+        <if test="accountIncome.incomeMethod != null and accountIncome.incomeMethod != '' ">
+            AND income_method = #{accountIncome.incomeMethod}
+        </if>
+    </select>
+    <select id="report" resultType="com.ruoyi.account.dto.AccountDto2">
+        SELECT
+        sdd.dict_label typeName,
+        sum(income_money) account
+        FROM account_income ai
+        left join sys_dict_data sdd on ai.income_type = sdd.dict_value and  sdd.dict_type='income_types'
+        where
+        1=1
+        <if test="dateQueryDto.entryDateStart != null and dateQueryDto.entryDateStart != '' ">
+            AND income_date &gt;= DATE_FORMAT(#{dateQueryDto.entryDateStart},'%Y-%m-%d')
+        </if>
+        <if test="dateQueryDto.entryDateEnd != null and dateQueryDto.entryDateEnd != '' ">
+            AND income_date &lt;= DATE_FORMAT(#{dateQueryDto.entryDateEnd},'%Y-%m-%d')
+        </if>
+        group by income_type
+    </select>
+</mapper>

--
Gitblit v1.9.3