kimi
2020-05-18 c8aee7b9bfd79cfd741d7e5692520f4f51a31a86
src/main/java/com/highdatas/mdm/service/impl/ActivitiServiceImpl.java
@@ -6,12 +6,10 @@
import com.highdatas.mdm.entity.Maintain;
import com.highdatas.mdm.entity.MaintainDetail;
import com.highdatas.mdm.entity.TUser;
import com.highdatas.mdm.pojo.ActivitiBusinessType;
import com.highdatas.mdm.pojo.ActivitiStatus;
import com.highdatas.mdm.pojo.Page;
import com.highdatas.mdm.pojo.Result;
import com.highdatas.mdm.pojo.*;
import com.highdatas.mdm.service.*;
import com.highdatas.mdm.service.act.*;
import com.highdatas.mdm.util.DbUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -42,8 +40,6 @@
    @Autowired
    IFlowsService flowsService;
    @Autowired
    ITUserService userService;
    @Autowired
    HistoryService historyService;
@@ -53,10 +49,19 @@
    @Autowired
    RuntimeService runtimeService;
    @Autowired
    IMaintainFieldService maintainFieldService;
    private TUser user;
    @Override
    public Flows start(String key, HttpSession session, String maintainId, ActivitiBusinessType type) {
        return start(key, session, maintainId, type, null);
    }
        @Override
    public Flows start(String key, HttpSession session, String maintainId, ActivitiBusinessType type, Map<String, Object> params) {
        identityService.setSession( session);
        Flows flows = new Flows();
        String id = UUID.randomUUID().toString().replaceAll("-", "");
@@ -65,11 +70,24 @@
        flows.setBusinessType(type);
        flows.setStatus(ActivitiStatus.working);
        HashMap<String, Object> variableMap = new HashMap<>();
        variableMap.put("reasson", "申请审批");
        if (params != null) {
            variableMap.putAll(params);
        }
        variableMap.put("reason", "申请审批");
        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);
@@ -85,19 +103,31 @@
        taskService.setSession(session);
        List<String> todoTask = taskService.getTodoTask();
        if (todoTask.size() == 0) {
            return Result.success(null);
            return Result.success(CodeMsg.SUCCESS);
        }
        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);
@@ -108,7 +138,7 @@
        for (Flows flow : records) {
            String userId = flow.getUserId();
            TUser user = userService.selectOne(new EntityWrapper<TUser>().eq("user_id", userId));
            TUser user = DbUtils.getUserById(userId);
            if (user == null) {
                continue;
            }
@@ -137,4 +167,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;
    }
}