陈裕财 3 years ago
parent
commit
f97c0fe27f
  1. 170
      xm-core/src/main/java/com/xm/core/ctrl/XmWorkloadController.java
  2. 2
      xm-core/src/main/java/com/xm/core/entity/XmWorkload.java

170
xm-core/src/main/java/com/xm/core/ctrl/XmWorkloadController.java

@ -10,9 +10,7 @@ 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;
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.XmTask;
import com.xm.core.entity.XmWorkload;
import com.xm.core.entity.*;
import com.xm.core.queue.XmTaskSumParentsPushService; import com.xm.core.queue.XmTaskSumParentsPushService;
import com.xm.core.service.*; import com.xm.core.service.*;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -30,6 +28,7 @@ import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.mdp.core.utils.BaseUtils.map;
import static com.mdp.core.utils.ResponseHelper.failed; import static com.mdp.core.utils.ResponseHelper.failed;
/** /**
@ -60,6 +59,21 @@ public class XmWorkloadController {
XmGroupService xmGroupService; XmGroupService xmGroupService;
@Autowired @Autowired
XmMenuService xmMenuService; XmMenuService xmMenuService;
@Autowired
XmTestCaseService xmTestCaseService;
@Autowired
XmProjectService xmProjectService;
@Autowired
XmTestPlanCaseService xmTestPlanCaseService;
@Autowired
XmQuestionService xmQuestionService;
@Autowired @Autowired
XmTaskSbillService xmTaskSbillService; XmTaskSbillService xmTaskSbillService;
@ -199,10 +213,44 @@ public class XmWorkloadController {
try{ try{
User user= LoginUtils.getCurrentUserInfo(); User user= LoginUtils.getCurrentUserInfo();
xmWorkload.setId(xmWorkloadService.createKey("id")); xmWorkload.setId(xmWorkloadService.createKey("id"));
if(!StringUtils.hasText(xmWorkload.getTaskId())) {
xmWorkload.setCuserid(user.getUserid());
xmWorkload.setCusername(user.getUsername());
if(!StringUtils.hasText(xmWorkload.getUserid())||xmWorkload.getUserid().equals(user.getUserid())){
xmWorkload.setUserid(user.getUserid());
xmWorkload.setUsername(user.getUsername());
xmWorkload.setUbranchId(user.getBranchId());
}else{
if(!StringUtils.hasText(xmWorkload.getUbranchId())){
return failed("ubranchId-0","请上送用户归属机构号");
}
}
//报工类型1-任务2-缺陷3-测试用例设计4-测试执行
if(!StringUtils.hasText(xmWorkload.getBizType())) {
return failed("bizType-0","请上送报工类型");
}
if("1".equals(xmWorkload.getBizType())){
if(!StringUtils.hasText(xmWorkload.getTaskId())){
return failed("taskId-0","请上送任务编号"); return failed("taskId-0","请上送任务编号");
} }
}
if("2".equals(xmWorkload.getBizType())){
if(!StringUtils.hasText(xmWorkload.getBugId())){
return failed("bugId-0","请上送缺陷编号");
}
}
if("3".equals(xmWorkload.getBizType())){
if(!StringUtils.hasText(xmWorkload.getCaseId())){
return failed("caseId-0","请上送测试用例编号");
}
}
if("4".equals(xmWorkload.getBizType())){
if(!StringUtils.hasText(xmWorkload.getPlanId())){
return failed("planId-0","请上送测试计划编号");
}
if(!StringUtils.hasText(xmWorkload.getCaseId())){
return failed("caseId-0","请上送测试用例编号");
}
}
if(!StringUtils.hasText(xmWorkload.getUserid())){ if(!StringUtils.hasText(xmWorkload.getUserid())){
return failed("userid-0","请上送工作人员编号"); return failed("userid-0","请上送工作人员编号");
@ -224,11 +272,27 @@ public class XmWorkloadController {
XmWorkload xmWorkloadCount=new XmWorkload(); XmWorkload xmWorkloadCount=new XmWorkload();
//xmWorkloadCount.setUserid(user.getUserid()); //xmWorkloadCount.setUserid(user.getUserid());
xmWorkloadCount.setBizDate(xmWorkload.getBizDate()); xmWorkloadCount.setBizDate(xmWorkload.getBizDate());
//报工类型1-任务2-缺陷3-测试用例设计4-测试执行
if("1".equals(xmWorkload.getBizType())){
xmWorkloadCount.setTaskId(xmWorkload.getTaskId()); xmWorkloadCount.setTaskId(xmWorkload.getTaskId());
}
if("2".equals(xmWorkload.getBizType())){
xmWorkloadCount.setBugId(xmWorkload.getBugId());
}
if("3".equals(xmWorkload.getBizType())){
xmWorkloadCount.setCaseId(xmWorkload.getCaseId());
}
if("4".equals(xmWorkload.getBizType())){
xmWorkloadCount.setPlanId(xmWorkload.getPlanId());
xmWorkloadCount.setCaseId(xmWorkload.getCaseId());
}
xmWorkloadCount.setBizType(xmWorkload.getBizType());
long count=this.xmWorkloadService.countByWhere(xmWorkloadCount); long count=this.xmWorkloadService.countByWhere(xmWorkloadCount);
if(count>0){ if(count>0){
return failed("data-1","当前任务今天已经报工");
return failed("data-1","当前工作项今天已经报工");
} }
//报工类型1-任务2-缺陷3-测试用例设计4-测试执行
if("1".equals(xmWorkload.getBizType())){
XmTask xmTaskDb=this.xmTaskService.selectOneObject(new XmTask(xmWorkload.getTaskId())); XmTask xmTaskDb=this.xmTaskService.selectOneObject(new XmTask(xmWorkload.getTaskId()));
if(xmTaskDb==null ){ if(xmTaskDb==null ){
return failed("data-0","任务已不存在"); return failed("data-0","任务已不存在");
@ -239,19 +303,18 @@ public class XmWorkloadController {
if("3".equals(xmTaskDb.getTaskState())){ if("3".equals(xmTaskDb.getTaskState())){
return failed("taskState-3",xmTaskDb.getName()+"已结算完毕,不能再提交工时"); return failed("taskState-3",xmTaskDb.getName()+"已结算完毕,不能再提交工时");
} }
if(!(user.getUserid().equals(xmTaskDb.getCreateUserid())|| user.getUserid().equals(xmTaskDb.getExecutorUserid()))){
Tips isCreate=xmGroupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskDb.getCreateUserid(),xmTaskDb.getProjectId());
if(!isCreate.isOk()){
Tips isExec=xmGroupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskDb.getExecutorUserid(),xmTaskDb.getProjectId());
if(!isExec.isOk()){
return failed("noqx-0","你无权针对该业务进行报工");
//待他人报工需要检查我的权限需要项目管理人员才有权限代他人报工
if(!xmWorkload.getUserid().equals(user.getUserid())){
Tips tips3=xmGroupService.checkIsAdmOrTeamHeadOrAss(user,xmWorkload.getUserid(),xmTaskDb.getProjectId());
if(!tips3.isOk()){
return failed("no-qx-for-oth-user","无权限代他人报工。只有项目管理人员可以代他人报工。");
} }
} }
if(!(xmWorkload.getUserid().equals(xmTaskDb.getCreateUserid())|| xmWorkload.getUserid().equals(xmTaskDb.getExecutorUserid()))){
return failed("no-create-or-not-exec",xmWorkload.getUserid()+"不是任务的负责人也不是执行人,不能报工。");
} }
xmWorkload.setCtime(new Date());
xmWorkload.setCuserid(user.getUserid());
xmWorkload.setCtime(new Date());
xmWorkload.setWstatus("0"); xmWorkload.setWstatus("0");
xmWorkload.setProjectId(xmTaskDb.getProjectId()); xmWorkload.setProjectId(xmTaskDb.getProjectId());
xmWorkload.setBranchId(xmTaskDb.getCbranchId()); xmWorkload.setBranchId(xmTaskDb.getCbranchId());
@ -264,6 +327,83 @@ public class XmWorkloadController {
} }
this.xmTaskService.calcWorkloadByRecord(xmTaskDb.getId()); this.xmTaskService.calcWorkloadByRecord(xmTaskDb.getId());
pushService.pushXmTask(xmTaskDb); pushService.pushXmTask(xmTaskDb);
}else if("2".equals(xmWorkload.getBizType())){//报工类型1-任务2-缺陷3-测试用例设计4-测试执行
XmQuestion xmQuestionDb=xmQuestionService.selectOneById(xmWorkload.getBugId());
if(xmQuestionDb==null){
return failed("bug-0","缺陷已不存在");
}
if(StringUtils.hasText(xmQuestionDb.getProjectId())){
XmProject xmProject=xmProjectService.getProjectFromCache(xmQuestionDb.getProjectId());
if(xmProject==null){
return failed("project-0","项目已不存在");
}
xmWorkload.setProjectId(xmProject.getId());
xmWorkload.setBranchId(xmProject.getBranchId());
}
if (!(xmWorkload.getUserid().equals(xmQuestionDb.getCreateUserid())||xmWorkload.getUserid().equals(xmQuestionDb.getHandlerUserid()))) {
return failed("userid-err",xmWorkload.getUserid()+"不是当前缺陷的负责人或者创建人,无须报工。");
}
xmWorkload.setCtime(new Date());
xmWorkload.setCuserid(user.getUserid());
xmWorkload.setWstatus("0");
xmWorkload.setProjectId(xmQuestionDb.getProjectId());
xmWorkload.setProjectId(xmQuestionDb.getProductId());
xmWorkload.setMenuId(xmQuestionDb.getMenuId());
xmWorkload.setFuncId(xmQuestionDb.getFuncId());
xmWorkload.setCaseId(xmQuestionDb.getCaseId());
xmWorkload.setPlanId(xmQuestionDb.getPlanId());
xmWorkloadService.insert(xmWorkload);
}else if("3".equals(xmWorkload.getBizType())){//报工类型1-任务2-缺陷3-测试用例设计4-测试执行
XmTestCase xmTestCaseDb=this.xmTestCaseService.selectOneById(xmWorkload.getCaseId());
if(xmTestCaseDb==null){
return failed("case-0","用例已不存在");
}
if(!(xmWorkload.getUserid().equals(xmTestCaseDb.getCuserid())||xmWorkload.getUserid().equals(xmTestCaseDb.getLuserid()))){
return failed("userid-err",xmWorkload.getUserid()+"不是当前用例的负责人或者责任人,无须报工。");
}
xmWorkload.setCtime(new Date());
xmWorkload.setWstatus("0");
xmWorkload.setProductId(xmTestCaseDb.getProductId());
xmWorkload.setMenuId(xmTestCaseDb.getMenuId());
xmWorkload.setFuncId(xmTestCaseDb.getFuncId());
xmWorkload.setBranchId(xmTestCaseDb.getCbranchId());
xmWorkloadService.insert(xmWorkload);
}else if("4".equals(xmWorkload.getBizType())){//报工类型1-任务2-缺陷3-测试用例设计4-测试执行
List<Map<String,Object>> xmTestPlanCaseDbs=this.xmTestPlanCaseService.selectListMapByWhere(map("planId",xmWorkload.getPlanId(),"caseId",xmWorkload.getCaseId()));
if(xmTestPlanCaseDbs==null||xmTestPlanCaseDbs.size()==0){
return failed("xmTestPlanCaseDb-0","执行用例已不存在");
}
Map<String,Object> xmTestPlanCaseDb=xmTestPlanCaseDbs.get(0);
if(!(xmWorkload.getUserid().equals(xmTestPlanCaseDb.get("execUserid")))){
return failed("userid-err",xmWorkload.getUserid()+"不是当前用例的执行人,无须报工。");
}
String projectId= (String) xmTestPlanCaseDb.get("projectId");
if(StringUtils.hasText(projectId)){
XmProject xmProject=xmProjectService.getProjectFromCache(projectId);
if(xmProject==null){
return failed("project-0","项目已不存在");
}
xmWorkload.setProjectId(xmProject.getId());
xmWorkload.setBranchId(xmProject.getBranchId());
}else{
return failed("projectId-0","项目编号不能为空");
}
xmWorkload.setCtime(new Date());
xmWorkload.setCuserid(user.getUserid());
xmWorkload.setWstatus("0");
xmWorkload.setProductId((String) xmTestPlanCaseDb.get("productId"));
xmWorkload.setFuncId((String) xmTestPlanCaseDb.get("funcId"));
xmWorkload.setMenuId((String) xmTestPlanCaseDb.get("menuId"));
xmWorkload.setCaseId((String) xmTestPlanCaseDb.get("caseId"));
xmWorkload.setPlanId((String) xmTestPlanCaseDb.get("planId"));
xmWorkloadService.insert(xmWorkload);
}
m.put("data",xmWorkload); m.put("data",xmWorkload);
}catch (BizException e) { }catch (BizException e) {
tips=e.getTips(); tips=e.getTips();

2
xm-core/src/main/java/com/xm/core/entity/XmWorkload.java

@ -111,4 +111,6 @@ public class XmWorkload implements java.io.Serializable {
public XmWorkload() { public XmWorkload() {
} }
public void setFuncId(String funcId) {
}
} }
Loading…
Cancel
Save