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 >= DATE_FORMAT(#{accountExpense.entryDateStart},'%Y-%m-%d') + </if> + <if test="accountExpense.entryDateEnd != null and accountExpense.entryDateEnd != '' "> + AND expense_date <= 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 >= DATE_FORMAT(#{accountExpense.entryDateStart},'%Y-%m-%d') + </if> + <if test="accountExpense.entryDateEnd != null and accountExpense.entryDateEnd != '' "> + AND expense_date <= 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 >= DATE_FORMAT(#{dateQueryDto.entryDateStart},'%Y-%m-%d') + </if> + <if test="dateQueryDto.entryDateEnd != null and dateQueryDto.entryDateEnd != '' "> + AND expense_date <= 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 >= DATE_FORMAT(#{accountIncome.entryDateStart},'%Y-%m-%d') + </if> + <if test="accountIncome.entryDateEnd != null and accountIncome.entryDateEnd != '' "> + AND income_date <= 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 >= DATE_FORMAT(#{accountIncome.entryDateStart},'%Y-%m-%d') + </if> + <if test="accountIncome.entryDateEnd != null and accountIncome.entryDateEnd != '' "> + AND income_date <= 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 >= DATE_FORMAT(#{dateQueryDto.entryDateStart},'%Y-%m-%d') + </if> + <if test="dateQueryDto.entryDateEnd != null and dateQueryDto.entryDateEnd != '' "> + AND income_date <= DATE_FORMAT(#{dateQueryDto.entryDateEnd},'%Y-%m-%d') + </if> + group by income_type + </select> +</mapper> -- Gitblit v1.9.3