diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java index 64b7caea..57ccc427 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java @@ -105,4 +105,13 @@ public class RoleDto { @ApiModelProperty("角色id") private Long roleId; } + + @Data + @ApiModel("对谁不可见") + public static class RoleOfNoLook { + @ApiModelProperty("角色id") + private Long roleId; + @ApiModelProperty("不可见角色id(数组)") + private List noRoleId; + } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java index 8a8a13ba..8dacaa85 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java @@ -42,6 +42,8 @@ public class ProShow implements Serializable { private Byte roleBelong; + private Byte milestoneSubtask; + private static final long serialVersionUID = 1L; public Long getId() { @@ -196,6 +198,14 @@ public class ProShow implements Serializable { this.roleBelong = roleBelong; } + public Byte getMilestoneSubtask() { + return milestoneSubtask; + } + + public void setMilestoneSubtask(Byte milestoneSubtask) { + this.milestoneSubtask = milestoneSubtask; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -221,6 +231,7 @@ public class ProShow implements Serializable { sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); sb.append(", roleBelong=").append(roleBelong); + sb.append(", milestoneSubtask=").append(milestoneSubtask); sb.append("]"); return sb.toString(); } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java index 59f56608..7383b642 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java @@ -1274,6 +1274,66 @@ public class ProShowExample { addCriterion("role_belong not between", value1, value2, "roleBelong"); return (Criteria) this; } + + public Criteria andMilestoneSubtaskIsNull() { + addCriterion("milestone_subtask is null"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskIsNotNull() { + addCriterion("milestone_subtask is not null"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskEqualTo(Byte value) { + addCriterion("milestone_subtask =", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskNotEqualTo(Byte value) { + addCriterion("milestone_subtask <>", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskGreaterThan(Byte value) { + addCriterion("milestone_subtask >", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskGreaterThanOrEqualTo(Byte value) { + addCriterion("milestone_subtask >=", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskLessThan(Byte value) { + addCriterion("milestone_subtask <", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskLessThanOrEqualTo(Byte value) { + addCriterion("milestone_subtask <=", value, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskIn(List values) { + addCriterion("milestone_subtask in", values, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskNotIn(List values) { + addCriterion("milestone_subtask not in", values, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskBetween(Byte value1, Byte value2) { + addCriterion("milestone_subtask between", value1, value2, "milestoneSubtask"); + return (Criteria) this; + } + + public Criteria andMilestoneSubtaskNotBetween(Byte value1, Byte value2) { + addCriterion("milestone_subtask not between", value1, value2, "milestoneSubtask"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java index 93a0cc16..6b052c17 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java @@ -185,6 +185,8 @@ public class ProjectVo { private String relevanceProjectName; @ApiModelProperty("成员信息") private List members; + @ApiModelProperty("对谁不可见") + private List roleOfNoLook = new ArrayList<>(); @JsonIgnore private Long parentId; //一级角色Id @JsonIgnore @@ -194,6 +196,14 @@ public class ProjectVo { } @ApiModel @Data + public static class RolesOfNoLook{ + @ApiModelProperty("不可见角色id") + private Long id; + @ApiModelProperty("不可见角色名称") + private String name; + } + @ApiModel + @Data public static class ProMemberVo{ @JsonIgnore private Long mUserId;//成员的userId 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 ef73c024..33fd1b2e 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 @@ -73,6 +73,8 @@ public class TaskVo { private Byte routineLocation; @ApiModelProperty("入参") private String importParam; + @ApiModelProperty("任务配置") + private ProTaskShow proTaskConfig = new ProTaskShow(); public Long getDuration(){ if(ObjectUtil.isNotNull(beginTime) && ObjectUtil.isNotNull(endTime)) { return endTime - beginTime; @@ -101,6 +103,10 @@ public class TaskVo { private Long executorRole; @ApiModelProperty("负责人名称") private String executorRoleName; + @ApiModelProperty("检查人Id") + private Long checkerRole; + @ApiModelProperty("检查人名称") + private String checkerRoleName; @ApiModelProperty("开始时间") private Long beginTime; @ApiModelProperty("结束时间") 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 d2ed5e45..ce1f6005 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 @@ -144,6 +144,8 @@ public class UserVo { private Date createdAt; @ApiModelProperty("空间使用情况") private Interspace interspace; + @ApiModelProperty("WxInfo") + private WxInfo wxInfo; @ApiModelProperty("标签信息") private List labelList; } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java index b6428736..24a14f76 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java @@ -121,6 +121,15 @@ public interface ProRoleDao extends ProRoleMapper{ */ List selectMemberOfRole(Long roleId); + /** + * 根据角色id查询不可见角色列表 + * @param roleId 二级角色id + * @return 不可见角色list + */ + List selectRoleOfNoLook(Long roleId); + + + // /** // * 查找项目下的所有成员的名字用“,”分隔 diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/SysUserDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/SysUserDao.java index 344526b9..c6b688e7 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/SysUserDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/SysUserDao.java @@ -61,4 +61,11 @@ public interface SysUserDao extends SysUserMapper { * @return */ UserVo.TokenBean getTokenBeanByUserId(Long userId); + + /** + * 查找用户wxInfo中的信息 + * @param currentUserId 当前用户id + * @return UserVo.WxInfo + */ + UserVo.WxInfo selectWxInfo(@Param("userId") Long currentUserId); } 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 a453054a..42342ca2 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 @@ -40,4 +40,11 @@ public interface TaskDeliverDao extends ProTaskDeliverMapper{ * @return */ List selectOutputDocByTaskId(Long taskId); + + /** + * 根据交付物id 查询出当前项目的项目经理 + * @param deliverId 交付物id + * @return 项目经理的id + */ + List selectPMIdByDeliverId(Long deliverId); } 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 c104d575..b451322d 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 @@ -72,6 +72,10 @@ public interface TaskDetailDao extends ProTaskDetailMapper { */ List queryLwbsByProjectId(@Param("projectId")Long projectId, @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId); - - + /** + * 通过任务详情id查询项目下的经理角色id + * @param id 任务详情id + * @return 项目经理id + */ + Long selectPmByTaskId(Long id); } 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 af736db7..a6fd520a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java @@ -40,7 +40,7 @@ public interface IProRoleService { void deleteRoleByProjectId(Long projectId) throws Exception; - RoleVo.RoleByProjectId saveRole(Long currentUserId, RoleDto.SaveRole saveRole) throws Exception; + ProjectVo.RoleInfo saveRole(Long currentUserId, RoleDto.SaveRole saveRole) throws Exception; ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole) throws Exception; @@ -79,4 +79,11 @@ public interface IProRoleService { void queryRoleIsShows(QueryDto param); void upRoleShowsOrder(QueryDto param); + + /** + * 角色管理:修改对谁不可见 + * @param param 参数 + * @param userId 当前用户id + */ + void upRoleWhoNoLook(RoleDto.RoleOfNoLook param, Long userId); } diff --git a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java index 7215d756..23b17604 100644 --- a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java +++ b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java @@ -59,6 +59,8 @@ public class InputDocService implements IInputDocService { private ProDeliverHistoryRecordDao deliverHistoryRecordDao; @Resource private IProMemberService iProMemberService; + @Resource + private TaskDeliverService taskDeliverService; // @@ -222,8 +224,10 @@ public class InputDocService implements IInputDocService { */ @Override public List findDocByTask(InputDocDto.FindDocByTask param) { + //判断传入的是任务详情id还是分解id,返回分解id + Long taskId = taskDeliverService.isTaskOrSubTime(param.getTaskId()); //查询任务分解后 - ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(param.getTaskId()); + ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(taskId); if(ObjectUtil.isNull(proTaskSubTime)){ throw new BaseException(CodeEnum.NOT_TASK); } 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 0b3a440c..96d660d6 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -251,6 +251,14 @@ public class ProRoleService implements IProRoleService { private List getRealMemberRolesShowByProjectIdAll(Long projectId, Long currentUserId) { List memberRoleList; memberRoleList = proRoleDao.selectSecondRolesByProjectId(projectId); + //查找对谁不可见 + for (ProjectVo.RoleInfo roleInfo : memberRoleList) { + List noLookList = proRoleDao.selectRoleOfNoLook(roleInfo.getId()); + if (CollectionUtil.isNotEmpty(noLookList)){ + roleInfo.getRoleOfNoLook().addAll(noLookList); + } + } + return memberRoleList; } @@ -599,7 +607,7 @@ public class ProRoleService implements IProRoleService { @Override - public RoleVo.RoleByProjectId saveRole(Long currentUserId, RoleDto.SaveRole saveRole) throws Exception { + public ProjectVo.RoleInfo saveRole(Long currentUserId, RoleDto.SaveRole saveRole) throws Exception { //检查操作者的权限 int power = selectPowerByRoleName(currentUserId, saveRole.getProjectId()); if (power < 2) { @@ -626,7 +634,8 @@ public class ProRoleService implements IProRoleService { //发送系统消息 robotService.addRoleRobotSend(currentUserId,saveRole.getProjectId(),saveRole.getRoleName(),roleInfo.getRoleId()); - return roleInfo; +// getRoleInfoByRoleId(role.getId()); + return getRoleInfoByRoleId(role.getId()); } @Override @@ -772,6 +781,16 @@ public class ProRoleService implements IProRoleService { if (ObjectUtil.isNull(project)) { throw new BaseException(CodeEnum.NOT_PROJECT); } + //查找项目配置 + String milestone = ""; + ProShowExample proShowExample = new ProShowExample(); + proShowExample.createCriteria().andProjectIdEqualTo(projectId.getProjectId()); + List proShows = proShowDao.selectByExample(proShowExample); + if (CollectionUtil.isNotEmpty(proShows)){ + Byte milestoneSubtask = proShows.get(0).getMilestoneSubtask(); + milestone = milestoneSubtask == 0 ? "里程碑":null; + } + long beginTime = projectId.getStartTime() == null ? project.getBeginTime() : projectId.getStartTime(); long endTime = projectId.getEndTime() == null ? project.getEndTime() : projectId.getEndTime(); //1、查找一级任务 @@ -782,6 +801,7 @@ public class ProRoleService implements IProRoleService { List firstTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample); log.info("查找到一级任务:{}", firstTaskDetailList); if (CollectionUtil.isNotEmpty(firstTaskDetailList)) { + String finalMilestone = milestone; firstTaskDetailList.forEach(firstTaskDetail -> { int sequence = 1; TaskVo.NormalTask normalTask = new TaskVo.NormalTask(); @@ -789,7 +809,7 @@ public class ProRoleService implements IProRoleService { normalTask.setDetailId(firstTaskDetail.getId()); normalTask.setSequence(sequence); - List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), "里程碑",beginTime,endTime); + List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), finalMilestone,beginTime,endTime); List secondList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(secondTaskList)) { secondTaskList.forEach(secondTask -> { @@ -1012,7 +1032,7 @@ public class ProRoleService implements IProRoleService { */ @Override public void upRoleShowsOrder(QueryDto param) { - if(ObjectUtil.isNull(param.getParam().getRoleIds()) || param.getParam().getRoleIds().size()<=1){ + if(ObjectUtil.isNull(param.getParam().getRoleIds())){ throw new BaseException(CodeEnum.ZUISHAOCHUANLIANGE); } @@ -1115,4 +1135,45 @@ public class ProRoleService implements IProRoleService { } return memberId; } + + /** + * 修改对谁不可见 + * @param param 参数 + * @param userId 当前用户id + */ + @Override + public void upRoleWhoNoLook(RoleDto.RoleOfNoLook param, Long userId) { + ProRole proRole = proRoleDao.selectByPrimaryKey(param.getRoleId()); + if (ObjectUtil.isNotNull(proRole)){ + //用户在项目中的最高权限 + int power = selectPowerByRoleName(userId, proRole.getProjectId()); + if (2 < power){ + //删除之前的记录 + ProRoleExcludeExample excludeExample = new ProRoleExcludeExample(); + excludeExample.createCriteria().andRoleIdEqualTo(param.getRoleId()).andRecStatusEqualTo((byte)0); + List proRoleExcludes = proRoleExcludeMapper.selectByExample(excludeExample); + if (CollectionUtil.isNotEmpty(proRoleExcludes)){ + for (ProRoleExclude proRoleExclude : proRoleExcludes) { + ProRoleExclude oldExclude = new ProRoleExclude(); + oldExclude.setId(proRoleExclude.getId()); + oldExclude.setRecStatus((byte)2); + proRoleExcludeMapper.updateByExampleSelective(oldExclude,excludeExample); + } + } + + //添加新数据 + for (Long noRoleId : param.getNoRoleId()) { + ProRoleExclude roleExclude = new ProRoleExclude(); + roleExclude.setId(snowflake.nextId()); + roleExclude.setRoleId(param.getRoleId()); + roleExclude.setOtherRoleId(noRoleId); + proRoleExcludeMapper.insertSelective(roleExclude); + } + }else{ + throw new BaseException(CodeEnum.NOT_POWER); + } + } + + } + } 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 0cb77114..266e61a9 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java @@ -109,11 +109,11 @@ public class ProTaskDetailService implements IProTaskDetailService { taskInfoByRoleId.setEndTime(taskInfoByRoleId.getEndTime() == null ? sysProject.getEndTime() : taskInfoByRoleId.getEndTime()); Object obj = null; - ProRole role = proRoleDao.selectByPrimaryKey(taskInfoByRoleId.getRoleId()); + ProRole role = proRoleDao.selectByPrimaryKey(taskInfoByRoleId.getRoleId()); //查到了项目下的角色信息 if (ObjectUtil.isNull(role)) { throw new BaseException(CodeEnum.NOT_ROLE); } - ProRole parentRole = proRoleDao.selectByPrimaryKey(role.getParentId()); + ProRole parentRole = proRoleDao.selectByPrimaryKey(role.getParentId()); //查到了项目下的父角色信息 if (ObjectUtil.isNull(parentRole)) { throw new BaseException(CodeEnum.NOT_ROLE); } @@ -348,6 +348,19 @@ public class ProTaskDetailService implements IProTaskDetailService { if (CollectionUtil.isNotEmpty(secondTaskVoList)) { for (TaskVo.NormalTask normalTask : secondTaskVoList) { + + //通过角色id查找 负责人名称 检查人名称 + Long executorRole = normalTask.getExecutorRole(); + ProRole executor = proRoleDao.selectByPrimaryKey(executorRole); + if(ObjectUtil.isNotNull(executor)){ + normalTask.setExecutorRoleName(executor.getName()); + } + Long checkerRole = normalTask.getCheckerRole(); + ProRole checker = proRoleDao.selectByPrimaryKey(checkerRole); + if(ObjectUtil.isNotNull(checker)){ + normalTask.setCheckerRoleName(checker.getName()); + } + //处理插件 managePlugin(currentUserId, roleId, normalTask, imitation); //任务完成状态 @@ -418,6 +431,20 @@ public class ProTaskDetailService implements IProTaskDetailService { // normalTask.setScore(score); // } // } + //通过角色id查找 负责人名称 检查人名称 + Long executorRole = normalTask.getExecutorRole(); + ProRole executor = proRoleDao.selectByPrimaryKey(executorRole); + if(ObjectUtil.isNotNull(executor)){ + normalTask.setExecutorRoleName(executor.getName()); + } + + Long checkerRole = normalTask.getCheckerRole(); + ProRole checker = proRoleDao.selectByPrimaryKey(checkerRole); + if(ObjectUtil.isNotNull(checker)) { + normalTask.setExecutorRoleName(checker.getName()); + } + + //处理插件 managePlugin(currentUserId, roleId, normalTask, imitation); //任务完成状态 @@ -784,17 +811,30 @@ public class ProTaskDetailService implements IProTaskDetailService { taskDetail.setSecondTasks(new ArrayList<>()); taskDetail.getSecondTasks().addAll(groupTaskList); } + //查询此任务下的输入文档 + List inputDocInfos = proTaskInputDocDao.selectDocByTaskId(taskDetail.getDetailId()); + if (CollectionUtil.isNotEmpty(inputDocInfos)){ + taskDetail.setInputDoc(inputDocInfos); + } + //查询此任务下的输出文档 + List outputDocInfos = taskDeliverDao.selectOutputDocByTaskId(taskDetail.getDetailId()); + if (CollectionUtil.isNotEmpty(outputDocInfos)){ + taskDetail.setOutputDoc(outputDocInfos); + } + //设置检查人 + ProRole checkRole = proRoleDao.selectByPrimaryKey(task.getCheckerRole()); + if (ObjectUtil.isNotNull(checkRole)){ + taskDetail.setCheckerRole(checkRole.getId()); + taskDetail.setCheckerRoleName(checkRole.getName()); + }else{ + //根据任务id查询项目下项目经理 + Long pmId = taskDetailDao.selectPmByTaskId(task.getId()); + ProRole proRole = proRoleDao.selectByPrimaryKey(pmId); + taskDetail.setCheckerRole(proRole.getId()); + taskDetail.setCheckerRoleName(proRole.getName()); + } } - //查询此任务下的输入文档 - List inputDocInfos = proTaskInputDocDao.selectDocByTaskId(taskDetail.getDetailId()); - if (CollectionUtil.isNotEmpty(inputDocInfos)){ - taskDetail.setInputDoc(inputDocInfos); - } - //查询此任务下的输出文档 - List outputDocInfos = taskDeliverDao.selectOutputDocByTaskId(taskDetail.getDetailId()); - if (CollectionUtil.isNotEmpty(outputDocInfos)){ - taskDetail.setOutputDoc(outputDocInfos); - } + return taskDetail; } 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 fb10ea91..fd1b7ff2 100644 --- a/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java +++ b/tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java @@ -248,6 +248,19 @@ public class TaskDeliverService implements ITaskDeliverService { postLogCheckerDao.insertSelective(postLogChecker); } } else { + //不选择检查人,检查人默认为项目经理 + //查找此项目下的项目经理 +// List pmIds = taskDeliverDao.selectPMIdByDeliverId(uploadDeliver.getDeliverId()); +// if (CollectionUtil.isNotEmpty(pmIds)){ +// for (Long pmId : pmIds) { +// ProTaskDeliverPostLogChecker postLogChecker=new ProTaskDeliverPostLogChecker(); +// postLogChecker.setId(snowflake.nextId()); +// postLogChecker.setDeliverPostLogId(deliverPostLog.getId()); +// postLogChecker.setCheckerId(pmId); +// //将经理id放入检查人list中,发送消息 +// uploadDeliver.getCheckerIdList().add(pmId); +// } +// } throw new BaseException(CodeEnum.NOT_CHECKER); } //修改交付物状态 @@ -308,7 +321,7 @@ public class TaskDeliverService implements ITaskDeliverService { data.setDeliverId(taskDeliver.getId()); data.setDeliverName(taskDeliver.getName()); data.setRoleId(roleId); - data.setTaskId(taskDetail.getId()); + data.setTaskId(uploadDeliver.getTaskId()); data.setUploader(currentUserId); data.setUploadTime(now); data.setFile(uploadDeliver.getFileInfo()); @@ -798,7 +811,7 @@ public class TaskDeliverService implements ITaskDeliverService { } else { checkerDtoData.setRoleId(task.getExecutorRole()); } - checkerDtoData.setTaskId(task.getId()); + checkerDtoData.setTaskId(checkDeliver.getTaskId()); checkerDtoData.setDeliverId(deliver.getId()); checkerDtoData.setDeliverName(deliver.getName()); if(ObjectUtil.isNotNull(checkRole)) { @@ -1105,8 +1118,9 @@ public class TaskDeliverService implements ITaskDeliverService { */ @Override public List queryDeliverByTaskId(Long currentUserId, Long taskId) { + Long taskOrSubTime = isTaskOrSubTime(taskId); //查询分解后的任务 - ProTaskSubTime taskSubTime = taskSubTimeDao.selectByPrimaryKey(taskId); + ProTaskSubTime taskSubTime = taskSubTimeDao.selectByPrimaryKey(taskOrSubTime); if(ObjectUtil.isNull(taskSubTime)){ throw new BaseException(CodeEnum.NOT_TASK); } diff --git a/tall/src/main/java/com/ccsens/tall/service/UserInfoService.java b/tall/src/main/java/com/ccsens/tall/service/UserInfoService.java index dda619fb..1cd54e20 100644 --- a/tall/src/main/java/com/ccsens/tall/service/UserInfoService.java +++ b/tall/src/main/java/com/ccsens/tall/service/UserInfoService.java @@ -126,6 +126,7 @@ public class UserInfoService implements IUserInfoService{ sysUserExample.createCriteria().andNicknameEqualTo(updateNickname.getNickname()); List userList = sysUserDao.selectByExample(sysUserExample); if(CollectionUtil.isNotEmpty(userList)){ + redisUtil.del(nicknameKey); throw new BaseException(CodeEnum.NICKNAME_REPEAT); } SysUser user = sysUserDao.selectByPrimaryKey(userId); @@ -194,6 +195,9 @@ public class UserInfoService implements IUserInfoService{ //获取空间使用信息 UserVo.Interspace interspace = sysUserDao.selectInterspace(currentUserId); selectUserInfo.setInterspace(interspace); + //封装wxInfo + UserVo.WxInfo wxInfo = sysUserDao.selectWxInfo(currentUserId); + selectUserInfo.setWxInfo(wxInfo); } return selectUserInfo; diff --git a/tall/src/main/java/com/ccsens/tall/web/RoleController.java b/tall/src/main/java/com/ccsens/tall/web/RoleController.java index 5b9fe80a..e2b7c9ee 100644 --- a/tall/src/main/java/com/ccsens/tall/web/RoleController.java +++ b/tall/src/main/java/com/ccsens/tall/web/RoleController.java @@ -53,10 +53,10 @@ public class RoleController { @ApiImplicitParams({ }) @RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse saveRole(HttpServletRequest request, + public JsonResponse saveRole(HttpServletRequest request, @ApiParam @Validated @RequestBody RoleDto.SaveRole saveRole) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); - RoleVo.RoleByProjectId roleInfo = proRoleService.saveRole(currentUserId,saveRole); + ProjectVo.RoleInfo roleInfo = proRoleService.saveRole(currentUserId,saveRole); return JsonResponse.newInstance().ok(roleInfo); } @@ -163,4 +163,13 @@ public class RoleController { List roleInfoList = proRoleService.getRolesByProjectIdAndUserId(projectId, currentUserId,imitation,queryType); return JsonResponse.newInstance().ok(roleInfoList); } + + @MustLoginTall + @ApiOperation(value = "角色管理:修改对谁不可见",notes = "") + @RequestMapping(value = "/upRoleWhoNoLook", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse upRoleWhoNoLook(@ApiParam @Validated @RequestBody QueryDto params){ + log.info("传入参数:{}", params); + proRoleService.upRoleWhoNoLook(params.getParam(),params.getUserId()); + return JsonResponse.newInstance().ok(); + } } diff --git a/tall/src/main/resources/application-dev.yml b/tall/src/main/resources/application-dev.yml index 162cf7f7..e8f64049 100644 --- a/tall/src/main/resources/application-dev.yml +++ b/tall/src/main/resources/application-dev.yml @@ -47,4 +47,6 @@ project: redisUpdate: 0 redisUpdateUrl: http://localhost:8001/constant/updateAll/ filedeal: https://test.tall.wiki/filedeal/file/query + # 0测试 1生产 + wx_h5: 0 diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index b5408a3a..ebc544af 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: dev - include: util-dev,common + active: test + include: util-test,common diff --git a/tall/src/main/resources/mapper_dao/DeliverDao.xml b/tall/src/main/resources/mapper_dao/DeliverDao.xml index f7aa0c79..c075bad6 100644 --- a/tall/src/main/resources/mapper_dao/DeliverDao.xml +++ b/tall/src/main/resources/mapper_dao/DeliverDao.xml @@ -300,4 +300,38 @@ WHERE ptd.task_detail_id = #{taskId} + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml b/tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml index a621ce5c..d175f149 100644 --- a/tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml +++ b/tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml @@ -14,12 +14,14 @@ pdhr.content AS content, pm.id AS memberId, pm.nickname AS memberName, - pdhr.history_remark AS historyRemark + pdhr.history_remark AS historyRemark, + tid.name AS deliverName FROM t_pro_deliver_history_record AS pdhr LEFT JOIN t_pro_role AS pr ON pdhr.role_id = pr.id and pr.rec_status = 0 LEFT JOIN t_pro_task_input_record AS ptir ON ptir.id = pdhr.deliver_record_id LEFT JOIN t_pro_member AS pm ON pm.id = pdhr.member_id and pm.rec_status = 0 + LEFT JOIN t_pro_task_input_doc AS tid ON tid.id = pdhr.deliver_id WHERE pdhr.deliver_id = #{deliverId} and pdhr.rec_status = 0 @@ -37,12 +39,15 @@ pdhr.created_at AS createAt, pdhr.content AS content, pm.id AS memberId, - pm.nickname AS memberName + pm.nickname AS memberName, + pdhr.history_remark AS historyRemark, + tid.name AS deliverName FROM t_pro_deliver_history_record AS pdhr LEFT JOIN t_pro_role AS pr ON pdhr.role_id = pr.id and pr.rec_status = 0 LEFT JOIN t_pro_task_deliver_post_log AS ptdpl ON ptdpl.id = pdhr.deliver_record_id LEFT JOIN t_pro_member AS pm ON pm.id = pdhr.member_id and pm.rec_status = 0 + LEFT JOIN t_pro_task_deliver AS tid ON tid.id = pdhr.deliver_id WHERE pdhr.deliver_id = #{deliverId} and pdhr.rec_status = 0 diff --git a/tall/src/main/resources/mapper_dao/ProRoleDao.xml b/tall/src/main/resources/mapper_dao/ProRoleDao.xml index 184f860a..1b2cd0ca 100644 --- a/tall/src/main/resources/mapper_dao/ProRoleDao.xml +++ b/tall/src/main/resources/mapper_dao/ProRoleDao.xml @@ -70,28 +70,28 @@ @@ -445,4 +445,23 @@ pmr.role_id = #{roleId} AND pmr.rec_status = 0 + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/SysOperationDao.xml b/tall/src/main/resources/mapper_dao/SysOperationDao.xml index 6aeae11f..aaf74a30 100644 --- a/tall/src/main/resources/mapper_dao/SysOperationDao.xml +++ b/tall/src/main/resources/mapper_dao/SysOperationDao.xml @@ -85,10 +85,12 @@ t_sys_operation o WHERE o.rec_status = 0 + and o.project_id in #{id} + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_dao/SysUserDao.xml b/tall/src/main/resources/mapper_dao/SysUserDao.xml index d917ade3..c884fb86 100644 --- a/tall/src/main/resources/mapper_dao/SysUserDao.xml +++ b/tall/src/main/resources/mapper_dao/SysUserDao.xml @@ -198,4 +198,19 @@ AND rec_status = 0 + + \ 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 e8cdbddd..f991ca6b 100644 --- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml @@ -22,6 +22,7 @@ + @@ -74,6 +75,7 @@ d.project_id as tProjectId, d.description as tDescription, d.executor_role as tExecutorRole, + d.checker_role as checkerRole, s.begin_time as tBeginTime, s.end_time as tEndTime, d.cycle as tCycle, @@ -130,7 +132,7 @@ AND (c.place_location = 0 or c.id is null) group by s.task_detail_id,sp.id - )t + ) t GROUP BY t.tSubTimeId order by @@ -537,7 +539,8 @@ t.executor_role as executorRole, (SELECT `name` FROM t_pro_role WHERE id = t.executor_role) as executorRoleName, d.id as deliverId, - d.`name` as deliverName + d.`name` as deliverName, + t.priority AS priority FROM t_pro_task_detail t LEFT JOIN t_pro_task_deliver d on t.id = d.task_detail_id @@ -725,4 +728,29 @@ + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_raw/ProRoleMapper.xml b/tall/src/main/resources/mapper_raw/ProRoleMapper.xml index 489aa8c5..1e28879b 100644 --- a/tall/src/main/resources/mapper_raw/ProRoleMapper.xml +++ b/tall/src/main/resources/mapper_raw/ProRoleMapper.xml @@ -86,7 +86,7 @@ - order by ${orderByClause} + order by ${orderByClause} select @@ -122,14 +123,14 @@ show_shortcuts, select_task_type, detail_path, pims_nav_type, share_change, share_change_code, created_at, updated_at, rec_status, - role_belong) + role_belong, milestone_subtask) values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{slide,jdbcType=TINYINT}, #{filter,jdbcType=TINYINT}, #{isShowMvp,jdbcType=TINYINT}, #{style,jdbcType=TINYINT}, #{createTask,jdbcType=TINYINT}, #{timeShow,jdbcType=VARCHAR}, #{duration,jdbcType=TINYINT}, #{showShortcuts,jdbcType=TINYINT}, #{selectTaskType,jdbcType=TINYINT}, #{detailPath,jdbcType=VARCHAR}, #{pimsNavType,jdbcType=TINYINT}, #{shareChange,jdbcType=TINYINT}, #{shareChangeCode,jdbcType=VARCHAR}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}, - #{roleBelong,jdbcType=TINYINT}) + #{roleBelong,jdbcType=TINYINT}, #{milestoneSubtask,jdbcType=TINYINT}) insert into t_pro_show @@ -191,6 +192,9 @@ role_belong, + + milestone_subtask, + @@ -250,6 +254,9 @@ #{roleBelong,jdbcType=TINYINT}, + + #{milestoneSubtask,jdbcType=TINYINT}, +