Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
f91396dbf8
  1. 9
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  2. 33
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java
  3. 4
      xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java
  4. 30
      xm-core/src/main/java/com/xm/core/service/XmRecordService.java

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

@ -543,14 +543,14 @@ public class XmTaskController {
} }
boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,xmTaskDb.getCreateUserid(),user.getUserid()); boolean isHead=groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups,xmTaskDb.getCreateUserid(),user.getUserid());
if(!isHead){ if(!isHead){
boolean isPm=groupService.checkUserIsProjectManager(pgroups,user.getUserid());
boolean isPm=groupService.checkUserIsProjectAdm(xmTaskDb.getProjectId(),user.getUserid());
if(!isPm){ if(!isPm){
tips.setFailureMsg("您无权修改该该任务的责任人!项目管理者、组长可以修改任务的责任人。"); tips.setFailureMsg("您无权修改该该任务的责任人!项目管理者、组长可以修改任务的责任人。");
m.put("tips", tips); m.put("tips", tips);
return m; return m;
} }
} }
boolean existsGrouop=groupService.checkUserExistsGroup(xmTaskVo.getProjectId(),xmTaskVo.getCreateUserid());
boolean existsGrouop=groupService.checkUserExistsGroup(pgroups,xmTaskVo.getCreateUserid());
if(!existsGrouop){ if(!existsGrouop){
tips.setFailureMsg(xmTaskVo.getCreateUsername()+"不是项目组成员,不能作为任务责任人"); tips.setFailureMsg(xmTaskVo.getCreateUsername()+"不是项目组成员,不能作为任务责任人");
m.put("tips", tips); m.put("tips", tips);
@ -560,6 +560,7 @@ public class XmTaskController {
xmTask.setCreateUserid(xmTaskVo.getCreateUserid()); xmTask.setCreateUserid(xmTaskVo.getCreateUserid());
xmTask.setCreateUsername(xmTaskVo.getCreateUsername()); xmTask.setCreateUsername(xmTaskVo.getCreateUsername());
this.xmTaskService.updateSomeFieldByPk(xmTask); this.xmTaskService.updateSomeFieldByPk(xmTask);
this.xmRecordService.addXmTaskRecord(xmTaskDb.getProjectId(),xmTaskDb.getId(),"项目-任务-修改任务责任人","修改任务【"+xmTaskDb.getName()+"】责任人。原责任人【"+xmTaskDb.getCreateUsername()+"】,新责任人【"+xmTask.getCreateUsername()+"】");
m.put("data",xmTaskVo); m.put("data",xmTaskVo);
}catch (BizException e) { }catch (BizException e) {
tips=e.getTips(); tips=e.getTips();
@ -648,6 +649,7 @@ public class XmTaskController {
} }
} }
} }
//改为服务处记录
//xmRecordService.addXmTaskRecord(xmTaskVo.getProjectPhaseId(), xmTaskVo.getId(), "项目-任务-修改任务", "修改任务"+xmTaskVo.getName(),JSON.toJSONString(xmTaskVo),null); //xmRecordService.addXmTaskRecord(xmTaskVo.getProjectPhaseId(), xmTaskVo.getId(), "项目-任务-修改任务", "修改任务"+xmTaskVo.getName(),JSON.toJSONString(xmTaskVo),null);
}else { }else {
tips=judgetTips; tips=judgetTips;
@ -858,7 +860,7 @@ public class XmTaskController {
xmTaskService.parentIdPathsCalcBeforeSave(xmTasks); xmTaskService.parentIdPathsCalcBeforeSave(xmTasks);
xmTaskService.batchImportFromTemplate(xmTasks); xmTaskService.batchImportFromTemplate(xmTasks);
for (XmTask t : xmTasks) { for (XmTask t : xmTasks) {
xmRecordService.addXmTaskRecord(t.getProjectId(), t.getId(), "项目-任务-批量新增任务", "新增任务"+t.getName(),JSON.toJSONString(t),null);
xmRecordService.addXmTaskRecord(t.getProjectId(), t.getId(), "项目-任务-批量新增任务", "新增任务"+t.getName(),"",null);
} }
@ -1037,6 +1039,7 @@ public class XmTaskController {
} }
if(canDelNodes.size()>0){ if(canDelNodes.size()>0){
this.xmTaskService.doBatchDelete(canDelNodes); this.xmTaskService.doBatchDelete(canDelNodes);
xmRecordService.addXmTaskRecord(canDelNodes,"项目-任务-批量删除","删除任务");
} }
List<String> msgs=new ArrayList<>(); List<String> msgs=new ArrayList<>();
msgs.add("删除了"+canDelNodes.size()+"个任务。"); msgs.add("删除了"+canDelNodes.size()+"个任务。");

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

@ -5,6 +5,7 @@ import com.mdp.audit.log.client.annotation.OperType;
import com.mdp.core.entity.Tips; import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException; import com.mdp.core.err.BizException;
import com.mdp.core.utils.RequestUtils; import com.mdp.core.utils.RequestUtils;
import com.mdp.core.utils.ResponseHelper;
import com.mdp.mybatis.PageUtils; import com.mdp.mybatis.PageUtils;
import com.mdp.qx.HasQx; import com.mdp.qx.HasQx;
import com.mdp.safe.client.entity.User; import com.mdp.safe.client.entity.User;
@ -124,23 +125,21 @@ public class XmTaskExecuserController {
m.put("tips", tips); m.put("tips", tips);
return m; return m;
} }
if(user.getUserid().equals(xmTaskExecuser.getUserid())){
if(user.getUserid().equals(xmTaskExecuser.getUserid())){//自己作为候选人
xmTaskExecuserService.addExecuser(xmTaskExecuser); xmTaskExecuserService.addExecuser(xmTaskExecuser);
m.put("data",xmTaskExecuser); m.put("data",xmTaskExecuser);
}else { }else {
boolean isPm=groupService.checkUserIsProjectAdm(xmTask.getProjectId(),user.getUserid());
if(!isPm){
List<XmProjectGroupVo> myGgroups=groupService.getProjectGroupVoList(projectId); List<XmProjectGroupVo> myGgroups=groupService.getProjectGroupVoList(projectId);
boolean isTeamHeader= groupService.checkUserIsOtherUserTeamHead(myGgroups,xmTask.getCreateUserid(),user.getUserid());
boolean isPm=groupService.checkUserIsProjectManager(myGgroups,user.getUserid());
if( !isTeamHeader && !isPm ) {
if(!user.getUserid().equals(xmTask.getCreateUserid())){
tips.setFailureMsg("无权操作!只有任务负责人、组长、项目管理者可以给任务分配候选人。");
boolean isTeamHeader= groupService.checkUserIsOtherUserTeamHeadOrAss(myGgroups,xmTaskExecuser.getCreateUserid(),user.getUserid());
if(!isTeamHeader){
return ResponseHelper.failed("no-qx","您无权操作!只有任务负责人、组长、项目管理者可以给任务分配候选人。");
} }
} }
if(tips.isOk()) {
xmTaskExecuserService.addExecuser(xmTaskExecuser); xmTaskExecuserService.addExecuser(xmTaskExecuser);
m.put("data",xmTaskExecuser); m.put("data",xmTaskExecuser);
} }
}
}catch (BizException e) { }catch (BizException e) {
tips=e.getTips(); tips=e.getTips();
@ -189,7 +188,7 @@ public class XmTaskExecuserController {
break; break;
} }
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {//只有组长任务责任人可以请别人请离开任务 if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {//只有组长任务责任人可以请别人请离开任务
boolean isHead= groupService.checkUserIsOtherUserTeamHead(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
if(isHead || isTaskCreater ) { if(isHead || isTaskCreater ) {
allowUsers.add(xmTaskExecuser); allowUsers.add(xmTaskExecuser);
allowUserNames.add(xmTaskExecuser.getUsername()); allowUserNames.add(xmTaskExecuser.getUsername());
@ -259,7 +258,7 @@ public class XmTaskExecuserController {
User user=LoginUtils.getCurrentUserInfo(); User user=LoginUtils.getCurrentUserInfo();
boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid()); boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid());
List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHead(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
if( isHead || isTaskCreater ) { if( isHead || isTaskCreater ) {
//放行组长和任务责任人可以将候选人变更为执行人 //放行组长和任务责任人可以将候选人变更为执行人
} else{ } else{
@ -271,7 +270,7 @@ public class XmTaskExecuserController {
} }
if(tips.isOk()) { if(tips.isOk()) {
boolean exists=groupService.checkUserExistsGroup(projectId, xmTaskExecuser.getUserid());
boolean exists=groupService.checkUserExistsGroup(pgroups, xmTaskExecuser.getUserid());
if(exists) { if(exists) {
@ -328,7 +327,7 @@ public class XmTaskExecuserController {
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) { if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {
String projectId=xmTaskExecuser.getProjectId(); String projectId=xmTaskExecuser.getProjectId();
List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHead(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
if( !isHead && !isTaskCreater ) { if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("自己或者组长可以提交任务到测试,"+user.getUsername()+"不是"+xmTaskExecuser.getUsername()+"的组长,无权提交"); tips.setFailureMsg("自己或者组长可以提交任务到测试,"+user.getUsername()+"不是"+xmTaskExecuser.getUsername()+"的组长,无权提交");
} }
@ -374,7 +373,7 @@ public class XmTaskExecuserController {
boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid()); boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid());
String projectId=xmTaskExecuser.getProjectId(); String projectId=xmTaskExecuser.getProjectId();
List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHead(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
if( !isHead && !isTaskCreater ) { if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("您无权提交测试结果!任务责任人、组长可以提交该任务的测试结果。"); tips.setFailureMsg("您无权提交测试结果!任务责任人、组长可以提交该任务的测试结果。");
} }
@ -421,7 +420,7 @@ public class XmTaskExecuserController {
boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid()); boolean isTaskCreater=user.getUserid().equals(xmTask.getCreateUserid());
String projectId=xmTaskExecuser.getProjectId(); String projectId=xmTaskExecuser.getProjectId();
List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHead(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
if( !isHead && !isTaskCreater ) { if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("您无权提交测试结果!任务责任人、组长可以提交该任务的测试结果。"); tips.setFailureMsg("您无权提交测试结果!任务责任人、组长可以提交该任务的测试结果。");
@ -468,7 +467,7 @@ public class XmTaskExecuserController {
String projectId=xmTaskExecuser.getProjectId(); String projectId=xmTaskExecuser.getProjectId();
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) { if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {
List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHead(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
if( !isHead && !isTaskCreater ) { if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("无权操作!自己、任务责任人、组长可以修改任务的报价信息"); tips.setFailureMsg("无权操作!自己、任务责任人、组长可以修改任务的报价信息");
} }
@ -522,7 +521,7 @@ public class XmTaskExecuserController {
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) { if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {
List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHead(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
if( !isHead && !isTaskCreater ) { if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("无权操作!任务责任人、组长可以邀请用户成为任务候选人,普通用户可以自己申请成为候选人"); tips.setFailureMsg("无权操作!任务责任人、组长可以邀请用户成为任务候选人,普通用户可以自己申请成为候选人");
} }
@ -567,7 +566,7 @@ public class XmTaskExecuserController {
String projectId=xmTaskExecuser.getProjectId(); String projectId=xmTaskExecuser.getProjectId();
if(!user.getUserid().equals(xmTaskExecuser.getUserid())) { if(!user.getUserid().equals(xmTaskExecuser.getUserid())) {
List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId); List<XmProjectGroupVo> pgroups=groupService.getProjectGroupVoList(projectId);
boolean isHead= groupService.checkUserIsOtherUserTeamHead(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
boolean isHead= groupService.checkUserIsOtherUserTeamHeadOrAss(pgroups, xmTaskExecuser.getUserid(), user.getUserid());
if( !isHead && !isTaskCreater ) { if( !isHead && !isTaskCreater ) {
tips.setFailureMsg("无权操作!只有自己、任务责任人、组长可以删除任务执行人."); tips.setFailureMsg("无权操作!只有自己、任务责任人、组长可以删除任务执行人.");
} }

4
xm-core/src/main/java/com/xm/core/service/XmProjectGroupService.java

@ -407,6 +407,10 @@ public class XmProjectGroupService extends BaseService {
public boolean checkUserExistsGroup(String projectId,String userid){ public boolean checkUserExistsGroup(String projectId,String userid){
List<XmProjectGroupVo> userGroups= getUserGroupsByProjectId(projectId,userid); List<XmProjectGroupVo> userGroups= getUserGroupsByProjectId(projectId,userid);
return userGroups!=null && userGroups.size()>0; return userGroups!=null && userGroups.size()>0;
}
public boolean checkUserExistsGroup(List<XmProjectGroupVo> userGroups,String userid){
List<XmProjectGroupVo> userGroups2= this.getUserGroups(userGroups, userid);
return userGroups2!=null && userGroups2.size()>0;
} }
/** /**
* 检查某个人是否为指定的小组的组长 * 检查某个人是否为指定的小组的组长

30
xm-core/src/main/java/com/xm/core/service/XmRecordService.java

@ -5,6 +5,7 @@ import com.mdp.safe.client.entity.User;
import com.mdp.safe.client.utils.LoginUtils; import com.mdp.safe.client.utils.LoginUtils;
import com.xm.core.entity.XmMenu; import com.xm.core.entity.XmMenu;
import com.xm.core.entity.XmRecord; import com.xm.core.entity.XmRecord;
import com.xm.core.entity.XmTask;
import org.slf4j.MDC; import org.slf4j.MDC;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -111,6 +112,35 @@ public class XmRecordService extends BaseService {
this.insert(record); this.insert(record);
} }
/**
* 针对项目下的任务的所有操作用此方法
* @param tasks 任务列表
* @param action 操作如 新增任务修改任务信息修改任务进度
* @param remarks 人性化语言描述
*/
@Async
public void addXmTaskRecord(List<XmTask> tasks,String action, String remarks) {
User user=LoginUtils.getCurrentUserInfo();
List<XmRecord> records=new ArrayList<>();
for (XmTask task : tasks) {
XmRecord record=new XmRecord();
record.setId(this.createKey("id"));
record.setOperTime(new Date());
record.setReqNo(MDC.get("reqNo"));
record.setOperUserid(user.getUserid());
record.setOperUsername(user.getUsername());
record.setBranchId(user.getBranchId());
record.setProductId(task.getProductId());
record.setBizId(task.getId());
record.setAction(action);
record.setRemarks(remarks+" 任务名称【"+task.getName()+"】");
record.setObjType("task");
records.add(record);
}
if(records.size()>0){
super.batchInsert(records);
}
}
/** /**
* 针对项目下的任务的所有操作用此方法 * 针对项目下的任务的所有操作用此方法
* @param projectId 项目编号 * @param projectId 项目编号

Loading…
Cancel
Save