|
|
@ -3,13 +3,13 @@ package com.ccsens.ptccsens.service; |
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import cn.hutool.core.io.FileUtil; |
|
|
|
import cn.hutool.core.lang.Snowflake; |
|
|
|
import cn.hutool.core.util.IdUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.ccsens.ptccsens.bean.dto.FinanceDto; |
|
|
|
import com.ccsens.ptccsens.bean.po.*; |
|
|
|
import com.ccsens.ptccsens.bean.vo.ClockingInVo; |
|
|
|
import com.ccsens.ptccsens.bean.vo.DeliverVo; |
|
|
|
import com.ccsens.ptccsens.bean.vo.FinanceVo; |
|
|
|
import com.ccsens.ptccsens.persist.dao.*; |
|
|
@ -50,6 +50,8 @@ import java.util.stream.Collectors; |
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|
|
|
public class TallService implements ITallService { |
|
|
|
|
|
|
|
@Resource |
|
|
|
private Snowflake snowflake; |
|
|
|
@Resource |
|
|
|
private ProRoleDao proRoleDao; |
|
|
|
@Resource |
|
|
@ -108,18 +110,8 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
@Override |
|
|
|
public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params) { |
|
|
|
//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); |
|
|
|
} |
|
|
|
log.info("token获取的用户信息:{}", userByToken); |
|
|
|
//通过手机号获取用户在服务内的userId
|
|
|
|
ProUser user = null; |
|
|
|
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ |
|
|
|
user = userDao.getUserIdByPhone(userByToken.getPhone()); |
|
|
|
} |
|
|
|
public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params,Long parentId) { |
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
if(ObjectUtil.isNull(user)){ |
|
|
|
throw new BaseException(BasicsCodeError.NOT_USER_SERVER); |
|
|
@ -142,15 +134,27 @@ public class TallService implements ITallService { |
|
|
|
FileUtil.writeFromStream(params.getInputStream(), fullPath); |
|
|
|
|
|
|
|
//导入数据库
|
|
|
|
return importService.importWbs(fullPath,user.getId(),null); |
|
|
|
return importService.importWbs(fullPath,user.getId(),parentId); |
|
|
|
} |
|
|
|
|
|
|
|
private ProUser getUserByToken(String token) { |
|
|
|
//根据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); |
|
|
|
} |
|
|
|
log.info("token获取的用户信息:{}", userByToken); |
|
|
|
//通过手机号获取用户在服务内的userId
|
|
|
|
ProUser user = null; |
|
|
|
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ |
|
|
|
user = userDao.getUserIdByPhone(userByToken.getPhone()); |
|
|
|
} |
|
|
|
return user; |
|
|
|
} |
|
|
|
|
|
|
|
@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)){ |
|
|
@ -193,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)){ |
|
|
@ -230,16 +224,9 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
@Override |
|
|
|
public TallRoleVo.QueryRole queryShowRole(String token, TallRoleDto.QueryRoleById param) { |
|
|
|
//TODO 通过token向tall获取用户信息,
|
|
|
|
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()); |
|
|
|
} |
|
|
|
|
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
//返回的对象
|
|
|
|
TallRoleVo.QueryRole queryRole = new TallRoleVo.QueryRole(); |
|
|
|
List<TallRoleVo.RoleInfo> visibleList = new ArrayList<>(); |
|
|
@ -249,7 +236,7 @@ public class TallService implements ITallService { |
|
|
|
List<ProRole> userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),user == null ? null : user.getId()); |
|
|
|
|
|
|
|
//查询用户可见的角色
|
|
|
|
List<TallRoleVo.RoleInfo> roleInfoList = new ArrayList<>(); |
|
|
|
List<TallRoleVo.RoleInfo> roleInfoList; |
|
|
|
if(CollectionUtil.isNotEmpty(userRoleList)){ |
|
|
|
//不是关注者,查询可见的角色(完全屏蔽才不可见)
|
|
|
|
roleInfoList = proRoleDao.notAttentionQueryRole(param.getProjectId(),userRoleList); |
|
|
@ -258,7 +245,7 @@ public class TallService implements ITallService { |
|
|
|
roleInfoList = proRoleDao.attentionQueryRole(param.getProjectId()); |
|
|
|
} |
|
|
|
//查询配置信息
|
|
|
|
List<Long> showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(),userByToken.getId()); |
|
|
|
List<Long> showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(),user == null ? null : user.getId()); |
|
|
|
if(CollectionUtil.isNotEmpty(showRoleList)){ |
|
|
|
for (Long showRoleId : showRoleList) { |
|
|
|
//循环配置内的信息去匹配角色列表,来确定角色该放在什么地方
|
|
|
@ -315,18 +302,9 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<TallTaskVo.QueryTask> queryPermanentGlobalTask(String token, TallTaskDto.QueryPermanentGlobalTask param) { |
|
|
|
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(BasicsCodeError.NOT_USER_SERVER);
|
|
|
|
// }
|
|
|
|
|
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
|
|
|
|
List<Long> roleIds = new ArrayList<>(); |
|
|
|
roleIds.add(param.getRoleId()); |
|
|
@ -337,25 +315,16 @@ public class TallService implements ITallService { |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(permanentGlobalTask); |
|
|
|
|
|
|
|
//TODO 查询插件展示信息
|
|
|
|
//查询插件展示信息
|
|
|
|
queryPluginShow(permanentGlobalTask,user == null ? null : user.getId()); |
|
|
|
return permanentGlobalTask; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<TallTaskVo.QueryTask> queryGlobalTask(String token, TallTaskDto.QueryGlobalTask param) { |
|
|
|
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(BasicsCodeError.NOT_USER_SERVER);
|
|
|
|
// }
|
|
|
|
|
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
|
|
|
|
List<Long> roleIds = new ArrayList<>(); |
|
|
|
roleIds.add(param.getRoleId()); |
|
|
@ -365,20 +334,14 @@ public class TallService implements ITallService { |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(globalTask); |
|
|
|
|
|
|
|
//TODO 查询插件展示信息
|
|
|
|
//查询插件展示信息
|
|
|
|
queryPluginShow(globalTask,user == null ? null : user.getId()); |
|
|
|
return globalTask; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<TallTaskVo.QueryTask> queryRegularTask(String token, TallTaskDto.QueryRegularTask param) { |
|
|
|
//TODO 通过token向tall获取用户信息,
|
|
|
|
// Long userId = null;
|
|
|
|
// //查找当前角色是否有查看权限
|
|
|
|
// Boolean isLook = queryRoleIsLook(param.getRoleId(), userId);
|
|
|
|
// if (BooleanUtil.isFalse(isLook)) {
|
|
|
|
// throw new BaseException(BasicsCodeError.NOT_PERMISSION);
|
|
|
|
// }
|
|
|
|
|
|
|
|
//查找类型:0向上查找,1向下查找(默认),下查包含自己,上查不包含
|
|
|
|
//根据参数配置sql语句
|
|
|
|
String query = ""; |
|
|
@ -393,7 +356,6 @@ public class TallService implements ITallService { |
|
|
|
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)) { |
|
|
@ -423,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;
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 查询任务的插件相关信息 |
|
|
@ -560,77 +523,65 @@ 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(BasicsCodeError.NOT_USER_SERVER);
|
|
|
|
// /**
|
|
|
|
// * 查看定期任务和任务下的插件展示信息
|
|
|
|
// * @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;
|
|
|
|
// }
|
|
|
|
|
|
|
|
//查找类型: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)){ |
|
|
@ -646,53 +597,27 @@ public class TallService implements ITallService { |
|
|
|
//TODO 判断插件类型,暂时一个个的判断,之后应该是统一的接口
|
|
|
|
Long pluginId = plugin.getPluginId(); |
|
|
|
if (pluginId == 15L) { |
|
|
|
//TODO 查找交付物的信息
|
|
|
|
//查找交付物的信息
|
|
|
|
DeliverVo.DeliverOfTask deliverByTask = pluDeliverDao.getDeliverByTask(queryTask.getId(), userId); |
|
|
|
plugin.setData(JSON.toJSONString(deliverByTask)); |
|
|
|
} else if (pluginId == 18L) { |
|
|
|
//TODO 查找财务条的信息
|
|
|
|
//查找财务条的信息
|
|
|
|
FinanceVo.FinanceItem byTask = financeService.getByTask(new FinanceDto.TaskId(queryTask.getDetailId())); |
|
|
|
plugin.setData(JSON.toJSONString(byTask)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// queryTask.getPlugins().forEach(pluginInfos -> {
|
|
|
|
// if(CollectionUtil.isNotEmpty(pluginInfos)){
|
|
|
|
// pluginInfos.forEach(plugin ->{
|
|
|
|
// //TODO 判断插件类型,暂时一个个的判断,之后应该是统一的接口
|
|
|
|
// Long pluginId = plugin.getPluginId();
|
|
|
|
// if (pluginId == 15L) {
|
|
|
|
// //TODO 查找交付物的信息
|
|
|
|
// DeliverVo.DeliverOfTask deliverByTask = pluDeliverDao.getDeliverByTask(queryTask.getId(), userId);
|
|
|
|
// plugin.setData(JSON.toJSONString(deliverByTask));
|
|
|
|
// } else if (pluginId == 18L) {
|
|
|
|
// //TODO 查找财务条的信息
|
|
|
|
// FinanceVo.FinanceItem byTask = financeService.getByTask(new FinanceDto.TaskId(queryTask.getDetailId()));
|
|
|
|
// plugin.setData(JSON.toJSONString(byTask));
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageInfo<TallTaskVo.QueryTask> pageQueryRegularTask(String token, TallTaskDto.PageQueryRegularTask 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(BasicsCodeError.NOT_USER_SERVER);
|
|
|
|
// }
|
|
|
|
|
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
|
|
|
|
//查询用的时间
|
|
|
|
Long queryTime = System.currentTimeMillis(); |
|
|
|
|
|
|
@ -717,8 +642,8 @@ public class TallService implements ITallService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//如果查看的角色项目经理,则查看所有任务
|
|
|
|
|
|
|
|
//如果查看的角色项目经理,则查看所有任务
|
|
|
|
int isPm = 0; |
|
|
|
ProRole role = proRoleDao.selectByPrimaryKey(param.getRoleId()); |
|
|
|
if(ObjectUtil.isNotNull(role)){ |
|
|
@ -727,7 +652,7 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
//获取任务列表
|
|
|
|
PageHelper.startPage(param.getPageNum(),param.getPageSize()); |
|
|
|
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(isPm, role.getProjectId(), param.getRoleId(),queryTime,param.getTimeUnit(),param.getQueryType(),param.getTaskId(),param.getTriggerType()); |
|
|
|
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(isPm, param.getProjectId(), 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){ |
|
|
@ -742,36 +667,16 @@ public class TallService implements ITallService { |
|
|
|
queryPluginForTask(queryTaskPageInfo.getList()); |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(queryTaskPageInfo.getList()); |
|
|
|
//TODO 查询插件展示信息
|
|
|
|
//查询插件展示信息
|
|
|
|
queryPluginShow(queryTaskPageInfo.getList(),user == null ? null : user.getId()); |
|
|
|
} |
|
|
|
// //获取任务列表
|
|
|
|
// PageHelper.startPage(param.getPageNum(),param.getPageSize());
|
|
|
|
// List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(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());
|
|
|
|
// //TODO 查询插件展示信息
|
|
|
|
// queryPluginShow(queryTaskPageInfo.getList(),user == null ? null : user.getId());
|
|
|
|
// }
|
|
|
|
|
|
|
|
return queryTaskPageInfo; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<TallTaskVo.QueryTask> queryAllTask(TallTaskDto.QueryAllTask param) { |
|
|
|
List<TallTaskVo.QueryTask> queryTaskList = null; |
|
|
|
List<TallTaskVo.QueryTask> queryTaskList = new ArrayList<>(); |
|
|
|
//通过手机号查找服务内的用户
|
|
|
|
ProUser user = userDao.getUserIdByPhone(param.getPhone()); |
|
|
|
if(ObjectUtil.isNull(user)){ |
|
|
@ -802,16 +707,10 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
@Override |
|
|
|
public void deleteProject(String token, TallProjectDto.ProjectById params) { |
|
|
|
//根据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()); |
|
|
|
} |
|
|
|
//查找用户
|
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
|
|
|
|
if(ObjectUtil.isNull(user)){ |
|
|
|
throw new BaseException(BasicsCodeError.NOT_USER_SERVER); |
|
|
|
} |
|
|
@ -820,7 +719,7 @@ public class TallService implements ITallService { |
|
|
|
if (power < 1) { |
|
|
|
throw new BaseException(BasicsCodeError.NO_POWER); |
|
|
|
} |
|
|
|
//TODO 删除项目 暂时只删除项目
|
|
|
|
//删除项目
|
|
|
|
ProTaskDetail project = new ProTaskDetail(); |
|
|
|
project.setId(params.getProjectId()); |
|
|
|
project.setRecStatus((byte) 2); |
|
|
@ -961,4 +860,50 @@ public class TallService implements ITallService { |
|
|
|
taskPanelInfoExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|
|
|
taskPanelInfoMapper.updateByExampleSelective(taskPanelInfo,taskPanelInfoExample); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void dragProject(String token, TallProjectDto.MoveProject params) { |
|
|
|
//获取用户信息
|
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
if(ObjectUtil.isNull(user)){ |
|
|
|
throw new BaseException(BasicsCodeError.NOT_USER_SERVER); |
|
|
|
} |
|
|
|
//检查移动的项目是否存在
|
|
|
|
ProTaskDetail moveProject = taskDetailDao.selectByPrimaryKey(params.getMoveProjectId()); |
|
|
|
if(ObjectUtil.isNull(moveProject)){ |
|
|
|
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); |
|
|
|
} |
|
|
|
//如果目标项目id不为空,检查项目是否存在
|
|
|
|
if(ObjectUtil.isNotNull(params.getTargetProjectId())){ |
|
|
|
ProTaskDetail targetProject = taskDetailDao.selectByPrimaryKey(params.getTargetProjectId()); |
|
|
|
if(ObjectUtil.isNull(targetProject)){ |
|
|
|
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); |
|
|
|
} |
|
|
|
} |
|
|
|
//TODO 检查用户权限(用户必须是移动项目的项目经理)
|
|
|
|
//判断用户是否是项目经理
|
|
|
|
Integer power = powerService.queryUserPower(params.getMoveProjectId(), user.getId()); |
|
|
|
if (power < 1) { |
|
|
|
throw new BaseException(BasicsCodeError.NO_POWER); |
|
|
|
} |
|
|
|
//删除之前的层级关系
|
|
|
|
ProParentTaskExample parentTaskExample = new ProParentTaskExample(); |
|
|
|
parentTaskExample.createCriteria().andTaskDetailIdEqualTo(params.getMoveProjectId()); |
|
|
|
List<ProParentTask> proParentTasks = parentTaskDao.selectByExample(parentTaskExample); |
|
|
|
if(CollectionUtil.isNotEmpty(proParentTasks)){ |
|
|
|
proParentTasks.forEach(proParentTask -> { |
|
|
|
proParentTask.setRecStatus((byte) 2); |
|
|
|
parentTaskDao.updateByPrimaryKeySelective(proParentTask); |
|
|
|
}); |
|
|
|
} |
|
|
|
//重新添加
|
|
|
|
if(ObjectUtil.isNotNull(params.getTargetProjectId())){ |
|
|
|
ProParentTask proParentTask = new ProParentTask(); |
|
|
|
proParentTask.setId(snowflake.nextId()); |
|
|
|
proParentTask.setTaskDetailId(params.getMoveProjectId()); |
|
|
|
proParentTask.setParentTaskDetailId(params.getTargetProjectId()); |
|
|
|
parentTaskDao.insertSelective(proParentTask); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|