Browse Source

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

recovery
zhizhi wu 4 years ago
parent
commit
5927000112
  1. 9
      tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java
  2. 11
      tall/src/main/java/com/ccsens/tall/bean/po/ProShow.java
  3. 60
      tall/src/main/java/com/ccsens/tall/bean/po/ProShowExample.java
  4. 10
      tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java
  5. 6
      tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java
  6. 2
      tall/src/main/java/com/ccsens/tall/bean/vo/UserVo.java
  7. 9
      tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java
  8. 7
      tall/src/main/java/com/ccsens/tall/persist/dao/SysUserDao.java
  9. 7
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskDeliverDao.java
  10. 8
      tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java
  11. 9
      tall/src/main/java/com/ccsens/tall/service/IProRoleService.java
  12. 6
      tall/src/main/java/com/ccsens/tall/service/InputDocService.java
  13. 69
      tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
  14. 64
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  15. 20
      tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java
  16. 4
      tall/src/main/java/com/ccsens/tall/service/UserInfoService.java
  17. 13
      tall/src/main/java/com/ccsens/tall/web/RoleController.java
  18. 2
      tall/src/main/resources/application-dev.yml
  19. 4
      tall/src/main/resources/application.yml
  20. 34
      tall/src/main/resources/mapper_dao/DeliverDao.xml
  21. 9
      tall/src/main/resources/mapper_dao/ProDeliverHistoryRecordDao.xml
  22. 55
      tall/src/main/resources/mapper_dao/ProRoleDao.xml
  23. 2
      tall/src/main/resources/mapper_dao/SysOperationDao.xml
  24. 8
      tall/src/main/resources/mapper_dao/SysProjectDao.xml
  25. 15
      tall/src/main/resources/mapper_dao/SysUserDao.xml
  26. 32
      tall/src/main/resources/mapper_dao/TaskDetailDao.xml
  27. 2
      tall/src/main/resources/mapper_raw/ProRoleMapper.xml
  28. 25
      tall/src/main/resources/mapper_raw/ProShowMapper.xml
  29. 5
      util/src/main/java/com/ccsens/util/PropUtil.java
  30. 2
      util/src/main/java/com/ccsens/util/WebConstant.java
  31. 19
      util/src/main/java/com/ccsens/util/wx/WxGzhUtil.java
  32. 7
      util/src/main/java/com/ccsens/util/wx/WxXcxUtil.java

9
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<Long> noRoleId;
}
}

11
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();
}

60
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<Byte> values) {
addCriterion("milestone_subtask in", values, "milestoneSubtask");
return (Criteria) this;
}
public Criteria andMilestoneSubtaskNotIn(List<Byte> 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 {

10
tall/src/main/java/com/ccsens/tall/bean/vo/ProjectVo.java

@ -185,6 +185,8 @@ public class ProjectVo {
private String relevanceProjectName;
@ApiModelProperty("成员信息")
private List<ProMemberVo> members;
@ApiModelProperty("对谁不可见")
private List<RolesOfNoLook> 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

6
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("结束时间")

2
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<LabelVo.SelectLabel> labelList;
}

9
tall/src/main/java/com/ccsens/tall/persist/dao/ProRoleDao.java

@ -121,6 +121,15 @@ public interface ProRoleDao extends ProRoleMapper{
*/
List<ProjectVo.ProMemberVo> selectMemberOfRole(Long roleId);
/**
* 根据角色id查询不可见角色列表
* @param roleId 二级角色id
* @return 不可见角色list
*/
List<ProjectVo.RolesOfNoLook> selectRoleOfNoLook(Long roleId);
// /**
// * 查找项目下的所有成员的名字用“,”分隔

7
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);
}

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

@ -40,4 +40,11 @@ public interface TaskDeliverDao extends ProTaskDeliverMapper{
* @return
*/
List<DeliverVo.OutputDocInfo> selectOutputDocByTaskId(Long taskId);
/**
* 根据交付物id 查询出当前项目的项目经理
* @param deliverId 交付物id
* @return 项目经理的id
*/
List<Long> selectPMIdByDeliverId(Long deliverId);
}

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

@ -72,6 +72,10 @@ public interface TaskDetailDao extends ProTaskDetailMapper {
*/
List<TaskVo.NormalTask> 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);
}

9
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<RoleDto.QueryRoleIsShows> param);
void upRoleShowsOrder(QueryDto<RoleDto.UpRoleShowsOrder> param);
/**
* 角色管理:修改对谁不可见
* @param param 参数
* @param userId 当前用户id
*/
void upRoleWhoNoLook(RoleDto.RoleOfNoLook param, Long userId);
}

6
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<InputDocVo.DocOfTask> 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);
}

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

@ -251,6 +251,14 @@ public class ProRoleService implements IProRoleService {
private List<ProjectVo.RoleInfo> getRealMemberRolesShowByProjectIdAll(Long projectId, Long currentUserId) {
List<ProjectVo.RoleInfo> memberRoleList;
memberRoleList = proRoleDao.selectSecondRolesByProjectId(projectId);
//查找对谁不可见
for (ProjectVo.RoleInfo roleInfo : memberRoleList) {
List<ProjectVo.RolesOfNoLook> 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<ProShow> 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<ProTaskDetail> 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<TaskVo.TaskListByProjectId> secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), "里程碑",beginTime,endTime);
List<TaskVo.TaskListByProjectId> secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(), finalMilestone,beginTime,endTime);
List<TaskVo.NormalTask> secondList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(secondTaskList)) {
secondTaskList.forEach(secondTask -> {
@ -1012,7 +1032,7 @@ public class ProRoleService implements IProRoleService {
*/
@Override
public void upRoleShowsOrder(QueryDto<RoleDto.UpRoleShowsOrder> 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<ProRoleExclude> 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);
}
}
}
}

64
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<InputDocVo.InputDocInfo> inputDocInfos = proTaskInputDocDao.selectDocByTaskId(taskDetail.getDetailId());
if (CollectionUtil.isNotEmpty(inputDocInfos)){
taskDetail.setInputDoc(inputDocInfos);
}
//查询此任务下的输出文档
List<DeliverVo.OutputDocInfo> 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<InputDocVo.InputDocInfo> inputDocInfos = proTaskInputDocDao.selectDocByTaskId(taskDetail.getDetailId());
if (CollectionUtil.isNotEmpty(inputDocInfos)){
taskDetail.setInputDoc(inputDocInfos);
}
//查询此任务下的输出文档
List<DeliverVo.OutputDocInfo> outputDocInfos = taskDeliverDao.selectOutputDocByTaskId(taskDetail.getDetailId());
if (CollectionUtil.isNotEmpty(outputDocInfos)){
taskDetail.setOutputDoc(outputDocInfos);
}
return taskDetail;
}

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

@ -248,6 +248,19 @@ public class TaskDeliverService implements ITaskDeliverService {
postLogCheckerDao.insertSelective(postLogChecker);
}
} else {
//不选择检查人,检查人默认为项目经理
//查找此项目下的项目经理
// List<Long> 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<DeliverVo.QueryDeliverByTaskId> 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);
}

4
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<SysUser> 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;

13
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<RoleVo.RoleByProjectId> saveRole(HttpServletRequest request,
public JsonResponse<ProjectVo.RoleInfo> 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<ProjectVo.RoleInfo> 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<RoleDto.RoleOfNoLook> params){
log.info("传入参数:{}", params);
proRoleService.upRoleWhoNoLook(params.getParam(),params.getUserId());
return JsonResponse.newInstance().ok();
}
}

2
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

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

@ -1,5 +1,5 @@
spring:
profiles:
active: dev
include: util-dev,common
active: test
include: util-test,common

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

@ -300,4 +300,38 @@
WHERE
ptd.task_detail_id = #{taskId}
</select>
<select id="selectPMIdByDeliverId" resultType="java.lang.Long">
SELECT
id
FROM
t_pro_role
WHERE
project_id = (
SELECT
sp.id
FROM
t_sys_project AS sp
LEFT JOIN t_pro_task_detail AS td ON sp.id = td.project_id
WHERE
td.rec_status = 0
AND td.id = (
SELECT
ptd.id
FROM
t_pro_task_detail AS ptd
LEFT JOIN t_pro_task_deliver AS ptd2 ON ptd.id = ptd2.task_detail_id
WHERE
ptd2.id = #{deliverId}
)
)
AND parent_id IN (
SELECT
id
FROM
t_pro_role
WHERE
`name` = 'PM'
)
</select>
</mapper>

9
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

55
tall/src/main/resources/mapper_dao/ProRoleDao.xml

@ -70,28 +70,28 @@
<select id="selectSecondRolesByProjectId" parameterType="java.util.Map"
resultMap="resultMap_ProRoleInfo">
select
pr.id as rId,
pr.name as rName,
pr.parent_id as parentId,
m.id as mId,
m.nickname as mName,
m.phone as mPhone,
m.user_id as mUserId,
m.stakeholder_id as stakeholderId,
if((SELECT `name` FROM t_pro_role WHERE id = pr.parent_id) = 'ProjectVirtualRole',1,0) as projectRole,
pr.relevance_project_id as relevanceProjectId,
(SELECT `name` FROM t_sys_project WHERE id = pr.relevance_project_id) as relevanceProjectName
from
t_pro_role pr LEFT JOIN t_pro_member_role mr ON mr.role_id = pr.id
LEFT JOIN t_pro_member m ON mr.member_id = m.id
pr.id as rId,
pr.name as rName,
pr.parent_id as parentId,
m.id as mId,
m.nickname as mName,
m.phone as mPhone,
m.user_id as mUserId,
m.stakeholder_id as stakeholderId,
if((SELECT `name` FROM t_pro_role WHERE id = pr.parent_id) = 'ProjectVirtualRole',1,0) as projectRole,
pr.relevance_project_id as relevanceProjectId,
(SELECT `name` FROM t_sys_project WHERE id = pr.relevance_project_id) as relevanceProjectName
from t_pro_role pr
LEFT JOIN t_pro_member_role mr ON mr.role_id = pr.id
LEFT JOIN t_pro_member m ON mr.member_id = m.id
where
pr.project_id = #{projectId}
pr.project_id = #{projectId}
and
(SELECT name FROM t_pro_role r WHERE pr.parent_id = r.id) in ('PM','Member','ProjectVirtualRole')
(SELECT name FROM t_pro_role r WHERE pr.parent_id = r.id) in ('PM','Member','ProjectVirtualRole')
AND
pr.name not IN ('全体成员','观众','MVP')
pr.name not IN ('全体成员','观众','MVP')
AND
pr.rec_status = 0
pr.rec_status = 0
AND (mr.rec_status = 0 or mr.rec_status is null)
AND (m.rec_status = 0 or m.rec_status is null)
</select>
@ -445,4 +445,23 @@
pmr.role_id = #{roleId}
AND pmr.rec_status = 0
</select>
<select id="selectRoleOfNoLook" resultType="com.ccsens.tall.bean.vo.ProjectVo$RolesOfNoLook">
SELECT
r.id,r.`name`
FROM
t_pro_role AS r
RIGHT JOIN (
SELECT
ree.other_role_id AS id
FROM
t_pro_role AS rr
LEFT JOIN t_pro_role_execlude AS ree ON rr.id = ree.other_role_id
WHERE
ree.rec_status = 0
AND ree.role_id = #{roleId}
) AS nolook ON r.id = nolook.id
WHERE
r.rec_status = 0
</select>
</mapper>

2
tall/src/main/resources/mapper_dao/SysOperationDao.xml

@ -85,10 +85,12 @@
t_sys_operation o
WHERE
o.rec_status = 0
<if test="projectIdList != null and projectIdList.size() > 0">
and o.project_id in
<foreach collection="projectIdList" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</if>
</select>
<select id="findMessageByOperate" resultType="com.ccsens.tall.bean.vo.InputDocVo$DocRecordOfTask">

8
tall/src/main/resources/mapper_dao/SysProjectDao.xml

@ -643,9 +643,11 @@
t_sys_project AS sp
WHERE
sp.parent_id = #{projectId}
<if test="listBeforeId != null and listBeforeId.size() > 0">
AND sp.id NOT IN
<foreach collection="listBeforeId" item="id" separator="," open="(" close=")">
#{id}
</foreach>
<foreach collection="listBeforeId" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</if>
</select>
</mapper>

15
tall/src/main/resources/mapper_dao/SysUserDao.xml

@ -198,4 +198,19 @@
AND
rec_status = 0
</select>
<select id="selectWxInfo" resultType="com.ccsens.tall.bean.vo.UserVo$WxInfo">
SELECT
u.city As city,
u.country AS country,
u.avatar_url As headImgUrl,
u.`language` As `language`,
u.nickname AS nickname,
u.province AS province,
u.gender AS sex
FROM
t_sys_user AS u
WHERE
id = #{userId}
</select>
</mapper>

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

@ -22,6 +22,7 @@
<result column="tDescription" property="description" />
<result column="tExecutorRole" property="executorRole" />
<result column="tExecutorRoleName" property="executorRoleName" />
<result column="checkerRole" property="checkerRole" />
<result column="tBeginTime" property="beginTime" />
<result column="tEndTime" property="endTime" />
<result column="tCycle" property="cycle" />
@ -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
<if test="priority == 1">
@ -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 @@
</select>
<select id="selectPmByTaskId" resultType="java.lang.Long">
SELECT
id
FROM
t_pro_role
WHERE
project_id = (
SELECT
sp.id
FROM
t_sys_project AS sp
LEFT JOIN t_pro_task_detail AS td ON sp.id = td.project_id
WHERE
td.rec_status = 0
AND td.id = #{id}
)
AND parent_id IN (
SELECT
id
FROM
t_pro_role
WHERE
`name` = 'PM'
)
</select>
</mapper>

2
tall/src/main/resources/mapper_raw/ProRoleMapper.xml

@ -86,7 +86,7 @@
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">

25
tall/src/main/resources/mapper_raw/ProShowMapper.xml

@ -21,6 +21,7 @@
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
<result column="role_belong" jdbcType="TINYINT" property="roleBelong" />
<result column="milestone_subtask" jdbcType="TINYINT" property="milestoneSubtask" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -83,7 +84,7 @@
<sql id="Base_Column_List">
id, project_id, slide, filter, is_show_mvp, style, create_task, time_show, duration,
show_shortcuts, select_task_type, detail_path, pims_nav_type, share_change, share_change_code,
created_at, updated_at, rec_status, role_belong
created_at, updated_at, rec_status, role_belong, milestone_subtask
</sql>
<select id="selectByExample" parameterType="com.ccsens.tall.bean.po.ProShowExample" resultMap="BaseResultMap">
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>
<insert id="insertSelective" parameterType="com.ccsens.tall.bean.po.ProShow">
insert into t_pro_show
@ -191,6 +192,9 @@
<if test="roleBelong != null">
role_belong,
</if>
<if test="milestoneSubtask != null">
milestone_subtask,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -250,6 +254,9 @@
<if test="roleBelong != null">
#{roleBelong,jdbcType=TINYINT},
</if>
<if test="milestoneSubtask != null">
#{milestoneSubtask,jdbcType=TINYINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.tall.bean.po.ProShowExample" resultType="java.lang.Long">
@ -318,6 +325,9 @@
<if test="record.roleBelong != null">
role_belong = #{record.roleBelong,jdbcType=TINYINT},
</if>
<if test="record.milestoneSubtask != null">
milestone_subtask = #{record.milestoneSubtask,jdbcType=TINYINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -343,7 +353,8 @@
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT},
role_belong = #{record.roleBelong,jdbcType=TINYINT}
role_belong = #{record.roleBelong,jdbcType=TINYINT},
milestone_subtask = #{record.milestoneSubtask,jdbcType=TINYINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -405,6 +416,9 @@
<if test="roleBelong != null">
role_belong = #{roleBelong,jdbcType=TINYINT},
</if>
<if test="milestoneSubtask != null">
milestone_subtask = #{milestoneSubtask,jdbcType=TINYINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -427,7 +441,8 @@
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT},
role_belong = #{roleBelong,jdbcType=TINYINT}
role_belong = #{roleBelong,jdbcType=TINYINT},
milestone_subtask = #{milestoneSubtask,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

5
util/src/main/java/com/ccsens/util/PropUtil.java

@ -30,6 +30,7 @@ public class PropUtil {
public static String getWpsFilePath;
public static String accessPath;
public static String filedeal;
public static String wxH5;
/**redis是否需要更新*/
public static String redisUpdate;
public static String redisUpdateUrl;
@ -121,4 +122,8 @@ public class PropUtil {
public void setRedisUpdateUrl(String redisUpdateUrl) {
PropUtil.redisUpdateUrl = redisUpdateUrl;
}
@Value("${project.wx_h5:}")
public static void setWxH5(String wxH5) {
PropUtil.wxH5 = wxH5;
}
}

2
util/src/main/java/com/ccsens/util/WebConstant.java

@ -353,7 +353,7 @@ public class WebConstant {
, Email(2,"Email"), Account(3,"账号")
,OAUTH2_Wx(4,"微信公众号网页授权登录"),Wx_H5(5,"网页微信登陆")
,OAUTH2_WeiBo(6,"微博"),WxEnterprise(7, "企业微信"),
OFFICIAL_ACCOUNT_WX(9,"微信公众号登录");
OFFICIAL_ACCOUNT_WX(9,"微信公众号登录"),Wx_H5_TEST(10,"网页微信登陆测试");
// 钉钉是8
public int value;

19
util/src/main/java/com/ccsens/util/wx/WxGzhUtil.java

@ -4,10 +4,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.ccsens.util.DateUtil;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.RedisUtil;
import com.ccsens.util.WebConstant;
import com.ccsens.util.*;
import com.ccsens.util.bean.wx.po.WxAccessToken;
import com.ccsens.util.bean.wx.po.WxOauth2AccessToken;
import com.ccsens.util.bean.wx.po.WxOauth2UserInfo;
@ -83,8 +80,11 @@ public class WxGzhUtil {
private static final String APPID = "wx7af1bf1e14facf82";
private static final String SECRET = "a6613fae11b497639c0224b820aaf6d9";
private static final String APPID_H5 = "wxd1842e073e0e6d91";
private static final String SECRET_H5 = "96d69b79039caf92a2abafa999880cad";
private static final String APPID_H5_TEST = "wxd1842e073e0e6d91";
private static final String SECRET_H5_TEST = "96d69b79039caf92a2abafa999880cad";
private static final String APPID_H5 = "wxb842be1cf4c5cf78";
private static final String SECRET_H5 = "ae9ec99c4fbbc7042b90698c3d05e21b";
private static final String appid_health = "wx2f9ef33e08053bbf";
private static final String secret_health = "af90801c26bc177681b2c39a603605b9";
@ -129,6 +129,8 @@ public class WxGzhUtil {
switch (identifyType){
case Wx_H5:
return APPID_H5;
case Wx_H5_TEST:
return APPID_H5_TEST;
case OAUTH2_Wx:
default:
return APPID;
@ -139,6 +141,8 @@ public class WxGzhUtil {
switch (identifyType){
case Wx_H5:
return SECRET_H5;
case Wx_H5_TEST:
return SECRET_H5_TEST;
case OAUTH2_Wx:
default:
return SECRET;
@ -347,6 +351,9 @@ public class WxGzhUtil {
* @throws BaseException 异常
*/
public static WxOauth2UserInfo getOauth2UserInfo(WebConstant.IDENTIFY_TYPE identifyType,String code) throws BaseException {
if (StrUtil.isNotBlank(PropUtil.wxH5) && PropUtil.wxH5.equals("0")){
identifyType = WebConstant.IDENTIFY_TYPE.Wx_H5_TEST;
}
WxOauth2AccessToken wxOauth2AccessToken = getOauth2AccessToken(identifyType,code);
return getOauth2UserInfo(wxOauth2AccessToken.getAccessToken(),wxOauth2AccessToken.getOpenId());
}

7
util/src/main/java/com/ccsens/util/wx/WxXcxUtil.java

@ -171,6 +171,9 @@ public class WxXcxUtil {
private static final String appid_health = "wx2f9ef33e08053bbf";
private static final String secret_health = "af90801c26bc177681b2c39a603605b9";
private static final String appid_enterprise = "wx808fa75921bd8f22";
private static final String secret_enterprise = "8d2e95462bfeab363ee84776bc807859";
private static final String mchid = "";
private static final String key = "";
@ -184,6 +187,8 @@ public class WxXcxUtil {
return appid_bh;
case "health":
return appid_health;
case "enterprise":
return appid_enterprise;
default:
return appid;
}
@ -199,6 +204,8 @@ public class WxXcxUtil {
return secret_bh;
case "health":
return secret_health;
case "enterprise":
return secret_enterprise;
default:
return secret;
}

Loading…
Cancel
Save