package com.ruoyi.approve.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.approve.pojo.ApproveProcess; import com.ruoyi.approve.service.IApproveProcessService; import com.ruoyi.approve.bean.vo.ApproveGetAndUpdateVo; import com.ruoyi.approve.bean.vo.ApproveProcessVO; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.security.LoginUser; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.project.system.domain.SysDept; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.List; @RestController @RequestMapping("/approveProcess") @AllArgsConstructor @Tag(name = "审批") public class ApproveProcessController { private IApproveProcessService approveProcessService; /**、 * 获取部门列表 * @return */ @GetMapping("/getDept") public AjaxResult getDept() { Long userId = SecurityUtils.getUserId(); LoginUser user = SecurityUtils.getLoginUser(); Long[] deptIds = SecurityUtils.getDeptId(); List sysDeptList = approveProcessService.selectDeptListByDeptIds(deptIds); return AjaxResult.success(sysDeptList); } /** * 添加审批 * @param approveProcessVO * @return */ @PostMapping("/add") @Transactional(rollbackFor = Exception.class) @Operation(summary = "添加审批") public AjaxResult add(@RequestBody ApproveProcessVO approveProcessVO) throws Exception { if (approveProcessVO == null) { return AjaxResult.warn("参数不能为空"); } approveProcessService.addApprove(approveProcessVO); return AjaxResult.success("添加成功"); } /** * 审批详情 * @param approveGetAndUpdateVo * @return */ @GetMapping("/get") @Operation(summary = "审批详情") public AjaxResult get(ApproveGetAndUpdateVo approveGetAndUpdateVo){ if (approveGetAndUpdateVo.getId() == null || approveGetAndUpdateVo.getId().isEmpty()) { return AjaxResult.warn("参数不能为空"); } return AjaxResult.success(approveProcessService.getApproveById(approveGetAndUpdateVo.getId())); } /** * 更新审批 * @param approveGetAndUpdateVo * @return */ @PostMapping("/update") @Transactional(rollbackFor = Exception.class) @Operation(summary = "更新审批") public AjaxResult update(@RequestBody ApproveGetAndUpdateVo approveGetAndUpdateVo) throws IOException { if (approveGetAndUpdateVo == null) { return AjaxResult.warn("参数不能为空"); } approveProcessService.updateByApproveId(approveGetAndUpdateVo); return AjaxResult.success("操作成功"); } /** * 获取审批列表 * @return */ @GetMapping("/list") @Operation(summary = "获取审批列表") public AjaxResult list(Page page, ApproveProcess approveProcess) { return AjaxResult.success(approveProcessService.listAll(page, approveProcess)); } /** * 删除审批 * @param ids * @return */ @DeleteMapping("/deleteIds") @Operation(summary = "删除审批") @Transactional(rollbackFor = Exception.class) public AjaxResult deleteIds(@RequestBody List ids) { if (ids == null || ids.size() == 0) { return AjaxResult.warn("参数不能为空"); } approveProcessService.delApprove(ids); return AjaxResult.success("操作成功"); } @Operation(summary = "公出管理导出") @PostMapping("/exportOne") public void exportOne(HttpServletResponse response) { List accountExpenses = approveProcessService.list(new LambdaQueryWrapper() .eq(ApproveProcess::getApproveDelete, 0) .eq(ApproveProcess::getApproveType, 1)); ExcelUtil util = new ExcelUtil(ApproveProcess.class); util.exportExcel(response, accountExpenses, "公出管理导出"); } @Operation(summary = "请假管理导出") @PostMapping("/exportTwo") public void exportTwo(HttpServletResponse response) { List accountExpenses = approveProcessService.list(new LambdaQueryWrapper() .eq(ApproveProcess::getApproveDelete, 0) .eq(ApproveProcess::getApproveType, 2)); ExcelUtil util = new ExcelUtil(ApproveProcess.class); util.exportExcel(response, accountExpenses, "请假管理导出"); } @Operation(summary = "出差管理导出") @PostMapping("/exportThree") public void exportThree(HttpServletResponse response) { List accountExpenses = approveProcessService.list(new LambdaQueryWrapper() .eq(ApproveProcess::getApproveDelete, 0) .eq(ApproveProcess::getApproveType, 3)); ExcelUtil util = new ExcelUtil(ApproveProcess.class); util.exportExcel(response, accountExpenses, "出差管理导出"); } @Operation(summary = "报销管理导出") @PostMapping("/exportFour") public void exportFour(HttpServletResponse response) { List accountExpenses = approveProcessService.list(new LambdaQueryWrapper() .eq(ApproveProcess::getApproveDelete, 0) .eq(ApproveProcess::getApproveType, 4)); ExcelUtil util = new ExcelUtil(ApproveProcess.class); util.exportExcel(response, accountExpenses, "报销管理导出"); } @Operation(summary = "采购申请导出") @PostMapping("/exportFive") public void exportFive(HttpServletResponse response) { List accountExpenses = approveProcessService.list(new LambdaQueryWrapper() .eq(ApproveProcess::getApproveDelete, 0) .eq(ApproveProcess::getApproveType, 5)); ExcelUtil util = new ExcelUtil(ApproveProcess.class); util.exportExcel(response, accountExpenses, "采购申请导出"); } @Operation(summary = "协同审批导出") @PostMapping("/exportZero") public void exportZero(HttpServletResponse response) { List accountExpenses = approveProcessService.list(new LambdaQueryWrapper() .eq(ApproveProcess::getApproveDelete, 0) .eq(ApproveProcess::getApproveType, 0)); ExcelUtil util = new ExcelUtil(ApproveProcess.class); util.exportExcel(response, accountExpenses, "协同审批导出"); } @Operation(summary = "危险作业审批导出") @PostMapping("/exportEight") public void exportEight(HttpServletResponse response) { List accountExpenses = approveProcessService.list(new LambdaQueryWrapper() .eq(ApproveProcess::getApproveDelete, 0) .eq(ApproveProcess::getApproveType, 8)); ExcelUtil util = new ExcelUtil(ApproveProcess.class); util.exportExcel(response, accountExpenses, "危险作业审批导出"); } }