|
|
|
@ -4,14 +4,13 @@ import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.lang.Snowflake; |
|
|
|
import cn.hutool.core.util.BooleanUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import com.ccsens.common.bean.dto.TaskDto; |
|
|
|
import com.ccsens.common.bean.dto.CTaskDto; |
|
|
|
import com.ccsens.common.bean.message.TaskMessageWithStatus; |
|
|
|
import com.ccsens.common.bean.po.ProTaskStatusRecord; |
|
|
|
import com.ccsens.common.bean.po.ProTaskSub; |
|
|
|
import com.ccsens.common.bean.vo.TaskVo; |
|
|
|
import com.ccsens.common.bean.vo.CTaskVo; |
|
|
|
import com.ccsens.common.persist.dao.*; |
|
|
|
import com.ccsens.common.persist.mapper.ProTaskStatusRecordMapper; |
|
|
|
import com.ccsens.common.persist.mapper.ProTaskSubMapper; |
|
|
|
import com.ccsens.common.util.CommonCodeError; |
|
|
|
import com.ccsens.common.util.Constant; |
|
|
|
import com.ccsens.util.JacksonUtil; |
|
|
|
@ -103,10 +102,10 @@ public class TaskService implements ITaskService { |
|
|
|
* |
|
|
|
* @param taskList 任务列表 |
|
|
|
*/ |
|
|
|
public void queryPluginForTask(List<TaskVo.QueryTask> taskList) { |
|
|
|
public void queryPluginForTask(List<CTaskVo.QueryTask> taskList) { |
|
|
|
if (CollectionUtil.isNotEmpty(taskList)) { |
|
|
|
for (TaskVo.QueryTask queryTask : taskList) { |
|
|
|
List<List<TaskVo.TaskPluginInfo>> plugins = new ArrayList<>(); |
|
|
|
for (CTaskVo.QueryTask queryTask : taskList) { |
|
|
|
List<List<CTaskVo.TaskPluginInfo>> plugins = new ArrayList<>(); |
|
|
|
//如果任务面板信息不为空,则根据任务面板的行/列创建二维数组
|
|
|
|
if (ObjectUtil.isNotNull(queryTask.getPanel())) { |
|
|
|
int panelRow = queryTask.getPanel().getRow(); |
|
|
|
@ -115,7 +114,7 @@ public class TaskService implements ITaskService { |
|
|
|
//创建任务面板的二维数组
|
|
|
|
createSecondPanel(plugins, panelRow, panelCol); |
|
|
|
//将插件放入二维数组对应的位置中
|
|
|
|
List<TaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getDetailId()); |
|
|
|
List<CTaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getDetailId()); |
|
|
|
putDateInList(taskPluginInfoList, plugins, queryTask); |
|
|
|
} else { |
|
|
|
//根据插件最大的行和列创建二维数组
|
|
|
|
@ -136,11 +135,11 @@ public class TaskService implements ITaskService { |
|
|
|
* @param plugins 插件列表 |
|
|
|
* @param queryTask 任务 |
|
|
|
*/ |
|
|
|
public void createPanelByPlugin(Long taskDetailId, List<List<TaskVo.TaskPluginInfo>> plugins, TaskVo.QueryTask queryTask) { |
|
|
|
List<TaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(taskDetailId); |
|
|
|
public void createPanelByPlugin(Long taskDetailId, List<List<CTaskVo.TaskPluginInfo>> plugins, CTaskVo.QueryTask queryTask) { |
|
|
|
List<CTaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(taskDetailId); |
|
|
|
if (CollectionUtil.isNotEmpty(taskPluginInfoList)) { |
|
|
|
List<Integer> col = taskPluginInfoList.stream().map(TaskVo.TaskPluginInfo::getCol).collect(Collectors.toList()); |
|
|
|
List<Integer> row = taskPluginInfoList.stream().map(TaskVo.TaskPluginInfo::getRow).collect(Collectors.toList()); |
|
|
|
List<Integer> col = taskPluginInfoList.stream().map(CTaskVo.TaskPluginInfo::getCol).collect(Collectors.toList()); |
|
|
|
List<Integer> row = taskPluginInfoList.stream().map(CTaskVo.TaskPluginInfo::getRow).collect(Collectors.toList()); |
|
|
|
Integer newCol = Collections.max(col); |
|
|
|
Integer newRow = Collections.max(row); |
|
|
|
//创建任务面板的二维数组
|
|
|
|
@ -157,9 +156,9 @@ public class TaskService implements ITaskService { |
|
|
|
* @param row 行 |
|
|
|
* @param col 列 |
|
|
|
*/ |
|
|
|
public void createSecondPanel(List<List<TaskVo.TaskPluginInfo>> plugins, int row, int col) { |
|
|
|
public void createSecondPanel(List<List<CTaskVo.TaskPluginInfo>> plugins, int row, int col) { |
|
|
|
for (int i = 0; i < row; i++) { |
|
|
|
List<TaskVo.TaskPluginInfo> pluginInfoList = new ArrayList<>(); |
|
|
|
List<CTaskVo.TaskPluginInfo> pluginInfoList = new ArrayList<>(); |
|
|
|
for (int j = 0; j < col; j++) { |
|
|
|
pluginInfoList.add(null); |
|
|
|
} |
|
|
|
@ -174,8 +173,8 @@ public class TaskService implements ITaskService { |
|
|
|
* @param plugins 插件列表 |
|
|
|
* @param queryTask 任务 |
|
|
|
*/ |
|
|
|
public void putDateInList(List<TaskVo.TaskPluginInfo> taskPluginInfoList, List<List<TaskVo.TaskPluginInfo>> plugins, TaskVo.QueryTask queryTask) { |
|
|
|
for (TaskVo.TaskPluginInfo taskPlugin : taskPluginInfoList) { |
|
|
|
public void putDateInList(List<CTaskVo.TaskPluginInfo> taskPluginInfoList, List<List<CTaskVo.TaskPluginInfo>> plugins, CTaskVo.QueryTask queryTask) { |
|
|
|
for (CTaskVo.TaskPluginInfo taskPlugin : taskPluginInfoList) { |
|
|
|
int pluginCol = taskPlugin.getCol(); |
|
|
|
int pluginRow = taskPlugin.getRow(); |
|
|
|
if (0 == pluginCol || 0 == pluginRow) { |
|
|
|
@ -187,13 +186,13 @@ public class TaskService implements ITaskService { |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<TaskVo.QueryTask> queryPermanentGlobalTask(TaskDto.QueryPermanentGlobalTask param, Long userId) { |
|
|
|
public List<CTaskVo.QueryTask> queryPermanentGlobalTask(CTaskDto.QueryPermanentGlobalTask param, Long userId) { |
|
|
|
//查找当前角色是否有查看权限
|
|
|
|
Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); |
|
|
|
if (BooleanUtil.isFalse(isLook)) { |
|
|
|
throw new BaseException(CommonCodeError.NOT_PERMISSION); |
|
|
|
} |
|
|
|
List<TaskVo.QueryTask> permanentGlobalTask = taskDetailDao.queryPermanentGlobalTask(param.getRoleId()); |
|
|
|
List<CTaskVo.QueryTask> permanentGlobalTask = taskDetailDao.queryPermanentGlobalTask(param.getRoleId()); |
|
|
|
//查找项目面板和插件信息
|
|
|
|
queryPluginForTask(permanentGlobalTask); |
|
|
|
|
|
|
|
@ -201,19 +200,19 @@ public class TaskService implements ITaskService { |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<TaskVo.QueryTask> queryGlobalTask(TaskDto.QueryGlobalTask param, Long userId) { |
|
|
|
public List<CTaskVo.QueryTask> queryGlobalTask(CTaskDto.QueryGlobalTask param, Long userId) { |
|
|
|
//查找当前角色是否有查看权限
|
|
|
|
Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); |
|
|
|
if (BooleanUtil.isFalse(isLook)) { |
|
|
|
throw new BaseException(CommonCodeError.NOT_PERMISSION); |
|
|
|
} |
|
|
|
List<TaskVo.QueryTask> globalTask = taskDetailDao.queryGlobalTask(param.getRoleId(), param.getTimeNode(), param.getTimeUnit()); |
|
|
|
List<CTaskVo.QueryTask> globalTask = taskDetailDao.queryGlobalTask(param.getRoleId(), param.getTimeNode(), param.getTimeUnit()); |
|
|
|
queryPluginForTask(globalTask); |
|
|
|
return globalTask; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<TaskVo.QueryTask> queryRegularTask(TaskDto.QueryRegularTask param, Long userId) { |
|
|
|
public List<CTaskVo.QueryTask> queryRegularTask(CTaskDto.QueryRegularTask param, Long userId) { |
|
|
|
//查找类型:0向上查找,1向下查找(默认),下查包含自己,上查不包含
|
|
|
|
//根据参数配置sql语句
|
|
|
|
String query = ""; |
|
|
|
@ -230,11 +229,11 @@ public class TaskService implements ITaskService { |
|
|
|
throw new BaseException(CommonCodeError.NOT_PERMISSION); |
|
|
|
} |
|
|
|
//TODO 季度未实现
|
|
|
|
List<TaskVo.QueryTask> regularTask = taskDetailDao.queryRegularTask(param.getRoleId(), param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat); |
|
|
|
List<CTaskVo.QueryTask> regularTask = taskDetailDao.queryRegularTask(param.getRoleId(), param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat); |
|
|
|
//如果该时段没有任务向上或向下补充
|
|
|
|
if (CollectionUtil.isEmpty(regularTask)) { |
|
|
|
List<TaskVo.QueryTask> replenishTask = taskDetailDao.continueQueryTask(param.getRoleId(), param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat); |
|
|
|
Map<String, List<TaskVo.QueryTask>> taskMap = replenishTask.stream().collect(Collectors.groupingBy(task -> new SimpleDateFormat("yyyy-MM-dd").format(new Date(task.getPlanStart())))); |
|
|
|
List<CTaskVo.QueryTask> replenishTask = taskDetailDao.continueQueryTask(param.getRoleId(), param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat); |
|
|
|
Map<String, List<CTaskVo.QueryTask>> taskMap = replenishTask.stream().collect(Collectors.groupingBy(task -> new SimpleDateFormat("yyyy-MM-dd").format(new Date(task.getPlanStart())))); |
|
|
|
List<String> mapOfKey = new ArrayList<>(); |
|
|
|
taskMap.forEach((key, val) -> mapOfKey.add(key)); |
|
|
|
if (CollectionUtil.isNotEmpty(mapOfKey)) { |
|
|
|
@ -263,7 +262,7 @@ public class TaskService implements ITaskService { |
|
|
|
* @param userId 用户id |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void updateTaskType(TaskDto.UpdateTaskType param, Long userId) throws Exception { |
|
|
|
public void updateTaskType(CTaskDto.UpdateTaskType param, Long userId) throws Exception { |
|
|
|
//验证任务是否存在
|
|
|
|
ProTaskSub proTaskSub = taskSubDao.selectByPrimaryKey(param.getId()); |
|
|
|
if (ObjectUtil.isNull(proTaskSub)) { |
|
|
|
@ -414,7 +413,7 @@ public class TaskService implements ITaskService { |
|
|
|
/** |
|
|
|
* 修改任务状态时添加修改记录 |
|
|
|
*/ |
|
|
|
public void saveTaskStatusRecord(TaskDto.UpdateTaskType param, Long userId, Long now) { |
|
|
|
public void saveTaskStatusRecord(CTaskDto.UpdateTaskType param, Long userId, Long now) { |
|
|
|
ProTaskStatusRecord taskStatusRecord = new ProTaskStatusRecord(); |
|
|
|
taskStatusRecord.setId(snowflake.nextId()); |
|
|
|
taskStatusRecord.setTaskStatus(param.getType()); |
|
|
|
|