package com.ruoyi.approve.controller; 
 | 
  
 | 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 
 | 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
 | 
import com.ruoyi.account.pojo.AccountExpense; 
 | 
import com.ruoyi.approve.pojo.ApproveProcess; 
 | 
import com.ruoyi.approve.service.IApproveProcessService; 
 | 
import com.ruoyi.approve.vo.ApproveGetAndUpdateVo; 
 | 
import com.ruoyi.approve.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.annotations.Api; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import java.io.IOException; 
 | 
import java.text.ParseException; 
 | 
import java.util.List; 
 | 
  
 | 
@RestController 
 | 
@RequestMapping("/approveProcess") 
 | 
@Api(tags = "审批") 
 | 
public class ApproveProcessController { 
 | 
  
 | 
    @GetMapping("/test") 
 | 
    public AjaxResult test() { 
 | 
        System.out.println(1111); 
 | 
        return AjaxResult.success("测试"); 
 | 
    } 
 | 
  
 | 
  
 | 
    @Autowired 
 | 
    private IApproveProcessService approveProcessService; 
 | 
    /**、 
 | 
     * 获取部门列表 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping("/getDept") 
 | 
    public AjaxResult getDept() { 
 | 
        Long userId = SecurityUtils.getUserId(); 
 | 
        LoginUser user = SecurityUtils.getLoginUser(); 
 | 
        Long[] deptIds = SecurityUtils.getDeptId(); 
 | 
  
 | 
        List<SysDept> sysDeptList = approveProcessService.selectDeptListByDeptIds(deptIds); 
 | 
        return AjaxResult.success(sysDeptList); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 添加审批 
 | 
     * @param approveProcessVO 
 | 
     * @return 
 | 
     */ 
 | 
    @PostMapping("/add") 
 | 
    @Transactional(rollbackFor = Exception.class) 
 | 
    @ApiOperation(value = "添加审批") 
 | 
    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") 
 | 
    @ApiOperation(value = "审批详情") 
 | 
    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) 
 | 
    @ApiOperation(value = "更新审批") 
 | 
    public AjaxResult update(@RequestBody ApproveGetAndUpdateVo approveGetAndUpdateVo) throws IOException { 
 | 
        if (approveGetAndUpdateVo == null) { 
 | 
            return AjaxResult.warn("参数不能为空"); 
 | 
        } 
 | 
        approveProcessService.updateByApproveId(approveGetAndUpdateVo); 
 | 
        return AjaxResult.success("操作成功"); 
 | 
    } 
 | 
    /** 
 | 
     * 获取审批列表 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping("/list") 
 | 
    @ApiOperation(value = "获取审批列表") 
 | 
    public AjaxResult list(Page page, ApproveProcess approveProcess) { 
 | 
        return AjaxResult.success(approveProcessService.listAll(page, approveProcess)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除审批 
 | 
     * @param ids 
 | 
     * @return 
 | 
     */ 
 | 
    @DeleteMapping("/deleteIds") 
 | 
    @ApiOperation(value = "删除审批") 
 | 
    @Transactional(rollbackFor = Exception.class) 
 | 
    public AjaxResult deleteIds(@RequestBody Long[] ids) { 
 | 
        if (ids == null || ids.length == 0) { 
 | 
            return AjaxResult.warn("参数不能为空"); 
 | 
        } 
 | 
        approveProcessService.delApprove(ids); 
 | 
        return AjaxResult.success("操作成功"); 
 | 
    } 
 | 
  
 | 
    @ApiOperation(value = "公出管理导出") 
 | 
    @PostMapping("/exportOne") 
 | 
    public void exportOne(HttpServletResponse response) { 
 | 
        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>() 
 | 
                .eq(ApproveProcess::getApproveDelete, 0) 
 | 
                .eq(ApproveProcess::getApproveType, 1)); 
 | 
        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class); 
 | 
        util.exportExcel(response, accountExpenses, "公出管理导出"); 
 | 
    } 
 | 
  
 | 
    @ApiOperation(value = "请假管理导出") 
 | 
    @PostMapping("/exportTwo") 
 | 
    public void exportTwo(HttpServletResponse response) { 
 | 
        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>() 
 | 
                .eq(ApproveProcess::getApproveDelete, 0) 
 | 
                .eq(ApproveProcess::getApproveType, 2)); 
 | 
        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class); 
 | 
        util.exportExcel(response, accountExpenses, "请假管理导出"); 
 | 
    } 
 | 
  
 | 
    @ApiOperation(value = "出差管理导出") 
 | 
    @PostMapping("/exportThree") 
 | 
    public void exportThree(HttpServletResponse response) { 
 | 
        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>() 
 | 
                .eq(ApproveProcess::getApproveDelete, 0) 
 | 
                .eq(ApproveProcess::getApproveType, 3)); 
 | 
        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class); 
 | 
        util.exportExcel(response, accountExpenses, "出差管理导出"); 
 | 
    } 
 | 
  
 | 
    @ApiOperation(value = "报销管理导出") 
 | 
    @PostMapping("/exportFour") 
 | 
    public void exportFour(HttpServletResponse response) { 
 | 
        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>() 
 | 
                .eq(ApproveProcess::getApproveDelete, 0) 
 | 
                .eq(ApproveProcess::getApproveType, 4)); 
 | 
        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class); 
 | 
        util.exportExcel(response, accountExpenses, "报销管理导出"); 
 | 
    } 
 | 
  
 | 
    @ApiOperation(value = "采购申请导出") 
 | 
    @PostMapping("/exportFive") 
 | 
    public void exportFive(HttpServletResponse response) { 
 | 
        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>() 
 | 
                .eq(ApproveProcess::getApproveDelete, 0) 
 | 
                .eq(ApproveProcess::getApproveType, 5)); 
 | 
        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class); 
 | 
        util.exportExcel(response, accountExpenses, "采购申请导出"); 
 | 
    } 
 | 
  
 | 
    @ApiOperation(value = "协同审批导出") 
 | 
    @PostMapping("/exportZero") 
 | 
    public void exportZero(HttpServletResponse response) { 
 | 
        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>() 
 | 
                        .eq(ApproveProcess::getApproveDelete, 0) 
 | 
                .eq(ApproveProcess::getApproveType, 0)); 
 | 
        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class); 
 | 
        util.exportExcel(response, accountExpenses, "协同审批导出"); 
 | 
    } 
 | 
} 
 |