|
|
@ -89,35 +89,83 @@ public class TaskService implements ITaskService{ |
|
|
|
*/ |
|
|
|
public void queryPluginForTask(List<TaskVo.QueryTask> taskList){ |
|
|
|
if (CollectionUtil.isNotEmpty(taskList)){ |
|
|
|
List<List<TaskVo.TaskPluginInfo>> plugins = new ArrayList<>(); |
|
|
|
for (TaskVo.QueryTask queryTask : taskList) { |
|
|
|
List<List<TaskVo.TaskPluginInfo>> plugins = new ArrayList<>(); |
|
|
|
//如果任务面板信息不为空,则根据任务面板的行/列创建二维数组
|
|
|
|
if (ObjectUtil.isNotNull(queryTask.getPanel())){ |
|
|
|
int panelRow = queryTask.getPanel().getRow(); |
|
|
|
int panelCol = queryTask.getPanel().getCol(); |
|
|
|
if (0 != panelRow && 0 != panelCol){ |
|
|
|
//创建任务面板的二维数组
|
|
|
|
for (int i = 0; i < panelRow; i++) { |
|
|
|
createSecondPanel(plugins,panelRow,panelCol); |
|
|
|
//将插件放入二维数组对应的位置中
|
|
|
|
List<TaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getDetailId()); |
|
|
|
putDateInList(taskPluginInfoList,plugins,queryTask); |
|
|
|
}else{ |
|
|
|
//根据插件最大的行和列创建二维数组
|
|
|
|
createPanelByPlugin(queryTask.getDetailId(),plugins,queryTask); |
|
|
|
} |
|
|
|
}else { |
|
|
|
//根据插件最大的行和列创建二维数组
|
|
|
|
createPanelByPlugin(queryTask.getDetailId(),plugins,queryTask); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据插件的最大行列创建面板 |
|
|
|
* @param taskDetailId 任务详情id |
|
|
|
* @param plugins 插件列表 |
|
|
|
* @param queryTask 任务 |
|
|
|
*/ |
|
|
|
public void createPanelByPlugin(Long taskDetailId,List<List<TaskVo.TaskPluginInfo>> plugins,TaskVo.QueryTask queryTask){ |
|
|
|
List<TaskVo.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()); |
|
|
|
Integer newCol = Collections.max(col); |
|
|
|
Integer newRow = Collections.max(row); |
|
|
|
//创建任务面板的二维数组
|
|
|
|
createSecondPanel(plugins,newRow,newCol); |
|
|
|
//将插件放入二维数组对应的位置中
|
|
|
|
putDateInList(taskPluginInfoList,plugins,queryTask); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 创建面板 |
|
|
|
* @param plugins 插件列表 |
|
|
|
* @param row 行 |
|
|
|
* @param col 列 |
|
|
|
*/ |
|
|
|
public void createSecondPanel(List<List<TaskVo.TaskPluginInfo>> plugins,int row,int col){ |
|
|
|
for (int i = 0; i < row; i++) { |
|
|
|
List<TaskVo.TaskPluginInfo> pluginInfoList = new ArrayList<>(); |
|
|
|
for (int j = 0; j < panelCol; j++) { |
|
|
|
for (int j = 0; j < col; j++) { |
|
|
|
pluginInfoList.add(null); |
|
|
|
} |
|
|
|
plugins.add(pluginInfoList); |
|
|
|
} |
|
|
|
//将插件放入二维数组对应的位置中
|
|
|
|
List<TaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getDetailId()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 向空面板里插入插件详情 |
|
|
|
* @param taskPluginInfoList 插件详情列表 |
|
|
|
* @param plugins 插件列表 |
|
|
|
* @param queryTask 任务 |
|
|
|
*/ |
|
|
|
public void putDateInList(List<TaskVo.TaskPluginInfo> taskPluginInfoList,List<List<TaskVo.TaskPluginInfo>> plugins,TaskVo.QueryTask queryTask){ |
|
|
|
for (TaskVo.TaskPluginInfo taskPlugin : taskPluginInfoList) { |
|
|
|
int pluginCol = taskPlugin.getCol(); |
|
|
|
int pluginRow = taskPlugin.getRow(); |
|
|
|
plugins.get(pluginRow - 1).set(pluginCol-1,taskPlugin); |
|
|
|
if (0 == pluginCol || 0 == pluginRow) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
}else { |
|
|
|
List<TaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getDetailId()); |
|
|
|
plugins.add(taskPluginInfoList); |
|
|
|
plugins.get(pluginRow - 1).set(pluginCol - 1, taskPlugin); |
|
|
|
} |
|
|
|
queryTask.setPlugins(plugins); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public List<TaskVo.QueryTask> queryPermanentGlobalTask(TaskDto.QueryPermanentGlobalTask param, Long userId) { |
|
|
@ -186,6 +234,7 @@ public class TaskService implements ITaskService{ |
|
|
|
queryPluginForTask(replenishTask); |
|
|
|
return replenishTask; |
|
|
|
} |
|
|
|
queryPluginForTask(regularTask); |
|
|
|
return regularTask; |
|
|
|
} |
|
|
|
|
|
|
|