diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/controller/FlowDefinitionController.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/controller/FlowDefinitionController.java index b7ef624c..22ad14af 100644 --- a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/controller/FlowDefinitionController.java +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/controller/FlowDefinitionController.java @@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.flowable.domain.dto.FlowSaveXmlVo; +import com.ruoyi.flowable.domain.vo.ProcKeyRole; import com.ruoyi.flowable.service.IFlowDefinitionService; import com.ruoyi.system.domain.FlowProcDefDto; import com.ruoyi.system.domain.SysExpression; @@ -62,9 +63,10 @@ public class FlowDefinitionController extends BaseController { @ApiOperation(value = "流程定义列表", response = FlowProcDefDto.class) public AjaxResult list(@ApiParam(value = "当前页码", required = true) @RequestParam Integer pageNum, @ApiParam(value = "每页条数", required = true) @RequestParam Integer pageSize, + @ApiParam(value = "发起角色", required = false) @RequestParam(required = false) String roleId, @ApiParam(value = "流程类型", required = false) @RequestParam(required = false) String category, @ApiParam(value = "流程名称", required = false) @RequestParam(required = false) String name) { - return AjaxResult.success(flowDefinitionService.list(category, name, pageNum, pageSize)); + return AjaxResult.success(flowDefinitionService.list(roleId, category, name, pageNum, pageSize)); } @GetMapping(value = "/myList") @@ -176,6 +178,22 @@ public class FlowDefinitionController extends BaseController { } + @ApiOperation(value = "流程发起角色配置") + @Log(title = "流程发起角色配置", businessType = BusinessType.UPDATE) + @PostMapping("/updateProcKeyByRoleId") + public AjaxResult updateProcKeyByRoleId(@RequestBody ProcKeyRole procKeyRole) { + flowDefinitionService.updateProcKeyByRoleId(procKeyRole.getRoleId(),procKeyRole.getKeys()); + return success(); + } + + @ApiOperation(value = "流程发起排序设置") + @Log(title = "流程发起排序设置", businessType = BusinessType.UPDATE) + @PostMapping("/updateProcKeyRoleSort") + public AjaxResult updateProcKeyRoleSort(@RequestBody ProcKeyRole procKeyRole) { + flowDefinitionService.updateProcKeyRoleSort(procKeyRole); + return success(); + } + @ApiOperation(value = "激活或挂起流程定义") @PutMapping(value = "/updateState") public AjaxResult updateState(@ApiParam(value = "1:激活,2:挂起", required = true) @RequestParam Integer state, diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/domain/vo/ProcKeyRole.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/domain/vo/ProcKeyRole.java new file mode 100644 index 00000000..acbcc269 --- /dev/null +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/domain/vo/ProcKeyRole.java @@ -0,0 +1,50 @@ +package com.ruoyi.flowable.domain.vo; + +import java.io.Serializable; +import java.util.List; + +public class ProcKeyRole implements Serializable +{ + + private static final long serialVersionUID = 1L; + + private String roleId; + + private String key; + + private String sort; + + private List keys; + + public String getRoleId() { + return roleId; + } + + public void setRoleId(String roleId) { + this.roleId = roleId; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public List getKeys() { + return keys; + } + + public void setKeys(List keys) { + this.keys = keys; + } + + public String getSort() { + return sort; + } + + public void setSort(String sort) { + this.sort = sort; + } +} diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/IFlowDefinitionService.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/IFlowDefinitionService.java index 0607c9fc..b9fb815b 100644 --- a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/IFlowDefinitionService.java +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/IFlowDefinitionService.java @@ -2,6 +2,7 @@ package com.ruoyi.flowable.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.flowable.domain.vo.ProcKeyRole; import com.ruoyi.system.domain.FlowProcDefDto; import org.flowable.bpmn.model.FlowElement; @@ -21,13 +22,14 @@ public interface IFlowDefinitionService { /** * 流程定义列表 * + * @param roleId 发起角色 * @param category 流程类别 * @param name 流程名称 * @param pageNum 当前页码 * @param pageSize 每页条数 * @return 流程定义分页列表数据 */ - Page list(String category,String name,Integer pageNum, Integer pageSize); + Page list(String roleId, String category, String name, Integer pageNum, Integer pageSize); /** * 流程定义列表 @@ -93,5 +95,25 @@ public interface IFlowDefinitionService { */ InputStream readImage(String deployId); + /** + * 读取流程节点 + * @param deployId + * @return + */ public List readNodes(String deployId); + + /** + * 流程发起角色设置 + * @param roleId 角色主键 + * @param keys 流程定义 + * @return + */ + public void updateProcKeyByRoleId(String roleId,List keys); + + /** + * 流程发起排序设置 + * @param procKeyRole 流程 + * @return + */ + public void updateProcKeyRoleSort(ProcKeyRole procKeyRole); } diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowDefinitionServiceImpl.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowDefinitionServiceImpl.java index f5b539e0..d9436102 100644 --- a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowDefinitionServiceImpl.java +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowDefinitionServiceImpl.java @@ -7,6 +7,7 @@ import com.ruoyi.common.core.text.Convert; import com.ruoyi.flowable.common.constant.ProcessConstants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.flowable.common.enums.FlowComment; +import com.ruoyi.flowable.domain.vo.ProcKeyRole; import com.ruoyi.system.domain.FlowProcDefDto; import com.ruoyi.flowable.factory.FlowServiceFactory; import com.ruoyi.flowable.service.IFlowDefinitionService; @@ -74,6 +75,7 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl /** * 流程定义列表 * + * @param roleId 发起角色 * @param category 流程类别 * @param name 流程名称 * @param pageNum 当前页码 @@ -81,18 +83,18 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl * @return 流程定义分页列表数据 */ @Override - public Page list(String category, String name, Integer pageNum, Integer pageSize) { + public Page list(String roleId, String category, String name, Integer pageNum, Integer pageSize) { Page page = new Page<>(); PageHelper.startPage(pageNum, pageSize); - final List dataList = flowDeployMapper.selectDeployList(category,name); + final List dataList = flowDeployMapper.selectDeployList(roleId,category,name); // 加载挂表单 - for (FlowProcDefDto procDef : dataList) { - SysForm sysForm = sysDeployFormService.selectSysDeployFormByDeployId(procDef.getDeploymentId()); - if (Objects.nonNull(sysForm)) { - procDef.setFormName(sysForm.getFormName()); - procDef.setFormId(sysForm.getFormId()); - } - } + //for (FlowProcDefDto procDef : dataList) { + // SysForm sysForm = sysDeployFormService.selectSysDeployFormByDeployId(procDef.getDeploymentId()); + // if (Objects.nonNull(sysForm)) { + // procDef.setFormName(sysForm.getFormName()); + // procDef.setFormId(sysForm.getFormId()); + // } + //} page.setTotal(new PageInfo(dataList).getTotal()); page.setRecords(dataList); return page; @@ -183,6 +185,11 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl } + /** + * 读取流程节点 + * @param deployId + * @return + */ @Override public List readNodes(String deployId) { List list = new ArrayList<>(); @@ -271,5 +278,35 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl repositoryService.deleteDeployment(deployId, true); } + /** + * 流程发起角色设置 + * @param roleId 角色主键 + * @param keys 流程定义 + * @return + */ + @Override + public void updateProcKeyByRoleId(String roleId,List keys) { + //根据角色删除原有流程定义 + flowDeployMapper.deleteDeployByRoleId(roleId); + if(keys.size()>0){ + List> list = new ArrayList<>(); + for(int i=0;i map = new HashMap<>(); + map.put("key",keys.get(i)); + map.put("roleId",roleId); + list.add(map); + } + flowDeployMapper.batchDeployRoleRole(list); + } + } + + /** + * 流程发起排序设置 + * @param procKeyRole + * @return + */ + public void updateProcKeyRoleSort(ProcKeyRole procKeyRole) { + flowDeployMapper.updateProcKeyRoleSort(procKeyRole.getRoleId(),procKeyRole.getKey(),procKeyRole.getSort()); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/FlowProcDefDto.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/FlowProcDefDto.java index 8bbea030..0ecfd2c4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/FlowProcDefDto.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/FlowProcDefDto.java @@ -55,5 +55,10 @@ public class FlowProcDefDto implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date deploymentTime; + @ApiModelProperty("发起角色") + private String roleNames; + + @ApiModelProperty("流程角色排序") + private String sorts; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/FlowDeployMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/FlowDeployMapper.java index b17340a1..73754ab7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/FlowDeployMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/FlowDeployMapper.java @@ -4,6 +4,7 @@ import com.ruoyi.system.domain.FlowProcDefDto; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * 流程定义查询 @@ -16,11 +17,12 @@ public interface FlowDeployMapper { /** * 流程定义列表 + * @param roleId 发起角色 * @param category 流程类别 * @param name 流程名称 * @return */ - List selectDeployList(@Param("category")String category, @Param("name")String name); + List selectDeployList(@Param("roleId")String roleId, @Param("category")String category, @Param("name")String name); /** * 我的流程定义列表 @@ -30,4 +32,28 @@ public interface FlowDeployMapper { * @return */ List selectMyDeployList(@Param("username")String username, @Param("category")String category, @Param("name")String name); + + /** + * 根据角色删除流程定义 + * @param roleId 橘色 + * @return + */ + int deleteDeployByRoleId(String roleId); + + + /** + * 批量新增流程定义角色配置 + * @param items 列表 + * @return + */ + int batchDeployRoleRole(List> items); + + /** + * 流程发起排序设置 + * @param roleId 角色主键 + * @param key 流程 + * @param sort 排序 + * @return + */ + int updateProcKeyRoleSort(@Param("roleId")String roleId, @Param("key")String key, @Param("sort")String sort); } diff --git a/ruoyi-system/src/main/resources/mapper/flowable/FlowDeployMapper.xml b/ruoyi-system/src/main/resources/mapper/flowable/FlowDeployMapper.xml index 0000bc75..4f242ef2 100644 --- a/ruoyi-system/src/main/resources/mapper/flowable/FlowDeployMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/flowable/FlowDeployMapper.xml @@ -13,11 +13,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" rp.key_ as flowKey, rp.version_ as version, rp.suspension_state_ as suspensionState, - rd.deploy_time_ as deploymentTime + rd.deploy_time_ as deploymentTime, + group_concat(sr.role_name) as roleNames, + group_concat(rpr.SORT_) as sorts FROM act_re_procdef rp LEFT JOIN act_re_deployment rd ON rp.deployment_id_ = rd.id_ + left join act_re_procdef_role rpr on rp.key_ = rpr.PROCDEF_KEY_ + left join sys_role sr on sr.role_id = rpr.ROLE_ID_ + + and rpr.ROLE_ID_ = #{roleId} + and rd.name_ like concat('%', #{name}, '%') @@ -25,7 +32,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and rd.category_ = #{category} - order by rd.deploy_time_ desc + GROUP BY rp.key_ + order by rpr.SORT_ + + delete from act_re_procdef_role where ROLE_ID_ = #{roleId} + + + insert into act_re_procdef_role( PROCDEF_KEY_, ROLE_ID_) values + + ( #{item.key}, #{item.roleId}) + + + + + update act_re_procdef_role set SORT_=#{sort} where PROCDEF_KEY_=#{key} and ROLE_ID_=#{roleId} + \ No newline at end of file diff --git a/ruoyi-ui/public/logo/logo.png b/ruoyi-ui/public/logo/logo.png index 83b0cd97..9b990efb 100644 Binary files a/ruoyi-ui/public/logo/logo.png and b/ruoyi-ui/public/logo/logo.png differ diff --git a/ruoyi-ui/src/api/flowable/definition.js b/ruoyi-ui/src/api/flowable/definition.js index a926ef5d..5b737dc2 100644 --- a/ruoyi-ui/src/api/flowable/definition.js +++ b/ruoyi-ui/src/api/flowable/definition.js @@ -147,3 +147,21 @@ export function exportDeployment(query) { params: query }) } + +// 流程角色设置 +export function updateProcKeyByRoleId(data) { + return request({ + url: '/flowable/definition/updateProcKeyByRoleId', + method: 'post', + data: data + }) +} + +// 流程排序设置 +export function updateProcKeyRoleSort(data) { + return request({ + url: '/flowable/definition/updateProcKeyRoleSort', + method: 'post', + data: data + }) +} diff --git a/ruoyi-ui/src/assets/images/profile.png b/ruoyi-ui/src/assets/images/profile.png index b08edec9..8e5b56e7 100644 Binary files a/ruoyi-ui/src/assets/images/profile.png and b/ruoyi-ui/src/assets/images/profile.png differ diff --git a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue index 13a639f8..5b0cb944 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue +++ b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue @@ -2,13 +2,13 @@