|
|
@ -155,9 +155,6 @@ public class TallService implements ITallService { |
|
|
|
@SneakyThrows |
|
|
|
@Override |
|
|
|
public TallWbsVo.WbsPath exportWbs(String token, TallProjectDto.ProjectById param) { |
|
|
|
//TODO 验证项目id是否正确
|
|
|
|
//TODO 暂时只查询二级任务,不管二级以下的子任务
|
|
|
|
|
|
|
|
//查询下项目信息
|
|
|
|
TallWbsVo.WbsProjectInfo wbsProjectInfo = proProjectDao.getWbsProjectId(param.getProjectId()); |
|
|
|
if(ObjectUtil.isNull(wbsProjectInfo)){ |
|
|
@ -200,18 +197,8 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<TallProjectVo.ProjectInfo> queryProjectByUser(String token, TallProjectDto.QueryProjectDto param) { |
|
|
|
// TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET));
|
|
|
|
// if(ObjectUtil.isNull(userByToken)){
|
|
|
|
// return null;
|
|
|
|
// }
|
|
|
|
// //通过手机号获取用户在服务内的userId
|
|
|
|
// ProUser user = null;
|
|
|
|
// if(StrUtil.isNotBlank(userByToken.getPhone())){
|
|
|
|
// user = userDao.getUserIdByPhone(userByToken.getPhone());
|
|
|
|
// }
|
|
|
|
|
|
|
|
//TODO 暂时查询全部,无论是否查到user
|
|
|
|
// List<TallProjectVo.ProjectInfo> projectInfos = new ArrayList<>();
|
|
|
|
//查找所有没有上级的项目,作为MWBS
|
|
|
|
List<TallProjectVo.ProjectInfo> mWbs = taskDetailDao.queryMwbs(param.getStartTime(),param.getEndTime(),null); |
|
|
|
if(CollectionUtil.isNotEmpty(mWbs)){ |
|
|
@ -398,44 +385,45 @@ public class TallService implements ITallService { |
|
|
|
return regularTask; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 判断当前用户的角色是否被设置不可见(是否有权限查看任务) |
|
|
|
* |
|
|
|
* @param roleId 查看的角色id |
|
|
|
* @param userId 用户id |
|
|
|
* @return 是否可见(true可见, false不可见) |
|
|
|
*/ |
|
|
|
public Boolean queryRoleIsLook(Long roleId, Long userId) { |
|
|
|
byte visitor = 0; |
|
|
|
Long projectId = roleDao.findRoleOfProjectId(roleId); |
|
|
|
if (ObjectUtil.isNull(projectId)) { |
|
|
|
throw new BaseException(BasicsCodeError.ROLE_ERROR); |
|
|
|
} |
|
|
|
Long memberId = memberDao.findUserOfMemberId(projectId, userId); |
|
|
|
//不是项目成员则为游客
|
|
|
|
if (ObjectUtil.isNull(memberId)) { |
|
|
|
visitor = 1; |
|
|
|
} |
|
|
|
//查看角色互斥表是否有对所属角色不可见
|
|
|
|
List<Long> repulsionRoleIds = roleRepulsionDao.findRepulsionByRoleId(roleId); |
|
|
|
//如果为游客
|
|
|
|
if (1 == visitor) { |
|
|
|
return !CollectionUtil.isNotEmpty(repulsionRoleIds); |
|
|
|
} |
|
|
|
//查找成员所属的所有角色
|
|
|
|
List<Long> roleIds = roleMemberDao.findMemberOfRoleIds(memberId); |
|
|
|
if (CollectionUtil.isEmpty(roleIds)) { |
|
|
|
if (CollectionUtil.isNotEmpty(repulsionRoleIds)) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
//排斥角色包含所有所属角色则不可见
|
|
|
|
if (CollectionUtil.isNotEmpty(repulsionRoleIds) && CollectionUtil.isNotEmpty(roleIds)) { |
|
|
|
boolean isLook = repulsionRoleIds.containsAll(roleIds); |
|
|
|
return !isLook; |
|
|
|
} |
|
|
|
return true; |
|
|
|
} |
|
|
|
// /**
|
|
|
|
// * 判断当前用户的角色是否被设置不可见(是否有权限查看任务)
|
|
|
|
// *
|
|
|
|
// * @param roleId 查看的角色id
|
|
|
|
// * @param userId 用户id
|
|
|
|
// * @return 是否可见(true可见, false不可见)
|
|
|
|
// */
|
|
|
|
// public Boolean queryRoleIsLook(Long roleId, Long userId) {
|
|
|
|
// byte visitor = 0;
|
|
|
|
// Long projectId = roleDao.findRoleOfProjectId(roleId);
|
|
|
|
// if (ObjectUtil.isNull(projectId)) {
|
|
|
|
// throw new BaseException(BasicsCodeError.ROLE_ERROR);
|
|
|
|
// }
|
|
|
|
// Long memberId = memberDao.findUserOfMemberId(projectId, userId);
|
|
|
|
// //不是项目成员则为游客
|
|
|
|
// if (ObjectUtil.isNull(memberId)) {
|
|
|
|
// visitor = 1;
|
|
|
|
// }
|
|
|
|
// //查看角色互斥表是否有对所属角色不可见
|
|
|
|
// List<Long> repulsionRoleIds = roleRepulsionDao.findRepulsionByRoleId(roleId);
|
|
|
|
// //如果为游客
|
|
|
|
// if (1 == visitor) {
|
|
|
|
// return !CollectionUtil.isNotEmpty(repulsionRoleIds);
|
|
|
|
// }
|
|
|
|
// //查找成员所属的所有角色
|
|
|
|
// List<Long> roleIds = roleMemberDao.findMemberOfRoleIds(memberId);
|
|
|
|
// if (CollectionUtil.isEmpty(roleIds)) {
|
|
|
|
// if (CollectionUtil.isNotEmpty(repulsionRoleIds)) {
|
|
|
|
// return false;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// //排斥角色包含所有所属角色则不可见
|
|
|
|
// if (CollectionUtil.isNotEmpty(repulsionRoleIds) && CollectionUtil.isNotEmpty(roleIds)) {
|
|
|
|
// boolean isLook = repulsionRoleIds.containsAll(roleIds);
|
|
|
|
// return !isLook;
|
|
|
|
// }
|
|
|
|
// return true;
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 查询任务的插件相关信息 |
|
|
@ -535,65 +523,65 @@ public class TallService implements ITallService { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 查看定期任务和任务下的插件展示信息 |
|
|
|
* @param token token |
|
|
|
* @param param 查询条件 |
|
|
|
* @return 返回任务列表和对应的插件展示信息 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<TallTaskVo.QueryTask> queryRegularTaskAndPlugin(String token, TallTaskDto.QueryRegularTask param) { |
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
|
|
|
|
//查找类型: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()); |
|
|
|
|
|
|
|
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); |
|
|
|
//查询插件展示信息
|
|
|
|
queryPluginShow(regularTask,user == null ? null : user.getId()); |
|
|
|
return replenishTask; |
|
|
|
} |
|
|
|
queryPluginForTask(regularTask); |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(regularTask); |
|
|
|
|
|
|
|
//查询插件展示信息
|
|
|
|
queryPluginShow(regularTask,user == null ? null : user.getId()); |
|
|
|
|
|
|
|
return regularTask; |
|
|
|
} |
|
|
|
// /**
|
|
|
|
// * 查看定期任务和任务下的插件展示信息
|
|
|
|
// * @param token token
|
|
|
|
// * @param param 查询条件
|
|
|
|
// * @return 返回任务列表和对应的插件展示信息
|
|
|
|
// */
|
|
|
|
// @Override
|
|
|
|
// public List<TallTaskVo.QueryTask> queryRegularTaskAndPlugin(String token, TallTaskDto.QueryRegularTask param) {
|
|
|
|
// ProUser user = getUserByToken(token);
|
|
|
|
// log.info("本服务下的用户信息:{}", user);
|
|
|
|
//
|
|
|
|
// //查找类型: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());
|
|
|
|
//
|
|
|
|
// 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);
|
|
|
|
// //查询插件展示信息
|
|
|
|
// queryPluginShow(regularTask,user == null ? null : user.getId());
|
|
|
|
// return replenishTask;
|
|
|
|
// }
|
|
|
|
// queryPluginForTask(regularTask);
|
|
|
|
// //查询任务下的检查人
|
|
|
|
// queryCheckerOfTask(regularTask);
|
|
|
|
//
|
|
|
|
// //查询插件展示信息
|
|
|
|
// queryPluginShow(regularTask,user == null ? null : user.getId());
|
|
|
|
//
|
|
|
|
// return null;
|
|
|
|
// }
|
|
|
|
|
|
|
|
private void queryPluginShow(List<TallTaskVo.QueryTask> regularTask,Long userId) { |
|
|
|
if(CollectionUtil.isEmpty(regularTask)){ |
|
|
|