Browse Source

feat:流程备份接口,以及流程新增修改人信息。。。

韩帛霖 1 năm trước cách đây
mục cha
commit
a3a2e4f738

+ 0 - 8
mec_dragForm_end.iml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module version="4">
-  <component name="AdditionalModuleElements">
-    <content url="file://$MODULE_DIR$" dumb="true">
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-  </component>
-</module>

+ 0 - 8
mec_process.iml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module version="4">
-  <component name="AdditionalModuleElements">
-    <content url="file://$MODULE_DIR$" dumb="true">
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-  </component>
-</module>

+ 27 - 23
ruoyi-admin/src/main/java/com/ruoyi/web/controller/BpmProcessController.java

@@ -24,24 +24,22 @@ import com.ruoyi.common.core.page.TableDataInfo;
 
 /**
  * 流程定义Controller
- * 
- * @author ruoyi
+ *
+ * @author hzh
  * @date 2023-10-10
  */
 @RestController
 @RequestMapping("/system/process")
-public class BpmProcessController extends BaseController
-{
+public class BpmProcessController extends BaseController {
     @Autowired
     private IBpmProcessService bpmProcessService;
 
     /**
      * 查询流程定义列表
      */
-    @PreAuthorize("@ss.hasPermi('system:process:list')")
+//    @PreAuthorize("@ss.hasPermi('system:process:list')")
     @GetMapping("/list")
-    public TableDataInfo list(BpmProcess bpmProcess)
-    {
+    public TableDataInfo list(BpmProcess bpmProcess) {
         startPage();
         List<BpmProcess> list = bpmProcessService.selectBpmProcessList(bpmProcess);
         return getDataTable(list);
@@ -50,11 +48,10 @@ public class BpmProcessController extends BaseController
     /**
      * 导出流程定义列表
      */
-    @PreAuthorize("@ss.hasPermi('system:process:export')")
+//    @PreAuthorize("@ss.hasPermi('system:process:export')")
     @Log(title = "流程定义", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, BpmProcess bpmProcess)
-    {
+    public void export(HttpServletResponse response, BpmProcess bpmProcess) {
         List<BpmProcess> list = bpmProcessService.selectBpmProcessList(bpmProcess);
         ExcelUtil<BpmProcess> util = new ExcelUtil<BpmProcess>(BpmProcess.class);
         util.exportExcel(response, list, "流程定义数据");
@@ -63,43 +60,50 @@ public class BpmProcessController extends BaseController
     /**
      * 获取流程定义详细信息
      */
-    @PreAuthorize("@ss.hasPermi('system:process:query')")
+//    @PreAuthorize("@ss.hasPermi('system:process:query')")
     @GetMapping(value = "/{processId}")
-    public AjaxResult getInfo(@PathVariable("processId") Long processId)
-    {
+    public AjaxResult getInfo(@PathVariable("processId") Long processId) {
         return success(bpmProcessService.selectBpmProcessByProcessId(processId));
     }
 
     /**
      * 新增流程定义
      */
-    @PreAuthorize("@ss.hasPermi('system:process:add')")
+//    @PreAuthorize("@ss.hasPermi('system:process:add')")
     @Log(title = "流程定义", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody BpmProcess bpmProcess)
-    {
+    public AjaxResult add(@RequestBody BpmProcess bpmProcess) {
         return toAjax(bpmProcessService.insertBpmProcess(bpmProcess));
     }
 
     /**
      * 修改流程定义
      */
-    @PreAuthorize("@ss.hasPermi('system:process:edit')")
+//    @PreAuthorize("@ss.hasPermi('system:process:edit')")
     @Log(title = "流程定义", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody BpmProcess bpmProcess)
-    {
+    public AjaxResult edit(@RequestBody BpmProcess bpmProcess) {
         return toAjax(bpmProcessService.updateBpmProcess(bpmProcess));
     }
 
     /**
      * 删除流程定义
      */
-    @PreAuthorize("@ss.hasPermi('system:process:remove')")
+//    @PreAuthorize("@ss.hasPermi('system:process:remove')")
     @Log(title = "流程定义", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{processIds}")
-    public AjaxResult remove(@PathVariable Long[] processIds)
-    {
+    @DeleteMapping("/{processIds}")
+    public AjaxResult remove(@PathVariable Long[] processIds) {
         return toAjax(bpmProcessService.deleteBpmProcessByProcessIds(processIds));
     }
+
+    /**
+     * 流程备份
+     */
+    @Log(title = "流程定义", businessType = BusinessType.UPDATE)
+    @PutMapping("/bpmBackups")
+    public AjaxResult bpmBackups(BpmProcess bpmProcess) {
+        return toAjax(bpmProcessService.bpmBackups(bpmProcess));
+    }
+
+
 }

+ 1 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/BpmProcessMapper.java

@@ -59,4 +59,5 @@ public interface BpmProcessMapper
      * @return 结果
      */
     public int deleteBpmProcessByProcessIds(Long[] processIds);
+
 }

+ 17 - 10
ruoyi-system/src/main/java/com/ruoyi/system/service/IBpmProcessService.java

@@ -6,15 +6,14 @@ import java.util.List;
 
 /**
  * 流程定义Service接口
- * 
- * @author ruoyi
+ *
+ * @author hzh
  * @date 2023-10-10
  */
-public interface IBpmProcessService 
-{
+public interface IBpmProcessService {
     /**
      * 查询流程定义
-     * 
+     *
      * @param processId 流程定义主键
      * @return 流程定义
      */
@@ -22,7 +21,7 @@ public interface IBpmProcessService
 
     /**
      * 查询流程定义列表
-     * 
+     *
      * @param bpmProcess 流程定义
      * @return 流程定义集合
      */
@@ -30,7 +29,7 @@ public interface IBpmProcessService
 
     /**
      * 新增流程定义
-     * 
+     *
      * @param bpmProcess 流程定义
      * @return 结果
      */
@@ -38,7 +37,7 @@ public interface IBpmProcessService
 
     /**
      * 修改流程定义
-     * 
+     *
      * @param bpmProcess 流程定义
      * @return 结果
      */
@@ -46,7 +45,7 @@ public interface IBpmProcessService
 
     /**
      * 批量删除流程定义
-     * 
+     *
      * @param processIds 需要删除的流程定义主键集合
      * @return 结果
      */
@@ -54,9 +53,17 @@ public interface IBpmProcessService
 
     /**
      * 删除流程定义信息
-     * 
+     *
      * @param processId 流程定义主键
      * @return 结果
      */
     public int deleteBpmProcessByProcessId(Long processId);
+
+    /**
+     * 备份流程
+     *
+     * @param bpmProcess
+     * @return
+     */
+    public int bpmBackups(BpmProcess bpmProcess);
 }

+ 36 - 22
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BpmProcessServiceImpl.java

@@ -1,7 +1,9 @@
 package com.ruoyi.system.service.impl;
 
 import java.util.List;
+
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.entity.BpmProcess;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -10,87 +12,99 @@ import com.ruoyi.system.service.IBpmProcessService;
 
 /**
  * 流程定义Service业务层处理
- * 
- * @author ruoyi
+ *
+ * @author hzh
  * @date 2023-10-10
  */
 @Service
-public class BpmProcessServiceImpl implements IBpmProcessService 
-{
+public class BpmProcessServiceImpl implements IBpmProcessService {
     @Autowired
     private BpmProcessMapper bpmProcessMapper;
 
     /**
      * 查询流程定义
-     * 
+     *
      * @param processId 流程定义主键
      * @return 流程定义
      */
     @Override
-    public BpmProcess selectBpmProcessByProcessId(Long processId)
-    {
+    public BpmProcess selectBpmProcessByProcessId(Long processId) {
         return bpmProcessMapper.selectBpmProcessByProcessId(processId);
     }
 
     /**
      * 查询流程定义列表
-     * 
+     *
      * @param bpmProcess 流程定义
      * @return 流程定义
      */
     @Override
-    public List<BpmProcess> selectBpmProcessList(BpmProcess bpmProcess)
-    {
+    public List<BpmProcess> selectBpmProcessList(BpmProcess bpmProcess) {
         return bpmProcessMapper.selectBpmProcessList(bpmProcess);
     }
 
     /**
      * 新增流程定义
-     * 
+     *
      * @param bpmProcess 流程定义
      * @return 结果
      */
     @Override
-    public int insertBpmProcess(BpmProcess bpmProcess)
-    {
+    public int insertBpmProcess(BpmProcess bpmProcess) {
         bpmProcess.setCreateTime(DateUtils.getNowDate());
+        bpmProcess.setCreateBy(SecurityUtils.getUsername());
+        bpmProcess.setProcessVersion(1L);
         return bpmProcessMapper.insertBpmProcess(bpmProcess);
     }
 
     /**
      * 修改流程定义
-     * 
+     *
      * @param bpmProcess 流程定义
      * @return 结果
      */
     @Override
-    public int updateBpmProcess(BpmProcess bpmProcess)
-    {
+    public int updateBpmProcess(BpmProcess bpmProcess) {
         bpmProcess.setUpdateTime(DateUtils.getNowDate());
+        bpmProcess.setUpdateBy(SecurityUtils.getUsername());
         return bpmProcessMapper.updateBpmProcess(bpmProcess);
     }
 
     /**
      * 批量删除流程定义
-     * 
+     *
      * @param processIds 需要删除的流程定义主键
      * @return 结果
      */
     @Override
-    public int deleteBpmProcessByProcessIds(Long[] processIds)
-    {
+    public int deleteBpmProcessByProcessIds(Long[] processIds) {
         return bpmProcessMapper.deleteBpmProcessByProcessIds(processIds);
     }
 
     /**
      * 删除流程定义信息
-     * 
+     *
      * @param processId 流程定义主键
      * @return 结果
      */
     @Override
-    public int deleteBpmProcessByProcessId(Long processId)
-    {
+    public int deleteBpmProcessByProcessId(Long processId) {
         return bpmProcessMapper.deleteBpmProcessByProcessId(processId);
     }
+
+    /**
+     * 备份
+     * 需要实现历史版本功能 每次进行修改时就是一次版本的更新
+     * 备份可以导出xml文件理论上实现复制流程
+     *
+     * @param bpmProcess
+     * @return
+     */
+    @Override
+    public int bpmBackups(BpmProcess bpmProcess) {
+        bpmProcess.setCreateTime(DateUtils.getNowDate());
+        bpmProcess.setCreateBy(SecurityUtils.getUsername());
+        bpmProcess.setProcessVersion(1L);  // 设置为历史版本,备份状态
+        return bpmProcessMapper.insertBpmProcess(bpmProcess);
+    }
 }

+ 24 - 15
ruoyi-system/src/main/resources/mapper/BpmProcessMapper.xml

@@ -32,20 +32,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectBpmProcessList" parameterType="com.ruoyi.system.entity.BpmProcess" resultMap="BpmProcessResult">
         <include refid="selectBpmProcessVo"/>
-        <where>  
-            <if test="processName != null  and processName != ''"> and process_name like concat('%', #{processName}, '%')</if>
-            <if test="processKey != null  and processKey != ''"> and process_key = #{processKey}</if>
-            <if test="processOpneState != null "> and process_opne_state = #{processOpneState}</if>
-            <if test="processType != null "> and process_type = #{processType}</if>
-            <if test="processDeployTime != null "> and process_deploy_time = #{processDeployTime}</if>
-            <if test="startEventType != null "> and start_event_type = #{startEventType}</if>
-            <if test="note != null  and note != ''"> and note = #{note}</if>
-            <if test="processVersion != null "> and process_version = #{processVersion}</if>
-            <if test="processXml != null  and processXml != ''"> and process_xml = #{processXml}</if>
-            <if test="processJson != null  and processJson != ''"> and process_json = #{processJson}</if>
-            <if test="processXmlContent != null  and processXmlContent != ''"> and process_xml_content = #{processXmlContent}</if>
-            <if test="processXmlPath != null  and processXmlPath != ''"> and process_xml_path = #{processXmlPath}</if>
+        <where>
+            <if test="processName != null  and processName != ''">and process_name like concat('%', #{processName},
+                '%')
+            </if>
+            <if test="processKey != null  and processKey != ''">and process_key = #{processKey}</if>
+            <if test="processOpneState != null ">and process_opne_state = #{processOpneState}</if>
+            <if test="processType != null ">and process_type = #{processType}</if>
+            <if test="processDeployTime != null ">and process_deploy_time = #{processDeployTime}</if>
+            <if test="startEventType != null ">and start_event_type = #{startEventType}</if>
+            <if test="note != null  and note != ''">and note = #{note}</if>
+            <if test="processXml != null  and processXml != ''">and process_xml = #{processXml}</if>
+            <if test="processJson != null  and processJson != ''">and process_json = #{processJson}</if>
+            <if test="processXmlContent != null  and processXmlContent != ''">and process_xml_content =
+                #{processXmlContent}
+            </if>
+            <if test="processXmlPath != null  and processXmlPath != ''">and process_xml_path = #{processXmlPath}</if>
+            and process_version = 0 and del_flag = '0'
         </where>
+        order by create_time desc
     </select>
     
     <select id="selectBpmProcessByProcessId" parameterType="Long" resultMap="BpmProcessResult">
@@ -123,11 +128,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <delete id="deleteBpmProcessByProcessId" parameterType="Long">
-        delete from bpm_process where process_id = #{processId}
+        update bpm_process
+        set del_flag = '2'
+        where process_id = #{processId}
     </delete>
 
     <delete id="deleteBpmProcessByProcessIds" parameterType="String">
-        delete from bpm_process where process_id in 
+        update bpm_process
+        set del_flag = '2'
+        where process_id in
         <foreach item="processId" collection="array" open="(" separator="," close=")">
             #{processId}
         </foreach>