Browse Source

1205

master
zhangye 6 years ago
parent
commit
2a4bf64443
  1. 1674
      .idea/workspace.xml
  2. 4
      tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
  3. 9
      tall/src/main/java/com/ccsens/tall/bean/vo/UserVo.java
  4. 1
      tall/src/main/java/com/ccsens/tall/config/SpringConfig.java
  5. 2
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java
  6. 3
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java
  7. 20
      tall/src/main/java/com/ccsens/tall/service/ExcelService.java
  8. 4
      tall/src/main/java/com/ccsens/tall/service/ExcludeRoleService.java
  9. 2
      tall/src/main/java/com/ccsens/tall/service/IProRoleService.java
  10. 4
      tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java
  11. 2
      tall/src/main/java/com/ccsens/tall/service/IProjectService.java
  12. 5
      tall/src/main/java/com/ccsens/tall/service/MessageService.java
  13. 4
      tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java
  14. 42
      tall/src/main/java/com/ccsens/tall/service/ProMemberService.java
  15. 41
      tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
  16. 234
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  17. 33
      tall/src/main/java/com/ccsens/tall/service/ProjectService.java
  18. 5
      tall/src/main/java/com/ccsens/tall/service/SysPluginService.java
  19. 56
      tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
  20. 4
      tall/src/main/java/com/ccsens/tall/service/TaskMemberService.java
  21. 4
      tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java
  22. 4
      tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
  23. 4
      tall/src/main/java/com/ccsens/tall/service/UserAttentionService.java
  24. 2
      tall/src/main/java/com/ccsens/tall/service/UserService.java
  25. 5
      tall/src/main/java/com/ccsens/tall/service/proLogService.java
  26. 31
      tall/src/main/java/com/ccsens/tall/web/DebugController.java
  27. 13
      tall/src/main/java/com/ccsens/tall/web/ProjectController.java
  28. 30
      tall/src/main/java/com/ccsens/tall/web/TaskController.java
  29. 45
      tall/src/main/java/com/ccsens/tall/web/UserController.java
  30. 13
      tall/src/main/resources/mapper_dao/DeliverDao.xml
  31. 13
      tall/src/main/resources/mapper_dao/TaskDetailDao.xml
  32. 21
      util/src/main/java/com/ccsens/util/cron/NatureToDate.java

1674
.idea/workspace.xml

File diff suppressed because it is too large

4
tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java

@ -89,6 +89,10 @@ public class TaskVo {
private Long endTime; private Long endTime;
@ApiModelProperty("时长") @ApiModelProperty("时长")
private Long duration; private Long duration;
@ApiModelProperty("显示的开始时间")
private String showBeginTime;
@ApiModelProperty("显示的结束时间")
private String showEndTime;
@ApiModelProperty("循环周期") @ApiModelProperty("循环周期")
private String cycle; private String cycle;
@ApiModelProperty("跳转模式 -1手动,0自动,1延迟") @ApiModelProperty("跳转模式 -1手动,0自动,1延迟")

9
tall/src/main/java/com/ccsens/tall/bean/vo/UserVo.java

@ -56,4 +56,13 @@ public class UserVo {
@ApiModelProperty("密码") @ApiModelProperty("密码")
private String password; private String password;
} }
@Getter
@Setter
@ApiModel
public static class TokenToUserId{
@ApiModelProperty("用户id")
private Long id;
}
} }

1
tall/src/main/java/com/ccsens/tall/config/SpringConfig.java

@ -128,6 +128,7 @@ public class SpringConfig implements WebMvcConfigurer {
.excludePathPatterns("/users/signup") .excludePathPatterns("/users/signup")
.excludePathPatterns("/users/password") .excludePathPatterns("/users/password")
.excludePathPatterns("/users/account") .excludePathPatterns("/users/account")
.excludePathPatterns("/users/token")
.addPathPatterns("/plugins/**") .addPathPatterns("/plugins/**")
.addPathPatterns("/delivers/**") .addPathPatterns("/delivers/**")
.addPathPatterns("/tasks/**") .addPathPatterns("/tasks/**")

2
tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java

@ -17,4 +17,6 @@ public interface TaskDeliverDao extends ProTaskDeliverMapper{
List<DeliverVo.DeliverInfo> selectBySubTimeId(@Param("subTimeId") Long subTimeId); List<DeliverVo.DeliverInfo> selectBySubTimeId(@Param("subTimeId") Long subTimeId);
List<DeliverVo.DeliverFile> selectDeliverByUserId(@Param("userId") Long userId); List<DeliverVo.DeliverFile> selectDeliverByUserId(@Param("userId") Long userId);
void deletePostLogCheckerByPostLogId(@Param("postLogId") Long postLogId);
} }

3
tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java

@ -28,5 +28,6 @@ public interface TaskDetailDao extends ProTaskDetailMapper {
Long selectSubTimeByTaskIdAndTime(@Param("detailId") Long detailId, @Param("now") Long now); Long selectSubTimeByTaskIdAndTime(@Param("detailId") Long detailId, @Param("now") Long now);
// void deleteTaskByRoleId(@Param("parentId")Long roleId); void selectTaskByDetailId(@Param("detailId") Long detailId);
} }

20
tall/src/main/java/com/ccsens/tall/service/ExcelService.java

@ -28,7 +28,7 @@ import java.util.*;
@Slf4j @Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ExcelService implements IExcelService { public class ExcelService implements IExcelService {
@Autowired @Autowired
private SysPluginDao sysPluginDao; private SysPluginDao sysPluginDao;
@ -214,6 +214,24 @@ public class ExcelService implements IExcelService {
proRoleService.saveProRole(creatorRole); proRoleService.saveProRole(creatorRole);
proRoles.add(creatorRole); proRoles.add(creatorRole);
//添加关注者一级角色
ProRole attention = new ProRole();
attention.setName(WebConstant.ROLE_NAME.Attention.value);
attention.setDescription(WebConstant.ROLE_NAME.Attention.phase);
attention.setProjectId(sysProject.getId());
attention.setId(snowflake.nextId());
proRoleService.saveProRole(attention);
proRoles.add(attention);
//添加关注者角色(二级角色)
ProRole attentionRole = new ProRole();
attentionRole.setName(WebConstant.ROLE_NAME.Attention.phase);
attentionRole.setDescription(WebConstant.ROLE_NAME.Attention.value);
attentionRole.setParentId(attention.getId());
attentionRole.setProjectId(sysProject.getId());
attentionRole.setId(snowflake.nextId());
proRoleService.saveProRole(attentionRole);
proRoles.add(attentionRole);
//添加成员和奖惩干系人 //添加成员和奖惩干系人
memberWhitStakeholder(memberSheet, stakeholderProRole.getId(),sysProject,proMembers); memberWhitStakeholder(memberSheet, stakeholderProRole.getId(),sysProject,proMembers);

4
tall/src/main/java/com/ccsens/tall/service/ExcludeRoleService.java

@ -2,13 +2,15 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.po.ProRoleExeclude; import com.ccsens.tall.bean.po.ProRoleExeclude;
import com.ccsens.tall.persist.dao.ProRoleExecludeDao; import com.ccsens.tall.persist.dao.ProRoleExecludeDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ExcludeRoleService implements IExcludeRoleService{ public class ExcludeRoleService implements IExcludeRoleService{
@Autowired @Autowired
private ProRoleExecludeDao proRoleExecludeDao; private ProRoleExecludeDao proRoleExecludeDao;

2
tall/src/main/java/com/ccsens/tall/service/IProRoleService.java

@ -22,5 +22,5 @@ public interface IProRoleService {
ProRole getAllMember(Long projectId); ProRole getAllMember(Long projectId);
void deleteRoleByProjectId(Long projectId); void deleteRoleByProjectId(Long userId,Long projectId);
} }

4
tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java

@ -20,5 +20,7 @@ public interface IProTaskDetailService {
TaskVo.NormalTask selectTaskByParentId(Long parentId, Long startTime, Long endTime); TaskVo.NormalTask selectTaskByParentId(Long parentId, Long startTime, Long endTime);
void deleteTaskByRoleId(Long roleId); void deleteTask(Long currentUserId,Long taskId);
void deleteTaskByTaskId(Long taskId);
} }

2
tall/src/main/java/com/ccsens/tall/service/IProjectService.java

@ -28,5 +28,5 @@ public interface IProjectService {
void deleteProject(Long currentUserId, Long projectId)throws Exception; void deleteProject(Long currentUserId, Long projectId)throws Exception;
void copyProject(Long userId, Long projectId); ProjectVo.ProjectInfo copyProject(Long userId, Long projectId);
} }

5
tall/src/main/java/com/ccsens/tall/service/MessageService.java

@ -6,16 +6,21 @@ import com.ccsens.tall.bean.dto.message.*;
import com.ccsens.tall.bean.vo.MemberVo; import com.ccsens.tall.bean.vo.MemberVo;
import com.ccsens.util.JacksonUtil; import com.ccsens.util.JacksonUtil;
import com.ccsens.util.config.RabbitMQConfig; import com.ccsens.util.config.RabbitMQConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate; import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static io.lettuce.core.pubsub.PubSubOutput.Type.message; import static io.lettuce.core.pubsub.PubSubOutput.Type.message;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class MessageService implements IMessageService{ public class MessageService implements IMessageService{
@Autowired @Autowired
private AmqpTemplate rabbitTemplate; private AmqpTemplate rabbitTemplate;

4
tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java

@ -2,13 +2,15 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.po.ProMemberRole; import com.ccsens.tall.bean.po.ProMemberRole;
import com.ccsens.tall.persist.dao.ProMemberRoleDao; import com.ccsens.tall.persist.dao.ProMemberRoleDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ProMemberRoleService implements IProMemberRoleService{ public class ProMemberRoleService implements IProMemberRoleService{
@Autowired @Autowired
private ProMemberRoleDao proMemberRoleDao; private ProMemberRoleDao proMemberRoleDao;

42
tall/src/main/java/com/ccsens/tall/service/ProMemberService.java

@ -9,6 +9,7 @@ import com.ccsens.tall.persist.dao.ProMemberDao;
import com.ccsens.tall.persist.dao.ProMemberRoleDao; import com.ccsens.tall.persist.dao.ProMemberRoleDao;
import com.ccsens.tall.persist.dao.ProRoleDao; import com.ccsens.tall.persist.dao.ProRoleDao;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -17,8 +18,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ProMemberService implements IProMemberService { public class ProMemberService implements IProMemberService {
@Autowired @Autowired
private ProMemberDao proMemberDao; private ProMemberDao proMemberDao;
@ -134,20 +136,30 @@ public class ProMemberService implements IProMemberService {
*/ */
@Override @Override
public List<ProRole> selectRolesByUserIdAndProjectId(Long userId, Long projectId) throws Exception { public List<ProRole> selectRolesByUserIdAndProjectId(Long userId, Long projectId) throws Exception {
List<ProRole> roleList = new ArrayList<>(); // List<ProRole> roleList = new ArrayList<>();
ProMemberExample memberExample = new ProMemberExample(); // ProMemberExample memberExample = new ProMemberExample();
memberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId); // memberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId);
List<ProMember> memberList = proMemberDao.selectByExample(memberExample); // List<ProMember> memberList = proMemberDao.selectByExample(memberExample);
if (CollectionUtil.isNotEmpty(memberList)) { // if (CollectionUtil.isNotEmpty(memberList)) {
ProMember member = memberList.get(0); // ProMember member = memberList.get(0);
ProMemberRoleExample memberRoleExample = new ProMemberRoleExample(); // ProMemberRoleExample memberRoleExample = new ProMemberRoleExample();
memberRoleExample.createCriteria().andMemberIdEqualTo(member.getId()); // memberRoleExample.createCriteria().andMemberIdEqualTo(member.getId());
List<ProMemberRole> memberRoleList = proMemberRoleDao.selectByExample(memberRoleExample); // List<ProMemberRole> memberRoleList = proMemberRoleDao.selectByExample(memberRoleExample);
if(CollectionUtil.isNotEmpty(memberRoleList)){ // if(CollectionUtil.isNotEmpty(memberRoleList)){
for(ProMemberRole memberRole:memberRoleList){ // for(ProMemberRole memberRole:memberRoleList){
ProRole role = proRoleDao.selectByPrimaryKey(memberRole.getRoleId()); // ProRole role = proRoleDao.selectByPrimaryKey(memberRole.getRoleId());
roleList.add(role); // roleList.add(role);
} // }
// }
// }
List<ProRole> roleList = proRoleDao.selectRolesByProjectIdAndUserId(projectId, userId);
if(CollectionUtil.isNotEmpty(roleList)){
ProRoleExample roleExample = new ProRoleExample();
roleExample.createCriteria().andProjectIdEqualTo(projectId)
.andNameEqualTo(WebConstant.ROLE_NAME.Attention.phase).andParentIdNotEqualTo(0L);
List<ProRole> proRoleList = proRoleDao.selectByExample(roleExample);
if(CollectionUtil.isNotEmpty(proRoleList)){
roleList.addAll(proRoleList);
} }
} }
return roleList; return roleList;

41
tall/src/main/java/com/ccsens/tall/service/ProRoleService.java

@ -11,6 +11,7 @@ import com.ccsens.tall.persist.dao.ProMemberDao;
import com.ccsens.tall.persist.dao.ProMemberRoleDao; import com.ccsens.tall.persist.dao.ProMemberRoleDao;
import com.ccsens.tall.persist.dao.ProRoleDao; import com.ccsens.tall.persist.dao.ProRoleDao;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -18,17 +19,16 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ProRoleService implements IProRoleService { public class ProRoleService implements IProRoleService {
@Autowired @Autowired
private ProRoleDao proRoleDao; private ProRoleDao proRoleDao;
@Autowired @Autowired
private ProMemberDao proMemberDao; private ProMemberDao proMemberDao;
@Autowired @Autowired
private ProMemberRoleDao proMemberRoleDao; private IProMemberService proMemberService;
@Autowired
private IProTaskDetailService taskDetailService;
@Autowired @Autowired
private IUserService userService; private IUserService userService;
@ -56,7 +56,8 @@ public class ProRoleService implements IProRoleService {
//是否mine //是否mine
if (CollectionUtil.isNotEmpty(memberRoleList)) { if (CollectionUtil.isNotEmpty(memberRoleList)) {
List<ProRole> roleList = proRoleDao.selectRolesByProjectIdAndUserId(projectId, currentUserId); //获取用户在项目中的角色
List<ProRole> roleList = proMemberService.selectRolesByUserIdAndProjectId(projectId, currentUserId);
for (ProjectVo.RoleInfo memberRole : memberRoleList) { for (ProjectVo.RoleInfo memberRole : memberRoleList) {
if (ObjectUtil.isNotNull(roleList)) { if (ObjectUtil.isNotNull(roleList)) {
for(ProRole role:roleList){ for(ProRole role:roleList){
@ -97,22 +98,6 @@ public class ProRoleService implements IProRoleService {
} }
} }
// //是否mine
// if (CollectionUtil.isNotEmpty(memberRoleList)) {
// List<ProRole> roleList = proRoleDao.selectRolesByProjectIdAndUserId(projectId, currentUserId);
// for (ProjectVo.RoleInfo memberRole : memberRoleList) {
// if (ObjectUtil.isNotNull(roleList)) {
// for(ProRole role:roleList){
// if (memberRole.getId().equals(role.getId())) {
// memberRole.setMine(true);
// break;
// } else {
// memberRole.setMine(false);
// }
// }
// }
// }
// }
//奖惩干系人信息 //奖惩干系人信息
if (CollectionUtil.isNotEmpty(memberRoleList)) { if (CollectionUtil.isNotEmpty(memberRoleList)) {
for (ProjectVo.RoleInfo memberRole : memberRoleList) { for (ProjectVo.RoleInfo memberRole : memberRoleList) {
@ -213,20 +198,14 @@ public class ProRoleService implements IProRoleService {
//======================================================================= //=======================================================================
/** /**
* 删除所有角色 * 删除角色
* @param projectId
*/ */
@Override @Override
public void deleteRoleByProjectId(Long projectId) { public void deleteRoleByProjectId(Long userId,Long roleId) {
ProRoleExample roleExample = new ProRoleExample(); ProRoleExample roleExample = new ProRoleExample();
roleExample.createCriteria().andProjectIdEqualTo(projectId); roleExample.createCriteria().andProjectIdEqualTo(roleId);
List<ProRole> roleList = proRoleDao.selectByExample(roleExample); List<ProRole> roleList = proRoleDao.selectByExample(roleExample);
if(CollectionUtil.isNotEmpty(roleList)){
//删除任务
for(ProRole role:roleList){
taskDetailService.deleteTaskByRoleId(role.getId());
}
}
} }

234
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -12,6 +12,7 @@ import com.ccsens.util.CodeEnum;
import com.ccsens.util.DateUtil; import com.ccsens.util.DateUtil;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -20,8 +21,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ProTaskDetailService implements IProTaskDetailService { public class ProTaskDetailService implements IProTaskDetailService {
@Autowired @Autowired
private IProRoleService proRoleService; private IProRoleService proRoleService;
@ -47,6 +49,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
private ProMemberDao proMemberDao; private ProMemberDao proMemberDao;
@Autowired @Autowired
private SysProjectDao sysProjectDao; private SysProjectDao sysProjectDao;
@Autowired
private TaskPluginDao taskPluginDao;
@Override @Override
public void saveTaskDetail(ProTaskDetail taskDetail) { public void saveTaskDetail(ProTaskDetail taskDetail) {
@ -56,7 +60,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
@Override @Override
public Object getTasksByRoleId(Long currentUserId, Long projectId, Long roleId, Long startTime, Long endTime, Integer process, Integer page, Integer pageSize) throws Exception { public Object getTasksByRoleId(Long currentUserId, Long projectId, Long roleId, Long startTime, Long endTime, Integer process, Integer page, Integer pageSize) throws Exception {
SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId); SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId);
if(ObjectUtil.isNull(sysProject)){ if (ObjectUtil.isNull(sysProject)) {
throw new BaseException(CodeEnum.NOT_PROJECT); throw new BaseException(CodeEnum.NOT_PROJECT);
} }
startTime = startTime == null ? sysProject.getBeginTime() : startTime; startTime = startTime == null ? sysProject.getBeginTime() : startTime;
@ -64,22 +68,22 @@ public class ProTaskDetailService implements IProTaskDetailService {
Object obj = null; Object obj = null;
ProRole role = proRoleDao.selectByPrimaryKey(roleId); ProRole role = proRoleDao.selectByPrimaryKey(roleId);
if(ObjectUtil.isNull(role)){ if (ObjectUtil.isNull(role)) {
throw new BaseException(CodeEnum.NOT_ROLE); throw new BaseException(CodeEnum.NOT_ROLE);
} }
ProRole parentRole = proRoleDao.selectByPrimaryKey(role.getParentId()); ProRole parentRole = proRoleDao.selectByPrimaryKey(role.getParentId());
if(ObjectUtil.isNull(parentRole)){ if (ObjectUtil.isNull(parentRole)) {
throw new BaseException(CodeEnum.NOT_ROLE); throw new BaseException(CodeEnum.NOT_ROLE);
} }
if(ObjectUtil.isNotNull(role)) { if (ObjectUtil.isNotNull(role)) {
if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.MVP.value)) { if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.MVP.value)) {
obj = getTaskInfoByMvp(projectId, page, pageSize); obj = getTaskInfoByMvp(projectId, page, pageSize);
} else if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.PM.value)) { } else if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.PM.value)) {
obj = getTaskInfoByProjectIdAndPM(currentUserId,projectId, startTime, endTime, process, page, pageSize); obj = getTaskInfoByProjectIdAndPM(currentUserId, projectId, startTime, endTime, process, page, pageSize);
} else if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.Member.value)) { } else if (parentRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.Member.value)) {
obj = getTaskInfoByProjectIdAndRoleId(currentUserId, projectId, roleId, startTime, endTime, process, page, pageSize); obj = getTaskInfoByProjectIdAndRoleId(currentUserId, projectId, roleId, startTime, endTime, process, page, pageSize);
} }
}else { } else {
throw new BaseException(CodeEnum.NOT_ROLE); throw new BaseException(CodeEnum.NOT_ROLE);
} }
return obj; return obj;
@ -96,46 +100,46 @@ public class ProTaskDetailService implements IProTaskDetailService {
TaskVo.NormalTask normalTask = null; TaskVo.NormalTask normalTask = null;
//1、查找一级任务 //1、查找一级任务
SysProject project = sysProjectDao.selectByPrimaryKey(projectId); SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
if(endTime < project.getBeginTime() || startTime > project.getEndTime()){ if (endTime < project.getBeginTime() || startTime > project.getEndTime()) {
return proTaskInfo; return proTaskInfo;
} }
ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample(); ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample();
proTaskDetailExample.createCriteria().andProjectIdEqualTo(projectId).andLevelEqualTo((byte) 1); proTaskDetailExample.createCriteria().andProjectIdEqualTo(projectId).andLevelEqualTo((byte) 1);
List<ProTaskDetail> firstTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample); List<ProTaskDetail> firstTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample);
if(CollectionUtil.isNotEmpty(firstTaskDetailList)){ if (CollectionUtil.isNotEmpty(firstTaskDetailList)) {
int sequence = 1; int sequence = 1;
for(ProTaskDetail firstTaskDetail:firstTaskDetailList){ for (ProTaskDetail firstTaskDetail : firstTaskDetailList) {
normalTask = new TaskVo.NormalTask(); normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(firstTaskDetail,normalTask); BeanUtil.copyProperties(firstTaskDetail, normalTask);
normalTask.setDetailId(firstTaskDetail.getId()); normalTask.setDetailId(firstTaskDetail.getId());
normalTask.setId(null); normalTask.setId(null);
normalTask.setSequence(sequence); normalTask.setSequence(sequence);
//查找一级任务下的二级任务 //查找一级任务下的二级任务
List<TaskVo.NormalTask> secondNormalTaskList = taskDetailDao.selectNormalTaskListByPM(projectId,firstTaskDetail.getId(),startTime,endTime); List<TaskVo.NormalTask> secondNormalTaskList = taskDetailDao.selectNormalTaskListByPM(projectId, firstTaskDetail.getId(), startTime, endTime);
if(CollectionUtil.isNotEmpty(secondNormalTaskList)){ if (CollectionUtil.isNotEmpty(secondNormalTaskList)) {
for(TaskVo.NormalTask task:secondNormalTaskList){ for (TaskVo.NormalTask task : secondNormalTaskList) {
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId,task.getId()); ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, task.getId());
if(ObjectUtil.isNotNull(subTimeMember)){ if (ObjectUtil.isNotNull(subTimeMember)) {
task.setRealEndTime(subTimeMember.getRealFinishTime()); task.setRealEndTime(subTimeMember.getRealFinishTime());
task.setProcess(subTimeMember.getComplatedStatus()); task.setProcess(subTimeMember.getComplatedStatus());
} }
} }
TaskUtil.Task task = TaskUtil.splitTask(secondNormalTaskList,startTime,endTime,process); TaskUtil.Task task = TaskUtil.splitTask(secondNormalTaskList, startTime, endTime, process);
if(CollectionUtil.isNotEmpty(task.getGlobalTask())){ if (CollectionUtil.isNotEmpty(task.getGlobalTask())) {
for(TaskVo.NormalTask global:task.getGlobalTask()){ for (TaskVo.NormalTask global : task.getGlobalTask()) {
globalTask = new TaskVo.GlobalTask(); globalTask = new TaskVo.GlobalTask();
BeanUtil.copyProperties(global,globalTask); BeanUtil.copyProperties(global, globalTask);
globalTaskList.add(globalTask); globalTaskList.add(globalTask);
} }
} }
if(CollectionUtil.isNotEmpty(task.getCommonTask())){ if (CollectionUtil.isNotEmpty(task.getCommonTask())) {
normalTask.setSecondTasks(new ArrayList<>()); normalTask.setSecondTasks(new ArrayList<>());
normalTask.getSecondTasks().addAll(task.getCommonTask()); normalTask.getSecondTasks().addAll(task.getCommonTask());
} }
} }
// if(CollectionUtil.isNotEmpty(normalTask.getSecondTasks())) { // if(CollectionUtil.isNotEmpty(normalTask.getSecondTasks())) {
normalTaskList.add(normalTask); normalTaskList.add(normalTask);
sequence++; sequence++;
// } // }
} }
} }
@ -148,6 +152,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
proTaskInfo.setNormalTaskList(normalTaskList); proTaskInfo.setNormalTaskList(normalTaskList);
return proTaskInfo; return proTaskInfo;
} }
/** /**
* 查看任务 项目成员 * 查看任务 项目成员
*/ */
@ -159,28 +164,28 @@ public class ProTaskDetailService implements IProTaskDetailService {
//获取“全体成员”角色 //获取“全体成员”角色
ProRole allMember = proRoleService.getAllMember(projectId); ProRole allMember = proRoleService.getAllMember(projectId);
Long allMemberId = null; Long allMemberId = null;
if(ObjectUtil.isNotNull(allMember)) { if (ObjectUtil.isNotNull(allMember)) {
allMemberId = allMember.getId(); allMemberId = allMember.getId();
} }
//查找该角色的所有任务(全体成员的任务也是这个角色的任务) //查找该角色的所有任务(全体成员的任务也是这个角色的任务)
List<TaskVo.NormalTask> secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId, allMemberId,startTime,endTime); List<TaskVo.NormalTask> secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId, allMemberId, startTime, endTime);
if(CollectionUtil.isNotEmpty(secondTaskVoList)){ if (CollectionUtil.isNotEmpty(secondTaskVoList)) {
for(TaskVo.NormalTask normalTask:secondTaskVoList){ for (TaskVo.NormalTask normalTask : secondTaskVoList) {
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId,normalTask.getId()); ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, normalTask.getId());
if(ObjectUtil.isNotNull(subTimeMember)){ if (ObjectUtil.isNotNull(subTimeMember)) {
normalTask.setProcess(subTimeMember.getComplatedStatus()); normalTask.setProcess(subTimeMember.getComplatedStatus());
normalTask.setRealEndTime(subTimeMember.getRealFinishTime()); normalTask.setRealEndTime(subTimeMember.getRealFinishTime());
} }
} }
TaskUtil.Task task = TaskUtil.splitTask(secondTaskVoList,startTime,endTime,process); TaskUtil.Task task = TaskUtil.splitTask(secondTaskVoList, startTime, endTime, process);
if(CollectionUtil.isNotEmpty(task.getGlobalTask())){ if (CollectionUtil.isNotEmpty(task.getGlobalTask())) {
for(TaskVo.NormalTask global:task.getGlobalTask()){ for (TaskVo.NormalTask global : task.getGlobalTask()) {
globalTask = new TaskVo.GlobalTask(); globalTask = new TaskVo.GlobalTask();
BeanUtil.copyProperties(global,globalTask); BeanUtil.copyProperties(global, globalTask);
globalTaskList.add(globalTask); globalTaskList.add(globalTask);
} }
} }
if(CollectionUtil.isNotEmpty(task.getCommonTask())){ if (CollectionUtil.isNotEmpty(task.getCommonTask())) {
normalTaskList = sortTaskTime(task.getCommonTask()); normalTaskList = sortTaskTime(task.getCommonTask());
} }
} }
@ -223,6 +228,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
proTaskInfo.setNormalTaskList(theNormalTaskList); proTaskInfo.setNormalTaskList(theNormalTaskList);
return proTaskInfo; return proTaskInfo;
} }
private List<TaskVo.NormalTask> sortTaskTime(List<TaskVo.NormalTask> commonTask) { private List<TaskVo.NormalTask> sortTaskTime(List<TaskVo.NormalTask> commonTask) {
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>(); List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
List<TaskVo.NormalTask> secondTaskVoList = null; List<TaskVo.NormalTask> secondTaskVoList = null;
@ -251,8 +257,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
Long endTime = timeList.get(i + 1); Long endTime = timeList.get(i + 1);
for (TaskVo.NormalTask secondTaskVo : commonTask) { for (TaskVo.NormalTask secondTaskVo : commonTask) {
if(secondTaskVo.getTimeStatus() == 1){ if (secondTaskVo.getTimeStatus() == 1) {
if(secondTaskVo.getBeginTime().longValue() == startTime.longValue()) { if (secondTaskVo.getBeginTime().longValue() == startTime.longValue()) {
normalTask = new TaskVo.NormalTask(); normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(secondTaskVo, normalTask); BeanUtil.copyProperties(secondTaskVo, normalTask);
normalTask.setEndTime(null); normalTask.setEndTime(null);
@ -262,8 +268,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
} }
continue; continue;
} }
if(secondTaskVo.getTimeStatus() == 2){ if (secondTaskVo.getTimeStatus() == 2) {
if(secondTaskVo.getEndTime().longValue() == endTime.longValue()) { if (secondTaskVo.getEndTime().longValue() == endTime.longValue()) {
normalTask = new TaskVo.NormalTask(); normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(secondTaskVo, normalTask); BeanUtil.copyProperties(secondTaskVo, normalTask);
normalTask.setBeginTime(null); normalTask.setBeginTime(null);
@ -317,14 +323,14 @@ public class ProTaskDetailService implements IProTaskDetailService {
TaskVo.ProTaskInfoByMVP proTaskInfoByMVP = new TaskVo.ProTaskInfoByMVP(); TaskVo.ProTaskInfoByMVP proTaskInfoByMVP = new TaskVo.ProTaskInfoByMVP();
List<TaskVo.TaskDeliverByMVP> taskDeliverByMVPList = new ArrayList<>(); List<TaskVo.TaskDeliverByMVP> taskDeliverByMVPList = new ArrayList<>();
TaskVo.TaskDeliverByMVP taskDeliverByMVP = null; TaskVo.TaskDeliverByMVP taskDeliverByMVP = null;
List<TaskVo.FirstTask> firstTasks =new ArrayList<>(); List<TaskVo.FirstTask> firstTasks = new ArrayList<>();
TaskVo.FirstTask firstProTask = null; TaskVo.FirstTask firstProTask = null;
//查找项目下的一级任务 //查找项目下的一级任务
ProTaskDetailExample firstTaskExample = new ProTaskDetailExample(); ProTaskDetailExample firstTaskExample = new ProTaskDetailExample();
firstTaskExample.createCriteria().andProjectIdEqualTo(projectId).andVirtualEqualTo((byte) WebConstant.TASK_VIRTUAL.Normal.value).andParentIdEqualTo(0L); firstTaskExample.createCriteria().andProjectIdEqualTo(projectId).andVirtualEqualTo((byte) WebConstant.TASK_VIRTUAL.Normal.value).andParentIdEqualTo(0L);
List<ProTaskDetail> firstTaskList = taskDetailDao.selectByExample(firstTaskExample); List<ProTaskDetail> firstTaskList = taskDetailDao.selectByExample(firstTaskExample);
if(CollectionUtil.isNotEmpty(firstTaskList)){ if (CollectionUtil.isNotEmpty(firstTaskList)) {
for(ProTaskDetail firstTask:firstTaskList){ for (ProTaskDetail firstTask : firstTaskList) {
taskDeliverByMVPList = new ArrayList<>(); taskDeliverByMVPList = new ArrayList<>();
//查找项目下所有的二级任务 //查找项目下所有的二级任务
ProTaskDetailExample taskExample = new ProTaskDetailExample(); ProTaskDetailExample taskExample = new ProTaskDetailExample();
@ -370,39 +376,39 @@ public class ProTaskDetailService implements IProTaskDetailService {
} }
/** /**
*通过任务id查任务详情 * 通过任务id查任务详情
*/ */
@Override @Override
public TaskVo.NormalTask getTaskInfoByTaskId(Long currentUserId, Long projectId, Long taskId) throws Exception { public TaskVo.NormalTask getTaskInfoByTaskId(Long currentUserId, Long projectId, Long taskId) throws Exception {
ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(taskId); ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(taskId);
TaskVo.NormalTask taskDetail = null; TaskVo.NormalTask taskDetail = null;
if(ObjectUtil.isNotNull(subTime)) { if (ObjectUtil.isNotNull(subTime)) {
taskDetail = taskDetailDao.selectTaskByTaskId(subTime.getId(),subTime.getTaskDetailId()); taskDetail = taskDetailDao.selectTaskByTaskId(subTime.getId(), subTime.getTaskDetailId());
//修改任务的完成状态 //修改任务的完成状态
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId,taskDetail.getId()); ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, taskDetail.getId());
if(ObjectUtil.isNotNull(subTimeMember)){ if (ObjectUtil.isNotNull(subTimeMember)) {
taskDetail.setProcess(subTimeMember.getComplatedStatus()); taskDetail.setProcess(subTimeMember.getComplatedStatus());
taskDetail.setRealEndTime(subTimeMember.getRealFinishTime()); taskDetail.setRealEndTime(subTimeMember.getRealFinishTime());
} }
//添加项目信息和插件信息 //添加项目信息和插件信息
normalTaskAddPlugin(currentUserId,subTime.getTaskDetailId(),taskDetail); normalTaskAddPlugin(currentUserId, subTime.getTaskDetailId(), taskDetail);
if (ObjectUtil.isNotNull(taskDetail)) { if (ObjectUtil.isNotNull(taskDetail)) {
List<TaskVo.NormalTask> groupTaskList = new ArrayList<>(); List<TaskVo.NormalTask> groupTaskList = new ArrayList<>();
groupTaskList = taskDetailDao.selectTaskByParentId(projectId, taskDetail.getDetailId()); groupTaskList = taskDetailDao.selectTaskByParentId(projectId, taskDetail.getDetailId());
if (CollectionUtil.isNotEmpty(groupTaskList)) { if (CollectionUtil.isNotEmpty(groupTaskList)) {
for(TaskVo.NormalTask groupTask:groupTaskList){ for (TaskVo.NormalTask groupTask : groupTaskList) {
//修改任务的完成状态 //修改任务的完成状态
ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(currentUserId,groupTask.getId()); ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(currentUserId, groupTask.getId());
if(ObjectUtil.isNotNull(proSubTimeMember)){ if (ObjectUtil.isNotNull(proSubTimeMember)) {
groupTask.setProcess(proSubTimeMember.getComplatedStatus()); groupTask.setProcess(proSubTimeMember.getComplatedStatus());
groupTask.setRealEndTime(proSubTimeMember.getRealFinishTime()); groupTask.setRealEndTime(proSubTimeMember.getRealFinishTime());
} }
//添加项目信息和插件信息 //添加项目信息和插件信息
normalTaskAddPlugin(currentUserId,groupTask.getDetailId(),groupTask); normalTaskAddPlugin(currentUserId, groupTask.getDetailId(), groupTask);
//修改返回时子任务的名字(“任务名+(xx和XX)”) //修改返回时子任务的名字(“任务名+(xx和XX)”)
ProTaskDetail proTaskDetail = taskDetailDao.selectByPrimaryKey(groupTask.getDetailId()); ProTaskDetail proTaskDetail = taskDetailDao.selectByPrimaryKey(groupTask.getDetailId());
if(proTaskDetail.getAllMember()==0){ if (proTaskDetail.getAllMember() == 0) {
groupTask.setName(updateSubTaskName(groupTask.getDetailId(),groupTask.getName())); groupTask.setName(updateSubTaskName(groupTask.getDetailId(), groupTask.getName()));
} }
} }
@ -413,37 +419,39 @@ public class ProTaskDetailService implements IProTaskDetailService {
} }
return taskDetail; return taskDetail;
} }
private void normalTaskAddPlugin(Long userId,Long taskId,TaskVo.NormalTask normalTask) throws Exception {
private void normalTaskAddPlugin(Long userId, Long taskId, TaskVo.NormalTask normalTask) throws Exception {
ProTaskDetail task = taskDetailDao.selectByPrimaryKey(taskId); ProTaskDetail task = taskDetailDao.selectByPrimaryKey(taskId);
//添加项目信息 //添加项目信息
SysProject project = sysProjectDao.selectByPrimaryKey(task.getProjectId()); SysProject project = sysProjectDao.selectByPrimaryKey(task.getProjectId());
if(ObjectUtil.isNotNull(project)){ if (ObjectUtil.isNotNull(project)) {
normalTask.setProjectId(project.getId()); normalTask.setProjectId(project.getId());
normalTask.setProjectName(project.getName()); normalTask.setProjectName(project.getName());
} }
ProRole role = proRoleDao.selectByPrimaryKey(normalTask.getExecutorRole()); ProRole role = proRoleDao.selectByPrimaryKey(normalTask.getExecutorRole());
if(ObjectUtil.isNotNull(role)){ if (ObjectUtil.isNotNull(role)) {
normalTask.setExecutorRoleName(role.getName()); normalTask.setExecutorRoleName(role.getName());
} }
//添加插件 //添加插件
List<TaskVo.PluginVo> pluginVoList = pluginService.getPluginByTask(task.getId(),userId); List<TaskVo.PluginVo> pluginVoList = pluginService.getPluginByTask(task.getId(), userId);
normalTask.setPlugins(new ArrayList<>()); normalTask.setPlugins(new ArrayList<>());
normalTask.getPlugins().addAll(pluginVoList); normalTask.getPlugins().addAll(pluginVoList);
} }
/** /**
* 修改返回时子任务的名字 格式任务名+xx和XX * 修改返回时子任务的名字 格式任务名+xx和XX
*/ */
private String updateSubTaskName(Long taskId,String taskName){ private String updateSubTaskName(Long taskId, String taskName) {
String name = taskName + "("; String name = taskName + "(";
ProTaskMemberExample taskMemberExample = new ProTaskMemberExample(); ProTaskMemberExample taskMemberExample = new ProTaskMemberExample();
taskMemberExample.createCriteria().andTaskDetailIdEqualTo(taskId); taskMemberExample.createCriteria().andTaskDetailIdEqualTo(taskId);
List<ProTaskMember> taskMemberList = taskMemberDao.selectByExample(taskMemberExample); List<ProTaskMember> taskMemberList = taskMemberDao.selectByExample(taskMemberExample);
if(CollectionUtil.isNotEmpty(taskMemberList)){ if (CollectionUtil.isNotEmpty(taskMemberList)) {
for(int i = 0;i < taskMemberList.size();i++){ for (int i = 0; i < taskMemberList.size(); i++) {
ProMember member = proMemberDao.selectByPrimaryKey(taskMemberList.get(i).getMemberId()); ProMember member = proMemberDao.selectByPrimaryKey(taskMemberList.get(i).getMemberId());
if(ObjectUtil.isNotNull(member)){ if (ObjectUtil.isNotNull(member)) {
name += member.getNickname(); name += member.getNickname();
if(i != taskMemberList.size()-1){ if (i != taskMemberList.size() - 1) {
name += "和"; name += "和";
} }
} }
@ -466,19 +474,19 @@ public class ProTaskDetailService implements IProTaskDetailService {
//获取日期的开始结束时间 //获取日期的开始结束时间
Long startMillisTime = null; Long startMillisTime = null;
Long endMillisTime = null; Long endMillisTime = null;
Map<String,Long> timeMap = null; Map<String, Long> timeMap = null;
if(StrUtil.isNotEmpty(start)){ if (StrUtil.isNotEmpty(start)) {
timeMap = DateUtil.projectFormatDateTime(start); timeMap = DateUtil.projectFormatDateTime(start);
startMillisTime = timeMap.get("startMillisTime"); startMillisTime = timeMap.get("startMillisTime");
} }
if(StrUtil.isNotEmpty(end)){ if (StrUtil.isNotEmpty(end)) {
timeMap = DateUtil.projectFormatDateTime(start); timeMap = DateUtil.projectFormatDateTime(start);
endMillisTime = timeMap.get("endMillisTime"); endMillisTime = timeMap.get("endMillisTime");
} }
//获取该用户关注的项目 //获取该用户关注的项目
List<SysProject> projectList = attentionService.findProjectIdByUserId(currentUserId); List<SysProject> projectList = attentionService.findProjectIdByUserId(currentUserId);
if(CollectionUtil.isNotEmpty(projectList)){ if (CollectionUtil.isNotEmpty(projectList)) {
if(StrUtil.isNotEmpty(role)) { if (StrUtil.isNotEmpty(role)) {
switch (role) { switch (role) {
case "创建者": case "创建者":
for (SysProject project : projectList) { for (SysProject project : projectList) {
@ -503,7 +511,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
default: default:
break; break;
} }
}else { } else {
for (SysProject project : projectList) { for (SysProject project : projectList) {
List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(project, currentUserId, startMillisTime, endMillisTime); List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(project, currentUserId, startMillisTime, endMillisTime);
if (CollectionUtil.isNotEmpty(taskList)) { if (CollectionUtil.isNotEmpty(taskList)) {
@ -560,36 +568,37 @@ public class ProTaskDetailService implements IProTaskDetailService {
taskCheckList.setPageInfo(pageInfo); taskCheckList.setPageInfo(pageInfo);
return taskCheckList; return taskCheckList;
} }
private List<TaskVo.NormalTask> getTaskInfoByProjectIdAndUserId(SysProject project, Long userId, private List<TaskVo.NormalTask> getTaskInfoByProjectIdAndUserId(SysProject project, Long userId,
Long startTime, Long endTime) throws Exception { Long startTime, Long endTime) throws Exception {
List<TaskVo.NormalTask> normalTaskList = new ArrayList<>(); List<TaskVo.NormalTask> normalTaskList = new ArrayList<>();
//获取用户的角色 //获取用户的角色
List<ProRole> roleList = proRoleService.getProRoleByProjectIdAndUserId(project.getId(),userId); List<ProRole> roleList = proRoleService.getProRoleByProjectIdAndUserId(project.getId(), userId);
//获取“全体成员”角色 //获取“全体成员”角色
ProRole allMember = proRoleService.getAllMember(project.getId()); ProRole allMember = proRoleService.getAllMember(project.getId());
Long allMemberId = null; Long allMemberId = null;
if(ObjectUtil.isNotNull(allMember)) { if (ObjectUtil.isNotNull(allMember)) {
allMemberId = allMember.getId(); allMemberId = allMember.getId();
} }
if(CollectionUtil.isNotEmpty(roleList)) { if (CollectionUtil.isNotEmpty(roleList)) {
for(ProRole role:roleList) { for (ProRole role : roleList) {
SysProject sysProject = sysProjectDao.selectByPrimaryKey(role.getProjectId()); SysProject sysProject = sysProjectDao.selectByPrimaryKey(role.getProjectId());
List<TaskVo.NormalTask> taskList = List<TaskVo.NormalTask> taskList =
taskDetailDao.selectTaskByRoleAndAllMembers(project.getId(), role.getId(), allMemberId, startTime, endTime); taskDetailDao.selectTaskByRoleAndAllMembers(project.getId(), role.getId(), allMemberId, startTime, endTime);
if(CollectionUtil.isNotEmpty(taskList)) { if (CollectionUtil.isNotEmpty(taskList)) {
for(TaskVo.NormalTask normalTask:taskList){ for (TaskVo.NormalTask normalTask : taskList) {
//修改任务的完成状态 //修改任务的完成状态
ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(userId,normalTask.getId()); ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(userId, normalTask.getId());
if(ObjectUtil.isNotNull(proSubTimeMember)){ if (ObjectUtil.isNotNull(proSubTimeMember)) {
normalTask.setProcess(proSubTimeMember.getComplatedStatus()); normalTask.setProcess(proSubTimeMember.getComplatedStatus());
normalTask.setRealEndTime(proSubTimeMember.getRealFinishTime()); normalTask.setRealEndTime(proSubTimeMember.getRealFinishTime());
} }
ProRole proRole = proRoleDao.selectByPrimaryKey(normalTask.getExecutorRole()); ProRole proRole = proRoleDao.selectByPrimaryKey(normalTask.getExecutorRole());
if(ObjectUtil.isNotNull(sysProject)) { if (ObjectUtil.isNotNull(sysProject)) {
normalTask.setProjectId(sysProject.getId()); normalTask.setProjectId(sysProject.getId());
normalTask.setProjectName(sysProject.getName()); normalTask.setProjectName(sysProject.getName());
} }
if(ObjectUtil.isNotNull(proRole)){ if (ObjectUtil.isNotNull(proRole)) {
normalTask.setExecutorRoleName(proRole.getName()); normalTask.setExecutorRoleName(proRole.getName());
} }
} }
@ -602,7 +611,6 @@ public class ProTaskDetailService implements IProTaskDetailService {
/** /**
* 项目内的任务清单 * 项目内的任务清单
*
*/ */
@Override @Override
public TaskVo.TaskCheckList selectTaskListByProject(Long projectId, Long currentUserId, Integer page, Integer pageSize, public TaskVo.TaskCheckList selectTaskListByProject(Long projectId, Long currentUserId, Integer page, Integer pageSize,
@ -614,18 +622,18 @@ public class ProTaskDetailService implements IProTaskDetailService {
//获取日期的开始结束时间 //获取日期的开始结束时间
Long startMillisTime = null; Long startMillisTime = null;
Long endMillisTime = null; Long endMillisTime = null;
Map<String,Long> timeMap = null; Map<String, Long> timeMap = null;
if(StrUtil.isNotEmpty(start)){ if (StrUtil.isNotEmpty(start)) {
timeMap = DateUtil.projectFormatDateTime(start); timeMap = DateUtil.projectFormatDateTime(start);
startMillisTime = timeMap.get("startMillisTime"); startMillisTime = timeMap.get("startMillisTime");
} }
if(StrUtil.isNotEmpty(end)){ if (StrUtil.isNotEmpty(end)) {
timeMap = DateUtil.projectFormatDateTime(start); timeMap = DateUtil.projectFormatDateTime(start);
endMillisTime = timeMap.get("endMillisTime"); endMillisTime = timeMap.get("endMillisTime");
} }
//获取项目 //获取项目
SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId); SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId);
if(ObjectUtil.isNotNull(sysProject)) { if (ObjectUtil.isNotNull(sysProject)) {
List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(sysProject, currentUserId, startMillisTime, endMillisTime); List<TaskVo.NormalTask> taskList = getTaskInfoByProjectIdAndUserId(sysProject, currentUserId, startMillisTime, endMillisTime);
if (CollectionUtil.isNotEmpty(taskList)) { if (CollectionUtil.isNotEmpty(taskList)) {
normalTaskList.addAll(taskList); normalTaskList.addAll(taskList);
@ -684,7 +692,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
*/ */
@Override @Override
public List<TaskVo.TaskDetailByKey> getTaskDetailByKey(Long currentUserId, Long projectId, String key) { public List<TaskVo.TaskDetailByKey> getTaskDetailByKey(Long currentUserId, Long projectId, String key) {
List<TaskVo.TaskDetailByKey> taskDetailByKeyList = taskDetailDao.selectTaskByKey(currentUserId,projectId,key); List<TaskVo.TaskDetailByKey> taskDetailByKeyList = taskDetailDao.selectTaskByKey(currentUserId, projectId, key);
return taskDetailByKeyList; return taskDetailByKeyList;
} }
@ -692,8 +700,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
* 查询子任务最早的一条 * 查询子任务最早的一条
*/ */
@Override @Override
public TaskVo.NormalTask selectTaskByParentId(Long parentId, Long startTime, Long endTime){ public TaskVo.NormalTask selectTaskByParentId(Long parentId, Long startTime, Long endTime) {
TaskVo.NormalTask normalTask = taskDetailDao.selectTaskByParentIdAndTime(parentId,startTime,endTime); TaskVo.NormalTask normalTask = taskDetailDao.selectTaskByParentIdAndTime(parentId, startTime, endTime);
return normalTask; return normalTask;
} }
@ -704,17 +712,17 @@ public class ProTaskDetailService implements IProTaskDetailService {
ProSubTimeMember subTimeMember = null; ProSubTimeMember subTimeMember = null;
ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(subTimeId); ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(subTimeId);
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(subTime.getTaskDetailId()); ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(subTime.getTaskDetailId());
if(taskDetail.getFinishNeedAll()==0){ if (taskDetail.getFinishNeedAll() == 0) {
ProSubTimeMemberExample subTimeMemberExample = new ProSubTimeMemberExample(); ProSubTimeMemberExample subTimeMemberExample = new ProSubTimeMemberExample();
subTimeMemberExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId).andComplatedStatusEqualTo(2); subTimeMemberExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId).andComplatedStatusEqualTo(2);
subTimeMemberExample.setOrderByClause("real_finish_time DESC"); subTimeMemberExample.setOrderByClause("real_finish_time DESC");
List<ProSubTimeMember> subTimeMemberList = proSubTimeMemberDao.selectByExample(subTimeMemberExample); List<ProSubTimeMember> subTimeMemberList = proSubTimeMemberDao.selectByExample(subTimeMemberExample);
if(CollectionUtil.isNotEmpty(subTimeMemberList)){ if (CollectionUtil.isNotEmpty(subTimeMemberList)) {
subTimeMember = subTimeMemberList.get(0); subTimeMember = subTimeMemberList.get(0);
} }
}else { } else {
//查找此用户在任务下的成员 //查找此用户在任务下的成员
ProMember porMember = proMemberService.selectByUserId(userId,taskDetail.getProjectId()); ProMember porMember = proMemberService.selectByUserId(userId, taskDetail.getProjectId());
//该用户是否是任务的负责人 //该用户是否是任务的负责人
ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole()); ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole());
Boolean isBelongRole = proMemberService.userIsBelongRole(userId, role.getId()); Boolean isBelongRole = proMemberService.userIsBelongRole(userId, role.getId());
@ -726,7 +734,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (CollectionUtil.isNotEmpty(subTimeMemberList)) { if (CollectionUtil.isNotEmpty(subTimeMemberList)) {
subTimeMember = subTimeMemberList.get(0); subTimeMember = subTimeMemberList.get(0);
} }
}else { } else {
//查找任务负责人下的所有成员 //查找任务负责人下的所有成员
List<ProMember> memberList = proMemberService.selectByRole(taskDetail.getExecutorRole()); List<ProMember> memberList = proMemberService.selectByRole(taskDetail.getExecutorRole());
if (CollectionUtil.isNotEmpty(memberList)) { if (CollectionUtil.isNotEmpty(memberList)) {
@ -750,19 +758,45 @@ public class ProTaskDetailService implements IProTaskDetailService {
//=================================================================== //===================================================================
/** /**
* 删除角色下的所有任务相关(taskDetailtaskSubTimetaskMemberplugin) * 删除任务和所有相关信息
* @param roleId
*/ */
@Override @Override
public void deleteTaskByRoleId(Long roleId) { public void deleteTask(Long currentUserId, Long taskId) {
// taskDetailDao.deleteTaskByRoleId(roleId); //检查id是详情id还是subTimeId
ProTaskDetail taskDetail = null;
ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(taskId);
if (ObjectUtil.isNotNull(subTime)) {
taskDetail = taskDetailDao.selectByPrimaryKey(subTime.getTaskDetailId());
} else {
taskDetail = taskDetailDao.selectByPrimaryKey(taskId);
}
//本用户在项目中的角色
List<ProRole> proRoles = proRoleService.getProRoleByProjectIdAndUserId(taskDetail.getProjectId(), currentUserId);
//用户在项目中的最高权限
int power = proRoleService.selectPowerByRoleName(proRoles);
if (power > 1) {
if (ObjectUtil.isNotNull(taskDetail)) {
deleteTaskByTaskId(taskDetail.getId());
}
} else {
throw new BaseException(CodeEnum.NOT_POWER);
}
} }
/** @Override
* 删除任务和所有相关信息 public void deleteTaskByTaskId(Long taskId) {
*/ //1、删除交付物相关信息
private void deleteTaskById(Long taskId){
//删除交付物
taskDeliverService.deleteDeliverByTaskId(taskId); taskDeliverService.deleteDeliverByTaskId(taskId);
//2、删除插件
ProTaskPluginExample pluginExample = new ProTaskPluginExample();
pluginExample.createCriteria().andTaskDetailIdEqualTo(taskId);
taskPluginDao.deleteByExample(pluginExample);
//3、删除任务与成员关联表
ProTaskMemberExample taskMemberExample = new ProTaskMemberExample();
taskMemberExample.createCriteria().andTaskDetailIdEqualTo(taskId);
taskMemberDao.deleteByExample(taskMemberExample);
//4、删除任务、子任务和任务完成表
taskDetailDao.selectTaskByDetailId(taskId);
} }
} }

33
tall/src/main/java/com/ccsens/tall/service/ProjectService.java

@ -15,6 +15,7 @@ import com.ccsens.util.cron.CronConstant;
import com.ccsens.util.cron.NatureToDate; import com.ccsens.util.cron.NatureToDate;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -23,8 +24,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ProjectService implements IProjectService { public class ProjectService implements IProjectService {
@Autowired @Autowired
private SysProjectDao sysProjectDao; private SysProjectDao sysProjectDao;
@ -356,7 +358,6 @@ public class ProjectService implements IProjectService {
return sysProjectDao.getProjectByKey(currentUserId,key); return sysProjectDao.getProjectByKey(currentUserId,key);
} }
//=========================================================================== //===========================================================================
/** /**
* 删除项目 * 删除项目
@ -372,16 +373,26 @@ public class ProjectService implements IProjectService {
SysProject project = sysProjectDao.selectByPrimaryKey(projectId); SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
project.setRecStatus((byte) 1); project.setRecStatus((byte) 1);
sysProjectDao.updateByPrimaryKeySelective(project); sysProjectDao.updateByPrimaryKeySelective(project);
//彻底删除项目
}else { }else {
throw new BaseException(CodeEnum.NOT_POWER); throw new BaseException(CodeEnum.NOT_POWER);
} }
} }
/**
* 删除项目
*/
private void deleteProjectById(Long projectId){
}
/** /**
* 复制项目 * 复制项目
*/ */
@Override @Override
public void copyProject(Long userId ,Long projectId) { public ProjectVo.ProjectInfo copyProject(Long userId ,Long projectId) {
ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo();
SysProject oldProject = sysProjectDao.selectByPrimaryKey(projectId); SysProject oldProject = sysProjectDao.selectByPrimaryKey(projectId);
SysProject newProject = new SysProject(); SysProject newProject = new SysProject();
if(ObjectUtil.isNotNull(oldProject)){ if(ObjectUtil.isNotNull(oldProject)){
@ -400,6 +411,18 @@ public class ProjectService implements IProjectService {
}else { }else {
throw new BaseException(CodeEnum.NOT_PROJECT); throw new BaseException(CodeEnum.NOT_PROJECT);
} }
//返回参数
projectInfo.setId(newProject.getId());
projectInfo.setName(newProject.getName());
projectInfo.setAddress(newProject.getAddress());
projectInfo.setBeginTime(newProject.getBeginTime());
projectInfo.setEndTime(newProject.getEndTime());
projectInfo.setTotalDuration(newProject.getEndTime() - newProject.getBeginTime());
if (ObjectUtil.isNotNull(projectInfo)) {
projectInfo.setCreator(true);
}
return projectInfo;
} }
/** /**
* 复制角色 * 复制角色
@ -521,6 +544,10 @@ public class ProjectService implements IProjectService {
} }
} }
} }
/**
* 根据时间分解任务
*/
private void taskToSubTime(ProTaskDetail taskDetail){ private void taskToSubTime(ProTaskDetail taskDetail){
//cycle为空,只加一条数据 //cycle为空,只加一条数据
if(ObjectUtil.isNotNull(taskDetail)) { if(ObjectUtil.isNotNull(taskDetail)) {

5
tall/src/main/java/com/ccsens/tall/service/SysPluginService.java

@ -2,12 +2,17 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.vo.PluginVo; import com.ccsens.tall.bean.vo.PluginVo;
import com.ccsens.tall.persist.dao.SysPluginDao; import com.ccsens.tall.persist.dao.SysPluginDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class SysPluginService implements ISysPluginService{ public class SysPluginService implements ISysPluginService{
@Autowired @Autowired
private SysPluginDao sysPluginDao; private SysPluginDao sysPluginDao;

56
tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java

@ -16,6 +16,7 @@ import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.*; import com.ccsens.tall.persist.dao.*;
import com.ccsens.util.*; import com.ccsens.util.*;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -24,8 +25,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.File; import java.io.File;
import java.util.*; import java.util.*;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class TaskDeliverService implements ITaskDeliverService { public class TaskDeliverService implements ITaskDeliverService {
@Autowired @Autowired
private TaskDeliverDao taskDeliverDao; private TaskDeliverDao taskDeliverDao;
@ -265,9 +267,6 @@ public class TaskDeliverService implements ITaskDeliverService {
/** /**
* 判断id是taskId还是subTimeId * 判断id是taskId还是subTimeId
*
* @param id
* @return subTimeId
*/ */
private Long isTaskOrSubTime(Long id) { private Long isTaskOrSubTime(Long id) {
Long subTimeId = null; Long subTimeId = null;
@ -292,11 +291,6 @@ public class TaskDeliverService implements ITaskDeliverService {
/** /**
* 获取任务下所有交付物的信息 * 获取任务下所有交付物的信息
*
* @param currentUserId
* @param
* @return
* @throws Exception
*/ */
@Override @Override
public List<DeliverVo.DeliverInfo> selectTaskDeliver(Long currentUserId, Long taskId) throws Exception { public List<DeliverVo.DeliverInfo> selectTaskDeliver(Long currentUserId, Long taskId) throws Exception {
@ -383,10 +377,6 @@ public class TaskDeliverService implements ITaskDeliverService {
/** /**
* 查看单个交付物的信息 * 查看单个交付物的信息
*
* @param currentUserId
* @param deliverId
* @return
*/ */
@Override @Override
public DeliverVo.DeliverInfo selectDeliverInfo(Long currentUserId, Long deliverId, Long taskId) throws Exception { public DeliverVo.DeliverInfo selectDeliverInfo(Long currentUserId, Long deliverId, Long taskId) throws Exception {
@ -595,15 +585,6 @@ public class TaskDeliverService implements ITaskDeliverService {
/** /**
* 交付物清单 * 交付物清单
*
* @param currentUserId
* @param page
* @param pageSize
* @param key
* @param start
* @param end
* @return
* @throws Exception
*/ */
@Override @Override
public DeliverVo.DeliverFileList selectDeliverList(Long currentUserId, Integer page, Integer pageSize, String public DeliverVo.DeliverFileList selectDeliverList(Long currentUserId, Integer page, Integer pageSize, String
@ -691,10 +672,6 @@ public class TaskDeliverService implements ITaskDeliverService {
/** /**
* 删除交付物修改状态变成历史项目 * 删除交付物修改状态变成历史项目
*
* @param currentUserId
* @param deliverId
* @param taskId
*/ */
@Override @Override
public void deleteDeliver(Long currentUserId, Long deliverId, Long taskId) throws Exception { public void deleteDeliver(Long currentUserId, Long deliverId, Long taskId) throws Exception {
@ -773,9 +750,34 @@ public class TaskDeliverService implements ITaskDeliverService {
} }
//========================================================= //=========================================================
/**
* 删除任务下的交付物彻底删除
* @param taskId
*/
@Override @Override
public void deleteDeliverByTaskId(Long taskId) { public void deleteDeliverByTaskId(Long taskId) {
//查找已上传的文件 //查询交付物
ProTaskDeliverExample deliverExample = new ProTaskDeliverExample();
deliverExample.createCriteria().andTaskDetailIdEqualTo(taskId);
List<ProTaskDeliver> deliverList = taskDeliverDao.selectByExample(deliverExample);
if(CollectionUtil.isNotEmpty(deliverList)){
for(ProTaskDeliver deliver : deliverList){
ProTaskDeliverPostLogExample postLogExample = new ProTaskDeliverPostLogExample();
postLogExample.createCriteria().andDeliverIdEqualTo(deliver.getId());
List<ProTaskDeliverPostLog> postLogList = deliverPostLogDao.selectByExample(postLogExample);
if(CollectionUtil.isNotEmpty(postLogList)){
for(ProTaskDeliverPostLog deliverPostLog : postLogList){
//删除文件
SysCommitedFile file = commitedFileDao.selectByPrimaryKey(deliverPostLog.getFileId());
deleteFile(file.getPath());
commitedFileDao.deleteByPrimaryKey(deliverPostLog.getId());
//删除交付物和文件、检查人的关联信息
taskDeliverDao.deletePostLogCheckerByPostLogId(deliverPostLog.getId());
}
}
}
}
} }

4
tall/src/main/java/com/ccsens/tall/service/TaskMemberService.java

@ -2,13 +2,15 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.po.ProTaskMember; import com.ccsens.tall.bean.po.ProTaskMember;
import com.ccsens.tall.persist.dao.TaskMemberDao; import com.ccsens.tall.persist.dao.TaskMemberDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class TaskMemberService implements ITaskMemberService{ public class TaskMemberService implements ITaskMemberService{
@Autowired @Autowired
private TaskMemberDao taskMemberDao; private TaskMemberDao taskMemberDao;

4
tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java

@ -6,6 +6,7 @@ import com.ccsens.tall.bean.vo.TaskVo;
import com.ccsens.tall.persist.dao.SysPluginDao; import com.ccsens.tall.persist.dao.SysPluginDao;
import com.ccsens.tall.persist.dao.TaskDetailDao; import com.ccsens.tall.persist.dao.TaskDetailDao;
import com.ccsens.tall.persist.dao.TaskPluginDao; import com.ccsens.tall.persist.dao.TaskPluginDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -14,8 +15,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class TaskPluginService implements ITaskPluginService{ public class TaskPluginService implements ITaskPluginService{
@Autowired @Autowired
private TaskPluginDao taskPluginDao; private TaskPluginDao taskPluginDao;

4
tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java

@ -15,6 +15,7 @@ import com.ccsens.util.WebConstant;
import com.ccsens.util.cron.CronConstant; import com.ccsens.util.cron.CronConstant;
import com.ccsens.util.cron.NatureToDate; import com.ccsens.util.cron.NatureToDate;
import com.ccsens.util.exception.BaseException; import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -23,8 +24,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class TaskSubTimeService implements ITaskSubTimeService { public class TaskSubTimeService implements ITaskSubTimeService {
@Autowired @Autowired
private TaskSubTimeDao taskSubTimeDao; private TaskSubTimeDao taskSubTimeDao;

4
tall/src/main/java/com/ccsens/tall/service/UserAttentionService.java

@ -7,6 +7,7 @@ import com.ccsens.tall.bean.po.UserAttention;
import com.ccsens.tall.bean.po.UserAttentionExample; import com.ccsens.tall.bean.po.UserAttentionExample;
import com.ccsens.tall.persist.dao.SysProjectDao; import com.ccsens.tall.persist.dao.SysProjectDao;
import com.ccsens.tall.persist.dao.UserAttentionDao; import com.ccsens.tall.persist.dao.UserAttentionDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -15,8 +16,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class UserAttentionService implements IUserAttentionService{ public class UserAttentionService implements IUserAttentionService{
@Autowired @Autowired
private UserAttentionDao attentionDao; private UserAttentionDao attentionDao;

2
tall/src/main/java/com/ccsens/tall/service/UserService.java

@ -26,7 +26,7 @@ import java.util.Map;
@Slf4j @Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED) @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class UserService implements IUserService { public class UserService implements IUserService {
@Autowired @Autowired
private SysUserDao userDao; private SysUserDao userDao;

5
tall/src/main/java/com/ccsens/tall/service/proLogService.java

@ -3,10 +3,15 @@ package com.ccsens.tall.service;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import com.ccsens.tall.bean.po.ProLog; import com.ccsens.tall.bean.po.ProLog;
import com.ccsens.tall.persist.dao.ProLogDao; import com.ccsens.tall.persist.dao.ProLogDao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class proLogService implements IProLogService{ public class proLogService implements IProLogService{
@Autowired @Autowired
private ProLogDao proLogDao; private ProLogDao proLogDao;

31
tall/src/main/java/com/ccsens/tall/web/DebugController.java

@ -0,0 +1,31 @@
package com.ccsens.tall.web;
import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.util.JsonResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@Api(tags = "DEBUG" , description = "DebugController | ")
@RestController
@RequestMapping("/debug")
public class DebugController {
@ApiOperation(value = "/测试",notes = "")
@ApiImplicitParams({
})
@RequestMapping(value="",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
public JsonResponse getSmsCode(HttpServletRequest request) throws Exception {
return JsonResponse.newInstance().ok("测试");
}
}

13
tall/src/main/java/com/ccsens/tall/web/ProjectController.java

@ -196,10 +196,19 @@ public class ProjectController {
@ApiImplicitParam(name = "projectId", value = "项目id", required = true, paramType = "query") @ApiImplicitParam(name = "projectId", value = "项目id", required = true, paramType = "query")
}) })
@RequestMapping(value = "copy", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "copy", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse addProject(HttpServletRequest request,@RequestParam(required = false) Long projectId) throws Exception { public JsonResponse<ProjectVo.ProjectInfo> addProject(HttpServletRequest request,@RequestParam(required = false) Long projectId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
ProjectVo.ProjectInfo projectInfo = projectService.copyProject(currentUserId,projectId);
return JsonResponse.newInstance().ok(projectInfo);
}
projectService.copyProject(currentUserId,projectId); @ApiOperation(value = "修改项目信息", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectId", value = "项目id", required = true, paramType = "query")
})
@RequestMapping(value = "update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ProjectVo.ProjectInfo> updateProject(HttpServletRequest request,@RequestParam(required = false) Long projectId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
return JsonResponse.newInstance().ok(); return JsonResponse.newInstance().ok();
} }
} }

30
tall/src/main/java/com/ccsens/tall/web/TaskController.java

@ -94,6 +94,19 @@ public class TaskController {
return JsonResponse.newInstance().ok(taskCheckList); return JsonResponse.newInstance().ok(taskCheckList);
} }
@ApiOperation(value = "任务模糊搜索", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "projectId", value = "项目id 可以为null", required = true, paramType = "query"),
@ApiImplicitParam(name = "key", value = "关键词", required = true, paramType = "query")
})
@RequestMapping(value = "key", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<TaskVo.TaskDetailByKey>> getProjectByKey(HttpServletRequest request, @RequestParam(required = false)Long projectId, String key) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
List<TaskVo.TaskDetailByKey> taskDetailByKeyList = taskDetailService.getTaskDetailByKey(currentUserId,projectId,key);
return JsonResponse.newInstance().ok(taskDetailByKeyList);
}
//============================================================== //==============================================================
@ApiOperation(value = "添加清单(任务)",notes = "") @ApiOperation(value = "添加清单(任务)",notes = "")
@ -108,17 +121,16 @@ public class TaskController {
return JsonResponse.newInstance().ok(normalTask); return JsonResponse.newInstance().ok(normalTask);
} }
@ApiOperation(value = "任务模糊搜索", notes = "") @ApiOperation(value = "删除任务",notes = "")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "projectId", value = "项目id 可以为null", required = true, paramType = "query"), @ApiImplicitParam(name = "taskId", value = "任务id", required = true, paramType = "query")
@ApiImplicitParam(name = "key", value = "关键词", required = true, paramType = "query")
}) })
@RequestMapping(value = "key", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<TaskVo.TaskDetailByKey>> getProjectByKey(HttpServletRequest request, @RequestParam(required = false)Long projectId, String key) throws Exception { public JsonResponse<TaskVo.NormalTask> deleteTask(HttpServletRequest request,
@RequestParam(required = false)Long taskId) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
List<TaskVo.TaskDetailByKey> taskDetailByKeyList = taskDetailService.getTaskDetailByKey(currentUserId,projectId,key); taskDetailService.deleteTask(currentUserId,taskId);
return JsonResponse.newInstance().ok(taskDetailByKeyList); return JsonResponse.newInstance().ok();
} }
} }

45
tall/src/main/java/com/ccsens/tall/web/UserController.java

@ -9,12 +9,12 @@ import com.ccsens.tall.bean.vo.UserVo;
import com.ccsens.tall.exception.UserLoginException; import com.ccsens.tall.exception.UserLoginException;
import com.ccsens.tall.service.IUserService; import com.ccsens.tall.service.IUserService;
import com.ccsens.util.JsonResponse; import com.ccsens.util.JsonResponse;
import com.ccsens.util.JwtUtil;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.swagger.annotations.Api; import io.jsonwebtoken.ExpiredJwtException;
import io.swagger.annotations.ApiImplicitParams; import io.jsonwebtoken.SignatureException;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.*;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -30,12 +30,7 @@ import java.util.Map;
public class UserController { public class UserController {
@Autowired @Autowired
private IUserService userService; private IUserService userService;
// @Autowired
// private IProjectService projectService;
// @Autowired
// private ITaskService taskService;
// @Autowired
// private IDeliverService deliverService;
@ApiOperation(value = "/用户登录", notes = "") @ApiOperation(value = "/用户登录", notes = "")
@ApiImplicitParams({ @ApiImplicitParams({
@ -101,9 +96,6 @@ public class UserController {
} else { } else {
return JsonResponse.newInstance().fail("登陆信息不正确."); return JsonResponse.newInstance().fail("登陆信息不正确.");
} }
// UserVo.TokenBean tokenBean = userService.userManageSignin(dto);
// return JsonResponse.newInstance().ok(tokenBean);
} }
@ApiOperation(value = "/发送验证码", notes = "") @ApiOperation(value = "/发送验证码", notes = "")
@ -197,6 +189,33 @@ public class UserController {
return JsonResponse.newInstance().ok(); return JsonResponse.newInstance().ok();
} }
@ApiOperation(value = "根据token获取userId",notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name="token",value = "token",required = true,paramType = "query")
})
@RequestMapping(value = "token",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
public JsonResponse<UserVo.TokenToUserId> getNodeMessage(HttpServletRequest request, @RequestParam(required = true) String token) throws Exception {
//验证token是否有效
UserVo.TokenToUserId tokenToUserId = new UserVo.TokenToUserId();
Claims claims = null;
boolean flag = false;
if (token != null) {
try {
claims = JwtUtil.parseJWT(token, WebConstant.JWT_ACCESS_TOKEN_SECERT);
flag = true;
}catch(SignatureException e){
flag = false;
}catch(ExpiredJwtException e){
flag = false;
}catch(Exception e){
flag = false;
}
}
if(flag){
tokenToUserId.setId(Long.valueOf(claims.getSubject()));
}
return JsonResponse.newInstance().ok(tokenToUserId);
}
} }

13
tall/src/main/resources/mapper_dao/DeliverDao.xml

@ -154,4 +154,17 @@
deliver_id = #{deliverId} deliver_id = #{deliverId}
group by checker_id group by checker_id
</select> </select>
<!--===============================================-->
<delete id="deletePostLogCheckerByPostLogId" parameterType="java.util.Map">
DELETE
p,
pc
FROM
t_pro_task_deliver_post_log p join t_pro_task_deliver_post_log_checker pc
ON p.id = pc.deliver_post_log_id
WHERE
p.id = #{postLogId}
</delete>
</mapper> </mapper>

13
tall/src/main/resources/mapper_dao/TaskDetailDao.xml

@ -249,5 +249,18 @@
ORDER BY s.begin_time DESC ORDER BY s.begin_time DESC
limit 0,1 limit 0,1
</select> </select>
<!--==================================-->
<delete id="selectTaskByDetailId" parameterType="java.util.Map">
DELETE
d,
s,
sm
FROM
t_pro_task_detail d LEFT JOIN
t_pro_task_sub_time s ON s.task_detail_id = d.id LEFT JOIN
t_pro_sub_time_member sm ON sm.task_sub_time_id = s.id
WHERE
d.id = #{detailId}
</delete>
</mapper> </mapper>

21
util/src/main/java/com/ccsens/util/cron/NatureToDate.java

@ -21,14 +21,14 @@ public class NatureToDate {
Date start = sdf.parse("2019-11-1 8:00:00"); Date start = sdf.parse("2019-11-1 8:00:00");
Date end = sdf.parse("2019-11-30 8:00:00"); Date end = sdf.parse("2019-11-30 8:00:00");
System.out.println("每周一:" + generateDates("每周一", start, end)); // System.out.println("每周一:" + generateDates("每周一", start, end));
System.out.println("每周二:" + generateDates("每周二", start, end)); // System.out.println("每周二:" + generateDates("每周二", start, end));
System.out.println("每周三:" + generateDates("每周三", start, end)); // System.out.println("每周三:" + generateDates("每周三", start, end));
System.out.println("每周四:" + generateDates("每周四", start, end)); // System.out.println("每周四:" + generateDates("每周四", start, end));
System.out.println("每周五:" + generateDates("每周五", start, end)); // System.out.println("每周五:" + generateDates("每周五", start, end));
System.out.println("每周六:" + generateDates("每周六", start, end)); // System.out.println("每周六:" + generateDates("每周六", start, end));
System.out.println("每周天:" + generateDates("每周天", start, end)); // System.out.println("每周天:" + generateDates("每周天", start, end));
System.out.println("每周日:" + generateDates("每周日", start, end)); // System.out.println("每周日:" + generateDates("每周日", start, end));
// System.out.println("每月15号:" + generateDates("每月15号", start, end)); // System.out.println("每月15号:" + generateDates("每月15号", start, end));
// System.out.println("每月31号:" + generateDates("每月31号", start, end)); // System.out.println("每月31号:" + generateDates("每月31号", start, end));
// System.out.println("每天:" + generateDates("每天", start, end)); // System.out.println("每天:" + generateDates("每天", start, end));
@ -40,7 +40,7 @@ public class NatureToDate {
// System.out.println("入职第一月:" + generateDates("入职第一月", start, end)); // System.out.println("入职第一月:" + generateDates("入职第一月", start, end));
// System.out.println("入职第一年:" + generateDates("入职第一年", start, end)); // System.out.println("入职第一年:" + generateDates("入职第一年", start, end));
// System.out.println("第八天:" + generateDates("第八天", start, end)); // System.out.println("第八天:" + generateDates("第八天", start, end));
System.out.println("每周四下午三点:" + generateDates("每周四下午三点", start, end)); System.out.println("每月15号下午5点:" + generateDates("每月15号下午5点", start, end));
} }
@ -297,7 +297,8 @@ public class NatureToDate {
} else { } else {
String hourStr = nature.substring(start+2, end); String hourStr = nature.substring(start+2, end);
int hour = StringUtil.isMatch(hourStr, StringUtil.NUMBER) ? Integer.parseInt(hourStr) + 12 : NatureLanguage.count(hourStr) + 12; int hour = StringUtil.isMatch(hourStr, StringUtil.NUMBER) ? Integer.parseInt(hourStr) + 12 : NatureLanguage.count(hourStr) + 12;
nature = nature.replace(hourStr, hour + ""); // nature = nature.replace(hourStr, hour + "");
nature = nature.substring(0, start+2) + nature.substring(start+2, end).replace(hourStr, hour + "") + nature.substring(end);
} }
} }
return nature; return nature;

Loading…
Cancel
Save