Browse Source

20220328移动项目

contest
zy_Java 3 years ago
parent
commit
712e2756a4
  1. 255
      src/main/java/com/ccsens/ptccsens/service/TallService.java

255
src/main/java/com/ccsens/ptccsens/service/TallService.java

@ -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
@ -109,17 +111,7 @@ 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());
}
ProUser user = getUserByToken(token);
log.info("本服务下的用户信息:{}", user);
if(ObjectUtil.isNull(user)){
throw new BaseException(BasicsCodeError.NOT_USER_SERVER);
@ -145,6 +137,21 @@ public class TallService implements ITallService {
return importService.importWbs(fullPath,user.getId(),null);
}
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) {
@ -193,15 +200,15 @@ 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());
}
// 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<>();
@ -230,16 +237,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 +249,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 +258,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 +315,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 +328,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 +347,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 +369,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)) {
@ -568,19 +543,8 @@ public class TallService implements ITallService {
*/
@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);
// }
ProUser user = getUserByToken(token);
log.info("本服务下的用户信息:{}", user);
//查找类型:0向上查找,1向下查找(默认),下查包含自己,上查不包含
//根据参数配置sql语句
@ -596,7 +560,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)) {
@ -618,7 +581,7 @@ public class TallService implements ITallService {
queryPluginForTask(replenishTask);
//查询任务下的检查人
queryCheckerOfTask(replenishTask);
//TODO 查询插件展示信息
//查询插件展示信息
queryPluginShow(regularTask,user == null ? null : user.getId());
return replenishTask;
}
@ -626,7 +589,7 @@ public class TallService implements ITallService {
//查询任务下的检查人
queryCheckerOfTask(regularTask);
//TODO 查询插件展示信息
//查询插件展示信息
queryPluginShow(regularTask,user == null ? null : user.getId());
return regularTask;
@ -646,53 +609,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,7 +654,7 @@ public class TallService implements ITallService {
}
}
}
//如果查看的角色项目经理,则查看所有任务
//如果查看的角色项目经理,则查看所有任务
int isPm = 0;
ProRole role = proRoleDao.selectByPrimaryKey(param.getRoleId());
if(ObjectUtil.isNotNull(role)){
@ -740,36 +677,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)){
@ -800,16 +717,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);
}
@ -818,7 +729,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);
@ -959,4 +870,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);
}
}
}

Loading…
Cancel
Save