diff --git a/pom.xml b/pom.xml
index 46e3cb3..c21afbc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,9 +5,9 @@
com.ccsens
- contest
+ ptccsens
0.0.1-SNAPSHOT
- contest
+ ptccsens
Demo project for Spring Boot
diff --git a/src/main/java/com/ccsens/ptccsens/api/DebugController.java b/src/main/java/com/ccsens/ptccsens/api/DebugController.java
index 489443c..1d4149f 100644
--- a/src/main/java/com/ccsens/ptccsens/api/DebugController.java
+++ b/src/main/java/com/ccsens/ptccsens/api/DebugController.java
@@ -33,14 +33,6 @@ import java.util.List;
@RequestMapping("/debug")
@Slf4j
public class DebugController {
- @Resource
- private PluDeliverDao pluDeliverDao;
- @Resource
- private Snowflake snowflake;
- @Resource
- private ProTaskPluginDao proTaskPluginDao;
- @Resource
- private ProTaskSubDao proTaskSubDao;
@ApiOperation(value = "/测试",notes = "")
@ApiImplicitParams({
diff --git a/src/main/java/com/ccsens/ptccsens/api/DeliverController.java b/src/main/java/com/ccsens/ptccsens/api/DeliverController.java
index 02e6d6c..d7c5e13 100644
--- a/src/main/java/com/ccsens/ptccsens/api/DeliverController.java
+++ b/src/main/java/com/ccsens/ptccsens/api/DeliverController.java
@@ -66,7 +66,7 @@ public class DeliverController {
@ApiOperation(value = "提交交付物信息", notes = "")
@RequestMapping(value = "/submitDeliver", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse submitDeliver(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{
- log.info("查看任务下的交付物--{}",params);
+ log.info("提交交付物信息--{}",params);
deliverService.submitDeliver(params.getParam(), params.getUserId());
return JsonResponse.newInstance().ok();
}
diff --git a/src/main/java/com/ccsens/ptccsens/bean/dto/DeliverDto.java b/src/main/java/com/ccsens/ptccsens/bean/dto/DeliverDto.java
index 8918a84..f192761 100644
--- a/src/main/java/com/ccsens/ptccsens/bean/dto/DeliverDto.java
+++ b/src/main/java/com/ccsens/ptccsens/bean/dto/DeliverDto.java
@@ -64,6 +64,8 @@ public class DeliverDto {
@NotNull(message = "请选择项目")
@ApiModelProperty("项目id")
private Long projectId;
+ @ApiModelProperty("角色id")
+ private Long roleId;
@NotNull(message = "请选择交付物")
@ApiModelProperty("交付物id")
private Long deliverId;
diff --git a/src/main/java/com/ccsens/ptccsens/service/DeliverService.java b/src/main/java/com/ccsens/ptccsens/service/DeliverService.java
index ac7dee2..0bf0d92 100644
--- a/src/main/java/com/ccsens/ptccsens/service/DeliverService.java
+++ b/src/main/java/com/ccsens/ptccsens/service/DeliverService.java
@@ -150,18 +150,23 @@ public class DeliverService implements IDeliverService {
}
//----------------消息------------------------
//获取任务的角色信息
- List roleIdList = proRoleDao.getRoleIdBySubTaskId(pluDeliver.getTaskSubId());
+ Long roleId = param.getRoleId();
+ if(ObjectUtil.isNull(roleId)){
+ List roleIdList = proRoleDao.getRoleIdBySubTaskId(pluDeliver.getTaskSubId());
+ if(CollectionUtil.isNotEmpty(roleIdList)){
+ roleId = roleIdList.get(0);
+ }
+ }
//查询任务是定期还是日常
Byte taskType = proTaskDetailDao.getTaskTypeBySubTaskId(pluDeliver.getTaskSubId());
//查询当前任务的交付物插件id
Long pluginId = proTaskDetailDao.getDeliverPluginIdBySubTaskId(pluDeliver.getTaskSubId());
- if(CollectionUtil.isNotEmpty(roleIdList)){
-// roleIdList.forEach(roleId -> {
-// //生成消息内容
- RemindMessageDto remindMessageDto = new RemindMessageDto(param.getProjectId(),roleIdList.get(0),pluDeliver.getTaskSubId(),pluginId,taskType,"提交交付物");
- //TODO 发送消息
- MessageUtil.sendToUser(phoneList,null,remindMessageDto,MessageConstant.DomainType.User,null);
-// });
+ if(ObjectUtil.isNotNull(roleId)){
+ //生成消息内容
+ RemindMessageDto remindMessageDto = new RemindMessageDto(param.getProjectId(),roleId,pluDeliver.getTaskSubId(),pluginId,taskType,"提交交付物");
+ //TODO 发送消息
+ MessageUtil.sendToUser(phoneList,null,remindMessageDto,MessageConstant.DomainType.User,null);
+
}
}
diff --git a/src/main/java/com/ccsens/ptccsens/service/IImportService.java b/src/main/java/com/ccsens/ptccsens/service/IImportService.java
index 708bfc9..d013400 100644
--- a/src/main/java/com/ccsens/ptccsens/service/IImportService.java
+++ b/src/main/java/com/ccsens/ptccsens/service/IImportService.java
@@ -12,6 +12,6 @@ public interface IImportService {
* @param userId userId
* @throws Exception 异常
*/
- TallProjectVo.ProjectInfo importWbs(String path, Long userId, Long projectId) throws Exception;
+ TallProjectVo.ProjectInfo importWbs(String path, Long userId, Long parentId) throws Exception;
}
diff --git a/src/main/java/com/ccsens/ptccsens/service/ImportService.java b/src/main/java/com/ccsens/ptccsens/service/ImportService.java
index 06cbe8c..520f5f3 100644
--- a/src/main/java/com/ccsens/ptccsens/service/ImportService.java
+++ b/src/main/java/com/ccsens/ptccsens/service/ImportService.java
@@ -90,7 +90,7 @@ public class ImportService implements IImportService {
* @throws Exception 异常
*/
@Override
- public TallProjectVo.ProjectInfo importWbs(String path, Long userId, Long projectId) throws Exception {
+ public TallProjectVo.ProjectInfo importWbs(String path, Long userId, Long parentId) throws Exception {
TallProjectVo.ProjectInfo projectInfo = new TallProjectVo.ProjectInfo();
//获取excel文件
InputStream is = new FileInputStream(path);
@@ -103,7 +103,7 @@ public class ImportService implements IImportService {
Map taskMap = new HashMap<>();
//读取文件
- readExcel(xssfWorkbook, userId, roleMap, memberMap, taskMap,projectId,projectInfo);
+ readExcel(xssfWorkbook, userId, roleMap, memberMap, taskMap,parentId,projectInfo);
//读取插件配置表
readPluginConfig(xssfWorkbook,taskMap);
@@ -161,7 +161,7 @@ public class ImportService implements IImportService {
/**
* 读取每个sheet
*/
- private void readExcel(XSSFWorkbook wb, Long userId, Map roleMap, Map memberMap, Map taskMap, Long projectId, TallProjectVo.ProjectInfo projectInfo) {
+ private void readExcel(XSSFWorkbook wb, Long userId, Map roleMap, Map memberMap, Map taskMap, Long parentId, TallProjectVo.ProjectInfo projectInfo) {
//获取wbsSheet
XSSFSheet wbsSheet = wb.getSheet(BasicsConstant.WbsExcel.WBS_SHEET);
if (ObjectUtil.isNull(wbsSheet)) {
@@ -207,13 +207,19 @@ public class ImportService implements IImportService {
if(ObjectUtil.isNull(project)){
throw new BaseException(BasicsCodeError.WSB_NOT_PROJECT_HEADER);
}
+ //如果parentId不为空,添加层级关系
+ if(ObjectUtil.isNotNull(parentId)){
+ ProParentTask proParentTask = new ProParentTask();
+ proParentTask.setId(snowflake.nextId());
+ proParentTask.setTaskDetailId(project.getId());
+ proParentTask.setParentTaskDetailId(parentId);
+ parentTaskMapper.insertSelective(proParentTask);
+ }
//读取成员表
readMemberSheet(memberSheet,project,roleMap,memberMap);
//添加任务
readTask(wbsSheet,taskStart,project,roleMap,taskMap);
- //获取用户列表
- Set userIdSet = new HashSet<>();
- userIdSet.add(userId);
+
//处理创建人的权限问题(添加创建人角色)
//查找创建者标签id
Long roleLabelId = labelDao.getLabelByTypeAndLevel(5, 5);
@@ -232,7 +238,7 @@ public class ImportService implements IImportService {
if(member.getUserId().equals(userId)){
memberId = member.getId();
}
- userIdSet.add(member.getUserId());
+// userIdSet.add(member.getUserId());
}
}
}
@@ -241,13 +247,12 @@ public class ImportService implements IImportService {
//添加成员至数据库
ProMember proMember = new ProMember();
proMember.setId(snowflake.nextId());
- proMember.setProjectId(projectId);
+ proMember.setProjectId(project.getId());
proMember.setUserId(userId);
memberDao.insertSelective(proMember);
- memberId = proMember.getId();
+// memberId = proMember.getId();
}
- //添加当前用户未创建者
- //添加角色成员关联信息
+ //添加当前用户为创建者
ProRoleMember roleMember = new ProRoleMember();
roleMember.setId(snowflake.nextId());
roleMember.setRoleId(role.getId());
@@ -321,11 +326,17 @@ public class ImportService implements IImportService {
LabelBusinessExample labelBusinessExample = new LabelBusinessExample();
labelBusinessExample.createCriteria().andBusinessIdEqualTo(projectId);
labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample);
+ //删除项目的关联关系
+ ProParentTask proParentTask = new ProParentTask();
+ proParentTask.setRecStatus((byte) 2);
+ ProParentTaskExample proParentTaskExample = new ProParentTaskExample();
+ proParentTaskExample.createCriteria().andTaskDetailIdEqualTo(projectId);
+ parentTaskMapper.updateByExampleSelective(proParentTask,proParentTaskExample);
}
}
//项目名不能重复(当前用户创建的项目内名字不能重复)
//根据userId查找已创建的项目
- if(0 == project.getImportType()) {
+// if(0 == project.getImportType()) {
List sysProjectList = projectDao.queryByCreator(userId);
if (CollectionUtil.isNotEmpty(sysProjectList)) {
sysProjectList.forEach(p -> {
@@ -335,7 +346,7 @@ public class ImportService implements IImportService {
}
});
}
- }
+// }
//判断时间是否正确
String begin = ExcelUtil.getCellValue(row.getCell(3));
String end = ExcelUtil.getCellValue(row.getCell(4));
diff --git a/src/main/java/com/ccsens/ptccsens/service/TallService.java b/src/main/java/com/ccsens/ptccsens/service/TallService.java
index e83f19f..0941f6c 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
@@ -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 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 projectInfos = new ArrayList<>();
//查找所有没有上级的项目,作为MWBS
List 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 visibleList = new ArrayList<>();
@@ -249,7 +236,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 +245,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 +302,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 +315,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 +334,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 +356,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)) {
@@ -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 repulsionRoleIds = roleRepulsionDao.findRepulsionByRoleId(roleId);
- //如果为游客
- if (1 == visitor) {
- return !CollectionUtil.isNotEmpty(repulsionRoleIds);
- }
- //查找成员所属的所有角色
- List 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 repulsionRoleIds = roleRepulsionDao.findRepulsionByRoleId(roleId);
+// //如果为游客
+// if (1 == visitor) {
+// return !CollectionUtil.isNotEmpty(repulsionRoleIds);
+// }
+// //查找成员所属的所有角色
+// List 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 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 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;
// }
-
- //查找类型: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 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)) {
- List replenishTask = taskDetailDao.continueQueryTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
- Map> taskMap = replenishTask.stream().collect(Collectors.groupingBy(task -> new SimpleDateFormat("yyyy-MM-dd").format(new Date(task.getPlanStart()))));
- List 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;
- }
+//
+// List roleIds = new ArrayList<>();
+// roleIds.add(param.getRoleId());
+//
+// List regularTask = taskDetailDao.queryRegularTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
+// //如果该时段没有任务向上或向下补充
+// if (CollectionUtil.isEmpty(regularTask)) {
+// List replenishTask = taskDetailDao.continueQueryTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
+// Map> taskMap = replenishTask.stream().collect(Collectors.groupingBy(task -> new SimpleDateFormat("yyyy-MM-dd").format(new Date(task.getPlanStart()))));
+// List 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 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 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 regularTask = taskDetailDao.pageQueryRegularTask(isPm, role.getProjectId(), param.getRoleId(),queryTime,param.getTimeUnit(),param.getQueryType(),param.getTaskId(),param.getTriggerType());
+ List regularTask = taskDetailDao.pageQueryRegularTask(isPm, param.getProjectId(), 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){
@@ -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 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)){
@@ -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 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);
+ }
+ }
}
diff --git a/src/main/resources/mapper_dao/ProTaskDetailDao.xml b/src/main/resources/mapper_dao/ProTaskDetailDao.xml
index 14306da..03aa8d8 100644
--- a/src/main/resources/mapper_dao/ProTaskDetailDao.xml
+++ b/src/main/resources/mapper_dao/ProTaskDetailDao.xml
@@ -455,9 +455,10 @@
LEFT JOIN t_label_business lb on d.id = lb.business_id and lb.rec_status = 0
LEFT JOIN t_label l on l.id = lb.label_id and l.rec_status = 0
LEFT JOIN t_pro_parent_task p on d.id = p.task_detail_id and p.rec_status = 0
+ LEFT JOIN t_pro_task_detail d2 on d2.id = p.parent_task_detail_id and d2.rec_status = 0
WHERE
l.label_type_id = 2
- and p.parent_task_detail_id is null
+ and d2.id is null
and
l.`level` = 0
and
@@ -553,7 +554,7 @@
and ts.id != #{taskId}
-
+ group by ts.id
) AS alltask
LEFT JOIN t_label_business AS llbb ON alltask.detailId = llbb.business_id
LEFT JOIN t_label AS ll ON llbb.label_id = ll.id
diff --git a/src/main/resources/mapper_dao/ProTaskPluginDao.xml b/src/main/resources/mapper_dao/ProTaskPluginDao.xml
index 7624014..55543db 100644
--- a/src/main/resources/mapper_dao/ProTaskPluginDao.xml
+++ b/src/main/resources/mapper_dao/ProTaskPluginDao.xml
@@ -131,11 +131,11 @@
p.rowspan AS rowspan,
p.id AS pluginTaskId
FROM
- t_pro_task_sub s
- LEFT JOIN t_pro_task_detail d on s.task_detail_id = d.id and d.rec_status = 0
- LEFT JOIN t_pro_task_plugin p on d.id = p.task_detail_id and p.rec_status = 0
+ t_pro_task_plugin p
+ LEFT JOIN t_pro_task_detail d on d.id = p.task_detail_id and d.rec_status = 0
+ LEFT JOIN t_pro_task_sub s on s.task_detail_id = d.id and s.rec_status = 0
WHERE
- s.rec_status = 0
+ p.rec_status = 0
and s.id = #{subId}