From f1208474f771a1c233d7425c8ed13fbaa0d521ac Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期三, 12 三月 2025 09:35:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/5.X' into 5.X --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java | 132 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 132 insertions(+), 0 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java new file mode 100644 index 0000000..37d414f --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java @@ -0,0 +1,132 @@ +package org.dromara.workflow.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.lang.tree.Tree; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.web.core.BaseController; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.bo.FlowCategoryBo; +import org.dromara.workflow.domain.vo.FlowCategoryVo; +import org.dromara.workflow.service.IFlwCategoryService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 娴佺▼鍒嗙被 + * + * @author may + */ +@ConditionalOnEnable +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/workflow/category") +public class FlwCategoryController extends BaseController { + + private final IFlwCategoryService flwCategoryService; + + /** + * 鏌ヨ娴佺▼鍒嗙被鍒楄〃 + */ + @SaCheckPermission("workflow:category:list") + @GetMapping("/list") + public R<List<FlowCategoryVo>> list(FlowCategoryBo bo) { + List<FlowCategoryVo> list = flwCategoryService.queryList(bo); + return R.ok(list); + } + + /** + * 瀵煎嚭娴佺▼鍒嗙被鍒楄〃 + */ + @SaCheckPermission("workflow:category:export") + @Log(title = "娴佺▼鍒嗙被", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(FlowCategoryBo bo, HttpServletResponse response) { + List<FlowCategoryVo> list = flwCategoryService.queryList(bo); + ExcelUtil.exportExcel(list, "娴佺▼鍒嗙被", FlowCategoryVo.class, response); + } + + /** + * 鑾峰彇娴佺▼鍒嗙被璇︾粏淇℃伅 + * + * @param categoryId 涓婚敭 + */ + @SaCheckPermission("workflow:category:query") + @GetMapping("/{categoryId}") + public R<FlowCategoryVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖") @PathVariable Long categoryId) { + flwCategoryService.checkCategoryDataScope(categoryId); + return R.ok(flwCategoryService.queryById(categoryId)); + } + + /** + * 鏂板娴佺▼鍒嗙被 + */ + @SaCheckPermission("workflow:category:add") + @Log(title = "娴佺▼鍒嗙被", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R<Void> add(@Validated(AddGroup.class) @RequestBody FlowCategoryBo category) { + if (!flwCategoryService.checkCategoryNameUnique(category)) { + return R.fail("鏂板娴佺▼鍒嗙被'" + category.getCategoryName() + "'澶辫触锛屾祦绋嬪垎绫诲悕绉板凡瀛樺湪"); + } + return toAjax(flwCategoryService.insertByBo(category)); + } + + /** + * 淇敼娴佺▼鍒嗙被 + */ + @SaCheckPermission("workflow:category:edit") + @Log(title = "娴佺▼鍒嗙被", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R<Void> edit(@Validated(EditGroup.class) @RequestBody FlowCategoryBo category) { + Long categoryId = category.getCategoryId(); + flwCategoryService.checkCategoryDataScope(categoryId); + if (!flwCategoryService.checkCategoryNameUnique(category)) { + return R.fail("淇敼娴佺▼鍒嗙被'" + category.getCategoryName() + "'澶辫触锛屾祦绋嬪垎绫诲悕绉板凡瀛樺湪"); + } else if (category.getParentId().equals(categoryId)) { + return R.fail("淇敼娴佺▼鍒嗙被'" + category.getCategoryName() + "'澶辫触锛屼笂绾ф祦绋嬪垎绫讳笉鑳芥槸鑷繁"); + } + return toAjax(flwCategoryService.updateByBo(category)); + } + + /** + * 鍒犻櫎娴佺▼鍒嗙被 + * + * @param categoryId 涓婚敭 + */ + @SaCheckPermission("workflow:category:remove") + @Log(title = "娴佺▼鍒嗙被", businessType = BusinessType.DELETE) + @DeleteMapping("/{categoryId}") + public R<Void> remove(@PathVariable Long categoryId) { + if (flwCategoryService.hasChildByCategoryId(categoryId)) { + return R.warn("瀛樺湪涓嬬骇娴佺▼鍒嗙被,涓嶅厑璁稿垹闄�"); + } + if (flwCategoryService.checkCategoryExistDefinition(categoryId)) { + return R.warn("娴佺▼鍒嗙被瀛樺湪娴佺▼瀹氫箟,涓嶅厑璁稿垹闄�"); + } + return toAjax(flwCategoryService.deleteWithValidById(categoryId)); + } + + /** + * 鑾峰彇娴佺▼鍒嗙被鏍戝垪琛� + * + * @param categoryBo 娴佺▼鍒嗙被 + */ + @GetMapping("/categoryTree") + public R<List<Tree<String>>> categoryTree(FlowCategoryBo categoryBo) { + return R.ok(flwCategoryService.selectCategoryTreeList(categoryBo)); + } + +} -- Gitblit v1.9.3