package org.ruoyi.flowable.workflow.controller; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.ruoyi.common.core.domain.R; import org.ruoyi.common.core.utils.MapstructUtils; import org.ruoyi.common.core.validate.QueryGroup; import org.ruoyi.common.excel.utils.ExcelUtil; import org.ruoyi.common.web.core.BaseController; import org.ruoyi.flowable.core.domain.model.PageQuery; import org.ruoyi.flowable.core.page.TableDataInfo; import org.ruoyi.flowable.workflow.domain.WfDeployForm; import org.ruoyi.flowable.workflow.domain.bo.WfFormBo; import org.ruoyi.flowable.workflow.domain.vo.WfFormVo; import org.ruoyi.flowable.workflow.service.IWfDeployFormService; import org.ruoyi.flowable.workflow.service.IWfFormService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; /** * 流程表单Controller * * @author KonBAI * @createTime 2022/3/7 22:07 */ @RequiredArgsConstructor @RestController @RequestMapping("/form") public class WfFormController extends BaseController { private final IWfFormService formService; private final IWfDeployFormService deployFormService; /** * 查询流程表单列表 */ @GetMapping("/list") public TableDataInfo list(@Validated(QueryGroup.class) WfFormBo bo, PageQuery pageQuery) { return formService.queryPageList(bo, pageQuery); } /** * 导出流程表单列表 */ @PostMapping("/export") public void export(@Validated WfFormBo bo, HttpServletResponse response) { List list = formService.queryList(bo); List convert = MapstructUtils.convert(list, WfFormVo.class); ExcelUtil.exportExcel( convert, "流程表单", WfFormVo.class, response); } /** * 获取流程表单详细信息 * @param formId 主键 */ @GetMapping(value = "/{formId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable("formId") Long formId) { return R.ok(formService.queryById(formId)); } /** * 新增流程表单 */ @PostMapping public R add(@RequestBody WfFormBo bo) { return toAjax(formService.insertForm(bo)); } /** * 修改流程表单 */ @PutMapping public R edit(@RequestBody WfFormBo bo) { return toAjax(formService.updateForm(bo)); } /** * 删除流程表单 * @param formIds 主键串 */ @DeleteMapping("/{formIds}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] formIds) { return toAjax(formService.deleteWithValidByIds(Arrays.asList(formIds)) ? 1 : 0); } /** * 挂载流程表单 */ @PostMapping("/addDeployForm") public R addDeployForm(@RequestBody WfDeployForm deployForm) { return toAjax(deployFormService.insertWfDeployForm(deployForm)); } }