Browse Source

团队重构

master
陈裕财 3 years ago
parent
commit
b0ad57a8e0
  1. 66
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  2. 95
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java
  3. 2
      xm-core/src/main/java/com/xm/core/service/XmGroupService.java

66
xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java

@ -333,13 +333,16 @@ public class XmTaskController {
if(xmTasksDb==null ||xmTasksDb.size()==0){
return ResponseHelper.failed("tasks-0","该任务已不存在");
}
Map<String,XmProject> projectMap=new HashMap<>();
if(xmTaskMap.containsKey("createUserid")){
String createUserid=(String) xmTaskMap.get("createUserid");
String createUsername=(String) xmTaskMap.get("createUsername");
Set<String> projects=xmTasksDb.stream().map(i->i.getProjectId()).collect(Collectors.toSet());
for (String project : projects) {
if(!groupService.checkUserExistsProjectGroup(project,createUserid)){
return ResponseHelper.failed("no-qx-0","【"+createUsername+"】不在项目团队中,请先将其拉入项目团队再操作。");
XmProject xmProject=xmProjectService.getProjectFromCache(project);
projectMap.put(xmProject.getId(),xmProject);
Tips tips1=groupService.checkProjectQx(xmProject,user,createUserid);
if(!tips1.isOk()){
return ResponseHelper.failed(tips1);
};
}
@ -348,13 +351,12 @@ public class XmTaskController {
List<XmTask> can=new ArrayList<>();
List<XmTask> no=new ArrayList<>();
for (XmTask xmTaskDb : xmTasksDb) {
if(StringUtils.hasText(xmTaskDb.getCreateUserid())){
tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskDb.getCreateUserid(),xmTaskDb.getProjectId());
XmProject xmProject=projectMap.get(xmTaskDb.getProjectId());
if(projectMap.containsKey(xmProject.getId())){
xmProject=xmProjectService.getProjectFromCache(xmProject.getId());
projectMap.put(xmProject.getId(),xmProject);
}
if(!tips.isOk() && StringUtils.hasText(xmTaskDb.getExecutorUserid())){
tips=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskDb.getExecutorUserid(),xmTaskDb.getProjectId());
}
tips=groupService.checkProjectQx(xmProject,user,xmTaskDb.getCreateUserid(),xmTaskDb.getExecutorUserid());
if(!tips.isOk()){
no.add(xmTaskDb);
}else{
@ -365,7 +367,7 @@ public class XmTaskController {
if(can.size()>0 && fieldKey.contains("budgetAt")){
XmTask taskDb=can.get(0);
XmProject xmProject=xmProjectService.getProjectFromCache(taskDb.getProjectId());
XmProject xmProject=projectMap.get(taskDb.getProjectId());
BigDecimal budgetAt=NumberUtil.getBigDecimal(xmTaskMap.get("budgetAt"),BigDecimal.ZERO);
if(xmProject.getMaxTaskAmt()!=null && xmProject.getMaxTaskAmt().compareTo(BigDecimal.ZERO)>0){
if(budgetAt.compareTo(xmProject.getMaxTaskAmt())>0){
@ -563,11 +565,9 @@ public class XmTaskController {
XmProject xmProject=xmProjectService.getProjectFromCache(xmTaskVo.getProjectId());
Tips tips1=groupService.checkProjectQx(xmProject,user,xmTaskVo.getCreateUserid());
if(!tips1.isOk()){
if(!tips1.isOk()){
return ResponseHelper.failed(tips1);
}
}
@ -709,15 +709,10 @@ public class XmTaskController {
return ResponseHelper.failed("existsExecuser","有待验收、待结算的执行人,不能删除");
};
XmProject xmProject=xmProjectService.getProjectFromCache(xmTaskDb.getProjectId());
Tips tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getCreateUserid());
if(!tips1.isOk()){
if(StringUtils.hasText(xmTaskDb.getExecutorUserid()) && !user.getUserid().equals(xmTaskDb.getCreateUserid()) && !xmTaskDb.getCreateUserid().equals(xmTaskDb.getExecutorUserid())){
tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getExecutorUserid());
}
Tips tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getCreateUserid(),xmTaskDb.getExecutorUserid());
if(!tips1.isOk()){
return ResponseHelper.failed(tips1);
}
}
xmTaskService.deleteTask(xmTaskDb);
xmRecordService.addXmTaskRecord(xmTaskDb.getProjectId(), xmTaskDb.getId(), "项目-任务-删除任务", "删除任务"+xmTaskDb.getName());
@ -758,15 +753,10 @@ public class XmTaskController {
XmProject xmProject=xmProjectService.getProjectFromCache(xmTaskDb.getProjectId());
Tips tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getCreateUserid());
if(!tips1.isOk()){
if(StringUtils.hasText(xmTaskDb.getExecutorUserid()) && !user.getUserid().equals(xmTaskDb.getCreateUserid()) && !xmTaskDb.getCreateUserid().equals(xmTaskDb.getExecutorUserid())){
tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getExecutorUserid());
}
Tips tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getCreateUserid(),xmTaskDb.getExecutorUserid());
if(!tips1.isOk()){
return ResponseHelper.failed(tips1);
}
}
@ -818,15 +808,10 @@ public class XmTaskController {
}
XmProject xmProject=xmProjectService.getProjectFromCache(xmTaskDb.getProjectId());
Tips tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getCreateUserid());
if(!tips1.isOk()){
if(StringUtils.hasText(xmTaskDb.getExecutorUserid()) && !user.getUserid().equals(xmTaskDb.getCreateUserid()) && !xmTaskDb.getCreateUserid().equals(xmTaskDb.getExecutorUserid())){
tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getExecutorUserid());
}
Tips tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getCreateUserid(),xmTaskDb.getExecutorUserid());
if(!tips1.isOk()){
return ResponseHelper.failed(tips1);
}
}
this.xmTaskService.parentIdPathsCalcBeforeSave(xmTaskVo);
if(xmTaskVo.getBudgetAt()==null)xmTaskVo.setBudgetAt(BigDecimal.ZERO);
@ -876,15 +861,10 @@ public class XmTaskController {
return ResponseHelper.failed("data-0","任务已不存在");
}
XmProject xmProject=xmProjectService.getProjectFromCache(xmTaskDb.getProjectId());
Tips tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getCreateUserid());
if(!tips1.isOk()){
if(StringUtils.hasText(xmTaskDb.getExecutorUserid()) && !user.getUserid().equals(xmTaskDb.getCreateUserid()) && !xmTaskDb.getCreateUserid().equals(xmTaskDb.getExecutorUserid())){
tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getExecutorUserid());
}
Tips tips1=groupService.checkProjectQx(xmProject,user,xmTaskDb.getCreateUserid(),xmTaskDb.getExecutorUserid());
if(!tips1.isOk()){
return ResponseHelper.failed(tips1);
}
}
xmTaskService.updateTime(xmTask,xmTaskDb);
m.put("data",xmTask);
@ -1256,18 +1236,13 @@ public class XmTaskController {
noAllowTasks.addAll(pt.getValue());
}else{
for (XmTask xmTask : pt.getValue()) {
if(!user.getUserid().equals(xmTask.getCreateUserid()) && !user.getUserid().equals(xmTask.getExecutorUserid())){
tips1=groupService.checkProjectQx(xmProjectDb,user, xmTask.getCreateUserid());
if(!tips1.isOk()){
tips1=groupService.checkProjectQx(xmProjectDb,user, xmTask.getExecutorUserid());
tips1=groupService.checkProjectQx(xmProjectDb,user, xmTask.getCreateUserid(),xmTask.getExecutorUserid());
if(!tips1.isOk()){
noAllowTasks.add(xmTask);
}
}
}
}
}
}
allowTasks=tasksDb.stream().filter(i->!noAllowTasks.stream().filter(k->k.getId().equals(i.getId())).findAny().isPresent()).collect(Collectors.toList());
allowTasks=allowTasks.stream().filter(i->!ntype1Tasks.stream().filter(k->k.getId().equals(i.getId())).findAny().isPresent()).collect(Collectors.toList());
@ -1347,15 +1322,10 @@ public class XmTaskController {
if(!projectId.equals(node.getProjectId()) ){
return ResponseHelper.failed("not-same-project","所有任务必须同属于一个项目");
}
Tips tips1=groupService.checkProjectQx(xmProject,user,node.getCreateUserid());
Tips tips1=groupService.checkProjectQx(xmProject,user,node.getCreateUserid(),node.getExecutorUserid());
if(!tips1.isOk()){
tips1=groupService.checkProjectQx(xmProject,user,node.getExecutorUserid());
if(!tips1.isOk()){
noAllowNodes.add(node);
}else {
noAllowNodes.add(node);
}
}else {
allowDelNodes.add(node);
}

95
xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java

@ -177,35 +177,16 @@ public class XmTaskExecuserController {
m.put("tips", tips);
return m;
}
boolean isBranch=false;
if(!xmTaskExecuser.getUserid().equals(user.getUserid())){
User userDb=sysClient.getUserByUserid(xmTaskExecuser.getUserid());
if(userDb==null){
return ResponseHelper.failed("userid-0","候选人不存在");
}
isBranch=!"0".equals(userDb.getMemType());
xmTaskExecuser.setExecUserBranchId(userDb.getBranchId());
}else{
isBranch=!"0".equals(user.getMemType());
xmTaskExecuser.setExecUserBranchId(user.getBranchId());
}
boolean isPm=groupService.checkUserIsProjectAdm(xmTaskDb.getProjectId(),user.getUserid());
boolean isTeamHeader=false;
List<XmGroupVo> myGgroups=groupService.getProjectGroupVoList(projectId);
if(!isPm){
isTeamHeader= groupService.checkUserIsOtherUserTeamHeadOrAss(myGgroups,user.getUserid(),xmTaskDb.getCreateUserid());
}
if(!user.getUserid().equals(xmTaskExecuser.getUserid()) ){//只有上级可以拉人
if(!isPm && !isTeamHeader){
return ResponseHelper.failed("no-qx","您无权操作!只有任务负责人、组长、项目管理者可以给任务分配候选人。");
}
}else{
if(!"1".equals(xmTaskDb.getCrowd())){//如果是众包任务自己可以直接加入如果不是众包任务必须任务负责人组长经理等拉人作为执行人
if(!isPm && !isTeamHeader){
return ResponseHelper.failed("no-qx","您无权操作!只有任务负责人、组长、项目管理者可以给任务分配执行人。");
}
}
}
if("1".equals(xmTaskDb.getCrowd())){
Map<String,Object> result=sysClient.checkUserInterests(xmTaskExecuser.getUserid(),xmTaskDb.getBudgetAt(),xmTaskDb.getBudgetWorkload(),1);
@ -223,11 +204,10 @@ public class XmTaskExecuserController {
xmTaskExecuser.setStatus("0"); //如果是众包智能添加为候选人
}else {
//如果不是众包需要判断是否已加入项目组组织架构中如未加入需要提示其先加入
boolean exists=groupService.checkUserExistsGroup(myGgroups, xmTaskExecuser.getUserid());
if(!exists) {
tips.setFailureMsg(xmTaskExecuser.getUsername()+"不在项目组织架构中,请先将其拉入项目组织架构中");
return ResponseHelper.failed("user-not-in-project",xmTaskExecuser.getUsername()+"不在项目组织架构中,请先将其拉入项目组织架构中");
}
tips=groupService.checkProjectQx(xmProjectDb,user,xmTaskExecuser.getUserid());
if(!tips.isOk()){
return ResponseHelper.failed(tips);
};
//检查是否已经存在执行人
XmTaskExecuser query=new XmTaskExecuser();
query.setTaskId(xmTaskDb.getId());
@ -288,12 +268,9 @@ public class XmTaskExecuserController {
m.put("tips", tips);
return m;
}
boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid());
boolean isExe=user.getUserid().equals(xmTask.getExecutorUserid());
List<String> noAllowUsers=new ArrayList<>();
List<XmTaskExecuser> allowUsers=new ArrayList<>();
List<String> allowUserNames=new ArrayList<>();
boolean isPm=groupService.checkUserIsProjectAdm(xmTask.getProjectId(),user.getUserid());
for (XmTaskExecuser xmTaskExecuser : xmTaskExecuserListDb) {
if(!taskId.equals(xmTaskExecuser.getTaskId())){
@ -301,16 +278,13 @@ public class XmTaskExecuserController {
break;
}
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {//只有组长任务责任人可以请别人请离开任务
if(isTaskCreater||isExe||isPm){
tips=groupService.checkProjectQx(xmProjectService.getProjectFromCache(xmTask.getProjectId()), user,xmTaskExecuser.getUserid());
if(!tips.isOk()){
return ResponseHelper.failed(tips);
};
allowUsers.add(xmTaskExecuser);
allowUserNames.add(xmTaskExecuser.getUsername());
}else{
Tips tips2=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskExecuser.getUserid(),xmTask.getProjectId());
if(tips2.isOk()==false){
noAllowUsers.add(xmTaskExecuser.getUsername());
continue;
}
}
}else {//自己离开任务可以的
allowUsers.add(xmTaskExecuser);
allowUserNames.add(xmTaskExecuser.getUsername());
@ -375,20 +349,9 @@ public class XmTaskExecuserController {
User user=LoginUtils.getCurrentUserInfo();
String projectId=xmTask.getProjectId();
boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid());
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, user.getUserid(), xmTaskExecuser.getUserid());
if( isHead || isTaskCreater ) {
//放行组长和任务责任人可以将候选人变更为执行人
} else{
if(user.getUserid().equals(xmTaskExecuser.getUserid())){
tips.setFailureMsg("您无权将自己变更为执行人");
}else {
tips.setFailureMsg("权限不足!任务责任人、组长可以变更候选人为执行人");
}
}
tips=groupService.checkProjectQx(xmProjectService.getProjectFromCache(projectId),user,xmTask.getCreateUserid() );
if(tips.isOk()) {
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean exists=groupService.checkUserExistsGroup(pgroups, xmTaskExecuser.getUserid());
//如果还未加入项目组自动加入项目组
if(!exists) {
@ -475,15 +438,19 @@ public class XmTaskExecuserController {
User user=LoginUtils.getCurrentUserInfo();
String projectId=xmTaskDb.getProjectId();
boolean isTaskCreater=user.getUserid().equals(xmTaskDb.getCreateUserid());
boolean isPm=groupService.checkUserIsProjectAdm(projectId,user.getUserid());
if( !isTaskCreater && !isPm ) {
tips.setFailureMsg("您无权验收该任务!");
tips=groupService.checkProjectQx(xmProjectService.getProjectFromCache(projectId),user,xmTaskDb.getCreateUserid(),xmTaskDb.getExecutorUserid() );
if(!tips.isOk()){
return ResponseHelper.failed(tips);
}
boolean needPay=false;
if("1".equals(xmTaskDb.getCrowd())){
boolean isTaskCreater=user.getUserid().equals(xmTaskDb.getCreateUserid());
Tips tips1=groupService.checkIsProjectAdmOrTeamHeadOrAss(user,xmTaskDb.getExecutorUserid(),projectId);
if( !isTaskCreater && !tips1.isOk() ) {
tips.setFailureMsg("您无权验收该任务!");
return ResponseHelper.failed(tips);
}
if("2".equals(xmTaskDb.getEstate()) && xmTaskDb.getEfunds()!=null && xmTaskDb.getEfunds().compareTo(BigDecimal.ZERO)>0){
needPay=true;
}
@ -558,14 +525,9 @@ public class XmTaskExecuserController {
return ResponseHelper.failed("estate-not-0-1-3","当前任务已缴纳保证金,无法再变更报价信息。");
}
User user=LoginUtils.getCurrentUserInfo();
boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid());
String projectId=xmTaskExecuser.getProjectId();
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, user.getUserid(), xmTaskExecuser.getUserid());
if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("无权操作!自己、任务责任人、组长可以修改任务的报价信息");
}
tips=groupService.checkProjectQx(xmProjectService.getProjectFromCache(projectId),user,xmTaskExecuser.getUserid() );
}
if(tips.isOk()) {
XmTaskExecuser xmTaskExecuserDb = xmTaskExecuserService.selectOneObject(new XmTaskExecuser(xmTaskExecuser.getTaskId(),xmTaskExecuser.getUserid()));
@ -613,15 +575,9 @@ public class XmTaskExecuserController {
return m;
}
User user=LoginUtils.getCurrentUserInfo();
boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid());
String projectId=xmTaskExecuser.getProjectId();
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, user.getUserid(), xmTaskExecuser.getUserid());
if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("无权操作!任务责任人、组长可以邀请用户成为任务候选人,普通用户可以自己申请成为候选人");
}
tips=groupService.checkProjectQx(xmProjectService.getProjectFromCache(projectId),user,xmTaskExecuser.getUserid());
}
if(tips.isOk()) {
xmTaskExecuserService.becomeCandidate(xmTaskExecuser);
@ -661,14 +617,9 @@ public class XmTaskExecuserController {
return m;
}
User user=LoginUtils.getCurrentUserInfo();
boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid());
String projectId=xmTaskExecuser.getProjectId();
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {
List<XmGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, user.getUserid(), xmTaskExecuser.getUserid());
if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("无权操作!只有自己、任务责任人、组长可以删除任务执行人.");
}
tips=groupService.checkProjectQx(xmProjectService.getProjectFromCache(projectId),user,xmTaskExecuser.getUserid() );
}
if(tips.isOk()) {
XmTaskExecuser xmTaskExecuserDb = xmTaskExecuserService.selectOneObject(new XmTaskExecuser(xmTaskExecuser.getTaskId(),xmTaskExecuser.getUserid()));

2
xm-core/src/main/java/com/xm/core/service/XmGroupService.java

@ -160,7 +160,7 @@ public class XmGroupService extends BaseService {
return this.checkProjectTransmitQx(xmProject,head.getUserid(),head.getUserid());
}
public Tips checkProjectQx(XmProject xmProject,User head,String ...memUserids){
Tips tips=new Tips();
Tips tips=new Tips("成功");
tips=this.checkProjectScopeQx(xmProject,head,memUserids);
if(!tips.isOk()){
return tips;

Loading…
Cancel
Save