package com.ycl.controller;
|
|
import com.ycl.common.annotation.Log;
|
import com.ycl.common.core.controller.BaseController;
|
import com.ycl.common.core.domain.AjaxResult;
|
import com.ycl.common.core.domain.entity.SysUser;
|
import com.ycl.common.core.page.TableDataInfo;
|
import com.ycl.common.enums.BusinessType;
|
import com.ycl.common.utils.SecurityUtils;
|
import com.ycl.common.utils.poi.ExcelUtil;
|
import com.ycl.system.domain.Leaveapply;
|
import com.ycl.service.ILeaveapplyService;
|
import com.ycl.system.service.ISysUserService;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.RequiredArgsConstructor;
|
import org.flowable.engine.RuntimeService;
|
import org.flowable.engine.TaskService;
|
import org.flowable.engine.runtime.ProcessInstance;
|
import org.flowable.task.api.Task;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 请假Controller
|
*
|
* @author shenzhanwang
|
* @date 2022-04-02
|
*/
|
@Controller
|
@RequiredArgsConstructor
|
@RequestMapping("/leaveapply")
|
public class LeaveapplyController extends BaseController
|
{
|
private static final String prefix = "flowable/leaveapply";
|
|
private final ILeaveapplyService leaveapplyService;
|
|
private final ISysUserService userService;
|
|
private final RuntimeService runtimeService;
|
|
private final TaskService taskService;
|
|
@GetMapping()
|
public String leaveapply()
|
{
|
return prefix + "/leaveapply";
|
}
|
|
/**
|
* 部门领导审批
|
* @return
|
*/
|
@ApiOperation("部门领导审批")
|
@GetMapping("/deptleadercheck")
|
@ResponseBody
|
public AjaxResult deptleadercheck(String taskid)
|
{
|
Task t = taskService.createTaskQuery().taskId(taskid).singleResult();
|
String processId = t.getProcessInstanceId();
|
ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult();
|
if (p != null) {
|
Leaveapply apply = leaveapplyService.selectLeaveapplyById(Long.parseLong(p.getBusinessKey()));
|
return AjaxResult.success(apply);
|
}
|
return AjaxResult.error("流程不存在");
|
}
|
|
/**
|
* 人事审批
|
* @return
|
*/
|
@ApiOperation("人事审批")
|
@GetMapping("/hrcheck")
|
@ResponseBody
|
public AjaxResult hrcheck(String taskid)
|
{
|
Task t = taskService.createTaskQuery().taskId(taskid).singleResult();
|
String processId = t.getProcessInstanceId();
|
ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult();
|
if (p != null) {
|
Leaveapply apply = leaveapplyService.selectLeaveapplyById(Long.parseLong(p.getBusinessKey()));
|
return AjaxResult.success(apply);
|
}
|
return AjaxResult.error("流程不存在");
|
}
|
|
/**
|
* 销假
|
* @return
|
*/
|
@ApiOperation("销假")
|
@GetMapping("/destroyapply")
|
@ResponseBody
|
public AjaxResult destroyapply(String taskid)
|
{
|
Task t = taskService.createTaskQuery().taskId(taskid).singleResult();
|
String processId = t.getProcessInstanceId();
|
ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult();
|
if (p != null) {
|
Leaveapply apply = leaveapplyService.selectLeaveapplyById(Long.parseLong(p.getBusinessKey()));
|
return AjaxResult.success(apply);
|
}
|
return AjaxResult.error("流程不存在");
|
}
|
|
|
/**
|
* 调整申请
|
* @return
|
*/
|
@ApiOperation("调整申请")
|
@GetMapping("/modifyapply")
|
@ResponseBody
|
public AjaxResult modifyapply(String taskid)
|
{
|
Task t = taskService.createTaskQuery().taskId(taskid).singleResult();
|
String processId = t.getProcessInstanceId();
|
ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult();
|
if (p != null) {
|
Leaveapply apply = leaveapplyService.selectLeaveapplyById(Long.parseLong(p.getBusinessKey()));
|
return AjaxResult.success(apply);
|
}
|
return AjaxResult.error("流程不存在");
|
}
|
|
/**
|
* 发起请假申请
|
* 驳回后使用
|
* @return
|
*/
|
@ApiOperation("发起请假申请-驳回后使用")
|
@GetMapping("/addleave")
|
@ResponseBody
|
public AjaxResult addLeave(String taskid)
|
{
|
Task t = taskService.createTaskQuery().taskId(taskid).singleResult();
|
String processId = t.getProcessInstanceId();
|
ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult();
|
if (p != null) {
|
Leaveapply apply = leaveapplyService.selectLeaveapplyById(Long.parseLong(p.getBusinessKey()));
|
return AjaxResult.success(apply);
|
}
|
return AjaxResult.error("流程不存在");
|
}
|
|
/**
|
* 查询请假列表
|
*/
|
@PostMapping("/list")
|
@ResponseBody
|
public TableDataInfo list(Leaveapply leaveapply)
|
{
|
String username = getUsername();
|
leaveapply.setUserId(username);
|
startPage();
|
List<Leaveapply> list = leaveapplyService.selectLeaveapplyList(leaveapply);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出请假列表
|
*/
|
@Log(title = "请假", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
@ResponseBody
|
public AjaxResult export(Leaveapply leaveapply)
|
{
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
String username = getUsername();
|
leaveapply.setUserId(username);
|
List<Leaveapply> list = leaveapplyService.selectLeaveapplyList(leaveapply);
|
ExcelUtil<Leaveapply> util = new ExcelUtil<Leaveapply>(Leaveapply.class);
|
return util.exportExcel(list, "请假数据");
|
}
|
|
/**
|
* 当前登录用户
|
*/
|
@ApiOperation("当前登录用户")
|
@GetMapping("/cuurentUser")
|
@ResponseBody
|
public AjaxResult cuurentUser()
|
{
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
return AjaxResult.success(user);
|
}
|
|
|
/**
|
* 发起请假流程
|
*/
|
@Log(title = "请假", businessType = BusinessType.INSERT)
|
@PostMapping("/add")
|
@ResponseBody
|
public AjaxResult addSave(Leaveapply leaveapply)
|
{
|
leaveapply.setApplyTime(new Date());
|
return toAjax(leaveapplyService.insertLeaveapply(leaveapply));
|
}
|
|
@PostMapping("/update")
|
@ResponseBody
|
public AjaxResult update(Leaveapply leaveapply)
|
{
|
return toAjax(leaveapplyService.updateLeaveapply(leaveapply));
|
}
|
|
/**
|
* 删除请假
|
*/
|
@Log(title = "请假", businessType = BusinessType.DELETE)
|
@PostMapping( "/remove")
|
@ResponseBody
|
public AjaxResult remove(String ids)
|
{
|
return toAjax(leaveapplyService.deleteLeaveapplyByIds(ids));
|
}
|
|
}
|