From 74472c9d22dddcb41383794caf0011043b20f817 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期二, 31 三月 2020 13:25:47 +0800 Subject: [PATCH] fix 数据权限 --- src/main/java/com/highdatas/mdm/service/impl/ActivitiServiceImpl.java | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 44 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/service/impl/ActivitiServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/ActivitiServiceImpl.java index 20468b3..ffbb06f 100644 --- a/src/main/java/com/highdatas/mdm/service/impl/ActivitiServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/impl/ActivitiServiceImpl.java @@ -53,10 +53,14 @@ @Autowired RuntimeService runtimeService; + @Autowired + IMaintainFieldService maintainFieldService; + private TUser user; @Override public Flows start(String key, HttpSession session, String maintainId, ActivitiBusinessType type) { + identityService.setSession( session); Flows flows = new Flows(); String id = UUID.randomUUID().toString().replaceAll("-", ""); @@ -66,10 +70,20 @@ flows.setStatus(ActivitiStatus.working); HashMap<String, Object> variableMap = new HashMap<>(); variableMap.put("reasson", "鐢宠瀹℃壒"); + String workflowId = identityService.startProcess(id, key, null, variableMap); flows.setWorkflowId(workflowId); flows.setCreateTime(new Date()); - TUser user = (TUser) session.getAttribute("user"); + TUser user = null; + if (session != null) { + user = (TUser) session.getAttribute("user"); + }else { + user = this.user; + } + if (user == null) { + return null; + } + String user_id = user.getUserId(); flows.setUserId(user_id); boolean inserted = flowsService.insert(flows); @@ -88,16 +102,28 @@ return Result.success(null); } - Wrapper<Flows> flowsWrapper = new EntityWrapper<Flows>().in("workflow_id", todoTask).eq("business_type", ActivitiBusinessType.maintain); + Wrapper<Flows> flowsWrapper = new EntityWrapper<Flows>().in("workflow_id", todoTask).ne("business_type", ActivitiBusinessType.exists); flowsWrapper.orderBy("create_time desc"); List<Flows> records = flowsService.selectList(flowsWrapper); List<Flows> result = new ArrayList<>(); if (!StringUtils.isEmpty(tableName)) { - records = records.stream() + + List<Flows> maintainList = records.stream() + .filter(flows -> flows.getBusinessType().equals(ActivitiBusinessType.maintain)) + .filter(flows -> (!flows.getStatus().equals(ActivitiStatus.open) || !flows.getStatus().equals(ActivitiStatus.close))) .filter(flows -> maintainService.selectById(flows.getBusinessId()) != null) .filter(flows -> maintainService.selectById(flows.getBusinessId()).getTableName().equalsIgnoreCase(tableName)).collect(Collectors.toList()); + List<Flows> collect = records.stream() + .filter(flows -> flows.getBusinessType().equals(ActivitiBusinessType.field)) + .filter(flows -> (!flows.getStatus().equals(ActivitiStatus.open) || !flows.getStatus().equals(ActivitiStatus.close))) + .filter(flows -> maintainFieldService.selectById(flows.getBusinessId()) != null) + .filter(flows -> maintainFieldService.selectById(flows.getBusinessId()).getTableName().equalsIgnoreCase(tableName)).collect(Collectors.toList()); + records = new ArrayList<>(); + + records.addAll(maintainList); + records.addAll(collect); } Page page = new Page(records.size()); page.setPageNo(pageNo); @@ -137,4 +163,19 @@ flowPages.setTotal(page.getRecordCount()); return Result.success(flowPages); } + + @Override + public void setUser(TUser user) { + this.user = user; + identityService.setUser(user); + taskService.setUser(user); + historyService.setUser(user); + runtimeService.setUser(user); + repositoryService.setUser(user); + } + + @Override + public TUser getUser() { + return this.user; + } } -- Gitblit v1.8.0