From 3c8d864b5f68af5167199e0d5c9ff6c0c5852638 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期一, 20 一月 2025 11:35:45 +0800 Subject: [PATCH] !639 发布 5.3.0-BETA 公测版本 Merge pull request !639 from 疯狂的狮子Li/dev --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java | 194 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 194 insertions(+), 0 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java new file mode 100644 index 0000000..10d9de8 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java @@ -0,0 +1,194 @@ +package org.dromara.workflow.controller; + +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +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.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.warm.flow.core.entity.Definition; +import org.dromara.warm.flow.core.service.DefService; +import org.dromara.warm.flow.orm.entity.FlowDefinition; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.vo.FlowDefinitionVo; +import org.dromara.workflow.service.IFlwDefinitionService; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; + +/** + * 娴佺▼瀹氫箟绠$悊 鎺у埗灞� + * + * @author may + */ +@ConditionalOnEnable +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/workflow/definition") +public class FlwDefinitionController extends BaseController { + + private final DefService defService; + private final IFlwDefinitionService flwDefinitionService; + + /** + * 鏌ヨ娴佺▼瀹氫箟鍒楄〃 + * + * @param flowDefinition 鍙傛暟 + * @param pageQuery 鍒嗛〉 + */ + @GetMapping("/list") + public TableDataInfo<FlowDefinitionVo> list(FlowDefinition flowDefinition, PageQuery pageQuery) { + return flwDefinitionService.queryList(flowDefinition, pageQuery); + } + + /** + * 鏌ヨ鏈彂甯冪殑娴佺▼瀹氫箟鍒楄〃 + * + * @param flowDefinition 鍙傛暟 + * @param pageQuery 鍒嗛〉 + */ + @GetMapping("/unPublishList") + public TableDataInfo<FlowDefinitionVo> unPublishList(FlowDefinition flowDefinition, PageQuery pageQuery) { + return flwDefinitionService.unPublishList(flowDefinition, pageQuery); + } + + /** + * 鑾峰彇娴佺▼瀹氫箟璇︾粏淇℃伅 + * + * @param id 娴佺▼瀹氫箟id + */ + @GetMapping(value = "/{id}") + public R<Definition> getInfo(@PathVariable Long id) { + return R.ok(defService.getById(id)); + } + + /** + * 鏂板娴佺▼瀹氫箟 + * + * @param flowDefinition 鍙傛暟 + */ + @Log(title = "娴佺▼瀹氫箟", businessType = BusinessType.INSERT) + @PostMapping + @RepeatSubmit() + @Transactional(rollbackFor = Exception.class) + public R<Boolean> add(@RequestBody FlowDefinition flowDefinition) { + return R.ok(defService.checkAndSave(flowDefinition)); + } + + /** + * 淇敼娴佺▼瀹氫箟 + * + * @param flowDefinition 鍙傛暟 + */ + @Log(title = "娴佺▼瀹氫箟", businessType = BusinessType.UPDATE) + @PutMapping + @RepeatSubmit() + @Transactional(rollbackFor = Exception.class) + public R<Boolean> edit(@RequestBody FlowDefinition flowDefinition) { + return R.ok(defService.updateById(flowDefinition)); + } + + /** + * 鍙戝竷娴佺▼瀹氫箟 + * + * @param id 娴佺▼瀹氫箟id + */ + @Log(title = "娴佺▼瀹氫箟", businessType = BusinessType.INSERT) + @PutMapping("/publish/{id}") + @RepeatSubmit() + public R<Boolean> publish(@PathVariable Long id) { + return R.ok(flwDefinitionService.publish(id)); + } + + /** + * 鍙栨秷鍙戝竷娴佺▼瀹氫箟 + * + * @param id 娴佺▼瀹氫箟id + */ + @Log(title = "娴佺▼瀹氫箟", businessType = BusinessType.INSERT) + @PutMapping("/unPublish/{id}") + @RepeatSubmit() + @Transactional(rollbackFor = Exception.class) + public R<Boolean> unPublish(@PathVariable Long id) { + return R.ok(defService.unPublish(id)); + } + + /** + * 鍒犻櫎娴佺▼瀹氫箟 + */ + @Log(title = "娴佺▼瀹氫箟", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R<Void> remove(@PathVariable List<Long> ids) { + return toAjax(flwDefinitionService.removeDef(ids)); + } + + /** + * 澶嶅埗娴佺▼瀹氫箟 + * + * @param id 娴佺▼瀹氫箟id + */ + @Log(title = "娴佺▼瀹氫箟", businessType = BusinessType.INSERT) + @PostMapping("/copy/{id}") + @RepeatSubmit() + @Transactional(rollbackFor = Exception.class) + public R<Boolean> copy(@PathVariable Long id) { + return R.ok(defService.copyDef(id)); + } + + /** + * 瀵煎叆娴佺▼瀹氫箟 + * + * @param file 鏂囦欢 + * @param category 鍒嗙被 + */ + @Log(title = "娴佺▼瀹氫箟", businessType = BusinessType.IMPORT) + @PostMapping("/importDef") + public R<Boolean> importDef(MultipartFile file, String category) { + return R.ok(flwDefinitionService.importJson(file, category)); + } + + /** + * 瀵煎嚭娴佺▼瀹氫箟 + * + * @param id 娴佺▼瀹氫箟id + * @param response 鍝嶅簲 + * @throws IOException 寮傚父 + */ + @Log(title = "娴佺▼瀹氫箟", businessType = BusinessType.EXPORT) + @PostMapping("/exportDef/{id}") + public void exportDef(@PathVariable Long id, HttpServletResponse response) throws IOException { + flwDefinitionService.exportDef(id, response); + } + + /** + * 鑾峰彇娴佺▼瀹氫箟JSON瀛楃涓� + * + * @param id 娴佺▼瀹氫箟id + */ + @GetMapping("/xmlString/{id}") + public R<String> xmlString(@PathVariable Long id) { + return R.ok("鎿嶄綔鎴愬姛", defService.exportJson(id)); + } + + /** + * 婵�娲�/鎸傝捣娴佺▼瀹氫箟 + * + * @param id 娴佺▼瀹氫箟id + * @param active 婵�娲�/鎸傝捣 + */ + @RepeatSubmit() + @PutMapping("/active/{id}") + @Transactional(rollbackFor = Exception.class) + public R<Boolean> active(@PathVariable Long id, @RequestParam boolean active) { + return R.ok(active ? defService.active(id) : defService.unActive(id)); + } + +} -- Gitblit v1.9.3