Browse Source

Merge branch 'tall3' of dd.tall.wiki:ccsens_wiki/ccsenscloud into tall3

tall3
zy_Java 4 years ago
parent
commit
3b207a5e39
  1. 7
      common/src/main/java/com/ccsens/common/bean/dto/CProjectDto.java
  2. 8
      common/src/main/java/com/ccsens/common/bean/dto/CTaskDto.java
  3. 30
      common/src/main/java/com/ccsens/common/bean/vo/CTaskVo.java
  4. 9
      common/src/main/java/com/ccsens/common/persist/dao/ProMemberDao.java
  5. 7
      common/src/main/java/com/ccsens/common/persist/dao/ProParentTaskDao.java
  6. 10
      common/src/main/java/com/ccsens/common/persist/dao/ProProjectDao.java
  7. 7
      common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java
  8. 8
      common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java
  9. 19
      common/src/main/java/com/ccsens/common/service/IProjectService.java
  10. 9
      common/src/main/java/com/ccsens/common/service/ITaskService.java
  11. 168
      common/src/main/java/com/ccsens/common/service/ProjectService.java
  12. 11
      common/src/main/java/com/ccsens/common/service/TaskService.java
  13. 4
      common/src/main/resources/application.yml
  14. 10
      common/src/main/resources/mapper_dao/ProMemberDao.xml
  15. 26
      common/src/main/resources/mapper_dao/ProParentTaskDao.xml
  16. 33
      common/src/main/resources/mapper_dao/ProProjectDao.xml
  17. 10
      common/src/main/resources/mapper_dao/ProRoleDao.xml
  18. 32
      common/src/main/resources/mapper_dao/ProTaskDetailDao.xml

7
common/src/main/java/com/ccsens/common/bean/dto/CProjectDto.java

@ -49,4 +49,11 @@ public class CProjectDto {
@ApiModelProperty("所属角色的名称")
private String roleName;
}
@Data
@ApiModel("查询子项目信息")
public static class FindSonProject {
@ApiModelProperty("项目id")
private Long projectId;
}
}

8
common/src/main/java/com/ccsens/common/bean/dto/CTaskDto.java

@ -69,4 +69,12 @@ public class CTaskDto {
@ApiModelProperty("关联的绝对时间")
private Long timeDifference;
}
@Data
@ApiModel("查询子任务信息")
public static class FindSonTask{
@NotNull(message = "任务id不能为空")
@ApiModelProperty("任务详情id")
private Long detailId;
}
}

30
common/src/main/java/com/ccsens/common/bean/vo/CTaskVo.java

@ -102,4 +102,34 @@ public class CTaskVo {
private Long parentTaskDetailId;
}
@Data
@ApiModel("子任务信息")
public static class SonTaskDetail{
@ApiModelProperty("任务详情id")
private Long detailId;
@ApiModelProperty("任务名称")
private String name;
@ApiModelProperty("任务描述")
private String description;
@ApiModelProperty("重复频率")
private String cycle;
//以下是任务关系表
@ApiModelProperty("计划开始时间")
private Long planStartTime;
@ApiModelProperty("计划时长")
private Long planDuration;
@ApiModelProperty("计划结束时间")
private Long planEndTime;
@ApiModelProperty("实际开始时间")
private Long realStartTime;
@ApiModelProperty("实际时长")
private Long realDuration;
@ApiModelProperty("实际结束时间")
private Long realEndTime;
@ApiModelProperty("任务完成状态 0未开始 1进行中 2暂停 3完成")
private Byte taskStatus;
}
}

9
common/src/main/java/com/ccsens/common/persist/dao/ProMemberDao.java

@ -4,6 +4,8 @@ import com.ccsens.common.persist.mapper.ProMemberMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author AUSU
*/
@ -17,4 +19,11 @@ public interface ProMemberDao extends ProMemberMapper {
* @return 用户的成员id
*/
Long findUserOfMemberId(@Param("projectId") Long projectId,@Param("userId") Long userId);
/**
* 查询项目下的所有成员
* @param projectId 项目id
* @return 列表
*/
List<Long> queryMembersOfProject(@Param("projectId") Long projectId);
}

7
common/src/main/java/com/ccsens/common/persist/dao/ProParentTaskDao.java

@ -24,4 +24,11 @@ public interface ProParentTaskDao extends ProParentTaskMapper {
* @param newParentTaskList 任务关系列表
*/
void insertAllParentTask(@Param("newParentTaskList") List<ProParentTask> newParentTaskList);
/**
* 根据项目id查询所有一二级任务详情id
* @param projectId 项目id
* @return 一二级任务详情id列表
*/
List<Long> queryAllTaskIdByProjectId(@Param("projectId") Long projectId);
}

10
common/src/main/java/com/ccsens/common/persist/dao/ProProjectDao.java

@ -1,9 +1,12 @@
package com.ccsens.common.persist.dao;
import com.ccsens.common.bean.dto.CProjectDto;
import com.ccsens.common.bean.vo.CProjectVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author AUSU
*/
@ -16,4 +19,11 @@ public interface ProProjectDao{
* @return 项目详情
*/
CProjectVo.ProjectInfo findProjectById(@Param("projectId") Long projectId);
/**
* 查询子项目列表
* @param param 项目id
* @return 子项目列表
*/
List<CProjectVo.ProjectInfo> findSonProjectId(CProjectDto.FindSonProject param);
}

7
common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java

@ -95,4 +95,11 @@ public interface ProRoleDao extends ProRoleMapper {
* @return
*/
List<Long> queryShowByUserAndProject(@Param("projectId")Long projectId, @Param("userId")Long userId);
/**
* 查询项目下的所有角色
* @param projectId 项目id
* @return 角色id列表
*/
List<Long> queryRoleListOfProject(@Param("projectId")Long projectId);
}

8
common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java

@ -1,5 +1,6 @@
package com.ccsens.common.persist.dao;
import com.ccsens.common.bean.dto.CTaskDto;
import com.ccsens.common.bean.po.ProTaskDetail;
import com.ccsens.common.bean.po.ProTaskStatusRecord;
import com.ccsens.common.bean.vo.CTaskVo;
@ -71,4 +72,11 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper {
* @param newTaskDetailList 任务详情列表
*/
void insertAllTaskDetail(@Param("newTaskDetailList") List<ProTaskDetail> newTaskDetailList);
/**
* 查询子任务列表
* @param param 项目id
* @return 子任务列表
*/
List<CTaskVo.SonTaskDetail> findSonTask(CTaskDto.FindSonTask param);
}

19
common/src/main/java/com/ccsens/common/service/IProjectService.java

@ -3,6 +3,8 @@ package com.ccsens.common.service;
import com.ccsens.common.bean.dto.CProjectDto;
import com.ccsens.common.bean.vo.CProjectVo;
import java.util.List;
/**
* @author ma
*/
@ -25,7 +27,22 @@ public interface IProjectService {
/**
* 为复制的项目添加成员
* @return
*/
void addMemberForCopy(CProjectDto.MemberForProject param,Long userId);
/**
* 查询子项目信息
* @param param 项目id
* @param userId 用户id
* @return 子项目信息列表
*/
List<CProjectVo.ProjectInfo> findSonProject(CProjectDto.FindSonProject param, Long userId);
/**
* 删除项目及相关配置
* @param param 项目id
* @param userId 用户id
*/
void deleteProjectById(CProjectDto.ProjectById param, Long userId);
}

9
common/src/main/java/com/ccsens/common/service/ITaskService.java

@ -47,4 +47,13 @@ public interface ITaskService {
* @param updateTaskProcesses 任务信息
*/
void updateTaskProcess(List<CTaskDto.UpdateTaskProcess> updateTaskProcesses);
/**
*查询子任务
* @param param 任务id
* @param userId 用户id
* @return 子项目列表
*/
List<CTaskVo.SonTaskDetail> findSonTask(CTaskDto.FindSonTask param,Long userId);
}

168
common/src/main/java/com/ccsens/common/service/ProjectService.java

@ -10,6 +10,10 @@ import com.ccsens.common.bean.po.*;
import com.ccsens.common.bean.vo.CProjectVo;
import com.ccsens.common.bean.vo.CTaskVo;
import com.ccsens.common.persist.dao.*;
import com.ccsens.common.persist.mapper.ProMemberStakeholderMapper;
import com.ccsens.common.persist.mapper.ProRoleShowMapper;
import com.ccsens.common.persist.mapper.ProTaskShareMapper;
import com.ccsens.common.persist.mapper.ProTaskStatusRecordMapper;
import com.ccsens.common.util.CommonCodeError;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
@ -19,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -65,6 +70,14 @@ public class ProjectService implements IProjectService{
private ProRoleMemberDao roleMemberDao;
@Resource
private UserDao userDao;
@Resource
private ProMemberStakeholderMapper memberStakeholderMapper;
@Resource
private ProTaskStatusRecordMapper taskStatusRecordMapper;
@Resource
private ProTaskShareMapper taskShareMapper;
@Resource
private ProRoleShowMapper roleShowMapper;
@Override
public CProjectVo.ProjectInfo findProjectById(CProjectDto.ProjectById param, Long userId) {
@ -438,5 +451,160 @@ public class ProjectService implements IProjectService{
}
}
@Override
public List<CProjectVo.ProjectInfo> findSonProject(CProjectDto.FindSonProject param, Long userId) {
ProTaskDetail projectInfo = taskDetailDao.selectByPrimaryKey(param.getProjectId());
if (ObjectUtil.isNull(projectInfo)) {
throw new BaseException(CommonCodeError.PROJECT_NOT_FOUND);
}
return projectDao.findSonProjectId(param);
}
@Override
public void deleteProjectById(CProjectDto.ProjectById param, Long userId) {
ProTaskDetail project = taskDetailDao.selectByPrimaryKey(param.getProjectId());
if (ObjectUtil.isNull(project)) {
throw new BaseException(CommonCodeError.PROJECT_NOT_FOUND);
}
//删除项目详情 删除项目相关
Long projectId = project.getId();
project.setRecStatus((byte)2);
taskDetailDao.updateByPrimaryKeySelective(project);
//删除之前的项目分解
ProTaskSubExample taskSubExample = new ProTaskSubExample();
taskSubExample.createCriteria().andTaskDetailIdEqualTo(projectId);
ProTaskSub taskSub = new ProTaskSub();
taskSub.setRecStatus((byte)2);
taskSubDao.updateByExampleSelective(taskSub,taskSubExample);
//删除之前的版本信息
ProTaskVersion taskVersion = new ProTaskVersion();
taskVersion.setRecStatus((byte)2);
ProTaskVersionExample taskVersionExample = new ProTaskVersionExample();
taskVersionExample.createCriteria().andTaskDetailIdEqualTo(projectId);
taskVersionDao.updateByExampleSelective(taskVersion,taskVersionExample);
//删除项目标签相关的
LabelBusiness labelBusiness = new LabelBusiness();
labelBusiness.setRecStatus((byte)2);
LabelBusinessExample labelBusinessExample = new LabelBusinessExample();
labelBusinessExample.createCriteria().andBusinessIdEqualTo(projectId);
labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample);
//删除项目分享表
ProTaskShare taskShare = new ProTaskShare();
taskShare.setRecStatus((byte)2);
ProTaskShareExample taskShareExample = new ProTaskShareExample();
taskShareExample.createCriteria().andOriginalProjectIdEqualTo(projectId);
taskShareMapper.updateByExampleSelective(taskShare,taskShareExample);
//删除角色和成员
List<Long> roleIdList = roleDao.queryRoleListOfProject(project.getId());
ProRole role = new ProRole();
role.setRecStatus((byte)2);
ProRoleExample roleExample = new ProRoleExample();
roleExample.createCriteria().andIdIn(roleIdList);
roleDao.updateByExampleSelective(role,roleExample);
List<Long> memberIdList = memberDao.queryMembersOfProject(project.getId());
ProMember member = new ProMember();
member.setRecStatus((byte)2);
ProMemberExample memberExample = new ProMemberExample();
memberExample.createCriteria().andIdIn(memberIdList);
memberDao.updateByExampleSelective(member,memberExample);
//删除奖惩干系人
ProMemberStakeholder memberStakeholder = new ProMemberStakeholder();
memberStakeholder.setRecStatus((byte)2);
ProMemberStakeholderExample memberStakeholderExample = new ProMemberStakeholderExample();
memberStakeholderExample.createCriteria().andMemeberIdIn(memberIdList);
memberStakeholderMapper.updateByExampleSelective(memberStakeholder,memberStakeholderExample);
//删除对谁不可见
ProRoleRepulsion roleRepulsion = new ProRoleRepulsion();
roleRepulsion.setRecStatus((byte)2);
ProRoleRepulsionExample roleRepulsionExample = new ProRoleRepulsionExample();
roleRepulsionExample.createCriteria().andRoleIdIn(roleIdList);
roleRepulsionDao.updateByExampleSelective(roleRepulsion,roleRepulsionExample);
//删除角色成员关联
ProRoleMember roleMember = new ProRoleMember();
roleMember.setRecStatus((byte)2);
ProRoleMemberExample roleMemberExample = new ProRoleMemberExample();
roleMemberExample.createCriteria().andRoleIdIn(roleIdList);
roleMemberDao.updateByExampleSelective(roleMember,roleMemberExample);
//删除角色展示
ProRoleShow roleShow = new ProRoleShow();
roleShow.setRecStatus((byte)2);
ProRoleShowExample roleShowExample = new ProRoleShowExample();
roleShowExample.createCriteria().andRoleIdIn(roleIdList);
roleShowMapper.updateByExampleSelective(roleShow,roleShowExample);
//根据项目id查询所有一二级任务详情id 删除任务相关
List<Long> allTaskId = parentTaskDao.queryAllTaskIdByProjectId(projectId);
//删除所有的任务详情
ProTaskDetail taskDetail = new ProTaskDetail();
taskDetail.setRecStatus((byte)2);
ProTaskDetailExample taskDetailExample = new ProTaskDetailExample();
taskDetailExample.createCriteria().andIdIn(allTaskId);
taskDetailDao.updateByExampleSelective(taskDetail,taskDetailExample);
//删除所有的分解任务
ProTaskSub taskSub1 = new ProTaskSub();
taskSub1.setRecStatus((byte)2);
ProTaskSubExample taskSubExample1 = new ProTaskSubExample();
taskSubExample1.createCriteria().andTaskDetailIdIn(allTaskId);
List<ProTaskSub> taskSubList = taskSubDao.selectByExample(taskSubExample1);
List<Long> allSubTaskId = taskSubList.stream().map(ProTaskSub::getId).collect(Collectors.toList());
taskSubDao.updateByExampleSelective(taskSub1,taskSubExample1);
//删除所有的任务标签
LabelBusiness labelBusiness1 = new LabelBusiness();
labelBusiness1.setRecStatus((byte)2);
LabelBusinessExample labelBusinessExample1 = new LabelBusinessExample();
labelBusinessExample1.createCriteria().andBusinessIdIn(allTaskId);
labelBusinessDao.updateByExampleSelective(labelBusiness1,labelBusinessExample1);
//删除任务角色关联表
ProRoleTask roleTask = new ProRoleTask();
roleTask.setRecStatus((byte)2);
ProRoleTaskExample roleTaskExample = new ProRoleTaskExample();
roleTaskExample.createCriteria().andTaskIdIn(allTaskId);
roleTaskDao.updateByExampleSelective(roleTask,roleTaskExample);
//删除任务插件关联信息
ProTaskPlugin taskPlugin = new ProTaskPlugin();
taskPlugin.setRecStatus((byte)2);
ProTaskPluginExample taskPluginExample = new ProTaskPluginExample();
taskPluginExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskPluginDao.updateByExampleSelective(taskPlugin,taskPluginExample);
//删除任务关系表
allTaskId.add(project.getId());
ProParentTask parentTask = new ProParentTask();
parentTask.setRecStatus((byte)2);
ProParentTaskExample parentTaskExample = new ProParentTaskExample();
parentTaskExample.createCriteria().andTaskDetailIdIn(allTaskId);
parentTaskDao.updateByExampleSelective(parentTask,parentTaskExample);
//删除任务流转表
ProTaskFlow taskFlow = new ProTaskFlow();
taskFlow.setRecStatus((byte)2);
ProTaskFlowExample taskFlowExample = new ProTaskFlowExample();
taskFlowExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskFlowDao.updateByExampleSelective(taskFlow,taskFlowExample);
//删除任务上下道工序
ProTaskProcess taskProcess = new ProTaskProcess();
taskProcess.setRecStatus((byte)2);
ProTaskProcessExample taskProcessExample = new ProTaskProcessExample();
taskProcessExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskProcessDao.updateByExampleSelective(taskProcess,taskProcessExample);
//删除任务状态记录表 分解任务id
ProTaskStatusRecord taskStatusRecord = new ProTaskStatusRecord();
taskStatusRecord.setRecStatus((byte)2);
ProTaskStatusRecordExample taskStatusRecordExample = new ProTaskStatusRecordExample();
taskStatusRecordExample.createCriteria().andTaskSubIdIn(allSubTaskId);
taskStatusRecordMapper.updateByExampleSelective(taskStatusRecord,taskStatusRecordExample);
//删除任务通知表
ProTaskNotify taskNotify = new ProTaskNotify();
taskNotify.setRecStatus((byte)2);
ProTaskNotifyExample taskNotifyExample = new ProTaskNotifyExample();
taskNotifyExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskNotifyDao.updateByExampleSelective(taskNotify,taskNotifyExample);
//删除任务面板信息
ProTaskPanelInfo taskPanelInfo = new ProTaskPanelInfo();
taskPanelInfo.setRecStatus((byte)2);
ProTaskPanelInfoExample taskPanelInfoExample = new ProTaskPanelInfoExample();
taskPanelInfoExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskPanelInfoDao.updateByExampleSelective(taskPanelInfo,taskPanelInfoExample);
}
}

11
common/src/main/java/com/ccsens/common/service/TaskService.java

@ -13,6 +13,7 @@ import com.ccsens.common.persist.dao.*;
import com.ccsens.common.persist.mapper.ProTaskStatusRecordMapper;
import com.ccsens.common.util.CommonCodeError;
import com.ccsens.common.util.Constant;
import com.ccsens.util.CodeError;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.bean.message.common.InMessage;
import com.ccsens.util.bean.message.common.MessageConstant;
@ -578,4 +579,14 @@ public class TaskService implements ITaskService {
}
}
@Override
public List<CTaskVo.SonTaskDetail> findSonTask(CTaskDto.FindSonTask param, Long userId) {
ProTaskDetail proTaskDetail = taskDetailDao.selectByPrimaryKey(param.getDetailId());
if (ObjectUtil.isNull(proTaskDetail)) {
throw new BaseException(CommonCodeError.NOT_TASK);
}
return taskDetailDao.findSonTask(param);
}
}

4
common/src/main/resources/application.yml

@ -1,4 +1,4 @@
spring:
profiles:
active: dev
include: util-dev,common
active: prod
include: util-prod,common

10
common/src/main/resources/mapper_dao/ProMemberDao.xml

@ -13,4 +13,14 @@
AND user_id = #{userId}
</select>
<select id="queryMembersOfProject" resultType="java.lang.Long">
SELECT
id
FROM
t_pro_member
WHERE
rec_status = 0
AND project_id = #{projectId}
</select>
</mapper>

26
common/src/main/resources/mapper_dao/ProParentTaskDao.xml

@ -30,4 +30,30 @@
AND pt.rec_status = 0 AND d.rec_status = 0
</select>
<select id="queryAllTaskIdByProjectId" resultType="java.lang.Long">
SELECT
task_detail_id
FROM
t_pro_parent_task
WHERE
rec_status = 0
AND parent_task_detail_id = #{projectId}
UNION ALL
SELECT
task_detail_id
FROM
t_pro_parent_task
WHERE
rec_status = 0
AND parent_task_detail_id IN (
SELECT
task_detail_id
FROM
t_pro_parent_task
WHERE
rec_status = 0
AND parent_task_detail_id = #{projectId}
)
</select>
</mapper>

33
common/src/main/resources/mapper_dao/ProProjectDao.xml

@ -25,4 +25,37 @@
s.plan_start_time DESC
LIMIT 1
</select>
<select id="findSonProjectId" resultType="com.ccsens.common.bean.vo.CProjectVo$ProjectInfo">
SELECT
d.id AS detailId,
d.`name`,
d.description,
d.cycle,
s.plan_start_time,
s.plan_duration,
s.plan_end_time,
s.real_start_time,
s.real_duration,
s.real_end_time,
s.task_status
FROM
t_pro_parent_task AS pt
LEFT JOIN t_pro_task_detail AS d ON d.id = pt.task_detail_id
LEFT JOIN t_pro_task_sub AS s ON s.task_detail_id = pt.task_detail_id
LEFT JOIN t_label_business AS lb ON pt.task_detail_id = lb.business_id
LEFT JOIN t_label AS l ON lb.label_id = l.id
LEFT JOIN t_label_type AS lt ON l.label_type_id = lt.id
WHERE
lb.rec_status = 0
AND pt.rec_status = 0
AND d.rec_status = 0
AND s.rec_status = 0
AND l.rec_status = 0
AND lt.rec_status = 0
AND l.`level` = 0
AND lt.label_type = 1
AND pt.parent_task_detail_id = #{projectId}
</select>
</mapper>

10
common/src/main/resources/mapper_dao/ProRoleDao.xml

@ -196,4 +196,14 @@
and user_id = #{userId}
</select>
<select id="queryRoleListOfProject" resultType="java.lang.Long">
SELECT
id
FROM
t_pro_role
WHERE
rec_status = 0
AND project_id = #{projectId}
</select>
</mapper>

32
common/src/main/resources/mapper_dao/ProTaskDetailDao.xml

@ -347,4 +347,36 @@
ORDER BY update_status_time
</select>
<select id="findSonTask" resultType="com.ccsens.common.bean.vo.CTaskVo$SonTaskDetail">
SELECT
d.id AS detailId,
d.`name`,
d.description,
d.cycle,
s.plan_start_time,
s.plan_duration,
s.plan_end_time,
s.real_start_time,
s.real_duration,
s.real_end_time,
s.task_status
FROM
t_pro_parent_task AS pt
LEFT JOIN t_pro_task_detail AS d ON d.id = pt.task_detail_id
LEFT JOIN t_pro_task_sub AS s ON s.task_detail_id = pt.task_detail_id
LEFT JOIN t_label_business AS lb ON pt.task_detail_id = lb.business_id
LEFT JOIN t_label AS l ON lb.label_id = l.id
LEFT JOIN t_label_type AS lt ON l.label_type_id = lt.id
WHERE
lb.rec_status = 0
AND pt.rec_status = 0
AND d.rec_status = 0
AND s.rec_status = 0
AND l.rec_status = 0
AND lt.rec_status = 0
AND l.`level` != 0
AND lt.label_type = 1
AND pt.parent_task_detail_id = #{detailId}
</select>
</mapper>
Loading…
Cancel
Save