Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
f91396dbf8
  1. 11
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  2. 37
      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. 32
      xm-core/src/main/java/com/xm/core/service/XmRecordService.java

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

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

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

@ -408,6 +408,10 @@ public class XmProjectGroupService extends BaseService {
List<XmProjectGroupVo> userGroups= getUserGroupsByProjectId(projectId,userid);
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;
}
/**
* 检查某个人是否为指定的小组的组长
* @param xmProjectGroupVo

32
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.xm.core.entity.XmMenu;
import com.xm.core.entity.XmRecord;
import com.xm.core.entity.XmTask;
import org.slf4j.MDC;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@ -110,7 +111,36 @@ public class XmRecordService extends BaseService {
record.setObjType("project");
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 项目编号

Loading…
Cancel
Save