home 2 éve
szülő
commit
e533c35425

+ 1 - 1
hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessInfoController.java

@@ -56,7 +56,7 @@ public class ProcessInfoController {
     }
 
     /**
-     * 业务服务列表
+     * 业务服务名称列表
      */
     @PostMapping("/serviceNameList")
     public R serviceNameList() {

+ 22 - 0
hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessNodeController.java

@@ -1,7 +1,11 @@
 package com.fjhx.controller.process;
 
+import com.fjhx.entity.process.ProcessNode;
 import com.fjhx.service.process.ProcessNodeService;
+import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -20,5 +24,23 @@ public class ProcessNodeController {
     @Autowired
     private ProcessNodeService processNodeService;
 
+    /**
+     * 创建节点
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody ProcessNode processNode) {
+        processNodeService.save(processNode);
+        return R.success(processNode);
+    }
+
+    /**
+     * 创建节点
+     */
+    @PostMapping("/delete")
+    public R delete(@RequestBody ProcessNode processNode) {
+        processNodeService.removeById(processNode.getId());
+        return R.success();
+    }
+
 }
 

+ 37 - 1
hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessTenantController.java

@@ -1,5 +1,7 @@
 package com.fjhx.controller.process;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.process.ProcessNode;
 import com.fjhx.entity.process.ProcessTenant;
 import com.fjhx.service.process.ProcessTenantService;
 import org.springblade.core.tool.api.R;
@@ -9,6 +11,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 租户流程表 前端控制器
@@ -25,6 +30,15 @@ public class ProcessTenantController {
     private ProcessTenantService processTenantService;
 
     /**
+     * 分页
+     */
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, String> condition) {
+        Page<Map<String, Object>> result = processTenantService.getPage(condition);
+        return R.success(result);
+    }
+
+    /**
      * 添加租户流程
      */
     @PostMapping("/add")
@@ -33,12 +47,34 @@ public class ProcessTenantController {
         return R.success();
     }
 
+    /**
+     * 添加流程版本
+     */
     @PostMapping("/addVersion")
     public R addVersion(@RequestBody ProcessTenant processTenant) {
-        processTenantService.addVersion(processTenant);
+        List<ProcessNode> result = processTenantService.addVersion(processTenant);
+        return R.success(result);
+    }
+
+    /**
+     * 获取流程版本号
+     */
+    @PostMapping("/getVersionByProcessInfoId")
+    public R getVersionByProcessInfoId(@RequestBody ProcessTenant processTenant) {
+        List<ProcessTenant> result = processTenantService.getVersionByProcessInfoId(processTenant);
+        return R.success(result);
+    }
+
+    /**
+     * 修改流程版本号
+     */
+    @PostMapping("/editVersion")
+    public R editVersion(@RequestBody ProcessTenant processTenant) {
+        processTenantService.editVersion(processTenant);
         return R.success();
     }
 
 
+
 }
 

+ 7 - 0
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessTenantMapper.java

@@ -1,7 +1,12 @@
 package com.fjhx.mapper.process;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.process.ProcessTenant;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProcessTenantMapper extends BaseMapper<ProcessTenant> {
 
+    Page<Map<String, Object>> getPage(@Param("page") Page<ProcessTenant> page, @Param("ew") QueryWrapper<?> wrapper);
+
 }

+ 14 - 0
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessTenantMapper.xml

@@ -2,4 +2,18 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.mapper.process.ProcessTenantMapper">
 
+    <select id="getPage" resultType="java.util.Map">
+        select pi.service_name,
+               pi.module_name,
+               pt.id,
+               pt.process_info_id,
+               pt.name,
+               pt.binding_tenant_id,
+               pt.version_number,
+               pt.current
+        from process_info pi
+                 left join process_tenant pt on pi.id = pt.process_info_id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 12 - 1
hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessTenantService.java

@@ -1,8 +1,13 @@
 package com.fjhx.service.process;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.BaseService;
+import com.fjhx.entity.process.ProcessNode;
 import com.fjhx.entity.process.ProcessTenant;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 租户流程表 服务类
@@ -13,8 +18,14 @@ import com.fjhx.entity.process.ProcessTenant;
  */
 public interface ProcessTenantService extends BaseService<ProcessTenant> {
 
+    Page<Map<String, Object>> getPage(Map<String, String> condition);
+
     void add(ProcessTenant processTenant);
 
-    void addVersion(ProcessTenant processTenant);
+    List<ProcessNode> addVersion(ProcessTenant processTenant);
+
+    List<ProcessTenant> getVersionByProcessInfoId(ProcessTenant processTenant);
+
+    void editVersion(ProcessTenant processTenant);
 
 }

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

@@ -5,23 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.constants.FlowConstant;
 import com.fjhx.constants.FlowExplainConstant;
 import com.fjhx.entity.process.ProcessInfo;
 import com.fjhx.enums.ProcessInfoParallelRulesEnum;
-import com.fjhx.enums.ProcessNodeHandleObjectTypeEnum;
-import com.fjhx.enums.ProcessNodeTypeEnum;
 import com.fjhx.mapper.process.ProcessInfoMapper;
-import com.fjhx.params.process.ProcessNodeVo;
-import com.fjhx.params.process.ProcessObject;
 import com.fjhx.service.process.ProcessInfoService;
-import com.fjhx.service.process.ProcessNodeService;
 import com.fjhx.utils.Assert;
-import org.springblade.common.constant.CommonConstant;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -90,19 +81,4 @@ public class ProcessInfoServiceImpl extends ServiceImpl<ProcessInfoMapper, Proce
 
     }
 
-
-
-//        // 设为当前版本
-//        processInfo.setCurrent(StatusConstant.YES);
-//        // 版本号为空,设为默认值
-//        if (ObjectUtil.isEmpty(processInfo.getVersionNumber())) {
-//            processInfo.setVersionNumber(FlowConstant.DEFAULT_VERSION_NUMBER);
-//        }
-
-
-//    ProcessInfo processInfo = processObject.getProcessInfo();
-//    Long id = processInfo.getId();
-//        Assert.notEmpty(id, FlowExplainConstant.PROCESS_INFO_ID_EMPTY);
-//        processNodeService.addOrEditNodeList(id, processObject.getProcessNodeList());
-
 }

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

@@ -31,9 +31,6 @@ public class ProcessNodeButtonServiceImpl extends ServiceImpl<ProcessNodeButtonM
 
     @Override
     public void insertNodeButton(List<ProcessNode> processNodeList) {
-        Long processTenantId = processNodeList.get(0).getProcessTenantId();
-
-        remove(ProcessNodeButton::getProcessTenantId, processTenantId);
 
         // 按父级节点id分组
         Map<Long, List<ProcessNode>> ProcessNodeGroupByParentId = processNodeList.stream()

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

@@ -1,7 +1,9 @@
 package com.fjhx.service.process.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.constants.FlowConstant;
 import com.fjhx.constants.FlowExplainConstant;
@@ -11,17 +13,20 @@ 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.ProcessNodeButtonService;
 import com.fjhx.service.process.ProcessNodeService;
 import com.fjhx.service.process.ProcessTenantService;
 import com.fjhx.utils.Assert;
+import com.fjhx.utils.WrapperUtil;
 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;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -41,9 +46,35 @@ public class ProcessTenantServiceImpl extends ServiceImpl<ProcessTenantMapper, P
     private ProcessNodeButtonService processNodeButtonService;
 
     @Override
+    public Page<Map<String, Object>> getPage(Map<String, String> condition) {
+
+        QueryWrapper<?> wrapper = WrapperUtil.init(condition)
+                .eq("pt.binding_tenant_id", "bindingTenantId", "租户id不能为空")
+                .eq("pi.service_name", "serviceName")
+                .keyword("pi.module_name", "pt.name")
+                .getWrapper()
+                .eq("pt.current", StatusConstant.YES);
+
+        return baseMapper.getPage(createPage(condition), wrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
     public void add(ProcessTenant processTenant) {
 
-        dataHandle(processTenant);
+        // 流程id
+        Long processInfoId = processTenant.getProcessInfoId();
+        Assert.notEmpty(processInfoId, FlowExplainConstant.PROCESS_INFO_ID_EMPTY);
+
+        // 流程名称
+        String name = processTenant.getName();
+        Assert.notEmpty(name, FlowExplainConstant.PROCESS_NAME);
+
+        // 租户id
+        String bindingTenantId = processTenant.getBindingTenantId();
+        if (ObjectUtil.isEmpty(bindingTenantId)) {
+            processTenant.setBindingTenantId(AuthUtil.getTenantId());
+        }
 
         // 判断流程是否存在
         int count = count(Wrappers.<ProcessTenant>lambdaQuery()
@@ -63,43 +94,59 @@ public class ProcessTenantServiceImpl extends ServiceImpl<ProcessTenantMapper, P
 
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
-    public void addVersion(ProcessTenant processTenant) {
+    public List<ProcessNode> addVersion(ProcessTenant processTenant) {
+
+        // 查询流程最大版本信息
+        ProcessTenant newProcessTenant = getOne(Wrappers.<ProcessTenant>lambdaQuery()
+                .eq(ProcessTenant::getProcessInfoId, processTenant.getProcessInfoId())
+                .eq(ProcessTenant::getBindingTenantId, processTenant.getBindingTenantId())
+                .orderByDesc(ProcessTenant::getVersionNumber)
+                .last("limit 1")
+        );
 
-        dataHandle(processTenant);
+        // id设为空
+        newProcessTenant.setId(null);
 
-        // 赋值版本号
-        processTenant.setVersionNumber(getNewestVersion(processTenant));
-        processTenant.setCurrent(StatusConstant.No);
+        // 版本号+1 设为非当前流程
+        newProcessTenant.setVersionNumber(newProcessTenant.getVersionNumber() + 1);
+        newProcessTenant.setCurrent(StatusConstant.No);
 
         // 保存数据
-        save(processTenant);
+        save(newProcessTenant);
 
         // 生成默认节点
-        createProcess(processTenant.getId());
+        return createProcess(newProcessTenant.getId());
     }
 
-    /**
-     * 获取最新版本号
-     *
-     * @return 最新版本号
-     */
-    private Integer getNewestVersion(ProcessTenant processTenant) {
-        // 判断流程是否已存在
-        ProcessTenant one = getOne(Wrappers.<ProcessTenant>lambdaQuery()
-                .eq(ProcessTenant::getProcessInfoId, processTenant.getProcessInfoId())
+    @Override
+    public List<ProcessTenant> getVersionByProcessInfoId(ProcessTenant processTenant) {
+        return list(Wrappers.<ProcessTenant>lambdaQuery()
                 .eq(ProcessTenant::getBindingTenantId, processTenant.getBindingTenantId())
-                .orderByDesc(ProcessTenant::getVersionNumber)
-                .last("limit 1")
-        );
+                .eq(ProcessTenant::getProcessInfoId, processTenant.getProcessInfoId()));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void editVersion(ProcessTenant processTenant) {
+
+        Long processInfoId = processTenant.getProcessInfoId();
+        String bindingTenantId = processTenant.getBindingTenantId();
+
+        update(Wrappers.<ProcessTenant>lambdaUpdate()
+                .set(ProcessTenant::getCurrent, StatusConstant.No)
+                .eq(ProcessTenant::getProcessInfoId, processInfoId)
+                .eq(ProcessTenant::getBindingTenantId, bindingTenantId));
 
-        return one.getVersionNumber() + 1;
+        processTenant.setCurrent(StatusConstant.YES);
+        updateById(processTenant);
     }
 
     /**
      * 生成默认流程
      */
-    private void createProcess(Long processTenantId) {
+    private List<ProcessNode> createProcess(Long processTenantId) {
 
         // 生成默认开始节点
         ProcessNode startProcessNode = new ProcessNode();
@@ -121,31 +168,10 @@ public class ProcessTenantServiceImpl extends ServiceImpl<ProcessTenantMapper, P
         endProcessNode.setCode(FlowConstant.END_CODE);
         processNodeService.save(endProcessNode);
 
-        processNodeButtonService.insertNodeButton(Arrays.asList(startProcessNode, endProcessNode));
-        processNodeService.editNodeList(Arrays.asList(startProcessNode, endProcessNode));
+        List<ProcessNode> processNodeList = Arrays.asList(startProcessNode, endProcessNode);
+        processNodeButtonService.insertNodeButton(processNodeList);
 
+        return processNodeList;
     }
 
-    /**
-     * 数据处理
-     */
-    private void dataHandle(ProcessTenant processTenant) {
-
-        // 流程id
-        Long processInfoId = processTenant.getProcessInfoId();
-        Assert.notEmpty(processInfoId, FlowExplainConstant.PROCESS_INFO_ID_EMPTY);
-
-        // 流程名称
-        String name = processTenant.getName();
-        Assert.notEmpty(name, FlowExplainConstant.PROCESS_NAME);
-
-        // 租户id
-        String bindingTenantId = processTenant.getBindingTenantId();
-        if (ObjectUtil.isEmpty(bindingTenantId)) {
-            processTenant.setBindingTenantId(AuthUtil.getTenantId());
-        }
-
-    }
-
-
 }

+ 7 - 2
hx-service/storage/src/main/java/com/fjhx/acc/service/impl/AccAccountServiceImpl.java

@@ -106,7 +106,11 @@ public class AccAccountServiceImpl extends ServiceImpl<AccAccountMapper, AccAcco
 
         updateById(accAccount);
 
-        bladeRedis.del("list:account");
+        Set<String> keys = bladeRedis.keys("list:*");
+        bladeRedis.del(keys);
+
+//        bladeRedis.del("list:account");
+//        bladeRedis.del("list:user");
         return password;
     }
 
@@ -116,7 +120,8 @@ public class AccAccountServiceImpl extends ServiceImpl<AccAccountMapper, AccAcco
 
         Set<String> keys = bladeRedis.keys("*");
 
-        return bladeRedis.get(key);
+        Object o = bladeRedis.get(key);
+        return o;
     }
 
 }