package com.klp.hrm.controller; import cn.dev33.satoken.annotation.SaCheckPermission; 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.HrmFlowInstanceBo; import com.klp.hrm.domain.bo.HrmFlowStartBo; import com.klp.hrm.domain.vo.HrmFlowInstanceVo; import com.klp.hrm.service.IHrmFlowInstanceService; 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/instance") public class HrmFlowInstanceController extends BaseController { private final IHrmFlowInstanceService service; @SaCheckPermission("hrm:flow:list") @GetMapping("/list") public TableDataInfo list(HrmFlowInstanceBo bo, PageQuery pageQuery) { return service.queryPageList(bo, pageQuery); } @SaCheckPermission("hrm:flow:query") @GetMapping("/{instId}") public R getInfo(@PathVariable @NotNull Long instId) { return R.ok(service.queryById(instId)); } @SaCheckPermission("hrm:flow:add") @Log(title = "流程实例", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated @RequestBody HrmFlowInstanceBo bo) { return toAjax(service.insertByBo(bo)); } @SaCheckPermission("hrm:flow:edit") @Log(title = "流程实例", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated @RequestBody HrmFlowInstanceBo bo) { return toAjax(service.updateByBo(bo)); } @SaCheckPermission("hrm:flow:remove") @Log(title = "流程实例", businessType = BusinessType.DELETE) @DeleteMapping("/{instIds}") public R remove(@PathVariable @NotEmpty Long[] instIds) { return toAjax(service.deleteWithValidByIds(Arrays.asList(instIds), true)); } @SaCheckPermission("hrm:flow:add") @Log(title = "流程实例启动", businessType = BusinessType.INSERT) @PostMapping("/start") public R start(@Validated @RequestBody HrmFlowStartBo bo) { return R.ok(service.startInstance(bo)); } @SaCheckPermission("hrm:flow:list") @GetMapping("/all") public R> all(HrmFlowInstanceBo bo) { return R.ok(service.queryList(bo)); } }