|
|
@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSONArray; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.ccsens.ptos_zero.bean.po.ProRole; |
|
|
|
import com.ccsens.ptos_zero.bean.po.ProRoleExample; |
|
|
|
import com.ccsens.ptos_zero.bean.po.ProTaskSub; |
|
|
|
import com.ccsens.ptos_zero.bean.po.ProUser; |
|
|
|
import com.ccsens.ptos_zero.bean.vo.DeliverVo; |
|
|
|
import com.ccsens.ptos_zero.persist.dao.*; |
|
|
@ -82,7 +83,7 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
@Override |
|
|
|
public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params) { |
|
|
|
public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params, Long parentId) { |
|
|
|
//TODO 根据token获取用户信息
|
|
|
|
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); |
|
|
|
if(ObjectUtil.isNull(userByToken)){ |
|
|
@ -427,6 +428,7 @@ public class TallService implements ITallService { |
|
|
|
return regularTask; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 判断当前用户的角色是否被设置不可见(是否有权限查看任务) |
|
|
|
* |
|
|
@ -563,78 +565,78 @@ public class TallService implements ITallService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 查看定期任务和任务下的插件展示信息 |
|
|
|
* @param token token |
|
|
|
* @param param 查询条件 |
|
|
|
* @return 返回任务列表和对应的插件展示信息 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<TallTaskVo.QueryTask> queryRegularTaskAndPlugin(String token, TallTaskDto.QueryRegularTask param) { |
|
|
|
//TODO 根据token获取用户信息
|
|
|
|
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); |
|
|
|
if(ObjectUtil.isNull(userByToken)){ |
|
|
|
throw new BaseException(CodeEnum.NOT_LOGIN); |
|
|
|
} |
|
|
|
//通过手机号获取用户在服务内的userId
|
|
|
|
ProUser user = null; |
|
|
|
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ |
|
|
|
user = userDao.getUserIdByPhone(userByToken.getPhone()); |
|
|
|
} |
|
|
|
// if(ObjectUtil.isNull(user)){
|
|
|
|
// throw new BaseException(ZeroCodeError.NOT_USER_SERVER);
|
|
|
|
//
|
|
|
|
// /**
|
|
|
|
// * 查看定期任务和任务下的插件展示信息
|
|
|
|
// * @param token token
|
|
|
|
// * @param param 查询条件
|
|
|
|
// * @return 返回任务列表和对应的插件展示信息
|
|
|
|
// */
|
|
|
|
// @Override
|
|
|
|
// public List<TallTaskVo.QueryTask> queryRegularTaskAndPlugin(String token, TallTaskDto.QueryRegularTask param) {
|
|
|
|
// //TODO 根据token获取用户信息
|
|
|
|
// TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET));
|
|
|
|
// if(ObjectUtil.isNull(userByToken)){
|
|
|
|
// throw new BaseException(CodeEnum.NOT_LOGIN);
|
|
|
|
// }
|
|
|
|
|
|
|
|
//查找类型: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); |
|
|
|
//TODO 查询插件展示信息
|
|
|
|
queryPluginShow(regularTask,user == null ? null : user.getId()); |
|
|
|
return replenishTask; |
|
|
|
} |
|
|
|
queryPluginForTask(regularTask); |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(regularTask); |
|
|
|
|
|
|
|
//TODO 查询插件展示信息
|
|
|
|
queryPluginShow(regularTask,user == null ? null : user.getId()); |
|
|
|
|
|
|
|
return regularTask; |
|
|
|
} |
|
|
|
// //通过手机号获取用户在服务内的userId
|
|
|
|
// ProUser user = null;
|
|
|
|
// if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){
|
|
|
|
// user = userDao.getUserIdByPhone(userByToken.getPhone());
|
|
|
|
// }
|
|
|
|
//// if(ObjectUtil.isNull(user)){
|
|
|
|
//// throw new BaseException(ZeroCodeError.NOT_USER_SERVER);
|
|
|
|
//// }
|
|
|
|
//
|
|
|
|
// //查找类型: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);
|
|
|
|
// //TODO 查询插件展示信息
|
|
|
|
// queryPluginShow(regularTask,user == null ? null : user.getId());
|
|
|
|
// return replenishTask;
|
|
|
|
// }
|
|
|
|
// queryPluginForTask(regularTask);
|
|
|
|
// //查询任务下的检查人
|
|
|
|
// queryCheckerOfTask(regularTask);
|
|
|
|
//
|
|
|
|
// //TODO 查询插件展示信息
|
|
|
|
// queryPluginShow(regularTask,user == null ? null : user.getId());
|
|
|
|
//
|
|
|
|
// return regularTask;
|
|
|
|
// }
|
|
|
|
|
|
|
|
private void queryPluginShow(List<TallTaskVo.QueryTask> regularTask,Long userId) { |
|
|
|
if(CollectionUtil.isEmpty(regularTask)){ |
|
|
@ -690,7 +692,75 @@ public class TallService implements ITallService { |
|
|
|
if(ObjectUtil.isNull(userByToken)){ |
|
|
|
throw new BaseException(CodeEnum.NOT_LOGIN); |
|
|
|
} |
|
|
|
log.info("token获取的用户信息:{}", userByToken); |
|
|
|
//通过手机号获取用户在服务内的userId
|
|
|
|
ProUser user = null; |
|
|
|
if (ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())) { |
|
|
|
user = userDao.getUserIdByPhone(userByToken.getPhone()); |
|
|
|
} |
|
|
|
PageInfo<TallTaskVo.QueryTask> queryTaskPageInfo; |
|
|
|
//如果是管理员则查看LWBS,否则正常查找任务
|
|
|
|
ProRole proRole = proRoleDao.selectByPrimaryKey(param.getRoleId()); |
|
|
|
if(!proRole.getName().equals(Constant.ROLE_NAME_ADMIN)){ |
|
|
|
queryTaskPageInfo = queryPageTask(param, user); |
|
|
|
}else { |
|
|
|
//角色是"管理员"
|
|
|
|
queryTaskPageInfo = queryLwbs(param, regularTask, userByToken); |
|
|
|
} |
|
|
|
|
|
|
|
return queryTaskPageInfo; |
|
|
|
} |
|
|
|
|
|
|
|
private PageInfo<TallTaskVo.QueryTask> queryPageTask(TallTaskDto.PageQueryRegularTask param, ProUser user) { |
|
|
|
//查询用的时间
|
|
|
|
Long queryTime = System.currentTimeMillis(); |
|
|
|
|
|
|
|
if (ObjectUtil.isNotNull(param.getTaskId())) { |
|
|
|
//根据任务id查找任务,以任务的开始时间当做查询的时间点
|
|
|
|
ProTaskSub proTaskSub = proTaskSubDao.selectByPrimaryKey(param.getTaskId()); |
|
|
|
if (ObjectUtil.isNotNull(proTaskSub) && proTaskSub.getPlanStartTime() != 0L) { |
|
|
|
queryTime = proTaskSub.getPlanStartTime(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (ObjectUtil.isNotNull(param.getTimeNode())) { |
|
|
|
//没有任务id则根据时间基准线查询当前正在进行的任务(如果多个则选择时间最早的一个)
|
|
|
|
Long startTime = proTaskSubDao.getTimeByProgressTask(param.getTimeNode(), param.getRoleId()); |
|
|
|
if (ObjectUtil.isNotNull(startTime)) { |
|
|
|
queryTime = startTime; |
|
|
|
} |
|
|
|
} else { |
|
|
|
//如果没有时间基准线则按当前时间查询查询任务
|
|
|
|
Long startTime = proTaskSubDao.getTimeByProgressTask(System.currentTimeMillis(), param.getRoleId()); |
|
|
|
if (ObjectUtil.isNotNull(startTime)) { |
|
|
|
queryTime = startTime; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//获取任务列表
|
|
|
|
PageHelper.startPage(param.getPageNum(), param.getPageSize()); |
|
|
|
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(0, null, param.getRoleId(), queryTime, param.getTimeUnit(), param.getQueryType(), param.getTaskId(), param.getTriggerType()); |
|
|
|
PageInfo<TallTaskVo.QueryTask> queryTaskPageInfo = new PageInfo<>(regularTask); |
|
|
|
if (CollectionUtil.isNotEmpty(queryTaskPageInfo.getList())) { |
|
|
|
if (param.getQueryType() == 0) { |
|
|
|
//向上查找任务顺序是倒的,需要改成正序
|
|
|
|
List<TallTaskVo.QueryTask> taskList = new ArrayList<>(); |
|
|
|
for (int i = queryTaskPageInfo.getList().size() - 1; i >= 0; i--) { |
|
|
|
taskList.add(queryTaskPageInfo.getList().get(i)); |
|
|
|
} |
|
|
|
queryTaskPageInfo.setList(taskList); |
|
|
|
} |
|
|
|
//查询任务下的插件
|
|
|
|
queryPluginForTask(queryTaskPageInfo.getList()); |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(queryTaskPageInfo.getList()); |
|
|
|
//查询插件展示信息
|
|
|
|
queryPluginShow(queryTaskPageInfo.getList(), user == null ? null : user.getId()); |
|
|
|
} |
|
|
|
return queryTaskPageInfo; |
|
|
|
} |
|
|
|
|
|
|
|
private PageInfo<TallTaskVo.QueryTask> queryLwbs(TallTaskDto.PageQueryRegularTask param, List<TallTaskVo.QueryTask> regularTask, TallTokenVo.UserIdByToken userByToken) { |
|
|
|
//调用tall的接口查询所有的任务
|
|
|
|
String url = com.ccsensptos.tallsdk.util.Constant.GATEWAY_URL + com.ccsensptos.tallsdk.util.Constant.QUERY_ALL_TASK; |
|
|
|
log.info("调用接口:{}--", url); |
|
|
@ -777,7 +847,6 @@ public class TallService implements ITallService { |
|
|
|
Collections.reverse(tasks); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return new PageInfo<>(tasks); |
|
|
|
} |
|
|
|
|
|
|
@ -800,4 +869,14 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
return queryTaskList; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void deleteProject(String token, TallProjectDto.ProjectById params) { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void dragProject(String token, TallProjectDto.MoveProject params) { |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|