From 712e2756a4582798a32c0b8bd73816e08bb9130a Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Mon, 28 Mar 2022 16:48:53 +0800 Subject: [PATCH] =?UTF-8?q?20220328=E7=A7=BB=E5=8A=A8=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ccsens/ptccsens/service/TallService.java | 255 ++++++++---------- 1 file changed, 106 insertions(+), 149 deletions(-) diff --git a/src/main/java/com/ccsens/ptccsens/service/TallService.java b/src/main/java/com/ccsens/ptccsens/service/TallService.java index b633b10..17ecd2e 100644 --- a/src/main/java/com/ccsens/ptccsens/service/TallService.java +++ b/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 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 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 visibleList = new ArrayList<>(); @@ -249,7 +249,7 @@ public class TallService implements ITallService { List userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),user == null ? null : user.getId()); //查询用户可见的角色 - List roleInfoList = new ArrayList<>(); + List 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 showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(),userByToken.getId()); + List 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 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 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 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 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 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 roleIds = new ArrayList<>(); roleIds.add(param.getRoleId()); - //TODO 季度未实现 List 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 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 roleIds = new ArrayList<>(); roleIds.add(param.getRoleId()); - //TODO 季度未实现 List 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 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 regularTask = taskDetailDao.pageQueryRegularTask(param.getRoleId(),queryTime,param.getTimeUnit(),param.getQueryType(),param.getTaskId(),param.getTriggerType()); -// PageInfo queryTaskPageInfo = new PageInfo<>(regularTask); -// if(CollectionUtil.isNotEmpty(queryTaskPageInfo.getList())){ -// if(param.getQueryType() == 0){ -// //向上查找任务顺序是倒的,需要改成正序 -// List 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 queryAllTask(TallTaskDto.QueryAllTask param) { - List queryTaskList = null; + List 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 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); + } + } }