diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index e0dde668..100505e5 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,586 +2,445 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ taskMemberExample
+ selectSecondRolesByProjectId
+ selectRolesByProjectIdAndUserId
+
+
+
+
+
+
+
+
+
+
+
+ true
+ DEFINITION_ORDER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
-
+
+
+
+
-
+
+
+
+
-
-
-
-
-
@@ -595,19 +454,135 @@
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -620,35 +595,570 @@
+
+
+
-
- 1575453955595
+
+ 1575429210394
- 1575453955595
-
-
+ 1575429210394
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+ file://$PROJECT_DIR$/tall/src/main/java/com/ccsens/tall/service/ProjectService.java
+ 134
+
+
+
+
+ file://$PROJECT_DIR$/tall/src/main/java/com/ccsens/tall/service/ProjectService.java
+ 552
+
+
+
+
+ file://$PROJECT_DIR$/util/src/main/java/com/ccsens/util/cron/NatureToDate.java
+ 61
+
+
+
+
+ file://$PROJECT_DIR$/tall/src/main/java/com/ccsens/tall/web/TaskController.java
+ 131
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
index e35d85de..e70b40a8 100644
--- a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
+++ b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
@@ -89,6 +89,10 @@ public class TaskVo {
private Long endTime;
@ApiModelProperty("时长")
private Long duration;
+ @ApiModelProperty("显示的开始时间")
+ private String showBeginTime;
+ @ApiModelProperty("显示的结束时间")
+ private String showEndTime;
@ApiModelProperty("循环周期")
private String cycle;
@ApiModelProperty("跳转模式 -1手动,0自动,1延迟")
diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/UserVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/UserVo.java
index b9c5a503..d8212a48 100644
--- a/tall/src/main/java/com/ccsens/tall/bean/vo/UserVo.java
+++ b/tall/src/main/java/com/ccsens/tall/bean/vo/UserVo.java
@@ -56,4 +56,13 @@ public class UserVo {
@ApiModelProperty("密码")
private String password;
}
+
+ @Getter
+ @Setter
+ @ApiModel
+ public static class TokenToUserId{
+ @ApiModelProperty("用户id")
+ private Long id;
+ }
+
}
diff --git a/tall/src/main/java/com/ccsens/tall/config/SpringConfig.java b/tall/src/main/java/com/ccsens/tall/config/SpringConfig.java
index e961e6b4..b52fd039 100644
--- a/tall/src/main/java/com/ccsens/tall/config/SpringConfig.java
+++ b/tall/src/main/java/com/ccsens/tall/config/SpringConfig.java
@@ -128,6 +128,7 @@ public class SpringConfig implements WebMvcConfigurer {
.excludePathPatterns("/users/signup")
.excludePathPatterns("/users/password")
.excludePathPatterns("/users/account")
+ .excludePathPatterns("/users/token")
.addPathPatterns("/plugins/**")
.addPathPatterns("/delivers/**")
.addPathPatterns("/tasks/**")
diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java
index 10169c74..908e9c76 100644
--- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java
+++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java
@@ -17,4 +17,6 @@ public interface TaskDeliverDao extends ProTaskDeliverMapper{
List selectBySubTimeId(@Param("subTimeId") Long subTimeId);
List selectDeliverByUserId(@Param("userId") Long userId);
+
+ void deletePostLogCheckerByPostLogId(@Param("postLogId") Long postLogId);
}
diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java
index ab8d64d9..b34d193a 100644
--- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java
+++ b/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);
-// void deleteTaskByRoleId(@Param("parentId")Long roleId);
+ void selectTaskByDetailId(@Param("detailId") Long detailId);
+
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/ExcelService.java b/tall/src/main/java/com/ccsens/tall/service/ExcelService.java
index 737db465..d8d9523e 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ExcelService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/ExcelService.java
@@ -28,7 +28,7 @@ import java.util.*;
@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ExcelService implements IExcelService {
@Autowired
private SysPluginDao sysPluginDao;
@@ -214,6 +214,24 @@ public class ExcelService implements IExcelService {
proRoleService.saveProRole(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);
diff --git a/tall/src/main/java/com/ccsens/tall/service/ExcludeRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ExcludeRoleService.java
index cfda94b1..6d3f918b 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ExcludeRoleService.java
+++ b/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.persist.dao.ProRoleExecludeDao;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ExcludeRoleService implements IExcludeRoleService{
@Autowired
private ProRoleExecludeDao proRoleExecludeDao;
diff --git a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java
index ac146ebd..ac300a81 100644
--- a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java
@@ -22,5 +22,5 @@ public interface IProRoleService {
ProRole getAllMember(Long projectId);
- void deleteRoleByProjectId(Long projectId);
+ void deleteRoleByProjectId(Long userId,Long projectId);
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java
index 26e64cdc..7082e504 100644
--- a/tall/src/main/java/com/ccsens/tall/service/IProTaskDetailService.java
+++ b/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);
- void deleteTaskByRoleId(Long roleId);
+ void deleteTask(Long currentUserId,Long taskId);
+
+ void deleteTaskByTaskId(Long taskId);
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/IProjectService.java b/tall/src/main/java/com/ccsens/tall/service/IProjectService.java
index 6112d265..54b44ed0 100644
--- a/tall/src/main/java/com/ccsens/tall/service/IProjectService.java
+++ b/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 copyProject(Long userId, Long projectId);
+ ProjectVo.ProjectInfo copyProject(Long userId, Long projectId);
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/MessageService.java b/tall/src/main/java/com/ccsens/tall/service/MessageService.java
index 1b1d57c1..0129e9a7 100644
--- a/tall/src/main/java/com/ccsens/tall/service/MessageService.java
+++ b/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.util.JacksonUtil;
import com.ccsens.util.config.RabbitMQConfig;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import static io.lettuce.core.pubsub.PubSubOutput.Type.message;
+@Slf4j
@Service
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class MessageService implements IMessageService{
@Autowired
private AmqpTemplate rabbitTemplate;
diff --git a/tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java
index 86c66d29..69df6bb5 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ProMemberRoleService.java
+++ b/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.persist.dao.ProMemberRoleDao;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ProMemberRoleService implements IProMemberRoleService{
@Autowired
private ProMemberRoleDao proMemberRoleDao;
diff --git a/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java b/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java
index 43d77ff0..78064e4b 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ProMemberService.java
+++ b/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.ProRoleDao;
import com.ccsens.util.WebConstant;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -17,8 +18,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ProMemberService implements IProMemberService {
@Autowired
private ProMemberDao proMemberDao;
@@ -134,20 +136,30 @@ public class ProMemberService implements IProMemberService {
*/
@Override
public List selectRolesByUserIdAndProjectId(Long userId, Long projectId) throws Exception {
- List roleList = new ArrayList<>();
- ProMemberExample memberExample = new ProMemberExample();
- memberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId);
- List memberList = proMemberDao.selectByExample(memberExample);
- if (CollectionUtil.isNotEmpty(memberList)) {
- ProMember member = memberList.get(0);
- ProMemberRoleExample memberRoleExample = new ProMemberRoleExample();
- memberRoleExample.createCriteria().andMemberIdEqualTo(member.getId());
- List memberRoleList = proMemberRoleDao.selectByExample(memberRoleExample);
- if(CollectionUtil.isNotEmpty(memberRoleList)){
- for(ProMemberRole memberRole:memberRoleList){
- ProRole role = proRoleDao.selectByPrimaryKey(memberRole.getRoleId());
- roleList.add(role);
- }
+// List roleList = new ArrayList<>();
+// ProMemberExample memberExample = new ProMemberExample();
+// memberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId);
+// List memberList = proMemberDao.selectByExample(memberExample);
+// if (CollectionUtil.isNotEmpty(memberList)) {
+// ProMember member = memberList.get(0);
+// ProMemberRoleExample memberRoleExample = new ProMemberRoleExample();
+// memberRoleExample.createCriteria().andMemberIdEqualTo(member.getId());
+// List memberRoleList = proMemberRoleDao.selectByExample(memberRoleExample);
+// if(CollectionUtil.isNotEmpty(memberRoleList)){
+// for(ProMemberRole memberRole:memberRoleList){
+// ProRole role = proRoleDao.selectByPrimaryKey(memberRole.getRoleId());
+// roleList.add(role);
+// }
+// }
+// }
+ List 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 proRoleList = proRoleDao.selectByExample(roleExample);
+ if(CollectionUtil.isNotEmpty(proRoleList)){
+ roleList.addAll(proRoleList);
}
}
return roleList;
diff --git a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
index 60ed5561..28f3af38 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
+++ b/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.ProRoleDao;
import com.ccsens.util.WebConstant;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -18,17 +19,16 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.List;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ProRoleService implements IProRoleService {
@Autowired
private ProRoleDao proRoleDao;
@Autowired
private ProMemberDao proMemberDao;
@Autowired
- private ProMemberRoleDao proMemberRoleDao;
- @Autowired
- private IProTaskDetailService taskDetailService;
+ private IProMemberService proMemberService;
@Autowired
private IUserService userService;
@@ -56,7 +56,8 @@ public class ProRoleService implements IProRoleService {
//是否mine
if (CollectionUtil.isNotEmpty(memberRoleList)) {
- List roleList = proRoleDao.selectRolesByProjectIdAndUserId(projectId, currentUserId);
+ //获取用户在项目中的角色
+ List roleList = proMemberService.selectRolesByUserIdAndProjectId(projectId, currentUserId);
for (ProjectVo.RoleInfo memberRole : memberRoleList) {
if (ObjectUtil.isNotNull(roleList)) {
for(ProRole role:roleList){
@@ -97,22 +98,6 @@ public class ProRoleService implements IProRoleService {
}
}
-// //是否mine
-// if (CollectionUtil.isNotEmpty(memberRoleList)) {
-// List 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)) {
for (ProjectVo.RoleInfo memberRole : memberRoleList) {
@@ -213,20 +198,14 @@ public class ProRoleService implements IProRoleService {
//=======================================================================
/**
- * 删除所有角色
- * @param projectId
+ * 删除角色
*/
@Override
- public void deleteRoleByProjectId(Long projectId) {
+ public void deleteRoleByProjectId(Long userId,Long roleId) {
ProRoleExample roleExample = new ProRoleExample();
- roleExample.createCriteria().andProjectIdEqualTo(projectId);
+ roleExample.createCriteria().andProjectIdEqualTo(roleId);
List roleList = proRoleDao.selectByExample(roleExample);
- if(CollectionUtil.isNotEmpty(roleList)){
- //删除任务
- for(ProRole role:roleList){
- taskDetailService.deleteTaskByRoleId(role.getId());
- }
- }
+
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
index 54269222..8e7379c4 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
+++ b/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.WebConstant;
import com.ccsens.util.exception.BaseException;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -20,8 +21,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ProTaskDetailService implements IProTaskDetailService {
@Autowired
private IProRoleService proRoleService;
@@ -47,6 +49,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
private ProMemberDao proMemberDao;
@Autowired
private SysProjectDao sysProjectDao;
+ @Autowired
+ private TaskPluginDao taskPluginDao;
@Override
public void saveTaskDetail(ProTaskDetail taskDetail) {
@@ -56,7 +60,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
@Override
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);
- if(ObjectUtil.isNull(sysProject)){
+ if (ObjectUtil.isNull(sysProject)) {
throw new BaseException(CodeEnum.NOT_PROJECT);
}
startTime = startTime == null ? sysProject.getBeginTime() : startTime;
@@ -64,22 +68,22 @@ public class ProTaskDetailService implements IProTaskDetailService {
Object obj = null;
ProRole role = proRoleDao.selectByPrimaryKey(roleId);
- if(ObjectUtil.isNull(role)){
+ if (ObjectUtil.isNull(role)) {
throw new BaseException(CodeEnum.NOT_ROLE);
}
ProRole parentRole = proRoleDao.selectByPrimaryKey(role.getParentId());
- if(ObjectUtil.isNull(parentRole)){
+ if (ObjectUtil.isNull(parentRole)) {
throw new BaseException(CodeEnum.NOT_ROLE);
}
- if(ObjectUtil.isNotNull(role)) {
+ if (ObjectUtil.isNotNull(role)) {
if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.MVP.value)) {
obj = getTaskInfoByMvp(projectId, page, pageSize);
} 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)) {
obj = getTaskInfoByProjectIdAndRoleId(currentUserId, projectId, roleId, startTime, endTime, process, page, pageSize);
}
- }else {
+ } else {
throw new BaseException(CodeEnum.NOT_ROLE);
}
return obj;
@@ -96,46 +100,46 @@ public class ProTaskDetailService implements IProTaskDetailService {
TaskVo.NormalTask normalTask = null;
//1、查找一级任务
SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
- if(endTime < project.getBeginTime() || startTime > project.getEndTime()){
+ if (endTime < project.getBeginTime() || startTime > project.getEndTime()) {
return proTaskInfo;
}
ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample();
proTaskDetailExample.createCriteria().andProjectIdEqualTo(projectId).andLevelEqualTo((byte) 1);
List firstTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample);
- if(CollectionUtil.isNotEmpty(firstTaskDetailList)){
+ if (CollectionUtil.isNotEmpty(firstTaskDetailList)) {
int sequence = 1;
- for(ProTaskDetail firstTaskDetail:firstTaskDetailList){
+ for (ProTaskDetail firstTaskDetail : firstTaskDetailList) {
normalTask = new TaskVo.NormalTask();
- BeanUtil.copyProperties(firstTaskDetail,normalTask);
+ BeanUtil.copyProperties(firstTaskDetail, normalTask);
normalTask.setDetailId(firstTaskDetail.getId());
normalTask.setId(null);
normalTask.setSequence(sequence);
//查找一级任务下的二级任务
- List secondNormalTaskList = taskDetailDao.selectNormalTaskListByPM(projectId,firstTaskDetail.getId(),startTime,endTime);
- if(CollectionUtil.isNotEmpty(secondNormalTaskList)){
- for(TaskVo.NormalTask task:secondNormalTaskList){
- ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId,task.getId());
- if(ObjectUtil.isNotNull(subTimeMember)){
+ List secondNormalTaskList = taskDetailDao.selectNormalTaskListByPM(projectId, firstTaskDetail.getId(), startTime, endTime);
+ if (CollectionUtil.isNotEmpty(secondNormalTaskList)) {
+ for (TaskVo.NormalTask task : secondNormalTaskList) {
+ ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, task.getId());
+ if (ObjectUtil.isNotNull(subTimeMember)) {
task.setRealEndTime(subTimeMember.getRealFinishTime());
task.setProcess(subTimeMember.getComplatedStatus());
}
}
- TaskUtil.Task task = TaskUtil.splitTask(secondNormalTaskList,startTime,endTime,process);
- if(CollectionUtil.isNotEmpty(task.getGlobalTask())){
- for(TaskVo.NormalTask global:task.getGlobalTask()){
+ TaskUtil.Task task = TaskUtil.splitTask(secondNormalTaskList, startTime, endTime, process);
+ if (CollectionUtil.isNotEmpty(task.getGlobalTask())) {
+ for (TaskVo.NormalTask global : task.getGlobalTask()) {
globalTask = new TaskVo.GlobalTask();
- BeanUtil.copyProperties(global,globalTask);
+ BeanUtil.copyProperties(global, globalTask);
globalTaskList.add(globalTask);
}
}
- if(CollectionUtil.isNotEmpty(task.getCommonTask())){
+ if (CollectionUtil.isNotEmpty(task.getCommonTask())) {
normalTask.setSecondTasks(new ArrayList<>());
normalTask.getSecondTasks().addAll(task.getCommonTask());
}
}
// if(CollectionUtil.isNotEmpty(normalTask.getSecondTasks())) {
- normalTaskList.add(normalTask);
- sequence++;
+ normalTaskList.add(normalTask);
+ sequence++;
// }
}
}
@@ -148,6 +152,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
proTaskInfo.setNormalTaskList(normalTaskList);
return proTaskInfo;
}
+
/**
* 查看任务 项目成员
*/
@@ -159,28 +164,28 @@ public class ProTaskDetailService implements IProTaskDetailService {
//获取“全体成员”角色
ProRole allMember = proRoleService.getAllMember(projectId);
Long allMemberId = null;
- if(ObjectUtil.isNotNull(allMember)) {
+ if (ObjectUtil.isNotNull(allMember)) {
allMemberId = allMember.getId();
}
//查找该角色的所有任务(全体成员的任务也是这个角色的任务)
- List secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId, allMemberId,startTime,endTime);
- if(CollectionUtil.isNotEmpty(secondTaskVoList)){
- for(TaskVo.NormalTask normalTask:secondTaskVoList){
- ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId,normalTask.getId());
- if(ObjectUtil.isNotNull(subTimeMember)){
+ List secondTaskVoList = taskDetailDao.selectTaskByRoleAndAllMembers(projectId, roleId, allMemberId, startTime, endTime);
+ if (CollectionUtil.isNotEmpty(secondTaskVoList)) {
+ for (TaskVo.NormalTask normalTask : secondTaskVoList) {
+ ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, normalTask.getId());
+ if (ObjectUtil.isNotNull(subTimeMember)) {
normalTask.setProcess(subTimeMember.getComplatedStatus());
normalTask.setRealEndTime(subTimeMember.getRealFinishTime());
}
}
- TaskUtil.Task task = TaskUtil.splitTask(secondTaskVoList,startTime,endTime,process);
- if(CollectionUtil.isNotEmpty(task.getGlobalTask())){
- for(TaskVo.NormalTask global:task.getGlobalTask()){
+ TaskUtil.Task task = TaskUtil.splitTask(secondTaskVoList, startTime, endTime, process);
+ if (CollectionUtil.isNotEmpty(task.getGlobalTask())) {
+ for (TaskVo.NormalTask global : task.getGlobalTask()) {
globalTask = new TaskVo.GlobalTask();
- BeanUtil.copyProperties(global,globalTask);
+ BeanUtil.copyProperties(global, globalTask);
globalTaskList.add(globalTask);
}
}
- if(CollectionUtil.isNotEmpty(task.getCommonTask())){
+ if (CollectionUtil.isNotEmpty(task.getCommonTask())) {
normalTaskList = sortTaskTime(task.getCommonTask());
}
}
@@ -223,6 +228,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
proTaskInfo.setNormalTaskList(theNormalTaskList);
return proTaskInfo;
}
+
private List sortTaskTime(List commonTask) {
List normalTaskList = new ArrayList<>();
List secondTaskVoList = null;
@@ -251,8 +257,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
Long endTime = timeList.get(i + 1);
for (TaskVo.NormalTask secondTaskVo : commonTask) {
- if(secondTaskVo.getTimeStatus() == 1){
- if(secondTaskVo.getBeginTime().longValue() == startTime.longValue()) {
+ if (secondTaskVo.getTimeStatus() == 1) {
+ if (secondTaskVo.getBeginTime().longValue() == startTime.longValue()) {
normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(secondTaskVo, normalTask);
normalTask.setEndTime(null);
@@ -262,8 +268,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
continue;
}
- if(secondTaskVo.getTimeStatus() == 2){
- if(secondTaskVo.getEndTime().longValue() == endTime.longValue()) {
+ if (secondTaskVo.getTimeStatus() == 2) {
+ if (secondTaskVo.getEndTime().longValue() == endTime.longValue()) {
normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(secondTaskVo, normalTask);
normalTask.setBeginTime(null);
@@ -317,14 +323,14 @@ public class ProTaskDetailService implements IProTaskDetailService {
TaskVo.ProTaskInfoByMVP proTaskInfoByMVP = new TaskVo.ProTaskInfoByMVP();
List taskDeliverByMVPList = new ArrayList<>();
TaskVo.TaskDeliverByMVP taskDeliverByMVP = null;
- List firstTasks =new ArrayList<>();
+ List firstTasks = new ArrayList<>();
TaskVo.FirstTask firstProTask = null;
//查找项目下的一级任务
ProTaskDetailExample firstTaskExample = new ProTaskDetailExample();
firstTaskExample.createCriteria().andProjectIdEqualTo(projectId).andVirtualEqualTo((byte) WebConstant.TASK_VIRTUAL.Normal.value).andParentIdEqualTo(0L);
List firstTaskList = taskDetailDao.selectByExample(firstTaskExample);
- if(CollectionUtil.isNotEmpty(firstTaskList)){
- for(ProTaskDetail firstTask:firstTaskList){
+ if (CollectionUtil.isNotEmpty(firstTaskList)) {
+ for (ProTaskDetail firstTask : firstTaskList) {
taskDeliverByMVPList = new ArrayList<>();
//查找项目下所有的二级任务
ProTaskDetailExample taskExample = new ProTaskDetailExample();
@@ -370,39 +376,39 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
/**
- *通过任务id查任务详情
+ * 通过任务id查任务详情
*/
@Override
public TaskVo.NormalTask getTaskInfoByTaskId(Long currentUserId, Long projectId, Long taskId) throws Exception {
ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(taskId);
TaskVo.NormalTask taskDetail = null;
- if(ObjectUtil.isNotNull(subTime)) {
- taskDetail = taskDetailDao.selectTaskByTaskId(subTime.getId(),subTime.getTaskDetailId());
+ if (ObjectUtil.isNotNull(subTime)) {
+ taskDetail = taskDetailDao.selectTaskByTaskId(subTime.getId(), subTime.getTaskDetailId());
//修改任务的完成状态
- ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId,taskDetail.getId());
- if(ObjectUtil.isNotNull(subTimeMember)){
+ ProSubTimeMember subTimeMember = getProcessByUserIdAndTask(currentUserId, taskDetail.getId());
+ if (ObjectUtil.isNotNull(subTimeMember)) {
taskDetail.setProcess(subTimeMember.getComplatedStatus());
taskDetail.setRealEndTime(subTimeMember.getRealFinishTime());
}
//添加项目信息和插件信息
- normalTaskAddPlugin(currentUserId,subTime.getTaskDetailId(),taskDetail);
+ normalTaskAddPlugin(currentUserId, subTime.getTaskDetailId(), taskDetail);
if (ObjectUtil.isNotNull(taskDetail)) {
List groupTaskList = new ArrayList<>();
groupTaskList = taskDetailDao.selectTaskByParentId(projectId, taskDetail.getDetailId());
if (CollectionUtil.isNotEmpty(groupTaskList)) {
- for(TaskVo.NormalTask groupTask:groupTaskList){
+ for (TaskVo.NormalTask groupTask : groupTaskList) {
//修改任务的完成状态
- ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(currentUserId,groupTask.getId());
- if(ObjectUtil.isNotNull(proSubTimeMember)){
+ ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(currentUserId, groupTask.getId());
+ if (ObjectUtil.isNotNull(proSubTimeMember)) {
groupTask.setProcess(proSubTimeMember.getComplatedStatus());
groupTask.setRealEndTime(proSubTimeMember.getRealFinishTime());
}
//添加项目信息和插件信息
- normalTaskAddPlugin(currentUserId,groupTask.getDetailId(),groupTask);
+ normalTaskAddPlugin(currentUserId, groupTask.getDetailId(), groupTask);
//修改返回时子任务的名字(“任务名+(xx和XX)”)
ProTaskDetail proTaskDetail = taskDetailDao.selectByPrimaryKey(groupTask.getDetailId());
- if(proTaskDetail.getAllMember()==0){
- groupTask.setName(updateSubTaskName(groupTask.getDetailId(),groupTask.getName()));
+ if (proTaskDetail.getAllMember() == 0) {
+ groupTask.setName(updateSubTaskName(groupTask.getDetailId(), groupTask.getName()));
}
}
@@ -413,37 +419,39 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
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);
//添加项目信息
SysProject project = sysProjectDao.selectByPrimaryKey(task.getProjectId());
- if(ObjectUtil.isNotNull(project)){
+ if (ObjectUtil.isNotNull(project)) {
normalTask.setProjectId(project.getId());
normalTask.setProjectName(project.getName());
}
ProRole role = proRoleDao.selectByPrimaryKey(normalTask.getExecutorRole());
- if(ObjectUtil.isNotNull(role)){
+ if (ObjectUtil.isNotNull(role)) {
normalTask.setExecutorRoleName(role.getName());
}
//添加插件
- List pluginVoList = pluginService.getPluginByTask(task.getId(),userId);
+ List pluginVoList = pluginService.getPluginByTask(task.getId(), userId);
normalTask.setPlugins(new ArrayList<>());
normalTask.getPlugins().addAll(pluginVoList);
}
+
/**
* 修改返回时子任务的名字 格式:“任务名+(xx和XX)”
*/
- private String updateSubTaskName(Long taskId,String taskName){
+ private String updateSubTaskName(Long taskId, String taskName) {
String name = taskName + "(";
ProTaskMemberExample taskMemberExample = new ProTaskMemberExample();
taskMemberExample.createCriteria().andTaskDetailIdEqualTo(taskId);
List taskMemberList = taskMemberDao.selectByExample(taskMemberExample);
- if(CollectionUtil.isNotEmpty(taskMemberList)){
- for(int i = 0;i < taskMemberList.size();i++){
+ if (CollectionUtil.isNotEmpty(taskMemberList)) {
+ for (int i = 0; i < taskMemberList.size(); i++) {
ProMember member = proMemberDao.selectByPrimaryKey(taskMemberList.get(i).getMemberId());
- if(ObjectUtil.isNotNull(member)){
+ if (ObjectUtil.isNotNull(member)) {
name += member.getNickname();
- if(i != taskMemberList.size()-1){
+ if (i != taskMemberList.size() - 1) {
name += "和";
}
}
@@ -466,19 +474,19 @@ public class ProTaskDetailService implements IProTaskDetailService {
//获取日期的开始结束时间
Long startMillisTime = null;
Long endMillisTime = null;
- Map timeMap = null;
- if(StrUtil.isNotEmpty(start)){
+ Map timeMap = null;
+ if (StrUtil.isNotEmpty(start)) {
timeMap = DateUtil.projectFormatDateTime(start);
startMillisTime = timeMap.get("startMillisTime");
}
- if(StrUtil.isNotEmpty(end)){
+ if (StrUtil.isNotEmpty(end)) {
timeMap = DateUtil.projectFormatDateTime(start);
endMillisTime = timeMap.get("endMillisTime");
}
//获取该用户关注的项目
List projectList = attentionService.findProjectIdByUserId(currentUserId);
- if(CollectionUtil.isNotEmpty(projectList)){
- if(StrUtil.isNotEmpty(role)) {
+ if (CollectionUtil.isNotEmpty(projectList)) {
+ if (StrUtil.isNotEmpty(role)) {
switch (role) {
case "创建者":
for (SysProject project : projectList) {
@@ -503,7 +511,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
default:
break;
}
- }else {
+ } else {
for (SysProject project : projectList) {
List taskList = getTaskInfoByProjectIdAndUserId(project, currentUserId, startMillisTime, endMillisTime);
if (CollectionUtil.isNotEmpty(taskList)) {
@@ -560,36 +568,37 @@ public class ProTaskDetailService implements IProTaskDetailService {
taskCheckList.setPageInfo(pageInfo);
return taskCheckList;
}
+
private List getTaskInfoByProjectIdAndUserId(SysProject project, Long userId,
Long startTime, Long endTime) throws Exception {
List normalTaskList = new ArrayList<>();
//获取用户的角色
- List roleList = proRoleService.getProRoleByProjectIdAndUserId(project.getId(),userId);
+ List roleList = proRoleService.getProRoleByProjectIdAndUserId(project.getId(), userId);
//获取“全体成员”角色
ProRole allMember = proRoleService.getAllMember(project.getId());
Long allMemberId = null;
- if(ObjectUtil.isNotNull(allMember)) {
+ if (ObjectUtil.isNotNull(allMember)) {
allMemberId = allMember.getId();
}
- if(CollectionUtil.isNotEmpty(roleList)) {
- for(ProRole role:roleList) {
+ if (CollectionUtil.isNotEmpty(roleList)) {
+ for (ProRole role : roleList) {
SysProject sysProject = sysProjectDao.selectByPrimaryKey(role.getProjectId());
List taskList =
taskDetailDao.selectTaskByRoleAndAllMembers(project.getId(), role.getId(), allMemberId, startTime, endTime);
- if(CollectionUtil.isNotEmpty(taskList)) {
- for(TaskVo.NormalTask normalTask:taskList){
+ if (CollectionUtil.isNotEmpty(taskList)) {
+ for (TaskVo.NormalTask normalTask : taskList) {
//修改任务的完成状态
- ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(userId,normalTask.getId());
- if(ObjectUtil.isNotNull(proSubTimeMember)){
+ ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask(userId, normalTask.getId());
+ if (ObjectUtil.isNotNull(proSubTimeMember)) {
normalTask.setProcess(proSubTimeMember.getComplatedStatus());
normalTask.setRealEndTime(proSubTimeMember.getRealFinishTime());
}
ProRole proRole = proRoleDao.selectByPrimaryKey(normalTask.getExecutorRole());
- if(ObjectUtil.isNotNull(sysProject)) {
+ if (ObjectUtil.isNotNull(sysProject)) {
normalTask.setProjectId(sysProject.getId());
normalTask.setProjectName(sysProject.getName());
}
- if(ObjectUtil.isNotNull(proRole)){
+ if (ObjectUtil.isNotNull(proRole)) {
normalTask.setExecutorRoleName(proRole.getName());
}
}
@@ -602,7 +611,6 @@ public class ProTaskDetailService implements IProTaskDetailService {
/**
* 项目内的任务清单
- *
*/
@Override
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 endMillisTime = null;
- Map timeMap = null;
- if(StrUtil.isNotEmpty(start)){
+ Map timeMap = null;
+ if (StrUtil.isNotEmpty(start)) {
timeMap = DateUtil.projectFormatDateTime(start);
startMillisTime = timeMap.get("startMillisTime");
}
- if(StrUtil.isNotEmpty(end)){
+ if (StrUtil.isNotEmpty(end)) {
timeMap = DateUtil.projectFormatDateTime(start);
endMillisTime = timeMap.get("endMillisTime");
}
//获取项目
SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId);
- if(ObjectUtil.isNotNull(sysProject)) {
+ if (ObjectUtil.isNotNull(sysProject)) {
List taskList = getTaskInfoByProjectIdAndUserId(sysProject, currentUserId, startMillisTime, endMillisTime);
if (CollectionUtil.isNotEmpty(taskList)) {
normalTaskList.addAll(taskList);
@@ -684,7 +692,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
*/
@Override
public List getTaskDetailByKey(Long currentUserId, Long projectId, String key) {
- List taskDetailByKeyList = taskDetailDao.selectTaskByKey(currentUserId,projectId,key);
+ List taskDetailByKeyList = taskDetailDao.selectTaskByKey(currentUserId, projectId, key);
return taskDetailByKeyList;
}
@@ -692,8 +700,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
* 查询子任务最早的一条
*/
@Override
- public TaskVo.NormalTask selectTaskByParentId(Long parentId, Long startTime, Long endTime){
- TaskVo.NormalTask normalTask = taskDetailDao.selectTaskByParentIdAndTime(parentId,startTime,endTime);
+ public TaskVo.NormalTask selectTaskByParentId(Long parentId, Long startTime, Long endTime) {
+ TaskVo.NormalTask normalTask = taskDetailDao.selectTaskByParentIdAndTime(parentId, startTime, endTime);
return normalTask;
}
@@ -704,17 +712,17 @@ public class ProTaskDetailService implements IProTaskDetailService {
ProSubTimeMember subTimeMember = null;
ProTaskSubTime subTime = taskSubTimeDao.selectByPrimaryKey(subTimeId);
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(subTime.getTaskDetailId());
- if(taskDetail.getFinishNeedAll()==0){
+ if (taskDetail.getFinishNeedAll() == 0) {
ProSubTimeMemberExample subTimeMemberExample = new ProSubTimeMemberExample();
subTimeMemberExample.createCriteria().andTaskSubTimeIdEqualTo(subTimeId).andComplatedStatusEqualTo(2);
subTimeMemberExample.setOrderByClause("real_finish_time DESC");
List subTimeMemberList = proSubTimeMemberDao.selectByExample(subTimeMemberExample);
- if(CollectionUtil.isNotEmpty(subTimeMemberList)){
+ if (CollectionUtil.isNotEmpty(subTimeMemberList)) {
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());
Boolean isBelongRole = proMemberService.userIsBelongRole(userId, role.getId());
@@ -726,7 +734,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
if (CollectionUtil.isNotEmpty(subTimeMemberList)) {
subTimeMember = subTimeMemberList.get(0);
}
- }else {
+ } else {
//查找任务负责人下的所有成员
List memberList = proMemberService.selectByRole(taskDetail.getExecutorRole());
if (CollectionUtil.isNotEmpty(memberList)) {
@@ -750,19 +758,45 @@ public class ProTaskDetailService implements IProTaskDetailService {
//===================================================================
/**
- * 删除角色下的所有任务相关(taskDetail,taskSubTime,taskMember,plugin)
- * @param roleId
+ * 删除任务和所有相关信息
*/
@Override
- public void deleteTaskByRoleId(Long roleId) {
-// taskDetailDao.deleteTaskByRoleId(roleId);
+ public void deleteTask(Long currentUserId, Long taskId) {
+ //检查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 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);
+ }
}
- /**
- * 删除任务和所有相关信息
- */
- private void deleteTaskById(Long taskId){
- //删除交付物
+ @Override
+ public void deleteTaskByTaskId(Long taskId) {
+ //1、删除交付物相关信息
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);
}
+
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java b/tall/src/main/java/com/ccsens/tall/service/ProjectService.java
index 4d102da4..09da1fe2 100644
--- a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java
+++ b/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.exception.BaseException;
import com.github.pagehelper.PageHelper;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -23,8 +24,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class ProjectService implements IProjectService {
@Autowired
private SysProjectDao sysProjectDao;
@@ -356,7 +358,6 @@ public class ProjectService implements IProjectService {
return sysProjectDao.getProjectByKey(currentUserId,key);
}
-
//===========================================================================
/**
* 删除项目
@@ -372,16 +373,26 @@ public class ProjectService implements IProjectService {
SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
project.setRecStatus((byte) 1);
sysProjectDao.updateByPrimaryKeySelective(project);
+ //彻底删除项目
+
}else {
throw new BaseException(CodeEnum.NOT_POWER);
}
}
+ /**
+ * 删除项目
+ */
+ private void deleteProjectById(Long projectId){
+
+ }
/**
* 复制项目
*/
@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 newProject = new SysProject();
if(ObjectUtil.isNotNull(oldProject)){
@@ -400,6 +411,18 @@ public class ProjectService implements IProjectService {
}else {
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){
//cycle为空,只加一条数据
if(ObjectUtil.isNotNull(taskDetail)) {
diff --git a/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java b/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java
index e9c508ec..64fcb9d2 100644
--- a/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java
+++ b/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.persist.dao.SysPluginDao;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
import java.util.List;
+@Slf4j
@Service
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class SysPluginService implements ISysPluginService{
@Autowired
private SysPluginDao sysPluginDao;
diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
index 99fbf51b..63d3b193 100644
--- a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
+++ b/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.util.*;
import com.ccsens.util.exception.BaseException;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -24,8 +25,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.util.*;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class TaskDeliverService implements ITaskDeliverService {
@Autowired
private TaskDeliverDao taskDeliverDao;
@@ -265,9 +267,6 @@ public class TaskDeliverService implements ITaskDeliverService {
/**
* 判断id是taskId还是subTimeId
- *
- * @param id
- * @return subTimeId
*/
private Long isTaskOrSubTime(Long id) {
Long subTimeId = null;
@@ -292,11 +291,6 @@ public class TaskDeliverService implements ITaskDeliverService {
/**
* 获取任务下所有交付物的信息
- *
- * @param currentUserId
- * @param
- * @return
- * @throws Exception
*/
@Override
public List selectTaskDeliver(Long currentUserId, Long taskId) throws Exception {
@@ -383,10 +377,6 @@ public class TaskDeliverService implements ITaskDeliverService {
/**
* 查看单个交付物的信息
- *
- * @param currentUserId
- * @param deliverId
- * @return
*/
@Override
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
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
public void deleteDeliver(Long currentUserId, Long deliverId, Long taskId) throws Exception {
@@ -773,9 +750,34 @@ public class TaskDeliverService implements ITaskDeliverService {
}
//=========================================================
+
+ /**
+ * 删除任务下的交付物(彻底删除)
+ * @param taskId
+ */
@Override
public void deleteDeliverByTaskId(Long taskId) {
- //查找已上传的文件
+ //查询交付物
+ ProTaskDeliverExample deliverExample = new ProTaskDeliverExample();
+ deliverExample.createCriteria().andTaskDetailIdEqualTo(taskId);
+ List deliverList = taskDeliverDao.selectByExample(deliverExample);
+ if(CollectionUtil.isNotEmpty(deliverList)){
+ for(ProTaskDeliver deliver : deliverList){
+ ProTaskDeliverPostLogExample postLogExample = new ProTaskDeliverPostLogExample();
+ postLogExample.createCriteria().andDeliverIdEqualTo(deliver.getId());
+ List 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());
+ }
+ }
+ }
+ }
}
diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskMemberService.java b/tall/src/main/java/com/ccsens/tall/service/TaskMemberService.java
index 7a0ea503..3355f9a2 100644
--- a/tall/src/main/java/com/ccsens/tall/service/TaskMemberService.java
+++ b/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.persist.dao.TaskMemberDao;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class TaskMemberService implements ITaskMemberService{
@Autowired
private TaskMemberDao taskMemberDao;
diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java b/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java
index 6feb06af..4a61d34c 100644
--- a/tall/src/main/java/com/ccsens/tall/service/TaskPluginService.java
+++ b/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.TaskDetailDao;
import com.ccsens.tall.persist.dao.TaskPluginDao;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -14,8 +15,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class TaskPluginService implements ITaskPluginService{
@Autowired
private TaskPluginDao taskPluginDao;
diff --git a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java b/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
index 0166957e..06a07319 100644
--- a/tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
+++ b/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.NatureToDate;
import com.ccsens.util.exception.BaseException;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -23,8 +24,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class TaskSubTimeService implements ITaskSubTimeService {
@Autowired
private TaskSubTimeDao taskSubTimeDao;
diff --git a/tall/src/main/java/com/ccsens/tall/service/UserAttentionService.java b/tall/src/main/java/com/ccsens/tall/service/UserAttentionService.java
index a16230bb..abb24637 100644
--- a/tall/src/main/java/com/ccsens/tall/service/UserAttentionService.java
+++ b/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.persist.dao.SysProjectDao;
import com.ccsens.tall.persist.dao.UserAttentionDao;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -15,8 +16,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
+@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class UserAttentionService implements IUserAttentionService{
@Autowired
private UserAttentionDao attentionDao;
diff --git a/tall/src/main/java/com/ccsens/tall/service/UserService.java b/tall/src/main/java/com/ccsens/tall/service/UserService.java
index 2f249e26..0358237e 100644
--- a/tall/src/main/java/com/ccsens/tall/service/UserService.java
+++ b/tall/src/main/java/com/ccsens/tall/service/UserService.java
@@ -26,7 +26,7 @@ import java.util.Map;
@Slf4j
@Service
-@Transactional(propagation = Propagation.REQUIRED)
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class UserService implements IUserService {
@Autowired
private SysUserDao userDao;
diff --git a/tall/src/main/java/com/ccsens/tall/service/proLogService.java b/tall/src/main/java/com/ccsens/tall/service/proLogService.java
index e9dd9e3a..88674ef3 100644
--- a/tall/src/main/java/com/ccsens/tall/service/proLogService.java
+++ b/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 com.ccsens.tall.bean.po.ProLog;
import com.ccsens.tall.persist.dao.ProLogDao;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+@Slf4j
@Service
+@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
public class proLogService implements IProLogService{
@Autowired
private ProLogDao proLogDao;
diff --git a/tall/src/main/java/com/ccsens/tall/web/DebugController.java b/tall/src/main/java/com/ccsens/tall/web/DebugController.java
new file mode 100644
index 00000000..408e78c6
--- /dev/null
+++ b/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("测试");
+ }
+
+
+
+}
diff --git a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java
index 7162ee8a..94c72916 100644
--- a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java
+++ b/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")
})
@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 addProject(HttpServletRequest request,@RequestParam(required = false) Long projectId) throws Exception {
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 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();
}
}
diff --git a/tall/src/main/java/com/ccsens/tall/web/TaskController.java b/tall/src/main/java/com/ccsens/tall/web/TaskController.java
index 2e9e2754..b0084d93 100644
--- a/tall/src/main/java/com/ccsens/tall/web/TaskController.java
+++ b/tall/src/main/java/com/ccsens/tall/web/TaskController.java
@@ -94,6 +94,19 @@ public class TaskController {
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> 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 taskDetailByKeyList = taskDetailService.getTaskDetailByKey(currentUserId,projectId,key);
+ return JsonResponse.newInstance().ok(taskDetailByKeyList);
+ }
+
//==============================================================
@ApiOperation(value = "添加清单(任务)",notes = "")
@@ -108,17 +121,16 @@ public class TaskController {
return JsonResponse.newInstance().ok(normalTask);
}
- @ApiOperation(value = "任务模糊搜索", notes = "")
+ @ApiOperation(value = "删除任务",notes = "")
@ApiImplicitParams({
- @ApiImplicitParam(name = "projectId", value = "项目id 可以为null", required = true, paramType = "query"),
- @ApiImplicitParam(name = "key", value = "关键词", required = true, paramType = "query")
+ @ApiImplicitParam(name = "taskId", value = "任务id", required = true, paramType = "query")
})
- @RequestMapping(value = "key", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
- public JsonResponse> 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 taskDetailByKeyList = taskDetailService.getTaskDetailByKey(currentUserId,projectId,key);
- return JsonResponse.newInstance().ok(taskDetailByKeyList);
+ @RequestMapping(value = "", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse deleteTask(HttpServletRequest request,
+ @RequestParam(required = false)Long taskId) throws Exception {
+ Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
+ taskDetailService.deleteTask(currentUserId,taskId);
+ return JsonResponse.newInstance().ok();
}
}
diff --git a/tall/src/main/java/com/ccsens/tall/web/UserController.java b/tall/src/main/java/com/ccsens/tall/web/UserController.java
index 2bc638b4..88d432a0 100644
--- a/tall/src/main/java/com/ccsens/tall/web/UserController.java
+++ b/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.service.IUserService;
import com.ccsens.util.JsonResponse;
+import com.ccsens.util.JwtUtil;
import com.ccsens.util.WebConstant;
import io.jsonwebtoken.Claims;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.jsonwebtoken.ExpiredJwtException;
+import io.jsonwebtoken.SignatureException;
+import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -30,12 +30,7 @@ import java.util.Map;
public class UserController {
@Autowired
private IUserService userService;
-// @Autowired
-// private IProjectService projectService;
-// @Autowired
-// private ITaskService taskService;
-// @Autowired
-// private IDeliverService deliverService;
+
@ApiOperation(value = "/用户登录", notes = "")
@ApiImplicitParams({
@@ -101,9 +96,6 @@ public class UserController {
} else {
return JsonResponse.newInstance().fail("登陆信息不正确.");
}
-
-// UserVo.TokenBean tokenBean = userService.userManageSignin(dto);
-// return JsonResponse.newInstance().ok(tokenBean);
}
@ApiOperation(value = "/发送验证码", notes = "")
@@ -197,6 +189,33 @@ public class UserController {
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 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);
+ }
}
diff --git a/tall/src/main/resources/mapper_dao/DeliverDao.xml b/tall/src/main/resources/mapper_dao/DeliverDao.xml
index 33312cef..c63c4299 100644
--- a/tall/src/main/resources/mapper_dao/DeliverDao.xml
+++ b/tall/src/main/resources/mapper_dao/DeliverDao.xml
@@ -154,4 +154,17 @@
deliver_id = #{deliverId}
group by checker_id
+
+
+
+
+ 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}
+
\ No newline at end of file
diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml
index 102df3e1..785f74e7 100644
--- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml
+++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml
@@ -249,5 +249,18 @@
ORDER BY s.begin_time DESC
limit 0,1
+
+
+ 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}
+
\ No newline at end of file
diff --git a/util/src/main/java/com/ccsens/util/cron/NatureToDate.java b/util/src/main/java/com/ccsens/util/cron/NatureToDate.java
index 43797c6b..bf7b6aa5 100644
--- a/util/src/main/java/com/ccsens/util/cron/NatureToDate.java
+++ b/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 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("每月31号:" + generateDates("每月31号", 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("每月15号下午5点:" + generateDates("每月15号下午5点", start, end));
}
@@ -297,7 +297,8 @@ public class NatureToDate {
} else {
String hourStr = nature.substring(start+2, end);
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;