package com.whyc.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.google.gson.internal.$Gson$Preconditions;
|
import com.whyc.mapper.WorkflowActionMapper;
|
import com.whyc.pojo.WorkflowAction;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class WorkflowActionService {
|
|
@Resource
|
private WorkflowActionMapper mapper;
|
|
|
public void add(WorkflowAction workflowAction) {
|
List<WorkflowAction> actionList = new LinkedList<>();
|
List<Integer> actionTypeList = workflowAction.getActionTypeList();
|
actionTypeList.stream().forEach(actionType -> {
|
WorkflowAction actionTemp = new WorkflowAction();
|
actionTemp.setLinkType(workflowAction.getLinkType());
|
actionTemp.setRoleType(workflowAction.getRoleType());
|
actionTemp.setType(workflowAction.getType());
|
actionTemp.setActionType(actionType);
|
|
actionList.add(actionTemp);
|
});
|
mapper.insertBatchSomeColumn(actionList);
|
}
|
|
public void update(List<WorkflowAction> workflowActionList) {
|
List<WorkflowAction> actionList = new LinkedList<>();
|
workflowActionList.stream().forEach(workflowAction -> {
|
//先删除
|
UpdateWrapper<WorkflowAction> wrapper = Wrappers.update();
|
wrapper.eq("type",workflowAction.getType())
|
.eq("link_type",workflowAction.getLinkType())
|
.eq("role_type",workflowAction.getRoleType());
|
mapper.delete(wrapper);
|
//再新增
|
List<Integer> actionTypeList = workflowAction.getActionTypeList();
|
actionTypeList.stream().forEach(actionType -> {
|
WorkflowAction actionTemp = new WorkflowAction();
|
actionTemp.setLinkType(workflowAction.getLinkType());
|
actionTemp.setRoleType(workflowAction.getRoleType());
|
actionTemp.setType(workflowAction.getType());
|
actionTemp.setActionType(actionType);
|
|
actionList.add(actionTemp);
|
});
|
});
|
|
mapper.insertBatchSomeColumn(actionList);
|
}
|
|
public List<WorkflowAction> getActionTypeList4Link(Integer type, Integer linkType) {
|
QueryWrapper<WorkflowAction> wrapper = Wrappers.query();
|
wrapper.eq("type",type)
|
.eq("link_type",linkType);
|
//Map<Integer, List<WorkflowAction>> collect = mapper.selectList(wrapper).stream().collect(Collectors.groupingBy(WorkflowAction::getRoleType));
|
return mapper.selectList(wrapper);
|
}
|
|
public List<WorkflowAction> getActionTypeList(Integer type, Integer status, int userRole) {
|
QueryWrapper<WorkflowAction> wrapper = Wrappers.query();
|
Integer linkType = null;
|
//Map<Integer, List<WorkflowAction>> collect = mapper.selectList(wrapper).stream().collect(Collectors.groupingBy(WorkflowAction::getRoleType));
|
//表示处于1级节点
|
if(status == 2 ||status ==3){
|
linkType = 1;
|
}
|
else if(status ==4){ //表示处于2级节点
|
linkType = 2;
|
}
|
wrapper.select("action_type")
|
.eq("type",type)
|
.eq("link_type",linkType)
|
.eq("role_type",userRole);
|
return mapper.selectList(wrapper);
|
}
|
}
|