Browse Source

20220405合并master分支

contest
zhangye 3 years ago
parent
commit
3b2ddfaa18
  1. 5
      src/main/java/com/ccsens/ptccsens/bean/dto/RoleDto.java
  2. 8
      src/main/java/com/ccsens/ptccsens/persist/dao/ProRoleDao.java
  3. 16
      src/main/java/com/ccsens/ptccsens/service/ExportService.java
  4. 27
      src/main/java/com/ccsens/ptccsens/service/ImportService.java
  5. 310
      src/main/java/com/ccsens/ptccsens/service/TallService.java
  6. 2
      src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java
  7. 69
      src/main/resources/mapper_dao/ProParentTaskDao.xml
  8. 21
      src/main/resources/mapper_dao/ProRoleDao.xml
  9. 7
      src/main/resources/mapper_dao/ProTaskDetailDao.xml

5
src/main/java/com/ccsens/ptccsens/bean/dto/RoleDto.java

@ -11,10 +11,13 @@ public class RoleDto {
private Long id; private Long id;
//userId //userId
private Long userId; private Long userId;
//name
private String name;
public WbsMember(Long id, Long userId) { public WbsMember(Long id, Long userId, String name) {
this.id = id; this.id = id;
this.userId = userId; this.userId = userId;
this.name = name;
} }
} }
} }

8
src/main/java/com/ccsens/ptccsens/persist/dao/ProRoleDao.java

@ -90,4 +90,12 @@ public interface ProRoleDao extends ProRoleMapper {
* @return 返回角色id * @return 返回角色id
*/ */
List<Long> allRoleByUserId(@Param("userId")Long userId); List<Long> allRoleByUserId(@Param("userId")Long userId);
/**
* 根据任务id查找负责人id
* @param detailId 任务id
* @param userId userId
* @return 返回负责人id
*/
Long getExecutorRoleId(@Param("detailId")Long detailId,@Param("userId")Long userId);
} }

16
src/main/java/com/ccsens/ptccsens/service/ExportService.java

@ -363,6 +363,8 @@ public class ExportService implements IExportService {
for (TallWbsVo.WbsMember ignored : role.getMemberList()) { for (TallWbsVo.WbsMember ignored : role.getMemberList()) {
memberNum++; memberNum++;
} }
}else {
memberNum++;
} }
} }
for (int i = 0; i < pmList.size(); i++) { for (int i = 0; i < pmList.size(); i++) {
@ -406,6 +408,20 @@ public class ExportService implements IExportService {
} }
wbs.add(roleInfo); wbs.add(roleInfo);
} }
}else {
List<PoiUtil.PoiUtilCell> roleInfo = new ArrayList<>();
roleInfo.add(new PoiUtil.PoiUtilCell("" + num++));
if(i == 0){
if(isPm){
roleInfo.add(new PoiUtil.PoiUtilCell("项目经理",1,memberNum == 0 ? 1 : memberNum));
}else {
roleInfo.add(new PoiUtil.PoiUtilCell("项目成员",1,memberNum == 0 ? 1 : memberNum));
}
}else {
roleInfo.add(new PoiUtil.PoiUtilCell());
}
roleInfo.add(new PoiUtil.PoiUtilCell(role.getRoleName(),role.getRoleId(),1,role.getMemberList().size()));
wbs.add(roleInfo);
} }
} }
} }

27
src/main/java/com/ccsens/ptccsens/service/ImportService.java

@ -208,7 +208,7 @@ public class ImportService implements IImportService {
throw new BaseException(BasicsCodeError.WSB_NOT_PROJECT_HEADER); throw new BaseException(BasicsCodeError.WSB_NOT_PROJECT_HEADER);
} }
//如果parentId不为空,添加层级关系 //如果parentId不为空,添加层级关系
if(ObjectUtil.isNotNull(parentId)){ if(ObjectUtil.isNotNull(parentId) && !project.getId().equals(parentId)){
ProParentTask proParentTask = new ProParentTask(); ProParentTask proParentTask = new ProParentTask();
proParentTask.setId(snowflake.nextId()); proParentTask.setId(snowflake.nextId());
proParentTask.setTaskDetailId(project.getId()); proParentTask.setTaskDetailId(project.getId());
@ -326,12 +326,12 @@ public class ImportService implements IImportService {
LabelBusinessExample labelBusinessExample = new LabelBusinessExample(); LabelBusinessExample labelBusinessExample = new LabelBusinessExample();
labelBusinessExample.createCriteria().andBusinessIdEqualTo(projectId); labelBusinessExample.createCriteria().andBusinessIdEqualTo(projectId);
labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample); labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample);
//删除项目的关联关系 // //删除项目的关联关系
ProParentTask proParentTask = new ProParentTask(); // ProParentTask proParentTask = new ProParentTask();
proParentTask.setRecStatus((byte) 2); // proParentTask.setRecStatus((byte) 2);
ProParentTaskExample proParentTaskExample = new ProParentTaskExample(); // ProParentTaskExample proParentTaskExample = new ProParentTaskExample();
proParentTaskExample.createCriteria().andTaskDetailIdEqualTo(projectId); // proParentTaskExample.createCriteria().andTaskDetailIdEqualTo(projectId);
parentTaskMapper.updateByExampleSelective(proParentTask,proParentTaskExample); // parentTaskMapper.updateByExampleSelective(proParentTask,proParentTaskExample);
} }
} }
//项目名不能重复(当前用户创建的项目内名字不能重复) //项目名不能重复(当前用户创建的项目内名字不能重复)
@ -514,9 +514,13 @@ public class ImportService implements IImportService {
//添加成员 //添加成员
if(StrUtil.isNotEmpty(memberName) && !"/".equalsIgnoreCase(roleName)){ if(StrUtil.isNotEmpty(memberName) && !"/".equalsIgnoreCase(roleName)){
//如果成员名和手机号重复当做一个人来处理 //如果成员名和手机号重复当做一个人来处理
RoleDto.WbsMember wbsMembers = memberMap.get(memberName + "_" + memberPhone); // RoleDto.WbsMember wbsMembers = memberMap.get(memberName + "_" + memberPhone);
RoleDto.WbsMember wbsMembers = memberMap.get(memberPhone);
Long memberId = null; Long memberId = null;
if(ObjectUtil.isNotNull(wbsMembers)){ if(ObjectUtil.isNotNull(wbsMembers)){
if(!memberName.equals(wbsMembers.getName())){
BasicsCodeError.WBS_PHONE_REPEAT.addMsg(memberSheet.getSheetName(),i+1,stakeholderName);
}
memberId = wbsMembers.getId(); memberId = wbsMembers.getId();
} }
if(ObjectUtil.isNull(memberId)){ if(ObjectUtil.isNull(memberId)){
@ -545,8 +549,9 @@ public class ImportService implements IImportService {
proMember.setProjectId(project.getId()); proMember.setProjectId(project.getId());
proMember.setUserId(userId); proMember.setUserId(userId);
memberDao.insertReplace(proMember); memberDao.insertReplace(proMember);
RoleDto.WbsMember member = new RoleDto.WbsMember(proMember.getId(),userId); RoleDto.WbsMember member = new RoleDto.WbsMember(proMember.getId(),userId,proMember.getName());
memberMap.put(memberName+"_"+memberPhone,member); // memberMap.put(memberName+"_"+memberPhone,member);
memberMap.put(memberPhone,member);
memberId = proMember.getId(); memberId = proMember.getId();
//添加奖惩干系人 //添加奖惩干系人
if(StrUtil.isNotEmpty(stakeholderName) && !"/".equalsIgnoreCase(roleName)){ if(StrUtil.isNotEmpty(stakeholderName) && !"/".equalsIgnoreCase(roleName)){
@ -672,7 +677,7 @@ public class ImportService implements IImportService {
taskPluginExample.createCriteria().andTaskDetailIdIn(allTaskId); taskPluginExample.createCriteria().andTaskDetailIdIn(allTaskId);
proTaskPluginDao.updateByExampleSelective(taskPlugin,taskPluginExample); proTaskPluginDao.updateByExampleSelective(taskPlugin,taskPluginExample);
//删除任务关系表 //删除任务关系表
allTaskId.add(project.getId()); // allTaskId.add(project.getId());
ProParentTask parentTask = new ProParentTask(); ProParentTask parentTask = new ProParentTask();
parentTask.setRecStatus((byte)2); parentTask.setRecStatus((byte)2);
ProParentTaskExample parentTaskExample = new ProParentTaskExample(); ProParentTaskExample parentTaskExample = new ProParentTaskExample();

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

@ -110,15 +110,15 @@ public class TallService implements ITallService {
@SneakyThrows @SneakyThrows
@Override @Override
public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params,Long parentId) { public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params, Long parentId) {
ProUser user = getUserByToken(token); ProUser user = getUserByToken(token);
log.info("本服务下的用户信息:{}", user); log.info("本服务下的用户信息:{}", user);
if(ObjectUtil.isNull(user)){ if (ObjectUtil.isNull(user)) {
throw new BaseException(BasicsCodeError.NOT_USER_SERVER); throw new BaseException(BasicsCodeError.NOT_USER_SERVER);
} }
String ext = FileUtil.extName(params.getOriginalFilename()); String ext = FileUtil.extName(params.getOriginalFilename());
if(StrUtil.isEmpty(ext) || !Constant.WbsExcel.WBS_FILE_FORMAT.contains(ext)){ if (StrUtil.isEmpty(ext) || !Constant.WbsExcel.WBS_FILE_FORMAT.contains(ext)) {
throw new BaseException(BasicsCodeError.FILE_FORMAT_ERROR); throw new BaseException(BasicsCodeError.FILE_FORMAT_ERROR);
} }
//文件路径 //文件路径
@ -134,19 +134,19 @@ public class TallService implements ITallService {
FileUtil.writeFromStream(params.getInputStream(), fullPath); FileUtil.writeFromStream(params.getInputStream(), fullPath);
//导入数据库 //导入数据库
return importService.importWbs(fullPath,user.getId(),parentId); return importService.importWbs(fullPath, user.getId(), parentId);
} }
private ProUser getUserByToken(String token) { private ProUser getUserByToken(String token) {
//根据token获取用户信息 //根据token获取用户信息
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET));
if(ObjectUtil.isNull(userByToken)){ if (ObjectUtil.isNull(userByToken)) {
throw new BaseException(CodeEnum.NOT_LOGIN); throw new BaseException(CodeEnum.NOT_LOGIN);
} }
log.info("token获取的用户信息:{}", userByToken); log.info("token获取的用户信息:{}", userByToken);
//通过手机号获取用户在服务内的userId //通过手机号获取用户在服务内的userId
ProUser user = null; ProUser user = null;
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ if (ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())) {
user = userDao.getUserIdByPhone(userByToken.getPhone()); user = userDao.getUserIdByPhone(userByToken.getPhone());
} }
return user; return user;
@ -157,7 +157,7 @@ public class TallService implements ITallService {
public TallWbsVo.WbsPath exportWbs(String token, TallProjectDto.ProjectById param) { public TallWbsVo.WbsPath exportWbs(String token, TallProjectDto.ProjectById param) {
//查询下项目信息 //查询下项目信息
TallWbsVo.WbsProjectInfo wbsProjectInfo = proProjectDao.getWbsProjectId(param.getProjectId()); TallWbsVo.WbsProjectInfo wbsProjectInfo = proProjectDao.getWbsProjectId(param.getProjectId());
if(ObjectUtil.isNull(wbsProjectInfo)){ if (ObjectUtil.isNull(wbsProjectInfo)) {
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND);
} }
//查询一级任务信息 //查询一级任务信息
@ -172,14 +172,14 @@ public class TallService implements ITallService {
//查询角色成员信息 //查询角色成员信息
TallWbsVo.WbsRoleInfo wbsRoleInfo = new TallWbsVo.WbsRoleInfo(); TallWbsVo.WbsRoleInfo wbsRoleInfo = new TallWbsVo.WbsRoleInfo();
//查询项目经理的角色信息 //查询项目经理的角色信息
List<TallWbsVo.WbsRole> pmList = proRoleDao.getWbsRoleInfo(param.getProjectId(),0); List<TallWbsVo.WbsRole> pmList = proRoleDao.getWbsRoleInfo(param.getProjectId(), 0);
//查询项目成员的角色信息 //查询项目成员的角色信息
List<TallWbsVo.WbsRole> roleList = proRoleDao.getWbsRoleInfo(param.getProjectId(),1); List<TallWbsVo.WbsRole> roleList = proRoleDao.getWbsRoleInfo(param.getProjectId(), 1);
wbsRoleInfo.setPmList(pmList); wbsRoleInfo.setPmList(pmList);
wbsRoleInfo.setRoleList(roleList); wbsRoleInfo.setRoleList(roleList);
//生成excel数据并导入文件 //生成excel数据并导入文件
String url = exportService.exportWbs(wbsProjectInfo,wbsTaskInfo,wbsRoleInfo); String url = exportService.exportWbs(wbsProjectInfo, wbsTaskInfo, wbsRoleInfo);
TallWbsVo.WbsPath wbsPath = new TallWbsVo.WbsPath(); TallWbsVo.WbsPath wbsPath = new TallWbsVo.WbsPath();
wbsPath.setUrl(url); wbsPath.setUrl(url);
@ -189,7 +189,7 @@ public class TallService implements ITallService {
@Override @Override
public TallProjectVo.ProjectInfo findProjectById(String header, TallProjectDto.ProjectById params) { public TallProjectVo.ProjectInfo findProjectById(String header, TallProjectDto.ProjectById params) {
TallProjectVo.ProjectInfo projectById = proProjectDao.findProjectById(params.getProjectId()); TallProjectVo.ProjectInfo projectById = proProjectDao.findProjectById(params.getProjectId());
if (ObjectUtil.isNull(projectById)){ if (ObjectUtil.isNull(projectById)) {
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND);
} }
return projectById; return projectById;
@ -200,15 +200,15 @@ public class TallService implements ITallService {
//TODO 暂时查询全部,无论是否查到user //TODO 暂时查询全部,无论是否查到user
//查找所有没有上级的项目,作为MWBS //查找所有没有上级的项目,作为MWBS
List<TallProjectVo.ProjectInfo> mWbs = taskDetailDao.queryMwbs(param.getStartTime(),param.getEndTime(),null); List<TallProjectVo.ProjectInfo> mWbs = taskDetailDao.queryMwbs(param.getStartTime(), param.getEndTime(), null);
if(CollectionUtil.isNotEmpty(mWbs)){ if (CollectionUtil.isNotEmpty(mWbs)) {
mWbs.forEach(m -> { mWbs.forEach(m -> {
//给下项目添加域信息和url //给下项目添加域信息和url
m.setUrl(PropUtil.notGatewayUrl); m.setUrl(PropUtil.notGatewayUrl);
m.setBusinessCode(Constant.BUSINESS_CODE); m.setBusinessCode(Constant.BUSINESS_CODE);
//分别查找mwbs下的子pwbs //分别查找mwbs下的子pwbs
List<TallProjectVo.ProjectInfo> pWbs = taskDetailDao.queryPwbs(param.getStartTime(),param.getEndTime(),null,m.getId()); List<TallProjectVo.ProjectInfo> pWbs = taskDetailDao.queryPwbs(param.getStartTime(), param.getEndTime(), null, m.getId());
if(CollectionUtil.isNotEmpty(pWbs)){ if (CollectionUtil.isNotEmpty(pWbs)) {
pWbs.forEach(p -> { pWbs.forEach(p -> {
//给下项目添加域信息和url //给下项目添加域信息和url
p.setUrl(PropUtil.notGatewayUrl); p.setUrl(PropUtil.notGatewayUrl);
@ -233,24 +233,24 @@ public class TallService implements ITallService {
List<TallRoleVo.RoleInfo> invisibleList = new ArrayList<>(); List<TallRoleVo.RoleInfo> invisibleList = new ArrayList<>();
//查询当前用户在项目下的角色,没有则算作关注者 //查询当前用户在项目下的角色,没有则算作关注者
List<ProRole> userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),user == null ? null : user.getId()); List<ProRole> userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(), user == null ? null : user.getId());
//查询用户可见的角色 //查询用户可见的角色
List<TallRoleVo.RoleInfo> roleInfoList; List<TallRoleVo.RoleInfo> roleInfoList;
if(CollectionUtil.isNotEmpty(userRoleList)){ if (CollectionUtil.isNotEmpty(userRoleList)) {
//不是关注者,查询可见的角色(完全屏蔽才不可见) //不是关注者,查询可见的角色(完全屏蔽才不可见)
roleInfoList = proRoleDao.notAttentionQueryRole(param.getProjectId(),userRoleList); roleInfoList = proRoleDao.notAttentionQueryRole(param.getProjectId(), userRoleList);
}else { } else {
//是关注者查询可见的角色(未设置过对谁不可见信息的角色) //是关注者查询可见的角色(未设置过对谁不可见信息的角色)
roleInfoList = proRoleDao.attentionQueryRole(param.getProjectId()); roleInfoList = proRoleDao.attentionQueryRole(param.getProjectId());
} }
//查询配置信息 //查询配置信息
List<Long> showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(),user == null ? null : user.getId()); List<Long> showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(), user == null ? null : user.getId());
if(CollectionUtil.isNotEmpty(showRoleList)){ if (CollectionUtil.isNotEmpty(showRoleList)) {
for (Long showRoleId : showRoleList) { for (Long showRoleId : showRoleList) {
//循环配置内的信息去匹配角色列表,来确定角色该放在什么地方 //循环配置内的信息去匹配角色列表,来确定角色该放在什么地方
for (TallRoleVo.RoleInfo roleInfo : roleInfoList) { for (TallRoleVo.RoleInfo roleInfo : roleInfoList) {
if(showRoleId.equals(roleInfo.getId())){ if (showRoleId.equals(roleInfo.getId())) {
//和配置内的信息相同则放入展示角色列表 //和配置内的信息相同则放入展示角色列表
visibleList.add(roleInfo); visibleList.add(roleInfo);
//同时删除数组内的信息 //同时删除数组内的信息
@ -262,7 +262,7 @@ public class TallService implements ITallService {
} }
//剩下的角色全部放在不可见角色列表 //剩下的角色全部放在不可见角色列表
invisibleList.addAll(roleInfoList); invisibleList.addAll(roleInfoList);
}else { } else {
//没有配置信息则按默认规则 //没有配置信息则按默认规则
if (CollectionUtil.isNotEmpty(roleInfoList)) { if (CollectionUtil.isNotEmpty(roleInfoList)) {
//循环所有角色 //循环所有角色
@ -280,7 +280,7 @@ public class TallService implements ITallService {
//不是用户所属的角色,但展示角色列表数量不足设置的数量 //不是用户所属的角色,但展示角色列表数量不足设置的数量
//展示数量等于0,展示全部 //展示数量等于0,展示全部
if(param.getNum() == 0){ if (param.getNum() == 0) {
visibleList.add(roleInfo); visibleList.add(roleInfo);
continue; continue;
} }
@ -316,7 +316,7 @@ public class TallService implements ITallService {
queryCheckerOfTask(permanentGlobalTask); queryCheckerOfTask(permanentGlobalTask);
//查询插件展示信息 //查询插件展示信息
queryPluginShow(permanentGlobalTask,user == null ? null : user.getId()); queryPluginShow(permanentGlobalTask, user == null ? null : user.getId());
return permanentGlobalTask; return permanentGlobalTask;
} }
@ -335,7 +335,7 @@ public class TallService implements ITallService {
queryCheckerOfTask(globalTask); queryCheckerOfTask(globalTask);
//查询插件展示信息 //查询插件展示信息
queryPluginShow(globalTask,user == null ? null : user.getId()); queryPluginShow(globalTask, user == null ? null : user.getId());
return globalTask; return globalTask;
} }
@ -455,6 +455,7 @@ public class TallService implements ITallService {
} }
} }
} }
/** /**
* 创建面板 * 创建面板
* *
@ -474,16 +475,18 @@ public class TallService implements ITallService {
/** /**
* 查询任务下的检查人 * 查询任务下的检查人
*
* @param taskList 任务列表 * @param taskList 任务列表
*/ */
public void queryCheckerOfTask(List<TallTaskVo.QueryTask> taskList) { public void queryCheckerOfTask(List<TallTaskVo.QueryTask> taskList) {
if (CollectionUtil.isNotEmpty(taskList)) { if (CollectionUtil.isNotEmpty(taskList)) {
for (TallTaskVo.QueryTask queryTask : taskList) { for (TallTaskVo.QueryTask queryTask : taskList) {
List<TallTaskVo.CheckerOfTask> checkerList = roleTaskDao.queryCheckerOfTask(queryTask.getDetailId()); List<TallTaskVo.CheckerOfTask> checkerList = roleTaskDao.queryCheckerOfTask(queryTask.getDetailId());
queryTask.setCheckerList(checkerList); queryTask.setCheckerList(checkerList);
} }
} }
} }
/** /**
* 向空面板里插入插件详情 * 向空面板里插入插件详情
* *
@ -502,11 +505,12 @@ public class TallService implements ITallService {
} }
queryTask.setPlugins(plugins); queryTask.setPlugins(plugins);
} }
/** /**
* 根据插件的最大行列创建面板 * 根据插件的最大行列创建面板
* *
* @param plugins 插件列表 * @param plugins 插件列表
* @param queryTask 任务 * @param queryTask 任务
*/ */
public void createPanelByPlugin(List<List<TallTaskVo.TaskPluginInfo>> plugins, TallTaskVo.QueryTask queryTask) { public void createPanelByPlugin(List<List<TallTaskVo.TaskPluginInfo>> plugins, TallTaskVo.QueryTask queryTask) {
List<TallTaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getId()); List<TallTaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getId());
@ -583,15 +587,15 @@ public class TallService implements ITallService {
// return null; // return null;
// } // }
private void queryPluginShow(List<TallTaskVo.QueryTask> regularTask,Long userId) { private void queryPluginShow(List<TallTaskVo.QueryTask> regularTask, Long userId) {
if(CollectionUtil.isEmpty(regularTask)){ if (CollectionUtil.isEmpty(regularTask)) {
return; return;
} }
for (TallTaskVo.QueryTask queryTask : regularTask) { for (TallTaskVo.QueryTask queryTask : regularTask) {
if(CollectionUtil.isNotEmpty(queryTask.getPlugins())){ if (CollectionUtil.isNotEmpty(queryTask.getPlugins())) {
for (List<TallTaskVo.TaskPluginInfo> plugins : queryTask.getPlugins()) { for (List<TallTaskVo.TaskPluginInfo> plugins : queryTask.getPlugins()) {
if(CollectionUtil.isNotEmpty(plugins)){ if (CollectionUtil.isNotEmpty(plugins)) {
for (TallTaskVo.TaskPluginInfo plugin : plugins) { for (TallTaskVo.TaskPluginInfo plugin : plugins) {
System.out.println("====" + plugin); System.out.println("====" + plugin);
//TODO 判断插件类型,暂时一个个的判断,之后应该是统一的接口 //TODO 判断插件类型,暂时一个个的判断,之后应该是统一的接口
@ -621,23 +625,23 @@ public class TallService implements ITallService {
//查询用的时间 //查询用的时间
Long queryTime = System.currentTimeMillis(); Long queryTime = System.currentTimeMillis();
if(ObjectUtil.isNotNull(param.getTaskId())){ if (ObjectUtil.isNotNull(param.getTaskId())) {
//根据任务id查找任务,以任务的开始时间当做查询的时间点 //根据任务id查找任务,以任务的开始时间当做查询的时间点
ProTaskSub proTaskSub = proTaskSubDao.selectByPrimaryKey(param.getTaskId()); ProTaskSub proTaskSub = proTaskSubDao.selectByPrimaryKey(param.getTaskId());
if(ObjectUtil.isNotNull(proTaskSub) && proTaskSub.getPlanStartTime() != 0L){ if (ObjectUtil.isNotNull(proTaskSub) && proTaskSub.getPlanStartTime() != 0L) {
queryTime = proTaskSub.getPlanStartTime(); queryTime = proTaskSub.getPlanStartTime();
} }
}else { } else {
if(ObjectUtil.isNotNull(param.getTimeNode())){ if (ObjectUtil.isNotNull(param.getTimeNode())) {
//没有任务id则根据时间基准线查询当前正在进行的任务(如果多个则选择时间最早的一个) //没有任务id则根据时间基准线查询当前正在进行的任务(如果多个则选择时间最早的一个)
Long startTime = proTaskSubDao.getTimeByProgressTask(param.getTimeNode(),param.getRoleId()); Long startTime = proTaskSubDao.getTimeByProgressTask(param.getTimeNode(), param.getRoleId());
if(ObjectUtil.isNotNull(startTime)){ if (ObjectUtil.isNotNull(startTime)) {
queryTime = startTime; queryTime = startTime;
} }
}else { } else {
//如果没有时间基准线则按当前时间查询查询任务 //如果没有时间基准线则按当前时间查询查询任务
Long startTime = proTaskSubDao.getTimeByProgressTask(System.currentTimeMillis(),param.getRoleId()); Long startTime = proTaskSubDao.getTimeByProgressTask(System.currentTimeMillis(), param.getRoleId());
if(ObjectUtil.isNotNull(startTime)){ if (ObjectUtil.isNotNull(startTime)) {
queryTime = startTime; queryTime = startTime;
} }
} }
@ -651,11 +655,11 @@ public class TallService implements ITallService {
} }
//获取任务列表 //获取任务列表
PageHelper.startPage(param.getPageNum(),param.getPageSize()); PageHelper.startPage(param.getPageNum(), param.getPageSize());
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(isPm, param.getProjectId(), param.getRoleId(),queryTime,param.getTimeUnit(),param.getQueryType(),param.getTaskId(),param.getTriggerType()); List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(0, null, param.getRoleId(), queryTime, param.getTimeUnit(), param.getQueryType(), param.getTaskId(), param.getTriggerType());
PageInfo<TallTaskVo.QueryTask> queryTaskPageInfo = new PageInfo<>(regularTask); PageInfo<TallTaskVo.QueryTask> queryTaskPageInfo = new PageInfo<>(regularTask);
if(CollectionUtil.isNotEmpty(queryTaskPageInfo.getList())){ if (CollectionUtil.isNotEmpty(queryTaskPageInfo.getList())) {
if(param.getQueryType() == 0){ if (param.getQueryType() == 0) {
//向上查找任务顺序是倒的,需要改成正序 //向上查找任务顺序是倒的,需要改成正序
List<TallTaskVo.QueryTask> taskList = new ArrayList<>(); List<TallTaskVo.QueryTask> taskList = new ArrayList<>();
for (int i = queryTaskPageInfo.getList().size() - 1; i >= 0; i--) { for (int i = queryTaskPageInfo.getList().size() - 1; i >= 0; i--) {
@ -668,7 +672,7 @@ public class TallService implements ITallService {
//查询任务下的检查人 //查询任务下的检查人
queryCheckerOfTask(queryTaskPageInfo.getList()); queryCheckerOfTask(queryTaskPageInfo.getList());
//查询插件展示信息 //查询插件展示信息
queryPluginShow(queryTaskPageInfo.getList(),user == null ? null : user.getId()); queryPluginShow(queryTaskPageInfo.getList(), user == null ? null : user.getId());
} }
return queryTaskPageInfo; return queryTaskPageInfo;
@ -679,7 +683,7 @@ public class TallService implements ITallService {
List<TallTaskVo.QueryTask> queryTaskList = new ArrayList<>(); List<TallTaskVo.QueryTask> queryTaskList = new ArrayList<>();
//通过手机号查找服务内的用户 //通过手机号查找服务内的用户
ProUser user = userDao.getUserIdByPhone(param.getPhone()); ProUser user = userDao.getUserIdByPhone(param.getPhone());
if(ObjectUtil.isNull(user)){ if (ObjectUtil.isNull(user)) {
return queryTaskList; return queryTaskList;
} }
//查找用户所属的成员,查找所属的角色 //查找用户所属的成员,查找所属的角色
@ -687,31 +691,35 @@ public class TallService implements ITallService {
//根据时间基准线查询当前正在进行的任务(如果多个则选择时间最早的一个) //根据时间基准线查询当前正在进行的任务(如果多个则选择时间最早的一个)
Long queryTime = param.getTimeNode(); Long queryTime = param.getTimeNode();
if(CollectionUtil.isNotEmpty(roleList)) { if (CollectionUtil.isNotEmpty(roleList)) {
Long startTime = proTaskSubDao.getTimeByProgressTaskAndRoleList(param.getTimeNode(), roleList); Long startTime = proTaskSubDao.getTimeByProgressTaskAndRoleList(param.getTimeNode(), roleList);
if (ObjectUtil.isNotNull(startTime)) { if (ObjectUtil.isNotNull(startTime)) {
queryTime = startTime; queryTime = startTime;
} }
} }
if(CollectionUtil.isNotEmpty(roleList)){ if (CollectionUtil.isNotEmpty(roleList)) {
//通过角色和时间等信息,查找任务,如果传入的参数有任务id且code符合当前服务,则排除该任务 //通过角色和时间等信息,查找任务,如果传入的参数有任务id且code符合当前服务,则排除该任务
String taskId = Constant.BUSINESS_CODE.equals(param.getBusinessCode()) ? param.getTaskId() : null; String taskId = Constant.BUSINESS_CODE.equals(param.getBusinessCode()) ? param.getTaskId() : null;
PageHelper.startPage(param.getPageNum(),param.getPageSize()); PageHelper.startPage(param.getPageNum(), param.getPageSize());
queryTaskList = taskDetailDao.getAllTaskByRoleList(roleList,queryTime,param.getTimeUnit(),param.getQueryType(),taskId); queryTaskList = taskDetailDao.getAllTaskByRoleList(roleList, queryTime, param.getTimeUnit(), param.getQueryType(), taskId);
if(CollectionUtil.isNotEmpty(queryTaskList)){
queryTaskList.forEach(queryTask -> {
Long roleId = roleDao.getExecutorRoleId(queryTask.getDetailId(),user.getId());
queryTask.setExecutorRoleId(roleId);
});
}
} }
return queryTaskList; return queryTaskList;
} }
@Override @Override
public void deleteProject(String token, TallProjectDto.ProjectById params) { public void deleteProject(String token, TallProjectDto.ProjectById params) {
//查找用户 //查找用户
ProUser user = getUserByToken(token); ProUser user = getUserByToken(token);
log.info("本服务下的用户信息:{}", user); log.info("本服务下的用户信息:{}", user);
if(ObjectUtil.isNull(user)){ if (ObjectUtil.isNull(user)) {
throw new BaseException(BasicsCodeError.NOT_USER_SERVER); throw new BaseException(BasicsCodeError.NOT_USER_SERVER);
} }
//判断用户是否是项目经理 //判断用户是否是项目经理
@ -729,136 +737,138 @@ public class TallService implements ITallService {
ProTaskSubExample taskSubExample = new ProTaskSubExample(); ProTaskSubExample taskSubExample = new ProTaskSubExample();
taskSubExample.createCriteria().andTaskDetailIdEqualTo(params.getProjectId()); taskSubExample.createCriteria().andTaskDetailIdEqualTo(params.getProjectId());
ProTaskSub taskSub = new ProTaskSub(); ProTaskSub taskSub = new ProTaskSub();
taskSub.setRecStatus((byte)2); taskSub.setRecStatus((byte) 2);
proTaskSubDao.updateByExampleSelective(taskSub,taskSubExample); proTaskSubDao.updateByExampleSelective(taskSub, taskSubExample);
//删除之前的版本信息 //删除之前的版本信息
ProTaskVersion taskVersion = new ProTaskVersion(); ProTaskVersion taskVersion = new ProTaskVersion();
taskVersion.setRecStatus((byte)2); taskVersion.setRecStatus((byte) 2);
ProTaskVersionExample taskVersionExample = new ProTaskVersionExample(); ProTaskVersionExample taskVersionExample = new ProTaskVersionExample();
taskVersionExample.createCriteria().andTaskDetailIdEqualTo(params.getProjectId()); taskVersionExample.createCriteria().andTaskDetailIdEqualTo(params.getProjectId());
taskVersionDao.updateByExampleSelective(taskVersion,taskVersionExample); taskVersionDao.updateByExampleSelective(taskVersion, taskVersionExample);
//删除项目标签相关的 //删除项目标签相关的
LabelBusiness labelBusiness = new LabelBusiness(); LabelBusiness labelBusiness = new LabelBusiness();
labelBusiness.setRecStatus((byte)2); labelBusiness.setRecStatus((byte) 2);
LabelBusinessExample labelBusinessExample = new LabelBusinessExample(); LabelBusinessExample labelBusinessExample = new LabelBusinessExample();
labelBusinessExample.createCriteria().andBusinessIdEqualTo(params.getProjectId()); labelBusinessExample.createCriteria().andBusinessIdEqualTo(params.getProjectId());
labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample); labelBusinessDao.updateByExampleSelective(labelBusiness, labelBusinessExample);
//删除项目分享表 //删除项目分享表
ProTaskShare taskShare = new ProTaskShare(); ProTaskShare taskShare = new ProTaskShare();
taskShare.setRecStatus((byte)2); taskShare.setRecStatus((byte) 2);
ProTaskShareExample taskShareExample = new ProTaskShareExample(); ProTaskShareExample taskShareExample = new ProTaskShareExample();
taskShareExample.createCriteria().andOriginalProjectIdEqualTo(params.getProjectId()); taskShareExample.createCriteria().andOriginalProjectIdEqualTo(params.getProjectId());
taskShareMapper.updateByExampleSelective(taskShare,taskShareExample); taskShareMapper.updateByExampleSelective(taskShare, taskShareExample);
//删除角色和成员 //删除角色和成员
List<Long> roleIdList = roleDao.queryRoleListOfProject(project.getId()); List<Long> roleIdList = roleDao.queryRoleListOfProject(project.getId());
ProRole role = new ProRole(); ProRole role = new ProRole();
role.setRecStatus((byte)2); role.setRecStatus((byte) 2);
ProRoleExample roleExample = new ProRoleExample(); ProRoleExample roleExample = new ProRoleExample();
roleExample.createCriteria().andIdIn(roleIdList); roleExample.createCriteria().andIdIn(roleIdList);
roleDao.updateByExampleSelective(role,roleExample); roleDao.updateByExampleSelective(role, roleExample);
List<Long> memberIdList = memberDao.queryMembersOfProject(project.getId()); List<Long> memberIdList = memberDao.queryMembersOfProject(project.getId());
ProMember member = new ProMember(); ProMember member = new ProMember();
member.setRecStatus((byte)2); member.setRecStatus((byte) 2);
ProMemberExample memberExample = new ProMemberExample(); ProMemberExample memberExample = new ProMemberExample();
memberExample.createCriteria().andIdIn(memberIdList); memberExample.createCriteria().andIdIn(memberIdList);
memberDao.updateByExampleSelective(member,memberExample); memberDao.updateByExampleSelective(member, memberExample);
//删除奖惩干系人 //删除奖惩干系人
ProMemberStakeholder memberStakeholder = new ProMemberStakeholder(); ProMemberStakeholder memberStakeholder = new ProMemberStakeholder();
memberStakeholder.setRecStatus((byte)2); memberStakeholder.setRecStatus((byte) 2);
ProMemberStakeholderExample memberStakeholderExample = new ProMemberStakeholderExample(); ProMemberStakeholderExample memberStakeholderExample = new ProMemberStakeholderExample();
memberStakeholderExample.createCriteria().andMemeberIdIn(memberIdList); memberStakeholderExample.createCriteria().andMemeberIdIn(memberIdList);
memberStakeholderDao.updateByExampleSelective(memberStakeholder,memberStakeholderExample); memberStakeholderDao.updateByExampleSelective(memberStakeholder, memberStakeholderExample);
//删除对谁不可见 //删除对谁不可见
ProRoleRepulsion roleRepulsion = new ProRoleRepulsion(); ProRoleRepulsion roleRepulsion = new ProRoleRepulsion();
roleRepulsion.setRecStatus((byte)2); roleRepulsion.setRecStatus((byte) 2);
ProRoleRepulsionExample roleRepulsionExample = new ProRoleRepulsionExample(); ProRoleRepulsionExample roleRepulsionExample = new ProRoleRepulsionExample();
roleRepulsionExample.createCriteria().andRoleIdIn(roleIdList); roleRepulsionExample.createCriteria().andRoleIdIn(roleIdList);
roleRepulsionDao.updateByExampleSelective(roleRepulsion,roleRepulsionExample); roleRepulsionDao.updateByExampleSelective(roleRepulsion, roleRepulsionExample);
//删除角色成员关联 //删除角色成员关联
ProRoleMember roleMember = new ProRoleMember(); ProRoleMember roleMember = new ProRoleMember();
roleMember.setRecStatus((byte)2); roleMember.setRecStatus((byte) 2);
ProRoleMemberExample roleMemberExample = new ProRoleMemberExample(); ProRoleMemberExample roleMemberExample = new ProRoleMemberExample();
roleMemberExample.createCriteria().andRoleIdIn(roleIdList); roleMemberExample.createCriteria().andRoleIdIn(roleIdList);
roleMemberDao.updateByExampleSelective(roleMember,roleMemberExample); roleMemberDao.updateByExampleSelective(roleMember, roleMemberExample);
//删除角色展示 //删除角色展示
ProRoleShow roleShow = new ProRoleShow(); ProRoleShow roleShow = new ProRoleShow();
roleShow.setRecStatus((byte)2); roleShow.setRecStatus((byte) 2);
ProRoleShowExample roleShowExample = new ProRoleShowExample(); ProRoleShowExample roleShowExample = new ProRoleShowExample();
roleShowExample.createCriteria().andRoleIdIn(roleIdList); roleShowExample.createCriteria().andRoleIdIn(roleIdList);
roleShowMapper.updateByExampleSelective(roleShow,roleShowExample); roleShowMapper.updateByExampleSelective(roleShow, roleShowExample);
//根据项目id查询所有一二级任务详情id 删除任务相关 //根据项目id查询所有一二级任务详情id 删除任务相关
List<Long> allTaskId = parentTaskDao.queryAllTaskIdByProjectId(params.getProjectId()); List<Long> allTaskId = parentTaskDao.queryAllTaskIdByProjectId(params.getProjectId());
//删除所有的任务详情 if (CollectionUtil.isNotEmpty(allTaskId)) {
ProTaskDetail taskDetail = new ProTaskDetail(); //删除所有的任务详情
taskDetail.setRecStatus((byte)2); ProTaskDetail taskDetail = new ProTaskDetail();
ProTaskDetailExample taskDetailExample = new ProTaskDetailExample(); taskDetail.setRecStatus((byte) 2);
taskDetailExample.createCriteria().andIdIn(allTaskId); ProTaskDetailExample taskDetailExample = new ProTaskDetailExample();
taskDetailDao.updateByExampleSelective(taskDetail,taskDetailExample); taskDetailExample.createCriteria().andIdIn(allTaskId);
//删除所有的分解任务 taskDetailDao.updateByExampleSelective(taskDetail, taskDetailExample);
ProTaskSub taskSub1 = new ProTaskSub(); //删除所有的分解任务
taskSub1.setRecStatus((byte)2); ProTaskSub taskSub1 = new ProTaskSub();
ProTaskSubExample taskSubExample1 = new ProTaskSubExample(); taskSub1.setRecStatus((byte) 2);
taskSubExample1.createCriteria().andTaskDetailIdIn(allTaskId); ProTaskSubExample taskSubExample1 = new ProTaskSubExample();
List<ProTaskSub> taskSubList = proTaskSubDao.selectByExample(taskSubExample1); taskSubExample1.createCriteria().andTaskDetailIdIn(allTaskId);
List<Long> allSubTaskId = taskSubList.stream().map(ProTaskSub::getId).collect(Collectors.toList()); List<ProTaskSub> taskSubList = proTaskSubDao.selectByExample(taskSubExample1);
proTaskSubDao.updateByExampleSelective(taskSub1,taskSubExample1); List<Long> allSubTaskId = taskSubList.stream().map(ProTaskSub::getId).collect(Collectors.toList());
//删除所有的任务标签 proTaskSubDao.updateByExampleSelective(taskSub1, taskSubExample1);
LabelBusiness labelBusiness1 = new LabelBusiness(); //删除所有的任务标签
labelBusiness1.setRecStatus((byte)2); LabelBusiness labelBusiness1 = new LabelBusiness();
LabelBusinessExample labelBusinessExample1 = new LabelBusinessExample(); labelBusiness1.setRecStatus((byte) 2);
labelBusinessExample1.createCriteria().andBusinessIdIn(allTaskId); LabelBusinessExample labelBusinessExample1 = new LabelBusinessExample();
labelBusinessDao.updateByExampleSelective(labelBusiness1,labelBusinessExample1); labelBusinessExample1.createCriteria().andBusinessIdIn(allTaskId);
//删除任务角色关联表 labelBusinessDao.updateByExampleSelective(labelBusiness1, labelBusinessExample1);
ProRoleTask roleTask = new ProRoleTask(); //删除任务角色关联表
roleTask.setRecStatus((byte)2); ProRoleTask roleTask = new ProRoleTask();
ProRoleTaskExample roleTaskExample = new ProRoleTaskExample(); roleTask.setRecStatus((byte) 2);
roleTaskExample.createCriteria().andTaskIdIn(allTaskId); ProRoleTaskExample roleTaskExample = new ProRoleTaskExample();
roleTaskDao.updateByExampleSelective(roleTask,roleTaskExample); roleTaskExample.createCriteria().andTaskIdIn(allTaskId);
//删除任务插件关联信息 roleTaskDao.updateByExampleSelective(roleTask, roleTaskExample);
ProTaskPlugin taskPlugin = new ProTaskPlugin(); //删除任务插件关联信息
taskPlugin.setRecStatus((byte)2); ProTaskPlugin taskPlugin = new ProTaskPlugin();
ProTaskPluginExample taskPluginExample = new ProTaskPluginExample(); taskPlugin.setRecStatus((byte) 2);
taskPluginExample.createCriteria().andTaskDetailIdIn(allTaskId); ProTaskPluginExample taskPluginExample = new ProTaskPluginExample();
taskPluginDao.updateByExampleSelective(taskPlugin,taskPluginExample); taskPluginExample.createCriteria().andTaskDetailIdIn(allTaskId);
//删除任务关系表 taskPluginDao.updateByExampleSelective(taskPlugin, taskPluginExample);
allTaskId.add(project.getId()); //删除任务关系表
ProParentTask parentTask = new ProParentTask(); allTaskId.add(project.getId());
parentTask.setRecStatus((byte)2); ProParentTask parentTask = new ProParentTask();
ProParentTaskExample parentTaskExample = new ProParentTaskExample(); parentTask.setRecStatus((byte) 2);
parentTaskExample.createCriteria().andTaskDetailIdIn(allTaskId); ProParentTaskExample parentTaskExample = new ProParentTaskExample();
parentTaskDao.updateByExampleSelective(parentTask,parentTaskExample); parentTaskExample.createCriteria().andTaskDetailIdIn(allTaskId);
//删除任务流转表 parentTaskDao.updateByExampleSelective(parentTask, parentTaskExample);
ProTaskFlow taskFlow = new ProTaskFlow(); //删除任务流转表
taskFlow.setRecStatus((byte)2); ProTaskFlow taskFlow = new ProTaskFlow();
ProTaskFlowExample taskFlowExample = new ProTaskFlowExample(); taskFlow.setRecStatus((byte) 2);
taskFlowExample.createCriteria().andTaskDetailIdIn(allTaskId); ProTaskFlowExample taskFlowExample = new ProTaskFlowExample();
taskFlowMapper.updateByExampleSelective(taskFlow,taskFlowExample); taskFlowExample.createCriteria().andTaskDetailIdIn(allTaskId);
//删除任务上下道工序 taskFlowMapper.updateByExampleSelective(taskFlow, taskFlowExample);
ProTaskProcess taskProcess = new ProTaskProcess(); //删除任务上下道工序
taskProcess.setRecStatus((byte)2); ProTaskProcess taskProcess = new ProTaskProcess();
ProTaskProcessExample taskProcessExample = new ProTaskProcessExample(); taskProcess.setRecStatus((byte) 2);
taskProcessExample.createCriteria().andTaskDetailIdIn(allTaskId); ProTaskProcessExample taskProcessExample = new ProTaskProcessExample();
taskProcessMapper.updateByExampleSelective(taskProcess,taskProcessExample); taskProcessExample.createCriteria().andTaskDetailIdIn(allTaskId);
//删除任务状态记录表 分解任务id taskProcessMapper.updateByExampleSelective(taskProcess, taskProcessExample);
ProTaskStatusRecord taskStatusRecord = new ProTaskStatusRecord(); //删除任务状态记录表 分解任务id
taskStatusRecord.setRecStatus((byte)2); ProTaskStatusRecord taskStatusRecord = new ProTaskStatusRecord();
ProTaskStatusRecordExample taskStatusRecordExample = new ProTaskStatusRecordExample(); taskStatusRecord.setRecStatus((byte) 2);
taskStatusRecordExample.createCriteria().andTaskSubIdIn(allSubTaskId); ProTaskStatusRecordExample taskStatusRecordExample = new ProTaskStatusRecordExample();
taskStatusRecordMapper.updateByExampleSelective(taskStatusRecord,taskStatusRecordExample); taskStatusRecordExample.createCriteria().andTaskSubIdIn(allSubTaskId);
//删除任务通知表 taskStatusRecordMapper.updateByExampleSelective(taskStatusRecord, taskStatusRecordExample);
ProTaskNotify taskNotify = new ProTaskNotify(); //删除任务通知表
taskNotify.setRecStatus((byte)2); ProTaskNotify taskNotify = new ProTaskNotify();
ProTaskNotifyExample taskNotifyExample = new ProTaskNotifyExample(); taskNotify.setRecStatus((byte) 2);
taskNotifyExample.createCriteria().andTaskDetailIdIn(allTaskId); ProTaskNotifyExample taskNotifyExample = new ProTaskNotifyExample();
proTaskNotifyMapper.updateByExampleSelective(taskNotify,taskNotifyExample); taskNotifyExample.createCriteria().andTaskDetailIdIn(allTaskId);
//删除任务面板信息 proTaskNotifyMapper.updateByExampleSelective(taskNotify, taskNotifyExample);
ProTaskPanelInfo taskPanelInfo = new ProTaskPanelInfo(); //删除任务面板信息
taskPanelInfo.setRecStatus((byte)2); ProTaskPanelInfo taskPanelInfo = new ProTaskPanelInfo();
ProTaskPanelInfoExample taskPanelInfoExample = new ProTaskPanelInfoExample(); taskPanelInfo.setRecStatus((byte) 2);
taskPanelInfoExample.createCriteria().andTaskDetailIdIn(allTaskId); ProTaskPanelInfoExample taskPanelInfoExample = new ProTaskPanelInfoExample();
taskPanelInfoMapper.updateByExampleSelective(taskPanelInfo,taskPanelInfoExample); taskPanelInfoExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskPanelInfoMapper.updateByExampleSelective(taskPanelInfo, taskPanelInfoExample);
}
} }
@Override @Override
@ -866,18 +876,18 @@ public class TallService implements ITallService {
//获取用户信息 //获取用户信息
ProUser user = getUserByToken(token); ProUser user = getUserByToken(token);
log.info("本服务下的用户信息:{}", user); log.info("本服务下的用户信息:{}", user);
if(ObjectUtil.isNull(user)){ if (ObjectUtil.isNull(user)) {
throw new BaseException(BasicsCodeError.NOT_USER_SERVER); throw new BaseException(BasicsCodeError.NOT_USER_SERVER);
} }
//检查移动的项目是否存在 //检查移动的项目是否存在
ProTaskDetail moveProject = taskDetailDao.selectByPrimaryKey(params.getMoveProjectId()); ProTaskDetail moveProject = taskDetailDao.selectByPrimaryKey(params.getMoveProjectId());
if(ObjectUtil.isNull(moveProject)){ if (ObjectUtil.isNull(moveProject)) {
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND);
} }
//如果目标项目id不为空,检查项目是否存在 //如果目标项目id不为空,检查项目是否存在
if(ObjectUtil.isNotNull(params.getTargetProjectId())){ if (ObjectUtil.isNotNull(params.getTargetProjectId())) {
ProTaskDetail targetProject = taskDetailDao.selectByPrimaryKey(params.getTargetProjectId()); ProTaskDetail targetProject = taskDetailDao.selectByPrimaryKey(params.getTargetProjectId());
if(ObjectUtil.isNull(targetProject)){ if (ObjectUtil.isNull(targetProject)) {
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND);
} }
} }
@ -891,14 +901,14 @@ public class TallService implements ITallService {
ProParentTaskExample parentTaskExample = new ProParentTaskExample(); ProParentTaskExample parentTaskExample = new ProParentTaskExample();
parentTaskExample.createCriteria().andTaskDetailIdEqualTo(params.getMoveProjectId()); parentTaskExample.createCriteria().andTaskDetailIdEqualTo(params.getMoveProjectId());
List<ProParentTask> proParentTasks = parentTaskDao.selectByExample(parentTaskExample); List<ProParentTask> proParentTasks = parentTaskDao.selectByExample(parentTaskExample);
if(CollectionUtil.isNotEmpty(proParentTasks)){ if (CollectionUtil.isNotEmpty(proParentTasks)) {
proParentTasks.forEach(proParentTask -> { proParentTasks.forEach(proParentTask -> {
proParentTask.setRecStatus((byte) 2); proParentTask.setRecStatus((byte) 2);
parentTaskDao.updateByPrimaryKeySelective(proParentTask); parentTaskDao.updateByPrimaryKeySelective(proParentTask);
}); });
} }
//重新添加 //重新添加
if(ObjectUtil.isNotNull(params.getTargetProjectId())){ if (ObjectUtil.isNotNull(params.getTargetProjectId())) {
ProParentTask proParentTask = new ProParentTask(); ProParentTask proParentTask = new ProParentTask();
proParentTask.setId(snowflake.nextId()); proParentTask.setId(snowflake.nextId());
proParentTask.setTaskDetailId(params.getMoveProjectId()); proParentTask.setTaskDetailId(params.getMoveProjectId());

2
src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java

@ -55,6 +55,8 @@ public class BasicsCodeError extends CodeError {
public static final Code NOT_CLOCKING_IN = new Code(536,"打卡记录不存在", true); public static final Code NOT_CLOCKING_IN = new Code(536,"打卡记录不存在", true);
public static final Code NOT_CLOCKING_IN_REMARK = new Code(537,"请填写补卡原因", true); public static final Code NOT_CLOCKING_IN_REMARK = new Code(537,"请填写补卡原因", true);
public static final Code WBS_PHONE_REPEAT = new Code(538,"手机号和成员名不匹配", true);
} }

69
src/main/resources/mapper_dao/ProParentTaskDao.xml

@ -31,29 +31,52 @@
<!-- </select>--> <!-- </select>-->
<select id="queryAllTaskIdByProjectId" resultType="java.lang.Long"> <select id="queryAllTaskIdByProjectId" resultType="java.lang.Long">
SELECT select
task_detail_id *
FROM from
t_pro_parent_task (
WHERE SELECT
rec_status = 0 t.task_detail_id
AND parent_task_detail_id = #{projectId} FROM
UNION ALL t_pro_parent_task t,
SELECT t_label_business b,
task_detail_id t_label l
FROM WHERE
t_pro_parent_task t.parent_task_detail_id = #{projectId}
WHERE and t.task_detail_id = b.business_id
rec_status = 0 and l.id = b.label_id
AND parent_task_detail_id IN ( and l.id != 13
SELECT and t.rec_status = 0
task_detail_id and b.rec_status = 0
FROM and l.rec_status = 0
t_pro_parent_task
WHERE UNION ALL
rec_status = 0
AND parent_task_detail_id = #{projectId} SELECT
) task_detail_id
FROM
t_pro_parent_task
WHERE
rec_status = 0
AND parent_task_detail_id IN (
SELECT
t.task_detail_id
FROM
t_pro_parent_task t,
t_label_business b,
t_label l
WHERE
t.parent_task_detail_id = #{projectId}
and t.task_detail_id = b.business_id
and l.id = b.label_id
and l.id != 13
and t.rec_status = 0
and b.rec_status = 0
and l.rec_status = 0
)
)a
GROUP BY a.task_detail_id
</select> </select>
</mapper> </mapper>

21
src/main/resources/mapper_dao/ProRoleDao.xml

@ -250,5 +250,26 @@
and d.rec_status = 0 and d.rec_status = 0
GROUP BY r.id GROUP BY r.id
</select> </select>
<select id="getExecutorRoleId" resultType="java.lang.Long">
SELECT
rt.role_id
FROM
t_pro_task_detail d,
t_pro_role_task rt,
t_pro_role_member rm,
t_pro_member m
WHERE
d.id = rt.task_id
and rt.role_id = rm.role_id
and rt.role_duty = 0
and rm.member_id = m.id
and m.user_id = #{userId}
and d.id = #{detailId}
and d.rec_status = 0
and rt.rec_status = 0
and rm.rec_status = 0
and m.rec_status = 0
limit 1
</select>
</mapper> </mapper>

7
src/main/resources/mapper_dao/ProTaskDetailDao.xml

@ -554,7 +554,7 @@
<if test="triggerType == 0 and taskId != null"> <if test="triggerType == 0 and taskId != null">
and ts.id != #{taskId} and ts.id != #{taskId}
</if> </if>
group by ts.id GROUP BY ts.id
) AS alltask ) AS alltask
LEFT JOIN t_label_business AS llbb ON alltask.detailId = llbb.business_id 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 LEFT JOIN t_label AS ll ON llbb.label_id = ll.id
@ -676,9 +676,7 @@
ts.real_start_time AS realStart, ts.real_start_time AS realStart,
ts.real_duration, ts.real_duration,
ts.task_status AS process, ts.task_status AS process,
r.project_id as projectId
r.project_id as projectId,
rt.role_id as executorRoleId
FROM FROM
t_pro_task_detail AS td t_pro_task_detail AS td
LEFT JOIN t_pro_task_sub AS ts ON ts.task_detail_id = td.id LEFT JOIN t_pro_task_sub AS ts ON ts.task_detail_id = td.id
@ -713,6 +711,7 @@
<if test="taskId != null"> <if test="taskId != null">
and ts.id != #{taskId} and ts.id != #{taskId}
</if> </if>
GROUP BY ts.id
) AS alltask ) AS alltask
LEFT JOIN t_label_business AS llbb ON alltask.detailId = llbb.business_id 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 LEFT JOIN t_label AS ll ON llbb.label_id = ll.id

Loading…
Cancel
Save