|
|
@ -607,4 +607,86 @@ public class TallService implements ITallService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 查看定期任务和任务下的插件展示信息 |
|
|
|
* @param header token |
|
|
|
* @param param 查询条件 |
|
|
|
* @return 返回任务列表和对应的插件展示信息 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<TallTaskVo.QueryTask> queryRegularTaskAndPlugin(String header, TallTaskDto.QueryRegularTask param) { |
|
|
|
//查找类型:0向上查找,1向下查找(默认),下查包含自己,上查不包含
|
|
|
|
//根据参数配置sql语句
|
|
|
|
String query = ""; |
|
|
|
String timeFormat = Constant.timeFormat.get(param.getTimeUnit()); |
|
|
|
String unit = Constant.timeUnit.get(param.getTimeUnit()); |
|
|
|
if (0 == param.getQueryType()) { |
|
|
|
query = "interval -" + param.getQueryNum() + " " + unit; |
|
|
|
} else { |
|
|
|
query += "interval " + (param.getQueryNum() - 1) + " " + unit; |
|
|
|
} |
|
|
|
|
|
|
|
List<Long> roleIds = new ArrayList<>(); |
|
|
|
roleIds.add(param.getRoleId()); |
|
|
|
|
|
|
|
//TODO 季度未实现
|
|
|
|
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.queryRegularTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat); |
|
|
|
//如果该时段没有任务向上或向下补充
|
|
|
|
if (CollectionUtil.isEmpty(regularTask)) { |
|
|
|
List<TallTaskVo.QueryTask> replenishTask = taskDetailDao.continueQueryTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat); |
|
|
|
Map<String, List<TallTaskVo.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)) { |
|
|
|
if (0 == param.getQueryType()) { |
|
|
|
String max = Collections.max(mapOfKey); |
|
|
|
queryPluginForTask(taskMap.get(max)); |
|
|
|
return taskMap.get(max); |
|
|
|
} else { |
|
|
|
String min = Collections.min(mapOfKey); |
|
|
|
queryPluginForTask(taskMap.get(min)); |
|
|
|
return taskMap.get(min); |
|
|
|
} |
|
|
|
} |
|
|
|
queryPluginForTask(replenishTask); |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(replenishTask); |
|
|
|
return replenishTask; |
|
|
|
} |
|
|
|
queryPluginForTask(regularTask); |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(regularTask); |
|
|
|
|
|
|
|
//TODO 查询插件展示信息
|
|
|
|
queryPluginShow(regularTask); |
|
|
|
|
|
|
|
return regularTask; |
|
|
|
} |
|
|
|
|
|
|
|
private void queryPluginShow(List<TallTaskVo.QueryTask> regularTask) { |
|
|
|
if(CollectionUtil.isEmpty(regularTask)){ |
|
|
|
return; |
|
|
|
} |
|
|
|
for (TallTaskVo.QueryTask queryTask : regularTask) { |
|
|
|
if(CollectionUtil.isNotEmpty(queryTask.getPlugins())){ |
|
|
|
queryTask.getPlugins().forEach(pluginInfos -> { |
|
|
|
if(CollectionUtil.isNotEmpty(pluginInfos)){ |
|
|
|
pluginInfos.forEach(plugin ->{ |
|
|
|
//TODO 判断插件类型,暂时一个个的判断,之后应该是统一的接口
|
|
|
|
Long pluginId = plugin.getPluginId(); |
|
|
|
if (pluginId == 15L) { |
|
|
|
//TODO 查找交付物的信息
|
|
|
|
|
|
|
|
} else if (pluginId == 18L) { |
|
|
|
//TODO 查找财务条的信息
|
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|