Browse Source

流程配置修改

侯茂昌 1 year ago
parent
commit
f2bbf705d5

+ 2 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/BpmProcessConfigurationController.java

@@ -4,6 +4,7 @@ import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.common.annotation.Anonymous;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.entity.vo.NodeVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -115,6 +116,7 @@ public class BpmProcessConfigurationController extends BaseController {
     @PostMapping("/addProcessNodeConfiguration")
     @ApiOperation(value = "新增节点配置")
     public AjaxResult insert(@RequestBody NodeVo nodeVo) {
+        System.out.println(SecurityUtils.getUserId());
         return toAjax(bpmProcessConfigurationService.insertBpmProcessNodeConfig(nodeVo));
     }
 

+ 9 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DataSourceController.java

@@ -1,8 +1,7 @@
 package com.ruoyi.web.controller.system;
-
-import com.ruoyi.common.config.Bpm.config.BpmProperties;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.DataSource;
+import com.ruoyi.common.utils.bpm.BpmUtils;
 import com.ruoyi.system.entity.TableInfo;
 import com.ruoyi.system.service.IDataSourceService;
 import org.springframework.web.bind.annotation.*;
@@ -17,8 +16,6 @@ public class DataSourceController {
     @Resource
     private IDataSourceService dataSourceService;
 
-    @Resource
-    private BpmProperties properties;
 
 
     /**
@@ -47,4 +44,12 @@ public class DataSourceController {
     public List<TableInfo> queryTableInfo(@RequestBody Map<String, Object> map) {
         return dataSourceService.tableFieldInfo(map);
     }
+
+
+    //@GetMapping("/a")
+    //public String[] aa() {
+    //    String mainRolesKeyIp = properties.getMainRolesKeyIp();
+    //    System.out.println(mainRolesKeyIp);
+    //    return BpmUtils.getRoleKeyByUserId(mainRolesKeyIp, 1L);
+    //}
 }

+ 18 - 0
ruoyi-common/src/main/java/com/ruoyi/common/config/Bpm/BpmProperties.java

@@ -0,0 +1,18 @@
+package com.ruoyi.common.config.bpm;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author hmc
+ * @date 2023-11-02 18:07
+ * @Description:
+ */
+@Data
+@Configuration
+public class BpmProperties {
+    //根据用户id查询当前用户所具备的角色key的ip地址 MAIN_ROLESKEY_IP
+    @Value("${parameter.ip.MAIN_ROLESKEY_IP}")
+    private  String mainRolesKeyIp;
+}

+ 10 - 0
ruoyi-system/src/main/java/com/ruoyi/system/entity/vo/NodeVo.java

@@ -17,6 +17,16 @@ public class NodeVo {
     private List<BpmNodeScriptRelevance> bpmNodeScriptRelevanceList;
     // 节点执行用户关系表
     private List<BpmNodeHandleUser> bpmNodeHandleUserList;
+    //  需要删除的节点id
+    private Long[] removeNodeIds;
+
+    public Long[] getRemoveNodeIds() {
+        return removeNodeIds;
+    }
+
+    public void setRemoveNodeIds(Long[] removeNodeIds) {
+        this.removeNodeIds = removeNodeIds;
+    }
 
     @Override
     public String toString() {

+ 3 - 2
ruoyi-system/src/main/java/com/ruoyi/system/mapper/BpmProcessConfigurationMapper.java

@@ -37,12 +37,13 @@ public interface BpmProcessConfigurationMapper {
     public int insertBpmProcessConfiguration(List<BpmProcessConfiguration> bpmProcessConfigurationList);
 
     /**
-     * 修改流程配置
+     * 修改流程配置批量
      *
      * @param bpmProcessConfigurationList 流程配置
      * @return 结果
      */
-    public int updateBpmProcessConfiguration(BpmProcessConfiguration bpmProcessConfigurationList);
+    public int updateBpmProcessConfiguration(BpmProcessConfiguration bpmProcessConfiguration);
+
 
     /**
      * 删除流程配置

+ 45 - 10
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BpmProcessConfigurationServiceImpl.java

@@ -1,10 +1,11 @@
 package com.ruoyi.system.service.impl;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.time.LocalDate;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.entity.BpmNodeHandleUser;
 import com.ruoyi.system.entity.BpmNodeScriptRelevance;
 import com.ruoyi.system.entity.vo.NodeVo;
@@ -12,6 +13,7 @@ import com.ruoyi.system.service.IBpmNodeHandleUserService;
 import com.ruoyi.system.service.IBpmNodeScriptRelevanceService;
 import org.apache.ibatis.session.SqlSession;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.parameters.P;
 import org.springframework.stereotype.Service;
 import com.ruoyi.system.mapper.BpmProcessConfigurationMapper;
 import com.ruoyi.system.entity.BpmProcessConfiguration;
@@ -75,7 +77,7 @@ public class BpmProcessConfigurationServiceImpl implements IBpmProcessConfigurat
      */
     @Override
     public int updateBpmProcessConfiguration(BpmProcessConfiguration bpmProcessConfigurationList) {
-//        bpmProcessConfigurationList.forEach(node -> node.setUpdateTime(DateUtils.getNowDate()));
+         //bpmProcessConfigurationList.forEach(node -> node.setUpdateTime(DateUtils.getNowDate()));
         return bpmProcessConfigurationMapper.updateBpmProcessConfiguration(bpmProcessConfigurationList);
     }
 
@@ -106,6 +108,11 @@ public class BpmProcessConfigurationServiceImpl implements IBpmProcessConfigurat
     public int insertBpmProcessNodeConfig(NodeVo nodeVo) {
         // 新增节点配置
         if (nodeVo.getBpmProcessConfigurationList().size() != 0)
+            nodeVo.getBpmProcessConfigurationList().stream().forEach(e->{
+                e.setCreateById(SecurityUtils.getUserId());
+                e.setCreateBy(SecurityUtils.getUsername());
+                e.setCreateTime(DateUtils.getNowDate());
+            });
             bpmProcessConfigurationMapper.insertBpmProcessConfiguration(nodeVo.getBpmProcessConfigurationList());
         // 新增节点执行用户
         if (nodeVo.getBpmNodeHandleUserList().size() != 0)
@@ -123,21 +130,35 @@ public class BpmProcessConfigurationServiceImpl implements IBpmProcessConfigurat
         if (nodeVo.getBpmProcessConfigurationList().size() != 0) {
             // 定义存储修改操作中新增节点,根据id为null来判断是否新增数据条
             List<BpmProcessConfiguration> addList = new ArrayList<>();
-            List<BpmProcessConfiguration> removeList = new ArrayList<>();
-
+            // List<BpmProcessConfiguration> removeList = new ArrayList<>();
             nodeVo.getBpmProcessConfigurationList().forEach(item -> {
                 if (item.getId() == null) {
+                    // 把需要新增的数据添加到addList集合里边
                     addList.add(item);
-                    removeList.add(item);
                 }
             });
 
-            // 修改操作
-            nodeVo.getBpmProcessConfigurationList().removeAll(removeList);
+            // 从大集合里边移除需要添加的节点
+            nodeVo.getBpmProcessConfigurationList().removeAll(addList);
+
+            //修改操作(一共四个节点、)
+            nodeVo.getBpmProcessConfigurationList().forEach(item->{
+                item.setUpdateTime(DateUtils.getNowDate());
+                item.setUpdateById(SecurityUtils.getUserId());
+                item.setUpdateBy(SecurityUtils.getUsername());
+                bpmProcessConfigurationMapper.updateBpmProcessConfiguration(item);
+            });
 
             // 新增操作
-            if (addList.size() != 0)
+            if (addList.size() != 0){
+                addList.parallelStream().forEach(item->{
+                    item.setCreateTime(DateUtils.getNowDate());
+                    item.setCreateBy(SecurityUtils.getUsername());
+                    item.setCreateById(SecurityUtils.getUserId());
+                });
                 bpmProcessConfigurationMapper.insertBpmProcessConfiguration(addList);
+            }
+
         }
 
         // 修改节点执行用户
@@ -172,6 +193,20 @@ public class BpmProcessConfigurationServiceImpl implements IBpmProcessConfigurat
             if (addList2.size() != 0)
                 iBpmNodeScriptRelevanceService.insertBpmNodeScriptRelevance(addList2);
         }
+        // 删除废弃的节点
+        if(nodeVo.getRemoveNodeIds().length>0){
+            //要删除的节点更新状态
+            for (Long removeNodeId : nodeVo.getRemoveNodeIds()) {
+                BpmProcessConfiguration bpmProcessConfiguration=new BpmProcessConfiguration();
+                bpmProcessConfiguration.setUpdateBy(SecurityUtils.getUsername());
+                bpmProcessConfiguration.setUpdateById(SecurityUtils.getUserId());
+                bpmProcessConfiguration.setUpdateTime(DateUtils.getNowDate());
+                bpmProcessConfiguration.setId(removeNodeId);
+                bpmProcessConfiguration.setDelFlag("2");
+                bpmProcessConfigurationMapper.updateBpmProcessConfiguration(bpmProcessConfiguration);
+            }
+            //bpmProcessConfigurationMapper.deleteBpmProcessConfigurationByIds(nodeVo.getRemoveNodeIds());
+        }
         return 1;
     }
 

+ 16 - 11
ruoyi-system/src/main/resources/mapper/BpmProcessConfigurationMapper.xml

@@ -70,25 +70,29 @@
 
     <insert id="insertBpmProcessConfiguration" parameterType="java.util.List">
         insert into {DBNAME}.bpm_process_configuration(
-        node_key, node_form_key, node_process_key,
+        node_key,node_name,node_form_key, node_process_key,
         node_type, node_before, node_after,
         node_role_permission, spare1, spare2,
-        spare3, del_flag, create_by_id,create_by,
-        create_time,update_by_id,update_by,update_time, remark)
+        spare3, del_flag,create_by_id,create_by,create_time,
+        update_by_id,update_by,update_time, remark)
         values
         <foreach collection="list" item="item" index="index" separator=",">
-            (#{item.nodeKey}, #{item.nodeFormKey}, #{item.nodeProcessKey}, #{item.nodeType}, #{item.nodeBefore},
+            (#{item.nodeKey},#{item.nodeName}, #{item.nodeFormKey}, #{item.nodeProcessKey}, #{item.nodeType}, #{item.nodeBefore},
             #{item.nodeAfter},
-            #{item.nodeRolePermission}, #{item.spare1}, #{item.spare2}, #{item.spare3}, '0',#{item.createById},#{item.createBy},
-            #{item.createTime},#{item.updateById},#{item.updateBy},
+            #{item.nodeRolePermission}, #{item.spare1}, #{item.spare2}, #{item.spare3}, '0',
+            #{item.createById},
+            #{item.createBy},
+            #{item.createTime},
+            #{item.updateById},#{item.updateBy},
             #{item.updateTime},#{item.remark})
         </foreach>
     </insert>
-<!--    &#45;&#45;         <foreach collection="list" item="item" index="index" separator=";">-->
-    <update id="updateBpmProcessConfiguration" parameterType="com.ruoyi.system.entity.BpmProcessConfiguration">
+
+    <update id="updateBpmProcessConfiguration" parameterType="java.util.List">
         update {DBNAME}.bpm_process_configuration
         <trim prefix="SET" suffixOverrides=",">
             <if test="nodeKey != null">node_key = #{nodeKey},</if>
+            <if test="nodeName != null">node_key = #{nodeName},</if>
             <if test="nodeFormKey != null">node_form_key = #{nodeFormKey},</if>
             <if test="nodeProcessKey != null">node_process_key = #{nodeProcessKey},</if>
             <if test="nodeType != null">node_type = #{nodeType},</if>
@@ -108,16 +112,17 @@
             <if test="remark != null">remark = #{remark},</if>
         </trim>
         where id = #{id}
+
     </update>
 
     <delete id="deleteBpmProcessConfigurationById" parameterType="Long">
         update bpm_process_configuration set del_flag = '2' where id = #{id}
     </delete>
 
-    <delete id="deleteBpmProcessConfigurationByIds" parameterType="String">
-        update bpm_process_configuration set del_flag = '2' where id in
+    <update id="deleteBpmProcessConfigurationByIds" parameterType="map">
+        update bpm_process_configuration set del_flag = '2', where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
-    </delete>
+    </update>
 </mapper>