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