home 2 年之前
父节点
当前提交
bced93ec83

+ 2 - 4
hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessNodeService.java

@@ -2,7 +2,6 @@ package com.fjhx.service.process;
 
 import com.fjhx.base.BaseService;
 import com.fjhx.entity.process.ProcessNode;
-import com.fjhx.params.process.ProcessNodeVo;
 
 import java.util.List;
 
@@ -19,9 +18,8 @@ public interface ProcessNodeService extends BaseService<ProcessNode> {
     /**
      * 添加或编辑节点
      *
-     * @param id              流程id
-     * @param processNodeList 节点列表
+     * @param ProcessNodeList 节点列表
      */
-    void addOrEditNodeList(Long id, List<ProcessNodeVo> processNodeList);
+    void addOrEditNodeList(List<ProcessNode> ProcessNodeList);
 
 }

+ 0 - 41
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessInfoServiceImpl.java

@@ -36,9 +36,6 @@ import java.util.Map;
 @Service
 public class ProcessInfoServiceImpl extends ServiceImpl<ProcessInfoMapper, ProcessInfo> implements ProcessInfoService {
 
-    @Autowired
-    private ProcessNodeService processNodeService;
-
     @Override
     public List<ProcessInfo> getList(Map<String, String> condition) {
 
@@ -94,44 +91,6 @@ public class ProcessInfoServiceImpl extends ServiceImpl<ProcessInfoMapper, Proce
     }
 
     /**
-     * 生成默认流程
-     */
-    private ProcessObject createProcess(ProcessInfo processInfo) {
-
-        // 保存流程
-        save(processInfo);
-
-        Long processInfoId = processInfo.getId();
-
-        // 生成默认开始节点
-        ProcessNodeVo startProcessNode = new ProcessNodeVo();
-        startProcessNode.setType(ProcessNodeTypeEnum.START.getType());
-        startProcessNode.setProcessInfoId(processInfoId);
-        startProcessNode.setParentId(CommonConstant.TOP_PARENT_ID);
-        startProcessNode.setName(FlowConstant.START_NAME);
-        startProcessNode.setCode(FlowConstant.START_CODE);
-        startProcessNode.setHandleObjectType(ProcessNodeHandleObjectTypeEnum.ALL.getType());
-        processNodeService.save(startProcessNode);
-
-        // 生成默认结束节点
-        Long startProcessNodeId = startProcessNode.getId();
-        ProcessNodeVo endProcessNode = new ProcessNodeVo();
-        endProcessNode.setType(ProcessNodeTypeEnum.END.getType());
-        endProcessNode.setProcessInfoId(processInfoId);
-        endProcessNode.setParentId(startProcessNodeId);
-        endProcessNode.setName(FlowConstant.END_NAME);
-        endProcessNode.setCode(FlowConstant.END_CODE);
-        processNodeService.save(endProcessNode);
-
-        ProcessObject processObject = new ProcessObject();
-        processObject.setProcessInfo(processInfo);
-        processObject.setProcessNodeList(Arrays.asList(startProcessNode, endProcessNode));
-
-        return processObject;
-
-    }
-
-    /**
      * 获取最新版本号
      *
      * @param code            流程编码

+ 47 - 54
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessNodeServiceImpl.java

@@ -1,6 +1,5 @@
 package com.fjhx.service.process.impl;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.constants.FlowConstant;
@@ -34,26 +33,13 @@ import java.util.stream.Collectors;
 public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, ProcessNode> implements ProcessNodeService {
 
     @Override
-    public void addOrEditNodeList(Long id, List<ProcessNodeVo> processNodeVoList) {
-
-        // 节点集合
-        List<ProcessNode> processNodeList = processNodeVoList.stream().map(processNodeVo -> {
-            // 验证字段
-            verificationField(processNodeVo);
-            // 拷贝对象
-            ProcessNode processNode = BeanUtil.toBean(processNodeVo, ProcessNode.class);
-            // 赋值流程id
-            processNode.setProcessInfoId(id);
-            // 赋值处理对象id集合
-            processNode.setHandleObjectIdSet(String.join(",", processNodeVo.getHandleObjectIdList()));
-            return processNode;
-        }).collect(Collectors.toList());
-
-        // 添加或更新节点
-        saveOrUpdateBatch(processNodeList);
+    public void addOrEditNodeList(List<ProcessNode> ProcessNodeList) {
+
+        // 更新节点
+        updateBatchById(ProcessNodeList);
 
         // 添加节点按钮
-        insertNodeButton(processNodeList);
+        insertNodeButton(ProcessNodeList);
 
     }
 
@@ -63,6 +49,10 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
      */
     private void verificationField(ProcessNodeVo processNodeVo) {
 
+        // 所属租户流程
+        Long processTenantId = processNodeVo.getProcessTenantId();
+        Assert.notEmpty(processTenantId, FlowExplainConstant.PROCESS_TENANT_ID_EMPTY);
+
         // 节点类型
         Integer type = processNodeVo.getType();
         Assert.notEmpty(type, FlowExplainConstant.NODE_TYPE);
@@ -92,10 +82,18 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
      */
     private void insertNodeButton(List<ProcessNode> processNodeList) {
 
-        // 按父级节点分组
+        Long processTenantId = processNodeList.get(0).getProcessTenantId();
+        remove(ProcessNode::getProcessTenantId, processTenantId);
+
+
+        // 按父级节点id分组
         Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId = processNodeList.stream()
                 .collect(Collectors.groupingBy(ProcessNode::getParentId));
 
+        // 按节点id分组
+        Map<Long, List<ProcessNode>> ProcessNodeGroupById = processNodeList.stream()
+                .collect(Collectors.groupingBy(ProcessNode::getId));
+
         for (ProcessNode processNode : processNodeList) {
             Integer type = processNode.getType();
             // 获取节点类型枚举值
@@ -104,12 +102,13 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
             // 根据节点类型生成功能按钮
             List<ProcessNodeButton> processNodeButtonList = new ArrayList<>();
             switch (processNodeTypeEnum) {
+
                 case START: // 开始
                     startHandle(processNodeButtonList, ProcessNodeGroupByParentId, processNode);
                     break;
 
                 case EXAMINED: // 审核
-                    examinedHandle(processNodeButtonList, ProcessNodeGroupByParentId, processNode);
+                    examinedHandle(processNodeButtonList, ProcessNodeGroupById, ProcessNodeGroupByParentId, processNode);
                     break;
 
                 case APPROVAL: // 审批
@@ -135,7 +134,8 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
      * 开始节点处理
      */
     private void startHandle(List<ProcessNodeButton> processNodeButtonList,
-                             Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId, ProcessNode processNode) {
+                             Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId,
+                             ProcessNode processNode) {
         // 下一步
         ProcessNodeButton next = next(ProcessNodeGroupByParentId, processNode, ButtonNameEnum.ADOPT);
         processNodeButtonList.add(next);
@@ -145,12 +145,14 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
      * 审核处理
      */
     private void examinedHandle(List<ProcessNodeButton> processNodeButtonList,
-                                Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId, ProcessNode processNode) {
+                                Map<Long, List<ProcessNode>> ProcessNodeGroupById,
+                                Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId,
+                                ProcessNode processNode) {
         // 通过
         ProcessNodeButton next = next(ProcessNodeGroupByParentId, processNode, ButtonNameEnum.ADOPT);
         processNodeButtonList.add(next);
         // 驳回
-        ProcessNodeButton previous = previous(ProcessNodeGroupByParentId, processNode, ButtonNameEnum.FAIL);
+        ProcessNodeButton previous = previous(ProcessNodeGroupById, processNode, ButtonNameEnum.FAIL);
         processNodeButtonList.add(previous);
     }
 
@@ -158,7 +160,8 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
      * 审批处理
      */
     private void approvalHandle(List<ProcessNodeButton> processNodeButtonList,
-                                Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId, ProcessNode processNode) {
+                                Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId,
+                                ProcessNode processNode) {
         // 同意
         ProcessNodeButton next = next(ProcessNodeGroupByParentId, processNode, ButtonNameEnum.AGREE);
         processNodeButtonList.add(next);
@@ -171,24 +174,38 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
      * 办理处理
      */
     private void handle(List<ProcessNodeButton> processNodeButtonList,
-                        Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId, ProcessNode processNode) {
+                        Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId,
+                        ProcessNode processNode) {
         // 完成
         ProcessNodeButton next = next(ProcessNodeGroupByParentId, processNode, ButtonNameEnum.complete);
         processNodeButtonList.add(next);
     }
 
     /**
+     * 跳转上一节点
+     */
+    private ProcessNodeButton previous(Map<Long, List<ProcessNode>> ProcessNodeGroupById,
+                                       ProcessNode processNode, ButtonNameEnum buttonNameEnum) {
+        ProcessNodeButton processNodeButton = createProcessNodeButton(processNode, buttonNameEnum);
+        // 赋值跳转到上一节点
+        List<ProcessNode> previousProcessNodeList = ProcessNodeGroupById.get(processNode.getParentId());
+        if (previousProcessNodeList == null || previousProcessNodeList.size() != 1) {
+            throw new ServiceException(String.format(FlowExplainConstant.PREVIOUS_ERROR, processNode.getName()));
+        }
+        processNodeButton.setJumpNodeId(previousProcessNodeList.get(0).getId());
+        return processNodeButton;
+    }
+
+    /**
      * 跳转下一节点
      */
     private ProcessNodeButton next(Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId,
                                    ProcessNode processNode, ButtonNameEnum buttonNameEnum) {
-
         ProcessNodeButton processNodeButton = createProcessNodeButton(processNode, buttonNameEnum);
 
         // 赋值跳转到下一节点
         List<ProcessNode> nextProcessNodeList = ProcessNodeGroupByParentId.get(processNode.getId());
-
-        if (nextProcessNodeList == null || nextProcessNodeList.size() == 1) {
+        if (nextProcessNodeList == null || nextProcessNodeList.size() != 1) {
             throw new ServiceException(String.format(FlowExplainConstant.JUMP_EMPTY, processNode.getName()));
         }
 
@@ -198,28 +215,6 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
         } else {
             processNodeButton.setJumpNodeId(itemProcessNode.getId());
         }
-
-        return processNodeButton;
-    }
-
-
-    /**
-     * 跳转上一节点
-     */
-    private ProcessNodeButton previous(Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId,
-                                       ProcessNode processNode, ButtonNameEnum buttonNameEnum) {
-
-        ProcessNodeButton processNodeButton = createProcessNodeButton(processNode, buttonNameEnum);
-
-        // 赋值跳转到上一节点
-        List<ProcessNode> previousProcessNodeList = ProcessNodeGroupByParentId.get(processNode.getParentId());
-
-        if (previousProcessNodeList == null || previousProcessNodeList.size() != 1) {
-            throw new ServiceException(String.format(FlowExplainConstant.PREVIOUS_ERROR, processNode.getName()));
-        }
-
-        processNodeButton.setJumpNodeId(previousProcessNodeList.get(0).getId());
-
         return processNodeButton;
     }
 
@@ -227,9 +222,7 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
      * 结束流程
      */
     private ProcessNodeButton over(ProcessNode processNode, ButtonNameEnum buttonNameEnum) {
-
         ProcessNodeButton processNodeButton = createProcessNodeButton(processNode, buttonNameEnum);
-
         processNodeButton.setJumpNodeId(FlowConstant.OVER_PROCESS_FLAG);
         return processNodeButton;
     }
@@ -239,7 +232,7 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
      */
     private ProcessNodeButton createProcessNodeButton(ProcessNode processNode, ButtonNameEnum buttonNameEnum) {
         ProcessNodeButton processNodeButton = new ProcessNodeButton();
-        processNodeButton.setProcessInfoId(processNode.getProcessInfoId());
+        processNodeButton.setProcessTenantId(processNode.getProcessTenantId());
         processNodeButton.setProcessNodeId(processNode.getId());
         processNodeButton.setProcessNodeCode(processNode.getCode());
         processNodeButton.setNameType(buttonNameEnum.getType());

+ 38 - 1
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessTenantServiceImpl.java

@@ -7,10 +7,16 @@ import com.fjhx.constants.FlowConstant;
 import com.fjhx.constants.FlowExplainConstant;
 import com.fjhx.constants.StatusConstant;
 import com.fjhx.entity.process.ProcessTenant;
+import com.fjhx.enums.ProcessNodeHandleObjectTypeEnum;
+import com.fjhx.enums.ProcessNodeTypeEnum;
 import com.fjhx.mapper.process.ProcessTenantMapper;
+import com.fjhx.params.process.ProcessNodeVo;
+import com.fjhx.service.process.ProcessNodeService;
 import com.fjhx.service.process.ProcessTenantService;
 import com.fjhx.utils.Assert;
+import org.springblade.common.constant.CommonConstant;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -24,6 +30,9 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProcessTenantServiceImpl extends ServiceImpl<ProcessTenantMapper, ProcessTenant> implements ProcessTenantService {
 
+    @Autowired
+    private ProcessNodeService processNodeService;
+
     @Override
     public void add(ProcessTenant processTenant) {
 
@@ -43,7 +52,7 @@ public class ProcessTenantServiceImpl extends ServiceImpl<ProcessTenantMapper, P
 
         int count = count(Wrappers.<ProcessTenant>lambdaQuery()
                 .eq(ProcessTenant::getBindingTenantId, processTenant.getBindingTenantId())
-                .eq(ProcessTenant::getProcessInfoId, processTenant.getProcessInfoId()));
+                .eq(ProcessTenant::getProcessInfoId, processInfoId));
 
         Assert.eqZero(count, FlowExplainConstant.PROCESS_EXIST);
 
@@ -53,8 +62,36 @@ public class ProcessTenantServiceImpl extends ServiceImpl<ProcessTenantMapper, P
 
         save(processTenant);
 
+        createProcess(processTenant.getId());
+
     }
 
+    /**
+     * 生成默认流程
+     */
+    private void createProcess(Long processTenantId) {
+
+        // 生成默认开始节点
+        ProcessNodeVo startProcessNode = new ProcessNodeVo();
+        startProcessNode.setType(ProcessNodeTypeEnum.START.getType());
+        startProcessNode.setProcessTenantId(processTenantId);
+        startProcessNode.setParentId(CommonConstant.TOP_PARENT_ID);
+        startProcessNode.setName(FlowConstant.START_NAME);
+        startProcessNode.setCode(FlowConstant.START_CODE);
+        startProcessNode.setHandleObjectType(ProcessNodeHandleObjectTypeEnum.ALL.getType());
+        processNodeService.save(startProcessNode);
+
+        // 生成默认结束节点
+        Long startProcessNodeId = startProcessNode.getId();
+        ProcessNodeVo endProcessNode = new ProcessNodeVo();
+        endProcessNode.setType(ProcessNodeTypeEnum.END.getType());
+        endProcessNode.setProcessTenantId(processTenantId);
+        endProcessNode.setParentId(startProcessNodeId);
+        endProcessNode.setName(FlowConstant.END_NAME);
+        endProcessNode.setCode(FlowConstant.END_CODE);
+        processNodeService.save(endProcessNode);
+
+    }
 
 
 }

+ 2 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/constants/FlowExplainConstant.java

@@ -35,6 +35,8 @@ public interface FlowExplainConstant {
 
     String NODE_UNKNOWN = "未知节点类型";
 
+    String PROCESS_TENANT_ID_EMPTY = "所属租户流程id不能为空";
+
     /*
      按钮
      */

+ 1 - 1
hx-service-api/service-flow-api/src/main/java/com/fjhx/entity/process/ProcessNode.java

@@ -33,7 +33,7 @@ public class ProcessNode implements Serializable {
     /**
      * 所属流程id
      */
-    private Long processInfoId;
+    private Long processTenantId;
 
     /**
      * 父节点id

+ 1 - 1
hx-service-api/service-flow-api/src/main/java/com/fjhx/entity/process/ProcessNodeButton.java

@@ -28,7 +28,7 @@ public class ProcessNodeButton implements Serializable {
     /**
      * 所属流程id
      */
-    private Long processInfoId;
+    private Long processTenantId;
 
     /**
      * 所属节点id

+ 5 - 5
hx-service/storage/src/main/java/com/fjhx/acc/controller/AccAccountController.java

@@ -2,13 +2,13 @@ package com.fjhx.acc.controller;
 
 import com.fjhx.acc.service.AccAccountService;
 import com.fjhx.params.acc.AccountExcel;
-import lombok.SneakyThrows;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -33,10 +33,10 @@ public class AccAccountController {
         ExcelUtil.export(response, "员工密码", "员工密码", list, AccountExcel.class);
     }
 
-    @GetMapping("/refreshPasswordTest")
-    public void refreshPasswordTest(HttpServletResponse response) {
-        List<AccountExcel> list = accAccountService.refreshPasswordTest();
-        ExcelUtil.export(response, "员工密码", "员工密码", list, AccountExcel.class);
+    @GetMapping("/test")
+    public R refreshPasswordTest(@RequestParam String key) {
+        Object aa = accAccountService.test(key);
+        return R.data(aa);
     }
 
     @PostMapping("/updatePassword")

+ 2 - 2
hx-service/storage/src/main/java/com/fjhx/acc/service/AccAccountService.java

@@ -6,6 +6,7 @@ import com.fjhx.params.acc.AccAccountVo;
 import com.fjhx.base.BaseService;
 import com.fjhx.params.acc.AccountExcel;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -31,6 +32,5 @@ public interface AccAccountService extends BaseService<AccAccount> {
 
     String updatePassword(String id);
 
-    List<AccountExcel> refreshPasswordTest();
-
+    Object test(String key);
 }

+ 5 - 17
hx-service/storage/src/main/java/com/fjhx/acc/service/impl/AccAccountServiceImpl.java

@@ -106,29 +106,17 @@ public class AccAccountServiceImpl extends ServiceImpl<AccAccountMapper, AccAcco
 
         updateById(accAccount);
 
+        bladeRedis.del("list:account");
         return password;
     }
 
-    @Override
-    public List<AccountExcel> refreshPasswordTest() {
-        List<Map<String, Object>> list = baseMapper.getList();
 
-        List<AccountExcel> accountExcelList = new ArrayList<>();
-
-        List<AccAccount> accAccountList = list.stream().map(item -> {
-            AccountExcel accountExcel = BeanUtil.toBean(item, AccountExcel.class);
-            String password = RandomUtil.randomString(8);
-            String md5 = SecureUtil.md5(password);
-            accountExcel.setPassword(password);
-            accountExcelList.add(accountExcel);
+    @Override
+    public Object test(String key) {
 
-            AccAccount accAccount = new AccAccount();
-            accAccount.setId(item.get("id").toString());
-            accAccount.setPassword(md5);
-            return accAccount;
-        }).collect(Collectors.toList());
+        Set<String> keys = bladeRedis.keys("*");
 
-        return accountExcelList;
+        return bladeRedis.get(key);
     }
 
 }