Browse Source

复制项目 修改任务真实开始时间 给复制项目添加角色

tall3
ma 4 years ago
parent
commit
52fbd184e3
  1. 20
      common/src/main/java/com/ccsens/common/api/TaskController.java
  2. 23
      common/src/main/java/com/ccsens/common/bean/dto/CProjectDto.java
  3. 17
      common/src/main/java/com/ccsens/common/bean/vo/CRoleVo.java
  4. 16
      common/src/main/java/com/ccsens/common/persist/dao/ProRoleDao.java
  5. 16
      common/src/main/java/com/ccsens/common/persist/dao/ProTaskDetailDao.java
  6. 8
      common/src/main/java/com/ccsens/common/persist/dao/ProTaskProcessDao.java
  7. 8
      common/src/main/java/com/ccsens/common/persist/dao/ProTaskSubDao.java
  8. 6
      common/src/main/java/com/ccsens/common/service/IProjectService.java
  9. 34
      common/src/main/java/com/ccsens/common/service/ProjectService.java
  10. 121
      common/src/main/java/com/ccsens/common/service/TaskService.java
  11. 1
      common/src/main/java/com/ccsens/common/util/CommonCodeError.java
  12. 12
      common/src/main/java/com/ccsens/common/util/Constant.java
  13. 39
      common/src/main/resources/mapper_dao/ProRoleDao.xml
  14. 22
      common/src/main/resources/mapper_dao/ProTaskDetailDao.xml
  15. 20
      common/src/main/resources/mapper_dao/ProTaskProcessDao.xml
  16. 23
      common/src/main/resources/mapper_dao/ProTaskSubDao.xml

20
common/src/main/java/com/ccsens/common/api/TaskController.java

@ -1,8 +1,10 @@
//package com.ccsens.common.api;
//
//import com.ccsens.cloudutil.annotation.MustLogin;
//import com.ccsens.common.bean.dto.TaskDto;
//import com.ccsens.common.bean.vo.TaskVo;
//import com.ccsens.common.bean.dto.CTaskDto;
//
//import com.ccsens.common.bean.vo.CTaskVo;
//
//import com.ccsens.common.service.ITaskService;
//import com.ccsens.util.JsonResponse;
//import com.ccsens.util.bean.dto.QueryDto;
@ -33,10 +35,10 @@
//
// @MustLogin
// @ApiOperation(value = "查找永久日常任务", notes = "")
// @RequestMapping(value = "/permanent", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<List<TaskVo.QueryTask>> queryPermanentGlobalTask(@ApiParam @Validated @RequestBody QueryDto<TaskDto.QueryPermanentGlobalTask> params) {
// @RequestMapping(value = "/permanent", method = RequestMethod.POST, produces = {"application/json;charet=UTF-8"})
// public JsonResponse<List<CTaskVo.QueryTask>> queryPermanentGlobalTask(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.QueryPermanentGlobalTask> params) {
// log.info("查找永久日常任务开始{}",params);
// List<TaskVo.QueryTask> permanentGlobalTaskList = taskService.queryPermanentGlobalTask(params.getParam(),params.getUserId());
// List<CTaskVo.QueryTask> permanentGlobalTaskList = taskService.queryPermanentGlobalTask(params.getParam(),params.getUserId());
// log.info("查找永久日常任务结束{}",permanentGlobalTaskList);
// return JsonResponse.newInstance().ok(permanentGlobalTaskList);
// }
@ -44,9 +46,9 @@
// @MustLogin
// @ApiOperation(value = "查找带时间的日常任务", notes = "")
// @RequestMapping(value = "/global", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<List<TaskVo.QueryTask>> queryGlobalTask(@ApiParam @Validated @RequestBody QueryDto<TaskDto.QueryGlobalTask> params) {
// public JsonResponse<List<CTaskVo.QueryTask>> queryGlobalTask(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.QueryGlobalTask> params) {
// log.info("查找带时间的日常任务开始{}",params);
// List<TaskVo.QueryTask> globalTask = taskService.queryGlobalTask(params.getParam(),params.getUserId());
// List<CTaskVo.QueryTask> globalTask = taskService.queryGlobalTask(params.getParam(),params.getUserId());
// log.info("查找带时间的日常任务结束{}",globalTask);
// return JsonResponse.newInstance().ok(globalTask);
// }
@ -54,9 +56,9 @@
// @MustLogin
// @ApiOperation(value = "查找带时间的定期任务", notes = "")
// @RequestMapping(value = "/regular", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
// public JsonResponse<List<TaskVo.QueryTask>> queryRegularTask(@ApiParam @Validated @RequestBody QueryDto<TaskDto.QueryRegularTask> params) {
// public JsonResponse<List<CTaskVo.QueryTask>> queryRegularTask(@ApiParam @Validated @RequestBody QueryDto<CTaskDto.QueryRegularTask> params) {
// log.info("查找带时间的定期任务开始{}",params);
// List<TaskVo.QueryTask> regularTask = taskService.queryRegularTask(params.getParam(), params.getUserId());
// List<CTaskVo.QueryTask> regularTask = taskService.queryRegularTask(params.getParam(), params.getUserId());
// log.info("查找带时间的定期任务结束{}",regularTask);
// return JsonResponse.newInstance().ok(regularTask);
// }

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

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class CProjectDto {
@ -26,4 +27,26 @@ public class CProjectDto {
@ApiModelProperty("新项目名字")
private String projectName;
}
@Data
@ApiModel("给模板项目添加成员")
public static class MemberForProject {
@NotNull(message = "项目id不能为空")
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("成员列表")
private List<CProjectDto.MemberInfo> memberInfoList;
}
@Data
@ApiModel("模板项目成员信息")
public static class MemberInfo {
@ApiModelProperty("用户id(医生)")
private Long userId;
@ApiModelProperty("成员名")
private String memberName;
@ApiModelProperty("成员手机号")
private String phone;
@ApiModelProperty("所属角色的名称")
private String roleName;
}
}

17
common/src/main/java/com/ccsens/common/bean/vo/CRoleVo.java

@ -34,4 +34,21 @@ public class CRoleVo {
@ApiModelProperty("排序")
private Long sequence;
}
@Data
@ApiModel("角色信息")
public static class AllRole {
@ApiModelProperty("角色id")
private Long id;
@ApiModelProperty("角色名称")
private String name;
@ApiModelProperty("角色标签id")
private Long labelId;
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("标签描述")
private String description;
@ApiModelProperty("标签等级")
private Byte level;
}
}

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

@ -3,6 +3,7 @@ package com.ccsens.common.persist.dao;
import com.ccsens.common.bean.po.ProRole;
import com.ccsens.common.bean.po.ProTaskSub;
import com.ccsens.common.bean.vo.CRoleVo;
import com.ccsens.common.persist.mapper.ProRoleMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@ -48,4 +49,19 @@ public interface ProRoleDao extends ProRoleMapper {
* @param newRoleList 角色列表
*/
void insertRoleList(@Param("newRoleList") List<ProRole> newRoleList);
/**
* 根据角色名称和项目id查找角色信息
* @param roleName 角色名称
* @param projectId 项目id
* @return 角色信息
*/
ProRole findByNameAndProjectId(@Param("roleName") String roleName,@Param("projectId") Long projectId);
/**
* 根据角色id查询出该项目下全部角色
* @param roleId 角色id
* @return 角色列表
*/
List<CRoleVo.AllRole> findAllRoleById(@Param("roleId") Long roleId);
}

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

@ -16,23 +16,23 @@ import java.util.List;
public interface ProTaskDetailDao extends ProTaskDetailMapper {
/**
* 根据角色查找永久日常任务
* @param roleId 角色id
* @param roleIdList 角色id
* @return 永久日常任务列表
*/
List<CTaskVo.QueryTask> queryPermanentGlobalTask(@Param("roleId") Long roleId);
List<CTaskVo.QueryTask> queryPermanentGlobalTask(@Param("roleIdList") List<Long> roleIdList);
/**
* 根据角色和时间节点查找日常任务
* @param roleId 角色id
* @param roleIdList 角色id集合
* @param timeNode 时间节点
* @param timeUnit 时间颗粒度
* @return 日常任务列表
*/
List<CTaskVo.QueryTask> queryGlobalTask(@Param("roleId") Long roleId, @Param("timeNode") Long timeNode, @Param("timeUnit") int timeUnit);
List<CTaskVo.QueryTask> queryGlobalTask(@Param("roleIdList") List<Long> roleIdList, @Param("timeNode") Long timeNode, @Param("timeUnit") int timeUnit);
/**
* 根据时间和角色查找定期任务
* @param roleId 角色id
* @param roleIdList 角色id集合
* @param timeUnit 时间单位
* @param timeNode 时间节点
* @param queryType 查询类型
@ -40,12 +40,12 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper {
* @param timeFormat 时间格式
* @return 定期任务列表
*/
List<CTaskVo.QueryTask> queryRegularTask(@Param("roleId") Long roleId, @Param("timeUnit") int timeUnit, @Param("timeNode") Long timeNode
List<CTaskVo.QueryTask> queryRegularTask(@Param("roleId") List<Long> roleIdList, @Param("timeUnit") int timeUnit, @Param("timeNode") Long timeNode
, @Param("queryType") int queryType, @Param("query") String query, @Param("timeFormat") String timeFormat);
/**
* 继续向上/向下查找
* @param roleId 角色id
* @param roleIdList 角色id集合
* @param timeUnit 时间单位
* @param timeNode 时间节点
* @param queryType 查询类型
@ -53,7 +53,7 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper {
* @param timeFormat 时间格式
* @return 定期任务列表
*/
List<CTaskVo.QueryTask> continueQueryTask(@Param("roleId") Long roleId, @Param("timeUnit") int timeUnit, @Param("timeNode") Long timeNode
List<CTaskVo.QueryTask> continueQueryTask(@Param("roleIdList") List<Long> roleIdList, @Param("timeUnit") int timeUnit, @Param("timeNode") Long timeNode
, @Param("queryType") int queryType, @Param("query") String query, @Param("timeFormat") String timeFormat);
/**

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

@ -24,4 +24,12 @@ public interface ProTaskProcessDao {
* @param newTaskProcessList 任务上下道工序列表
*/
void insertAllTaskProcess(@Param("taskProcessList") List<ProTaskProcess> newTaskProcessList);
/**
* 查找任务的下一道工序
* @param taskDetailId 任务详情id
* @param statusOfUpdate 开始还是结束
* @return 下到工序列表
*/
List<ProTaskProcess> findNextTaskByDetailId(@Param("taskDetailId") Long taskDetailId,@Param("statusOfUpdate") Byte statusOfUpdate);
}

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

@ -25,4 +25,12 @@ public interface ProTaskSubDao extends ProTaskSubMapper {
* @param newTaskSubList 分解任务列表
*/
void insertAllTaskSub(@Param("newTaskSubList") List<ProTaskSub> newTaskSubList);
/**
* 查找下一个分解任务
* @param nextTaskDetailId 任务详情id
* @param planTime 计划开始时间
* @return 分解任务
*/
ProTaskSub findNextTaskSub(@Param("nextTaskDetailId") Long nextTaskDetailId,@Param("planTime") Long planTime);
}

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

@ -22,4 +22,10 @@ public interface IProjectService {
* @return 新项目
*/
CProjectVo.CopyProjectInfo copyProject(CProjectDto.CopyProject param, Long userId);
/**
* 为复制的项目添加成员
* @return
*/
void addMemberForCopy(CProjectDto.MemberForProject param,Long userId);
}

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

@ -59,6 +59,10 @@ public class ProjectService implements IProjectService{
private LabelBusinessDao labelBusinessDao;
@Resource
private ProTaskVersionDao taskVersionDao;
@Resource
private ProMemberDao memberDao;
@Resource
private ProRoleMemberDao roleMemberDao;
@Override
public CProjectVo.ProjectInfo findProjectById(CProjectDto.ProjectById param, Long userId) {
@ -69,6 +73,36 @@ public class ProjectService implements IProjectService{
return projectById;
}
@Override
public void addMemberForCopy(CProjectDto.MemberForProject param, Long userId) {
if (CollectionUtil.isNotEmpty(param.getMemberInfoList())){
for (CProjectDto.MemberInfo memberInfo : param.getMemberInfoList()) {
//userId不为空
ProMember member = new ProMember();
if (ObjectUtil.isNotNull(memberInfo.getUserId())){
member.setId(snowflake.nextId());
member.setUserId(memberInfo.getUserId());
member.setProjectId(param.getProjectId());
member.setPhone(memberInfo.getPhone());
member.setName(memberInfo.getMemberName());
memberDao.insertSelective(member);
}else{
member.setId(snowflake.nextId());
member.setProjectId(param.getProjectId());
member.setPhone(memberInfo.getPhone());
member.setName(memberInfo.getMemberName());
memberDao.insertSelective(member);
}
ProRole role = roleDao.findByNameAndProjectId(memberInfo.getRoleName(),param.getProjectId());
ProRoleMember roleMember = new ProRoleMember();
roleMember.setId(snowflake.nextId());
roleMember.setMemberId(member.getId());
roleMember.setRoleId(role.getId());
roleMemberDao.insertSelective(roleMember);
}
}
}
@Override
public CProjectVo.CopyProjectInfo copyProject(CProjectDto.CopyProject param, Long userId) {
CProjectVo.ProjectInfo oldProject = projectDao.findProjectById(param.getProjectId());

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

@ -6,8 +6,11 @@ import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.common.bean.dto.CTaskDto;
import com.ccsens.common.bean.message.TaskMessageWithStatus;
import com.ccsens.common.bean.po.ProRole;
import com.ccsens.common.bean.po.ProTaskProcess;
import com.ccsens.common.bean.po.ProTaskStatusRecord;
import com.ccsens.common.bean.po.ProTaskSub;
import com.ccsens.common.bean.vo.CRoleVo;
import com.ccsens.common.bean.vo.CTaskVo;
import com.ccsens.common.persist.dao.*;
import com.ccsens.common.persist.mapper.ProTaskStatusRecordMapper;
@ -57,6 +60,8 @@ public class TaskService implements ITaskService {
private ProTaskStatusRecordMapper taskStatusRecordMapper;
@Resource
private AmqpTemplate rabbitTemplate;
@Resource
private ProTaskProcessDao taskProcessDao;
/**
* 判断当前用户的角色是否被设置不可见(是否有权限查看任务)
@ -192,7 +197,21 @@ public class TaskService implements ITaskService {
if (BooleanUtil.isFalse(isLook)) {
throw new BaseException(CommonCodeError.NOT_PERMISSION);
}
List<CTaskVo.QueryTask> permanentGlobalTask = taskDetailDao.queryPermanentGlobalTask(param.getRoleId());
//查询当前角色是否项目经理
List<Long> roleIds = new ArrayList<>();
List<CRoleVo.AllRole> roleList = roleDao.findAllRoleById(param.getRoleId());
if (CollectionUtil.isNotEmpty(roleList)){
List<CRoleVo.AllRole> roles = roleList.stream().filter(allRole -> allRole.getId().equals(param.getRoleId())).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(roles)){
if (Constant.ROLE_LEVEL.PM.value.equals(roles.get(0).getLevel())){
List<Long> allRoleId = roleList.stream().map(CRoleVo.AllRole::getId).collect(Collectors.toList());
roleIds.addAll(allRoleId);
}else{
roleIds.add(param.getRoleId());
}
}
}
List<CTaskVo.QueryTask> permanentGlobalTask = taskDetailDao.queryPermanentGlobalTask(roleIds);
//查找项目面板和插件信息
queryPluginForTask(permanentGlobalTask);
@ -206,7 +225,21 @@ public class TaskService implements ITaskService {
if (BooleanUtil.isFalse(isLook)) {
throw new BaseException(CommonCodeError.NOT_PERMISSION);
}
List<CTaskVo.QueryTask> globalTask = taskDetailDao.queryGlobalTask(param.getRoleId(), param.getTimeNode(), param.getTimeUnit());
//查询当前角色是否项目经理
List<Long> roleIds = new ArrayList<>();
List<CRoleVo.AllRole> roleList = roleDao.findAllRoleById(param.getRoleId());
if (CollectionUtil.isNotEmpty(roleList)){
List<CRoleVo.AllRole> roles = roleList.stream().filter(allRole -> allRole.getId().equals(param.getRoleId())).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(roles)){
if (Constant.ROLE_LEVEL.PM.value.equals(roles.get(0).getLevel())){
List<Long> allRoleId = roleList.stream().map(CRoleVo.AllRole::getId).collect(Collectors.toList());
roleIds.addAll(allRoleId);
}else{
roleIds.add(param.getRoleId());
}
}
}
List<CTaskVo.QueryTask> globalTask = taskDetailDao.queryGlobalTask(roleIds, param.getTimeNode(), param.getTimeUnit());
queryPluginForTask(globalTask);
return globalTask;
}
@ -228,11 +261,25 @@ public class TaskService implements ITaskService {
if (BooleanUtil.isFalse(isLook)) {
throw new BaseException(CommonCodeError.NOT_PERMISSION);
}
//查询当前角色是否项目经理
List<Long> roleIds = new ArrayList<>();
List<CRoleVo.AllRole> roleList = roleDao.findAllRoleById(param.getRoleId());
if (CollectionUtil.isNotEmpty(roleList)){
List<CRoleVo.AllRole> roles = roleList.stream().filter(allRole -> allRole.getId().equals(param.getRoleId())).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(roles)){
if (Constant.ROLE_LEVEL.PM.value.equals(roles.get(0).getLevel())){
List<Long> allRoleId = roleList.stream().map(CRoleVo.AllRole::getId).collect(Collectors.toList());
roleIds.addAll(allRoleId);
}else{
roleIds.add(param.getRoleId());
}
}
}
//TODO 季度未实现
List<CTaskVo.QueryTask> regularTask = taskDetailDao.queryRegularTask(param.getRoleId(), param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
List<CTaskVo.QueryTask> regularTask = taskDetailDao.queryRegularTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
//如果该时段没有任务向上或向下补充
if (CollectionUtil.isEmpty(regularTask)) {
List<CTaskVo.QueryTask> replenishTask = taskDetailDao.continueQueryTask(param.getRoleId(), param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
List<CTaskVo.QueryTask> replenishTask = taskDetailDao.continueQueryTask(roleIds, param.getTimeUnit(), param.getTimeNode(), param.getQueryType(), query, timeFormat);
Map<String, List<CTaskVo.QueryTask>> taskMap = replenishTask.stream().collect(Collectors.groupingBy(task -> new SimpleDateFormat("yyyy-MM-dd").format(new Date(task.getPlanStart()))));
List<String> mapOfKey = new ArrayList<>();
taskMap.forEach((key, val) -> mapOfKey.add(key));
@ -422,4 +469,70 @@ public class TaskService implements ITaskService {
taskStatusRecord.setUpdateStatusTime(now);
taskStatusRecordMapper.insertSelective(taskStatusRecord);
}
/**
* 修改任务的真实开始时间
* @param taskSubId 分解任务id
* @param statusOfUpdate 修改的状态(0-开始时间,1-结束时间)
*/
public void updateTaskStartTime(Long taskSubId,Byte statusOfUpdate){
ProTaskSub proTaskSub = taskSubDao.selectByPrimaryKey(taskSubId);
if (ObjectUtil.isNull(proTaskSub)){
throw new BaseException(CommonCodeError.TASK_SUB_NOT_FOUND);
}
Long taskDetailId = proTaskSub.getTaskDetailId();
Long realTime = 0L;
if (0 == statusOfUpdate){
realTime = proTaskSub.getRealStartTime();
}
if (1 == statusOfUpdate){
realTime = proTaskSub.getRealEndTime();
}
findNextTask(taskDetailId,statusOfUpdate,realTime,proTaskSub.getPlanStartTime());
}
/**
*
* @param taskDetailId 任务详情id
* @param statusOfUpdate 开始还是结束
*/
private void findNextTask(Long taskDetailId,Byte statusOfUpdate,Long realTime,Long planTime){
List<ProTaskProcess> taskProcessList = taskProcessDao.findNextTaskByDetailId(taskDetailId,statusOfUpdate);
if (CollectionUtil.isNotEmpty(taskProcessList)){
for (ProTaskProcess proTaskProcess : taskProcessList) {
if (0 == statusOfUpdate){
Long oldPlanStartTime = 0L;
ProTaskSub taskSub = taskSubDao.findNextTaskSub(proTaskProcess.getNextTaskDetailId(),planTime);
if (1 == proTaskProcess.getProcessType()){
oldPlanStartTime = taskSub.getPlanStartTime();
taskSub.setPlanStartTime(realTime);
taskSubDao.updateByPrimaryKeySelective(taskSub);
}
if (2 == proTaskProcess.getProcessType()){
oldPlanStartTime = taskSub.getPlanStartTime();
taskSub.setPlanStartTime(realTime+proTaskProcess.getTimeDifference());
taskSubDao.updateByPrimaryKeySelective(taskSub);
}
findNextTask(taskSub.getTaskDetailId(),statusOfUpdate,taskSub.getPlanStartTime(),oldPlanStartTime);
}
if (1 == statusOfUpdate){
Long oldPlanEndTime = 0L;
ProTaskSub taskSub = taskSubDao.findNextTaskSub(proTaskProcess.getNextTaskDetailId(), planTime);
if (4 == proTaskProcess.getProcessType()){
oldPlanEndTime = taskSub.getPlanEndTime();
taskSub.setPlanStartTime(realTime);
taskSubDao.updateByPrimaryKeySelective(taskSub);
}
if (5 == proTaskProcess.getProcessType()){
oldPlanEndTime = taskSub.getPlanEndTime();
taskSub.setPlanStartTime(realTime+proTaskProcess.getTimeDifference());
taskSubDao.updateByPrimaryKeySelective(taskSub);
}
findNextTask(taskSub.getTaskDetailId(),statusOfUpdate,taskSub.getPlanEndTime(),oldPlanEndTime);
}
}
}
}
}

1
common/src/main/java/com/ccsens/common/util/CommonCodeError.java

@ -13,5 +13,6 @@ public class CommonCodeError extends CodeError {
public static final Code ROLE_ERROR = new Code(4,"角色信息错误!", true);
public static final Code OPERATION_ERROR = new Code(5,"请选择正确的操作!", true);
public static final Code PROJECT_NOT_FOUND = new Code(6,"项目不存在,请检查后再试!", true);
public static final Code TASK_SUB_NOT_FOUND = new Code(6,"分解任务不存在,请检查后再试!", true);
}

12
common/src/main/java/com/ccsens/common/util/Constant.java

@ -56,4 +56,16 @@ public class Constant {
/**修改任务状态*/
public static final String TASK_STATUS = "taskStatus";
}
public enum ROLE_LEVEL {
MEMBER((byte)0,"项目成员"),PM((byte)1,"项目经理"),STAKEHOLDER((byte)2,"干系人"),PIPE((byte)3,"管带")
,GOD((byte)4,"上帝");
public Byte value;
public String phase;
ROLE_LEVEL(Byte value,String thePhase){
this.value =value;
this.phase = thePhase;
}
}
}

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

@ -84,4 +84,43 @@
AND project_id = #{projectId}
</select>
<select id="findByNameAndProjectId" resultType="com.ccsens.common.bean.po.ProRole">
SELECT
id,
`name`,
label_id,
project_id,
operator
FROM
t_pro_role AS r
WHERE
rec_status = 0
AND `name` LIKE concat('%',#{roleName},'%')
AND project_id = #{projectId}
</select>
<select id="findAllRoleById" resultType="com.ccsens.common.bean.vo.CRoleVo$AllRole">
SELECT
r.id,
r.`name`,
r.label_id,
r.project_id,
r.operator,
l.description,
l.`level`
FROM
t_pro_role AS r LEFT JOIN t_label AS l ON r.label_id = l.id
WHERE
r.rec_status = 0 AND l.rec_status = 0 AND
project_id = (
SELECT
project_id
FROM
t_pro_role
WHERE
rec_status = 0
AND id = #{roleId}
)
</select>
</mapper>

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

@ -76,7 +76,10 @@
AND lt.label_type = 1
AND ts.plan_start_time = 0
AND ts.plan_duration = 0
AND rt.role_id = #{roleId}
AND rt.role_id IN
<foreach collection="roleIdList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
ORDER BY ts.plan_start_time
</select>
@ -128,7 +131,10 @@
AND lt.label_type = 1
AND ts.plan_start_time != 0
AND ts.plan_duration != 0
AND rt.role_id = #{roleId}
AND rt.role_id IN
<foreach collection="roleIdList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
AND ts.plan_start_time &lt;= #{timeNode}
AND ts.plan_end_time &gt;= #{timeNode}
) AS alltask
@ -142,7 +148,7 @@
AND lltt.label_type = 0
AND llbb.business_type = 0
AND ll.`level` >= #{timeUnit}
ORDER BY ts.plan_start_time
ORDER BY alltask.planStart
</select>
<select id="queryRegularTask" resultMap="queryTask">
@ -191,7 +197,10 @@
AND lt.label_type = 1
AND ts.plan_start_time != 0
AND ts.plan_duration != 0
AND rt.role_id = #{roleId}
AND rt.role_id IN
<foreach collection="roleIdList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="queryType==0 and timeUnit != 7">
AND FROM_UNIXTIME(plan_start_time/1000,#{timeFormat}) &lt;= FROM_UNIXTIME((#{timeNode}-86400000)/1000,#{timeFormat})
AND FROM_UNIXTIME(plan_start_time/1000,#{timeFormat}) &gt;= DATE_ADD(FROM_UNIXTIME(#{timeNode}/1000,#{timeFormat}),${query})
@ -268,7 +277,10 @@
AND lt.label_type = 1
AND ts.plan_start_time != 0
AND ts.plan_duration != 0
AND rt.role_id = #{roleId}
AND rt.role_id IN
<foreach collection="roleIdList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="queryType==0 and timeUnit != 7">
AND FROM_UNIXTIME(ts.plan_start_time / 1000 ,#{timeFormat}) &lt;= FROM_UNIXTIME((#{timeNode}-86400000)/ 1000 ,#{timeFormat})
</if>

20
common/src/main/resources/mapper_dao/ProTaskProcessDao.xml

@ -33,4 +33,24 @@
</foreach>
</select>
<select id="findNextTaskByDetailId" resultType="com.ccsens.common.bean.po.ProTaskProcess">
SELECT
id,
task_detail_id,
next_task_detail_id,
process_type,
time_difference
FROM
t_pro_task_process
WHERE
rec_status = 0
AND task_detail_id = #{taskDetailId}
<if test="statusOfUpdate==0">
AND process_type IN (1,2)
</if>
<if test="statusOfUpdate==1">
AND process_type IN (4,5)
</if>
</select>
</mapper>

23
common/src/main/resources/mapper_dao/ProTaskSubDao.xml

@ -29,4 +29,27 @@
rec_status = 0
AND task_detail_id = #{id}
</select>
<select id="findNextTaskSub" resultType="com.ccsens.common.bean.po.ProTaskSub">
SELECT
s.id,
s.plan_start_time,
s.plan_duration,
s.plan_end_time,
s.real_start_time,
s.real_duration,
s.real_end_time,
s.task_detail_id
FROM
t_pro_task_detail AS d
LEFT JOIN t_pro_task_sub AS s ON d.id = s.task_detail_id
WHERE
d.rec_status = 0
AND s.rec_status = 0
AND s.task_status = 0
AND d.id = #{nextTaskDetailId}
AND s.plan_start_time &gt;= #{planTime}
LIMIT 1
</select>
</mapper>
Loading…
Cancel
Save