From c007f0ca1785db093d48f4846cda82fe8e955765 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期三, 27 五月 2020 09:59:29 +0800 Subject: [PATCH] merage --- src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 80 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java index 87fb86e..1ed36ab 100644 --- a/src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java @@ -1,18 +1,19 @@ package com.highdatas.mdm.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.highdatas.mdm.entity.Flows; import com.highdatas.mdm.entity.MaintainField; -import com.highdatas.mdm.entity.TUserRole; import com.highdatas.mdm.mapper.FlowsMapper; import com.highdatas.mdm.mapper.SysFieldMapper; import com.highdatas.mdm.pojo.ActivitiBusinessType; import com.highdatas.mdm.pojo.ActivitiStatus; import com.highdatas.mdm.pojo.NextTaskUserInfo; import com.highdatas.mdm.service.*; -import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.highdatas.mdm.service.act.IdentityService; import com.highdatas.mdm.service.act.TaskService; import com.highdatas.mdm.util.DbUtils; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -28,6 +29,7 @@ * @since 2019-12-19 */ @Service +@Slf4j public class FlowsServiceImpl extends ServiceImpl<FlowsMapper, Flows> implements IFlowsService { @Autowired IMaintainFieldService maintainFieldService; @@ -36,12 +38,28 @@ @Autowired SysFieldMapper fieldMapper; @Autowired - ITUserRoleService userRoleService; - @Autowired IMasterModifiedService masterModifiedService; @Autowired IMaintainService maintainService; + @Autowired + IdentityService identityService; + @Autowired + ISysViewService viewService; + @Autowired + IMasterAuthorSubscribeService subscribeService; + @Autowired + ISysMenuService menuService; + /** + * + * @description: 鍒涘缓鏂板瓧娈电増鏈� + * @param userId 鐢ㄦ埛id + * @param maintainId 鏁版嵁鐗堟湰id + * @param tableName 琛ㄥ悕 + * + * @return: maintainfielid 瀛楁鐗堟湰瀵硅薄 + * + */ @Override public MaintainField createNowVerion(String tableName, String maintainId, String userId) { MaintainField nowMaintain = maintainFieldService.getNextMaintain(tableName, userId); @@ -60,32 +78,50 @@ return nowMaintain; } - + /** + * + * @description: 閫氳繃涓氬姟id鑾峰彇瀹℃壒鐘舵�� + * @param businessId 涓氬姟id + * @return: status + * + */ @Override public ActivitiStatus getStatusByBusinessId(String businessId) { - Flows flows = selectOne(new EntityWrapper<Flows>().eq("business_id", businessId)); + Flows flows = selectOne(new EntityWrapper<Flows>().eq("business_id", businessId).orderBy("create_time desc")); if (flows == null){ return null; } return flows.getStatus(); } - + /** + * + * @description: 鍒ゆ柇鏄惁涓轰笅涓�鑺傜偣瀹℃壒浜� + * @param flows 娴佺▼ + * @param userId 鐢ㄦ埛id + * @return: status + * + */ @Override public boolean isNextAudit(Flows flows, String userId) { NextTaskUserInfo nestTaskAssignee = taskService.getNestTaskAssignee(flows.getWorkflowId()); if (nestTaskAssignee == null){ return false; } - String taskAssigneeUserId = nestTaskAssignee.getUserId(); - if (!StringUtils.isEmpty(taskAssigneeUserId)){ - return taskAssigneeUserId.equalsIgnoreCase(userId); + List<String> userIdList = nestTaskAssignee.getUserIdList(); + if (userIdList.contains(userId)) { + return true; } - String roleId = nestTaskAssignee.getRoleId(); - if (StringUtils.isEmpty(roleId)) { + + List<String> roleIdList = nestTaskAssignee.getRoleIdList(); + if (roleIdList == null || roleIdList.isEmpty()) { return false; } - List<TUserRole> userRoles = userRoleService.selectList(new EntityWrapper<TUserRole>().eq("role_id", roleId)); - long count = userRoles.stream().map(tUserRole -> tUserRole.getUserId()).filter(s -> s.equalsIgnoreCase(userId)).count(); + + List<String> roleByUser = identityService.getRoleByUser(userId); + if (roleByUser == null || roleByUser.isEmpty()) { + return false; + } + long count = roleByUser.stream().filter(roleId -> roleIdList.contains(roleId)).count(); if (count == 0) { return false; }else { @@ -93,16 +129,37 @@ } } + /** + * + * @description: 娴佺▼瀹屾垚鍚庣殑鎿嶄綔 + * @param flows 娴佺▼瀹炰緥 + * + */ + @Override public void aduitFinish(Flows flows) { - if (flows.getBusinessType().equals(ActivitiBusinessType.maintain)){ - String maintainId = flows.getBusinessId(); - masterModifiedService.dealFlow(maintainId, flows.getStatus()); - maintainService.dealFlow(maintainId, flows.getStatus()); - } - if (flows.getBusinessType().equals(ActivitiBusinessType.field)){ - String maintainId = flows.getBusinessId(); - maintainFieldService.dealFlow(maintainId, flows.getStatus()); - } + // 鏂板绾跨▼ + new Thread(() -> { + log.info("澶勭悊 鐢熸垚鐗堟湰鍚庣殑鎿嶄綔"); + if (flows.getBusinessType().equals(ActivitiBusinessType.maintain)){ + String maintainId = flows.getBusinessId(); + log.info("flow-maintain:" + maintainId); + masterModifiedService.dealFlow(maintainId, flows.getStatus()); + log.info("flow-masterModifiedService end"); + maintainService.dealFlow(maintainId, flows.getStatus()); + log.info("flow-maintainService end"); + viewService.dealFlow(maintainId, flows.getStatus()); + log.info("flow-viewService end"); + subscribeService.dealFlow(maintainId, flows.getStatus()); + log.info("flow-subscribeService end"); + menuService.dealFlow(maintainId, flows.getStatus(), flows.getUserId()); + log.info("flow-menuService end"); + } + if (flows.getBusinessType().equals(ActivitiBusinessType.field)){ + String maintainId = flows.getBusinessId(); + maintainFieldService.dealFlow(maintainId, flows.getStatus()); + + } + }).start(); } } -- Gitblit v1.8.0