From f3e2810d94620eebc0c77e68a81561985fb19205 Mon Sep 17 00:00:00 2001 From: 13233904609 <13233904609@163.cm> Date: Wed, 3 Jul 2024 00:08:00 +0800 Subject: [PATCH] wq --- .../ProjectExpenseLogController.java | 137 ++++ .../expenselog/domain/ProjectExpenseLog.java | 143 ++++ .../mapper/ProjectExpenseLogMapper.java | 62 ++ .../service/IProjectExpenseLogService.java | 62 ++ .../impl/ProjectExpenseLogServiceImpl.java | 102 +++ .../ProjectExpenseReportController.java | 105 +++ .../report/domain/ProjectExpenseReport.java | 188 ++++++ .../mapper/ProjectExpenseReportMapper.java | 62 ++ .../service/IProjectExpenseReportService.java | 62 ++ .../impl/ProjectExpenseReportServiceImpl.java | 102 +++ .../expenselog/ProjectExpenseLogMapper.xml | 109 +++ .../report/ProjectExpenseReportMapper.xml | 123 ++++ ruoyi-ui/src/api/expenselog/expenselog.js | 52 ++ ruoyi-ui/src/api/report/report.js | 44 ++ .../src/views/expenselog/expenselog/index.vue | 288 ++++++++ ruoyi-ui/src/views/report/report/index.vue | 618 ++++++++++++++++++ 16 files changed, 2259 insertions(+) create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/expenselog/controller/ProjectExpenseLogController.java create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/expenselog/domain/ProjectExpenseLog.java create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/expenselog/mapper/ProjectExpenseLogMapper.java create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/expenselog/service/IProjectExpenseLogService.java create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/expenselog/service/impl/ProjectExpenseLogServiceImpl.java create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/report/controller/ProjectExpenseReportController.java create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/report/domain/ProjectExpenseReport.java create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/report/mapper/ProjectExpenseReportMapper.java create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/report/service/IProjectExpenseReportService.java create mode 100644 ruoyi-server/src/main/java/com/ruoyi/server/report/service/impl/ProjectExpenseReportServiceImpl.java create mode 100644 ruoyi-server/src/main/resources/mapper/expenselog/ProjectExpenseLogMapper.xml create mode 100644 ruoyi-server/src/main/resources/mapper/report/ProjectExpenseReportMapper.xml create mode 100644 ruoyi-ui/src/api/expenselog/expenselog.js create mode 100644 ruoyi-ui/src/api/report/report.js create mode 100644 ruoyi-ui/src/views/expenselog/expenselog/index.vue create mode 100644 ruoyi-ui/src/views/report/report/index.vue diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/controller/ProjectExpenseLogController.java b/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/controller/ProjectExpenseLogController.java new file mode 100644 index 0000000..ef9e351 --- /dev/null +++ b/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/controller/ProjectExpenseLogController.java @@ -0,0 +1,137 @@ +package com.ruoyi.server.expenselog.controller; + +import java.util.Date; +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.server.expenselog.domain.ProjectExpenseLog; +import com.ruoyi.server.expenselog.service.IProjectExpenseLogService; +import com.ruoyi.server.report.domain.ProjectExpenseReport; +import com.ruoyi.server.report.service.IProjectExpenseReportService; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 费用报销审批记录Controller + * + * @author ruoyi + * @date 2024-07-02 + */ +@RestController +@RequestMapping("/expenselog/expenselog") +public class ProjectExpenseLogController extends BaseController +{ + @Autowired + private IProjectExpenseLogService projectExpenseLogService; + + @Autowired + private IProjectExpenseReportService projectExpenseReportService; + + /** + * 查询费用报销审批记录列表 + */ + @PreAuthorize("@ss.hasPermi('expenselog:expenselog:list')") + @GetMapping("/list") + public TableDataInfo list(ProjectExpenseLog projectExpenseLog) + { + startPage(); + List list = projectExpenseLogService.selectProjectExpenseLogList(projectExpenseLog); + return getDataTable(list); + } + /** + * 查询费用报销审批记录列表 + */ + @PreAuthorize("@ss.hasPermi('expenselog:expenselog:list')") + @GetMapping("/alllist") + public AjaxResult alllist(ProjectExpenseLog projectExpenseLog) + { + List list = projectExpenseLogService.selectProjectExpenseLogList(projectExpenseLog); + return AjaxResult.success(list); + } + + /** + * 导出费用报销审批记录列表 + */ + @PreAuthorize("@ss.hasPermi('expenselog:expenselog:export')") + @Log(title = "费用报销审批记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ProjectExpenseLog projectExpenseLog) + { + List list = projectExpenseLogService.selectProjectExpenseLogList(projectExpenseLog); + ExcelUtil util = new ExcelUtil(ProjectExpenseLog.class); + util.exportExcel(response, list, "费用报销审批记录数据"); + } + + /** + * 获取费用报销审批记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('expenselog:expenselog:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) + { + return success(projectExpenseLogService.selectProjectExpenseLogById(id)); + } + + /** + * 新增费用报销审批记录 + */ + @PreAuthorize("@ss.hasPermi('expenselog:expenselog:add')") + @Log(title = "费用报销审批记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProjectExpenseLog projectExpenseLog) + { + ProjectExpenseReport projectExpenseReport = new ProjectExpenseReport(); + projectExpenseReport.setId(projectExpenseLog.getExpenseId()); + projectExpenseReport.setReportStatus(projectExpenseLog.getReportStatus()); + if("3".equals(projectExpenseLog.getReportStatus())){ + projectExpenseReport.setRejectionReason(projectExpenseLog.getRejectionReason()); + projectExpenseReport.setRejectionTime(new Date()); + } + projectExpenseReportService.updateProjectExpenseReport(projectExpenseReport); + return toAjax(projectExpenseLogService.insertProjectExpenseLog(projectExpenseLog)); + } + + /** + * 修改费用报销审批记录 + */ + @PreAuthorize("@ss.hasPermi('expenselog:expenselog:edit')") + @Log(title = "费用报销审批记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProjectExpenseLog projectExpenseLog) + { + ProjectExpenseReport projectExpenseReport = new ProjectExpenseReport(); + projectExpenseReport.setId(projectExpenseLog.getExpenseId()); + projectExpenseReport.setReportStatus(projectExpenseLog.getReportStatus()); + if("3".equals(projectExpenseLog.getReportStatus())){ + projectExpenseReport.setRejectionReason(projectExpenseLog.getRejectionReason()); + projectExpenseReport.setRejectionTime(new Date()); + } + projectExpenseReportService.updateProjectExpenseReport(projectExpenseReport); + return toAjax(projectExpenseLogService.updateProjectExpenseLog(projectExpenseLog)); + } + + /** + * 删除费用报销审批记录 + */ + @PreAuthorize("@ss.hasPermi('expenselog:expenselog:remove')") + @Log(title = "费用报销审批记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) + { + return toAjax(projectExpenseLogService.deleteProjectExpenseLogByIds(ids)); + } +} diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/domain/ProjectExpenseLog.java b/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/domain/ProjectExpenseLog.java new file mode 100644 index 0000000..98d4b4d --- /dev/null +++ b/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/domain/ProjectExpenseLog.java @@ -0,0 +1,143 @@ +package com.ruoyi.server.expenselog.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 费用报销审批记录对象 project_expense_log + * + * @author ruoyi + * @date 2024-07-02 + */ +public class ProjectExpenseLog extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private String id; + + /** 关联报销记录 */ + @Excel(name = "关联报销记录") + private String expenseId; + + /** 关联报销名称 */ + @Excel(name = "关联报销名称") + private String expenseName; + + /** 状态(1:审批中 2:已通过 3:已驳回) */ + @Excel(name = "状态(1:审批中 2:已通过 3:已驳回)") + private String reportStatus; + + /** 审核人 */ + @Excel(name = "审核人") + private String reviewerId; + + /** 审核时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date reviewTime; + + /** 驳回原因(如果被驳回,可以再次申请) */ + @Excel(name = "驳回原因", readConverterExp = "如=果被驳回,可以再次申请") + private String rejectionReason; + + /** 删除标志(0代表存在 1代表删除) */ + @Excel(name = "删除标志", readConverterExp = "0=代表存在,1=代表删除") + private String status; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setExpenseId(String expenseId) + { + this.expenseId = expenseId; + } + + public String getExpenseId() + { + return expenseId; + } + public void setExpenseName(String expenseName) + { + this.expenseName = expenseName; + } + + public String getExpenseName() + { + return expenseName; + } + public void setReportStatus(String reportStatus) + { + this.reportStatus = reportStatus; + } + + public String getReportStatus() + { + return reportStatus; + } + public void setReviewerId(String reviewerId) + { + this.reviewerId = reviewerId; + } + + public String getReviewerId() + { + return reviewerId; + } + public void setReviewTime(Date reviewTime) + { + this.reviewTime = reviewTime; + } + + public Date getReviewTime() + { + return reviewTime; + } + public void setRejectionReason(String rejectionReason) + { + this.rejectionReason = rejectionReason; + } + + public String getRejectionReason() + { + return rejectionReason; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("expenseId", getExpenseId()) + .append("expenseName", getExpenseName()) + .append("reportStatus", getReportStatus()) + .append("reviewerId", getReviewerId()) + .append("reviewTime", getReviewTime()) + .append("rejectionReason", getRejectionReason()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("status", getStatus()) + .toString(); + } +} diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/mapper/ProjectExpenseLogMapper.java b/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/mapper/ProjectExpenseLogMapper.java new file mode 100644 index 0000000..f2b7590 --- /dev/null +++ b/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/mapper/ProjectExpenseLogMapper.java @@ -0,0 +1,62 @@ +package com.ruoyi.server.expenselog.mapper; + +import com.ruoyi.server.expenselog.domain.ProjectExpenseLog; + +import java.util.List; + +/** + * 费用报销审批记录Mapper接口 + * + * @author ruoyi + * @date 2024-07-02 + */ +public interface ProjectExpenseLogMapper +{ + /** + * 查询费用报销审批记录 + * + * @param id 费用报销审批记录主键 + * @return 费用报销审批记录 + */ + public ProjectExpenseLog selectProjectExpenseLogById(String id); + + /** + * 查询费用报销审批记录列表 + * + * @param projectExpenseLog 费用报销审批记录 + * @return 费用报销审批记录集合 + */ + public List selectProjectExpenseLogList(ProjectExpenseLog projectExpenseLog); + + /** + * 新增费用报销审批记录 + * + * @param projectExpenseLog 费用报销审批记录 + * @return 结果 + */ + public int insertProjectExpenseLog(ProjectExpenseLog projectExpenseLog); + + /** + * 修改费用报销审批记录 + * + * @param projectExpenseLog 费用报销审批记录 + * @return 结果 + */ + public int updateProjectExpenseLog(ProjectExpenseLog projectExpenseLog); + + /** + * 删除费用报销审批记录 + * + * @param id 费用报销审批记录主键 + * @return 结果 + */ + public int deleteProjectExpenseLogById(String id); + + /** + * 批量删除费用报销审批记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProjectExpenseLogByIds(String[] ids); +} diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/service/IProjectExpenseLogService.java b/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/service/IProjectExpenseLogService.java new file mode 100644 index 0000000..a3429e6 --- /dev/null +++ b/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/service/IProjectExpenseLogService.java @@ -0,0 +1,62 @@ +package com.ruoyi.server.expenselog.service; + +import com.ruoyi.server.expenselog.domain.ProjectExpenseLog; + +import java.util.List; + +/** + * 费用报销审批记录Service接口 + * + * @author ruoyi + * @date 2024-07-02 + */ +public interface IProjectExpenseLogService +{ + /** + * 查询费用报销审批记录 + * + * @param id 费用报销审批记录主键 + * @return 费用报销审批记录 + */ + public ProjectExpenseLog selectProjectExpenseLogById(String id); + + /** + * 查询费用报销审批记录列表 + * + * @param projectExpenseLog 费用报销审批记录 + * @return 费用报销审批记录集合 + */ + public List selectProjectExpenseLogList(ProjectExpenseLog projectExpenseLog); + + /** + * 新增费用报销审批记录 + * + * @param projectExpenseLog 费用报销审批记录 + * @return 结果 + */ + public int insertProjectExpenseLog(ProjectExpenseLog projectExpenseLog); + + /** + * 修改费用报销审批记录 + * + * @param projectExpenseLog 费用报销审批记录 + * @return 结果 + */ + public int updateProjectExpenseLog(ProjectExpenseLog projectExpenseLog); + + /** + * 批量删除费用报销审批记录 + * + * @param ids 需要删除的费用报销审批记录主键集合 + * @return 结果 + */ + public int deleteProjectExpenseLogByIds(String[] ids); + + /** + * 删除费用报销审批记录信息 + * + * @param id 费用报销审批记录主键 + * @return 结果 + */ + public int deleteProjectExpenseLogById(String id); +} diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/service/impl/ProjectExpenseLogServiceImpl.java b/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/service/impl/ProjectExpenseLogServiceImpl.java new file mode 100644 index 0000000..fa499ed --- /dev/null +++ b/ruoyi-server/src/main/java/com/ruoyi/server/expenselog/service/impl/ProjectExpenseLogServiceImpl.java @@ -0,0 +1,102 @@ +package com.ruoyi.server.expenselog.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.uuid.IdUtils; +import com.ruoyi.server.expenselog.domain.ProjectExpenseLog; +import com.ruoyi.server.expenselog.mapper.ProjectExpenseLogMapper; +import com.ruoyi.server.expenselog.service.IProjectExpenseLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import static com.ruoyi.common.utils.SecurityUtils.getUsername; + +/** + * 费用报销审批记录Service业务层处理 + * + * @author ruoyi + * @date 2024-07-02 + */ +@Service +public class ProjectExpenseLogServiceImpl implements IProjectExpenseLogService +{ + @Autowired + private ProjectExpenseLogMapper projectExpenseLogMapper; + + /** + * 查询费用报销审批记录 + * + * @param id 费用报销审批记录主键 + * @return 费用报销审批记录 + */ + @Override + public ProjectExpenseLog selectProjectExpenseLogById(String id) + { + return projectExpenseLogMapper.selectProjectExpenseLogById(id); + } + + /** + * 查询费用报销审批记录列表 + * + * @param projectExpenseLog 费用报销审批记录 + * @return 费用报销审批记录 + */ + @Override + public List selectProjectExpenseLogList(ProjectExpenseLog projectExpenseLog) + { + return projectExpenseLogMapper.selectProjectExpenseLogList(projectExpenseLog); + } + + /** + * 新增费用报销审批记录 + * + * @param projectExpenseLog 费用报销审批记录 + * @return 结果 + */ + @Override + public int insertProjectExpenseLog(ProjectExpenseLog projectExpenseLog) + { + projectExpenseLog.setId(IdUtils.simpleUUID()); + projectExpenseLog.setCreateBy(getUsername()); + projectExpenseLog.setCreateTime(DateUtils.getNowDate()); + return projectExpenseLogMapper.insertProjectExpenseLog(projectExpenseLog); + } + + /** + * 修改费用报销审批记录 + * + * @param projectExpenseLog 费用报销审批记录 + * @return 结果 + */ + @Override + public int updateProjectExpenseLog(ProjectExpenseLog projectExpenseLog) + { + projectExpenseLog.setUpdateBy(getUsername()); + projectExpenseLog.setUpdateTime(DateUtils.getNowDate()); + return projectExpenseLogMapper.updateProjectExpenseLog(projectExpenseLog); + } + + /** + * 批量删除费用报销审批记录 + * + * @param ids 需要删除的费用报销审批记录主键 + * @return 结果 + */ + @Override + public int deleteProjectExpenseLogByIds(String[] ids) + { + return projectExpenseLogMapper.deleteProjectExpenseLogByIds(ids); + } + + /** + * 删除费用报销审批记录信息 + * + * @param id 费用报销审批记录主键 + * @return 结果 + */ + @Override + public int deleteProjectExpenseLogById(String id) + { + return projectExpenseLogMapper.deleteProjectExpenseLogById(id); + } +} diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/report/controller/ProjectExpenseReportController.java b/ruoyi-server/src/main/java/com/ruoyi/server/report/controller/ProjectExpenseReportController.java new file mode 100644 index 0000000..665c1ba --- /dev/null +++ b/ruoyi-server/src/main/java/com/ruoyi/server/report/controller/ProjectExpenseReportController.java @@ -0,0 +1,105 @@ +package com.ruoyi.server.report.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.server.report.domain.ProjectExpenseReport; +import com.ruoyi.server.report.service.IProjectExpenseReportService; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 报销费用Controller + * + * @author ruoyi + * @date 2024-07-02 + */ +@RestController +@RequestMapping("/report/report") +public class ProjectExpenseReportController extends BaseController +{ + @Autowired + private IProjectExpenseReportService projectExpenseReportService; + + /** + * 查询报销费用列表 + */ + @PreAuthorize("@ss.hasPermi('report:report:list')") + @GetMapping("/list") + public TableDataInfo list(ProjectExpenseReport projectExpenseReport) + { + startPage(); + List list = projectExpenseReportService.selectProjectExpenseReportList(projectExpenseReport); + return getDataTable(list); + } + + /** + * 导出报销费用列表 + */ + @PreAuthorize("@ss.hasPermi('report:report:export')") + @Log(title = "报销费用", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ProjectExpenseReport projectExpenseReport) + { + List list = projectExpenseReportService.selectProjectExpenseReportList(projectExpenseReport); + ExcelUtil util = new ExcelUtil(ProjectExpenseReport.class); + util.exportExcel(response, list, "报销费用数据"); + } + + /** + * 获取报销费用详细信息 + */ + @PreAuthorize("@ss.hasPermi('report:report:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) + { + return success(projectExpenseReportService.selectProjectExpenseReportById(id)); + } + + /** + * 新增报销费用 + */ + @PreAuthorize("@ss.hasPermi('report:report:add')") + @Log(title = "报销费用", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProjectExpenseReport projectExpenseReport) + { + return toAjax(projectExpenseReportService.insertProjectExpenseReport(projectExpenseReport)); + } + + /** + * 修改报销费用 + */ + @PreAuthorize("@ss.hasPermi('report:report:edit')") + @Log(title = "报销费用", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProjectExpenseReport projectExpenseReport) + { + return toAjax(projectExpenseReportService.updateProjectExpenseReport(projectExpenseReport)); + } + + /** + * 删除报销费用 + */ + @PreAuthorize("@ss.hasPermi('report:report:remove')") + @Log(title = "报销费用", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) + { + return toAjax(projectExpenseReportService.deleteProjectExpenseReportByIds(ids)); + } +} diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/report/domain/ProjectExpenseReport.java b/ruoyi-server/src/main/java/com/ruoyi/server/report/domain/ProjectExpenseReport.java new file mode 100644 index 0000000..2785a80 --- /dev/null +++ b/ruoyi-server/src/main/java/com/ruoyi/server/report/domain/ProjectExpenseReport.java @@ -0,0 +1,188 @@ +package com.ruoyi.server.report.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 报销费用对象 project_expense_report + * + * @author ruoyi + * @date 2024-07-02 + */ +public class ProjectExpenseReport extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private String id; + + /** 报销总金额 */ + @Excel(name = "报销总金额") + private BigDecimal totalAmount; + + /** 报销人 */ + @Excel(name = "报销人") + private String applicantId; + + /** 报销类别(1:差旅费 2:办公费,3:培训费,4:招待费) */ + @Excel(name = "报销类别", readConverterExp = "1=:差旅费,2=:办公费,3:培训费,4:招待费") + private String expenseCategory; + + /** 报销凭证编号 */ + @Excel(name = "报销凭证编号") + private String voucherNumber; + + /** 申请时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date applicationTime; + + /** 状态(1:审批中 2:已通过 3:已驳回) */ + @Excel(name = "状态(1:审批中 2:已通过 3:已驳回)") + private String reportStatus; + + /** 审核人 */ + @Excel(name = "审核人") + private String reviewerId; + + /** 审核时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date reviewTime; + + /** 驳回原因(如果被驳回,可以再次申请) */ + @Excel(name = "驳回原因", readConverterExp = "如=果被驳回,可以再次申请") + private String rejectionReason; + + /** 驳回时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "驳回时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date rejectionTime; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setTotalAmount(BigDecimal totalAmount) + { + this.totalAmount = totalAmount; + } + + public BigDecimal getTotalAmount() + { + return totalAmount; + } + public void setApplicantId(String applicantId) + { + this.applicantId = applicantId; + } + + public String getApplicantId() + { + return applicantId; + } + public void setExpenseCategory(String expenseCategory) + { + this.expenseCategory = expenseCategory; + } + + public String getExpenseCategory() + { + return expenseCategory; + } + public void setVoucherNumber(String voucherNumber) + { + this.voucherNumber = voucherNumber; + } + + public String getVoucherNumber() + { + return voucherNumber; + } + public void setApplicationTime(Date applicationTime) + { + this.applicationTime = applicationTime; + } + + public Date getApplicationTime() + { + return applicationTime; + } + public void setReportStatus(String reportStatus) + { + this.reportStatus = reportStatus; + } + + public String getReportStatus() + { + return reportStatus; + } + public void setReviewerId(String reviewerId) + { + this.reviewerId = reviewerId; + } + + public String getReviewerId() + { + return reviewerId; + } + public void setReviewTime(Date reviewTime) + { + this.reviewTime = reviewTime; + } + + public Date getReviewTime() + { + return reviewTime; + } + public void setRejectionReason(String rejectionReason) + { + this.rejectionReason = rejectionReason; + } + + public String getRejectionReason() + { + return rejectionReason; + } + public void setRejectionTime(Date rejectionTime) + { + this.rejectionTime = rejectionTime; + } + + public Date getRejectionTime() + { + return rejectionTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("totalAmount", getTotalAmount()) + .append("applicantId", getApplicantId()) + .append("expenseCategory", getExpenseCategory()) + .append("voucherNumber", getVoucherNumber()) + .append("applicationTime", getApplicationTime()) + .append("reportStatus", getReportStatus()) + .append("reviewerId", getReviewerId()) + .append("reviewTime", getReviewTime()) + .append("rejectionReason", getRejectionReason()) + .append("rejectionTime", getRejectionTime()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/report/mapper/ProjectExpenseReportMapper.java b/ruoyi-server/src/main/java/com/ruoyi/server/report/mapper/ProjectExpenseReportMapper.java new file mode 100644 index 0000000..25f6098 --- /dev/null +++ b/ruoyi-server/src/main/java/com/ruoyi/server/report/mapper/ProjectExpenseReportMapper.java @@ -0,0 +1,62 @@ +package com.ruoyi.server.report.mapper; + +import com.ruoyi.server.report.domain.ProjectExpenseReport; + +import java.util.List; + +/** + * 报销费用Mapper接口 + * + * @author ruoyi + * @date 2024-07-02 + */ +public interface ProjectExpenseReportMapper +{ + /** + * 查询报销费用 + * + * @param id 报销费用主键 + * @return 报销费用 + */ + public ProjectExpenseReport selectProjectExpenseReportById(String id); + + /** + * 查询报销费用列表 + * + * @param projectExpenseReport 报销费用 + * @return 报销费用集合 + */ + public List selectProjectExpenseReportList(ProjectExpenseReport projectExpenseReport); + + /** + * 新增报销费用 + * + * @param projectExpenseReport 报销费用 + * @return 结果 + */ + public int insertProjectExpenseReport(ProjectExpenseReport projectExpenseReport); + + /** + * 修改报销费用 + * + * @param projectExpenseReport 报销费用 + * @return 结果 + */ + public int updateProjectExpenseReport(ProjectExpenseReport projectExpenseReport); + + /** + * 删除报销费用 + * + * @param id 报销费用主键 + * @return 结果 + */ + public int deleteProjectExpenseReportById(String id); + + /** + * 批量删除报销费用 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProjectExpenseReportByIds(String[] ids); +} diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/report/service/IProjectExpenseReportService.java b/ruoyi-server/src/main/java/com/ruoyi/server/report/service/IProjectExpenseReportService.java new file mode 100644 index 0000000..a1bbfb9 --- /dev/null +++ b/ruoyi-server/src/main/java/com/ruoyi/server/report/service/IProjectExpenseReportService.java @@ -0,0 +1,62 @@ +package com.ruoyi.server.report.service; + +import com.ruoyi.server.report.domain.ProjectExpenseReport; + +import java.util.List; + +/** + * 报销费用Service接口 + * + * @author ruoyi + * @date 2024-07-02 + */ +public interface IProjectExpenseReportService +{ + /** + * 查询报销费用 + * + * @param id 报销费用主键 + * @return 报销费用 + */ + public ProjectExpenseReport selectProjectExpenseReportById(String id); + + /** + * 查询报销费用列表 + * + * @param projectExpenseReport 报销费用 + * @return 报销费用集合 + */ + public List selectProjectExpenseReportList(ProjectExpenseReport projectExpenseReport); + + /** + * 新增报销费用 + * + * @param projectExpenseReport 报销费用 + * @return 结果 + */ + public int insertProjectExpenseReport(ProjectExpenseReport projectExpenseReport); + + /** + * 修改报销费用 + * + * @param projectExpenseReport 报销费用 + * @return 结果 + */ + public int updateProjectExpenseReport(ProjectExpenseReport projectExpenseReport); + + /** + * 批量删除报销费用 + * + * @param ids 需要删除的报销费用主键集合 + * @return 结果 + */ + public int deleteProjectExpenseReportByIds(String[] ids); + + /** + * 删除报销费用信息 + * + * @param id 报销费用主键 + * @return 结果 + */ + public int deleteProjectExpenseReportById(String id); +} diff --git a/ruoyi-server/src/main/java/com/ruoyi/server/report/service/impl/ProjectExpenseReportServiceImpl.java b/ruoyi-server/src/main/java/com/ruoyi/server/report/service/impl/ProjectExpenseReportServiceImpl.java new file mode 100644 index 0000000..f9ae8a3 --- /dev/null +++ b/ruoyi-server/src/main/java/com/ruoyi/server/report/service/impl/ProjectExpenseReportServiceImpl.java @@ -0,0 +1,102 @@ +package com.ruoyi.server.report.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.uuid.IdUtils; +import com.ruoyi.server.report.domain.ProjectExpenseReport; +import com.ruoyi.server.report.mapper.ProjectExpenseReportMapper; +import com.ruoyi.server.report.service.IProjectExpenseReportService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import static com.ruoyi.common.utils.SecurityUtils.getUsername; + +/** + * 报销费用Service业务层处理 + * + * @author ruoyi + * @date 2024-07-02 + */ +@Service +public class ProjectExpenseReportServiceImpl implements IProjectExpenseReportService +{ + @Autowired + private ProjectExpenseReportMapper projectExpenseReportMapper; + + /** + * 查询报销费用 + * + * @param id 报销费用主键 + * @return 报销费用 + */ + @Override + public ProjectExpenseReport selectProjectExpenseReportById(String id) + { + return projectExpenseReportMapper.selectProjectExpenseReportById(id); + } + + /** + * 查询报销费用列表 + * + * @param projectExpenseReport 报销费用 + * @return 报销费用 + */ + @Override + public List selectProjectExpenseReportList(ProjectExpenseReport projectExpenseReport) + { + return projectExpenseReportMapper.selectProjectExpenseReportList(projectExpenseReport); + } + + /** + * 新增报销费用 + * + * @param projectExpenseReport 报销费用 + * @return 结果 + */ + @Override + public int insertProjectExpenseReport(ProjectExpenseReport projectExpenseReport) + { + projectExpenseReport.setId(IdUtils.simpleUUID()); + projectExpenseReport.setCreateBy(getUsername()); + projectExpenseReport.setCreateTime(DateUtils.getNowDate()); + return projectExpenseReportMapper.insertProjectExpenseReport(projectExpenseReport); + } + + /** + * 修改报销费用 + * + * @param projectExpenseReport 报销费用 + * @return 结果 + */ + @Override + public int updateProjectExpenseReport(ProjectExpenseReport projectExpenseReport) + { + projectExpenseReport.setUpdateBy(getUsername()); + projectExpenseReport.setUpdateTime(DateUtils.getNowDate()); + return projectExpenseReportMapper.updateProjectExpenseReport(projectExpenseReport); + } + + /** + * 批量删除报销费用 + * + * @param ids 需要删除的报销费用主键 + * @return 结果 + */ + @Override + public int deleteProjectExpenseReportByIds(String[] ids) + { + return projectExpenseReportMapper.deleteProjectExpenseReportByIds(ids); + } + + /** + * 删除报销费用信息 + * + * @param id 报销费用主键 + * @return 结果 + */ + @Override + public int deleteProjectExpenseReportById(String id) + { + return projectExpenseReportMapper.deleteProjectExpenseReportById(id); + } +} diff --git a/ruoyi-server/src/main/resources/mapper/expenselog/ProjectExpenseLogMapper.xml b/ruoyi-server/src/main/resources/mapper/expenselog/ProjectExpenseLogMapper.xml new file mode 100644 index 0000000..522731a --- /dev/null +++ b/ruoyi-server/src/main/resources/mapper/expenselog/ProjectExpenseLogMapper.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + select id, expense_id, expense_name, report_status, reviewer_id, review_time, rejection_reason, create_by, create_time, update_by, update_time, remark, status from project_expense_log + + + + + + + + insert into project_expense_log + + id, + expense_id, + expense_name, + report_status, + reviewer_id, + review_time, + rejection_reason, + create_by, + create_time, + update_by, + update_time, + remark, + status, + + + #{id}, + #{expenseId}, + #{expenseName}, + #{reportStatus}, + #{reviewerId}, + #{reviewTime}, + #{rejectionReason}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{status}, + + + + + update project_expense_log + + expense_id = #{expenseId}, + expense_name = #{expenseName}, + report_status = #{reportStatus}, + reviewer_id = #{reviewerId}, + review_time = #{reviewTime}, + rejection_reason = #{rejectionReason}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + status = #{status}, + + where id = #{id} + + + + delete from project_expense_log where id = #{id} + + + + delete from project_expense_log where id in + + #{id} + + + diff --git a/ruoyi-server/src/main/resources/mapper/report/ProjectExpenseReportMapper.xml b/ruoyi-server/src/main/resources/mapper/report/ProjectExpenseReportMapper.xml new file mode 100644 index 0000000..c13f254 --- /dev/null +++ b/ruoyi-server/src/main/resources/mapper/report/ProjectExpenseReportMapper.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + select id, total_amount, applicant_id, expense_category, voucher_number, application_time, report_status, reviewer_id, review_time, rejection_reason, rejection_time, create_by, create_time, update_by, update_time, remark from project_expense_report + + + + + + + + insert into project_expense_report + + id, + total_amount, + applicant_id, + expense_category, + voucher_number, + application_time, + report_status, + reviewer_id, + review_time, + rejection_reason, + rejection_time, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{id}, + #{totalAmount}, + #{applicantId}, + #{expenseCategory}, + #{voucherNumber}, + #{applicationTime}, + #{reportStatus}, + #{reviewerId}, + #{reviewTime}, + #{rejectionReason}, + #{rejectionTime}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update project_expense_report + + total_amount = #{totalAmount}, + applicant_id = #{applicantId}, + expense_category = #{expenseCategory}, + voucher_number = #{voucherNumber}, + application_time = #{applicationTime}, + report_status = #{reportStatus}, + reviewer_id = #{reviewerId}, + review_time = #{reviewTime}, + rejection_reason = #{rejectionReason}, + rejection_time = #{rejectionTime}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from project_expense_report where id = #{id} + + + + delete from project_expense_report where id in + + #{id} + + + diff --git a/ruoyi-ui/src/api/expenselog/expenselog.js b/ruoyi-ui/src/api/expenselog/expenselog.js new file mode 100644 index 0000000..b85e857 --- /dev/null +++ b/ruoyi-ui/src/api/expenselog/expenselog.js @@ -0,0 +1,52 @@ +import request from '@/utils/request' + +// 查询费用报销审批记录列表 +export function listExpenselog(query) { + return request({ + url: '/expenselog/expenselog/list', + method: 'get', + params: query + }) +} +// 查询费用报销审批记录列表 +export function listAllExpenselog(query) { + return request({ + url: '/expenselog/expenselog/alllist', + method: 'get', + params: query + }) +} + +// 查询费用报销审批记录详细 +export function getExpenselog(id) { + return request({ + url: '/expenselog/expenselog/' + id, + method: 'get' + }) +} + +// 新增费用报销审批记录 +export function addExpenselog(data) { + return request({ + url: '/expenselog/expenselog', + method: 'post', + data: data + }) +} + +// 修改费用报销审批记录 +export function updateExpenselog(data) { + return request({ + url: '/expenselog/expenselog', + method: 'put', + data: data + }) +} + +// 删除费用报销审批记录 +export function delExpenselog(id) { + return request({ + url: '/expenselog/expenselog/' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/report/report.js b/ruoyi-ui/src/api/report/report.js new file mode 100644 index 0000000..4e3a060 --- /dev/null +++ b/ruoyi-ui/src/api/report/report.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询报销费用列表 +export function listReport(query) { + return request({ + url: '/report/report/list', + method: 'get', + params: query + }) +} + +// 查询报销费用详细 +export function getReport(id) { + return request({ + url: '/report/report/' + id, + method: 'get' + }) +} + +// 新增报销费用 +export function addReport(data) { + return request({ + url: '/report/report', + method: 'post', + data: data + }) +} + +// 修改报销费用 +export function updateReport(data) { + return request({ + url: '/report/report', + method: 'put', + data: data + }) +} + +// 删除报销费用 +export function delReport(id) { + return request({ + url: '/report/report/' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/views/expenselog/expenselog/index.vue b/ruoyi-ui/src/views/expenselog/expenselog/index.vue new file mode 100644 index 0000000..62744e2 --- /dev/null +++ b/ruoyi-ui/src/views/expenselog/expenselog/index.vue @@ -0,0 +1,288 @@ + + + diff --git a/ruoyi-ui/src/views/report/report/index.vue b/ruoyi-ui/src/views/report/report/index.vue new file mode 100644 index 0000000..04eac41 --- /dev/null +++ b/ruoyi-ui/src/views/report/report/index.vue @@ -0,0 +1,618 @@ + + +