package com.klp.hrm.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.stp.StpUtil; import com.klp.common.annotation.Log; import com.klp.common.core.controller.BaseController; import com.klp.common.core.domain.PageQuery; import com.klp.common.core.domain.R; import com.klp.common.core.page.TableDataInfo; import com.klp.common.enums.BusinessType; import com.klp.hrm.domain.bo.HrmFlowTaskBo; import com.klp.hrm.domain.bo.HrmSealStampBo; import com.klp.hrm.domain.vo.HrmFlowTaskVo; import com.klp.hrm.service.IHrmFlowTaskService; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.Arrays; import java.util.List; @Validated @RequiredArgsConstructor @RestController @RequestMapping("/hrm/flow/task") public class HrmFlowTaskController extends BaseController { private final IHrmFlowTaskService service; @SaCheckPermission("hrm:flow:list") @GetMapping("/list") public TableDataInfo list(HrmFlowTaskBo bo, PageQuery pageQuery) { return service.queryPageList(bo, pageQuery); } @SaCheckPermission("hrm:flow:list") @GetMapping("/todo") public R> todo(@RequestParam(required = false) Long assigneeUserId) { HrmFlowTaskBo bo = new HrmFlowTaskBo(); bo.setAssigneeUserId(assigneeUserId != null ? assigneeUserId : StpUtil.getLoginIdAsLong()); bo.setStatus("pending"); return R.ok(service.queryList(bo)); } @SaCheckPermission("hrm:flow:query") @GetMapping("/{taskId}") public R getInfo(@PathVariable @NotNull Long taskId) { return R.ok(service.queryById(taskId)); } @SaCheckPermission("hrm:flow:add") @Log(title = "流程任务", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated @RequestBody HrmFlowTaskBo bo) { return toAjax(service.insertByBo(bo)); } @SaCheckPermission("hrm:flow:edit") @Log(title = "流程任务", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated @RequestBody HrmFlowTaskBo bo) { return toAjax(service.updateByBo(bo)); } @SaCheckPermission("hrm:flow:remove") @Log(title = "流程任务", businessType = BusinessType.DELETE) @DeleteMapping("/{taskIds}") public R remove(@PathVariable @NotEmpty Long[] taskIds) { return toAjax(service.deleteWithValidByIds(Arrays.asList(taskIds), true)); } @SaCheckPermission("hrm:flow:edit") @Log(title = "流程任务审批通过", businessType = BusinessType.UPDATE) @PostMapping("/{taskId}/approve") public R approve(@PathVariable @NotNull Long taskId, @RequestParam(required = false) Long actionUserId, @RequestParam(required = false) String remark, @RequestBody(required = false) HrmSealStampBo stampBo) { return toAjax(service.approve(taskId, actionUserId, remark, stampBo)); } @SaCheckPermission("hrm:flow:edit") @Log(title = "流程任务审批驳回", businessType = BusinessType.UPDATE) @PostMapping("/{taskId}/reject") public R reject(@PathVariable @NotNull Long taskId, @RequestParam(required = false) Long actionUserId, @RequestParam(required = false) String remark) { return toAjax(service.reject(taskId, actionUserId, remark)); } @SaCheckPermission("hrm:flow:edit") @Log(title = "流程任务撤回", businessType = BusinessType.UPDATE) @PostMapping("/{taskId}/withdraw") public R withdraw(@PathVariable @NotNull Long taskId, @RequestParam(required = false) Long actionUserId, @RequestParam(required = false) String remark) { return toAjax(service.withdraw(taskId, actionUserId, remark)); } }