From b5636e416a2fe029f96aec6ddfd3489394925b15 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期二, 24 三月 2020 19:33:53 +0800
Subject: [PATCH] add 数据权限

---
 src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 57 insertions(+), 3 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 8637383..87fb86e 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/FlowsServiceImpl.java
@@ -3,16 +3,21 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 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.service.IFlowsService;
+import com.highdatas.mdm.pojo.NextTaskUserInfo;
+import com.highdatas.mdm.service.*;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.highdatas.mdm.service.IMaintainFieldService;
+import com.highdatas.mdm.service.act.TaskService;
 import com.highdatas.mdm.util.DbUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * <p>
@@ -27,7 +32,16 @@
     @Autowired
     IMaintainFieldService maintainFieldService;
     @Autowired
+    TaskService taskService;
+    @Autowired
     SysFieldMapper fieldMapper;
+    @Autowired
+    ITUserRoleService userRoleService;
+    @Autowired
+    IMasterModifiedService masterModifiedService;
+    @Autowired
+    IMaintainService maintainService;
+
     @Override
     public MaintainField createNowVerion(String tableName, String maintainId, String userId) {
         MaintainField nowMaintain = maintainFieldService.getNextMaintain(tableName, userId);
@@ -39,7 +53,11 @@
             maintainParams = "maintain_field_id = " + DbUtils.quotedStr(maintainId);
         }
 
-        fieldMapper.tansNewVersion(DbUtils.quotedStr(nowMaintain.getId()), maintainParams);
+        if (nowMaintain != null) {
+            String maintainFieldId = DbUtils.quotedStr(nowMaintain.getId());
+            fieldMapper.tansNewVersion(maintainFieldId, maintainParams);
+        }
+
         return nowMaintain;
     }
 
@@ -51,4 +69,40 @@
         }
         return flows.getStatus();
     }
+
+    @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);
+        }
+        String roleId = nestTaskAssignee.getRoleId();
+        if (StringUtils.isEmpty(roleId)) {
+            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();
+        if (count == 0) {
+            return false;
+        }else {
+            return true;
+        }
+    }
+
+    @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());
+        }
+    }
 }

--
Gitblit v1.8.0