Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
5254913bab
  1. 2
      xm-core/src/main/java/com/xm/core/ctrl/XmBranchStateController.java
  2. 12
      xm-core/src/main/java/com/xm/core/ctrl/XmIterationMenuController.java
  3. 2
      xm-core/src/main/java/com/xm/core/ctrl/XmIterationStateController.java
  4. 20
      xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java
  5. 10
      xm-core/src/main/java/com/xm/core/ctrl/XmMenuExchangeController.java
  6. 18
      xm-core/src/main/java/com/xm/core/ctrl/XmMenuPlanController.java
  7. 4
      xm-core/src/main/java/com/xm/core/ctrl/XmProductController.java
  8. 2
      xm-core/src/main/java/com/xm/core/ctrl/XmProjectStateController.java
  9. 2
      xm-core/src/main/java/com/xm/core/ctrl/XmProjectStateHisController.java
  10. 12
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  11. 4
      xm-core/src/main/java/com/xm/core/ctrl/XmTestCaseController.java
  12. 2
      xm-core/src/main/java/com/xm/core/ctrl/XmTestCaseExecController.java
  13. 6
      xm-core/src/main/java/com/xm/core/entity/XmBranchState.java
  14. 6
      xm-core/src/main/java/com/xm/core/entity/XmIteration.java
  15. 6
      xm-core/src/main/java/com/xm/core/entity/XmIterationMenu.java
  16. 6
      xm-core/src/main/java/com/xm/core/entity/XmIterationState.java
  17. 12
      xm-core/src/main/java/com/xm/core/entity/XmMenu.java
  18. 6
      xm-core/src/main/java/com/xm/core/entity/XmProduct.java
  19. 36
      xm-core/src/main/java/com/xm/core/entity/XmProject.java
  20. 6
      xm-core/src/main/java/com/xm/core/entity/XmProjectMBudgetCostUser.java
  21. 12
      xm-core/src/main/java/com/xm/core/entity/XmProjectMCostNouser.java
  22. 12
      xm-core/src/main/java/com/xm/core/entity/XmProjectMCostUser.java
  23. 32
      xm-core/src/main/java/com/xm/core/entity/XmProjectPhase.java
  24. 6
      xm-core/src/main/java/com/xm/core/entity/XmProjectState.java
  25. 6
      xm-core/src/main/java/com/xm/core/entity/XmProjectStateHis.java
  26. 12
      xm-core/src/main/java/com/xm/core/entity/XmQuestion.java
  27. 12
      xm-core/src/main/java/com/xm/core/entity/XmTask.java
  28. 12
      xm-core/src/main/java/com/xm/core/entity/XmTestCase.java
  29. 12
      xm-core/src/main/java/com/xm/core/entity/XmTestCaseExec.java
  30. 4
      xm-core/src/main/java/com/xm/core/service/XmRecordService.java
  31. 2
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java
  32. 2
      xm-core/src/main/java/com/xm/core/service/push/XmMenuPushMsgService.java
  33. 6
      xm-core/src/main/java/com/xm/core/service/push/XmPushMsgService.java
  34. 6
      xm-core/src/main/java/com/xm/share/entity/ShareBizInfo.java
  35. 2
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

2
xm-core/src/main/java/com/xm/core/ctrl/XmBranchStateController.java

@ -94,7 +94,7 @@ public class XmBranchStateController {
@ApiImplicitParam(name="finishCases",value="完成案例总数",required=false),
@ApiImplicitParam(name="iterationCnt",value="迭代数",required=false),
@ApiImplicitParam(name="productCnt",value="产品数",required=false),
@ApiImplicitParam(name="menuCnt",value="故事数",required=false),
@ApiImplicitParam(name="menuCnt",value="需求数",required=false),
@ApiImplicitParam(name="pageSize",value="每页记录数",required=false),
@ApiImplicitParam(name="currentPage",value="当前页码,从1开始",required=false),
@ApiImplicitParam(name="total",value="总记录数,服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算",required=false),

12
xm-core/src/main/java/com/xm/core/ctrl/XmIterationMenuController.java

@ -54,7 +54,7 @@ public class XmIterationMenuController {
@ApiImplicitParams({
@ApiImplicitParam(name="id",value="主键,主键",required=false),
@ApiImplicitParam(name="iterationId",value="对应的迭代编号",required=false),
@ApiImplicitParam(name="menuId",value="故事编号",required=false),
@ApiImplicitParam(name="menuId",value="需求编号",required=false),
@ApiImplicitParam(name="productId",value="产品编号",required=false),
@ApiImplicitParam(name="ctime",value="关联时间",required=false),
@ApiImplicitParam(name="relStatus",value="关联状态0不再关联1正常关联",required=false),
@ -76,7 +76,7 @@ public class XmIterationMenuController {
String iterationId=(String)xmIterationMenu.get("iterationId");
String menuId=(String)xmIterationMenu.get("menuId");
if(!(StringUtils.hasText(iterationId)||StringUtils.hasText(menuId))){
tips.setFailureMsg("迭代编号iterationId、故事编号menuId最少一个不能为空");
tips.setFailureMsg("迭代编号iterationId、需求编号menuId最少一个不能为空");
m.put("tips", tips);
return m;
}
@ -136,7 +136,7 @@ public class XmIterationMenuController {
try{
xmIterationMenuService.deleteByPk(xmIterationMenu);
User user = LoginUtils.getCurrentUserInfo();
this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将故事【"+xmIterationMenu.getMenuId()+"】移出迭代");
this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将需求【"+xmIterationMenu.getMenuId()+"】移出迭代");
}catch (BizException e) {
tips=e.getTips();
logger.error("",e);
@ -190,7 +190,7 @@ public class XmIterationMenuController {
User user = LoginUtils.getCurrentUserInfo();
for (XmIterationMenu xmIterationMenu : xmIterationMenus) {
this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将故事【"+xmIterationMenu.getMenuId()+"】移出迭代");
this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将需求【"+xmIterationMenu.getMenuId()+"】移出迭代");
}
}catch (BizException e) {
@ -222,7 +222,7 @@ public class XmIterationMenuController {
if(menus!=null && menus.size()>0){
List<String> menuNames = menus.stream().map(XmMenu::getMenuName).collect(Collectors.toList());
String menusNameStr=StringUtils.arrayToDelimitedString(menuNames.toArray(),",");
tips.setFailureMsg("以下故事已加入本迭代计划,不能重复加入。"+menusNameStr);
tips.setFailureMsg("以下需求已加入本迭代计划,不能重复加入。"+menusNameStr);
}else{
xmIterationMenuService.batchInsert(xmIterationMenus);
@ -230,7 +230,7 @@ public class XmIterationMenuController {
for (XmIterationMenu xmIterationMenu : xmIterationMenus) {
this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将故事【"+xmIterationMenu.getMenuId()+"】加入迭代");
this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将需求【"+xmIterationMenu.getMenuId()+"】加入迭代");
}
}

2
xm-core/src/main/java/com/xm/core/ctrl/XmIterationStateController.java

@ -55,7 +55,7 @@ public class XmIterationStateController {
@ApiImplicitParam(name="finishCases",value="完成案例总数",required=false),
@ApiImplicitParam(name="projectCnt",value="关联项目数",required=false),
@ApiImplicitParam(name="productCnt",value="关联产品数",required=false),
@ApiImplicitParam(name="menuCnt",value="关联故事数",required=false),
@ApiImplicitParam(name="menuCnt",value="关联需求数",required=false),
@ApiImplicitParam(name="taskCnt",value="关联任务数",required=false),
@ApiImplicitParam(name="finishTaskCnt",value="已完成的任务数",required=false),
@ApiImplicitParam(name="calcTime",value="计算日期",required=false),

20
xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java

@ -214,7 +214,7 @@ public class XmMenuController {
@ApiResponses({
@ApiResponse(code = 200,response=XmMenu.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
})
@HasQx(value = "xm_core_xmMenu_add",name = "新增用户故事",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenu_add",name = "新增用户需求",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/add",method=RequestMethod.POST)
public Map<String,Object> addXmMenu(@RequestBody XmMenu xmMenu) {
Map<String,Object> m = new HashMap<>();
@ -256,7 +256,7 @@ public class XmMenuController {
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}")
})
@HasQx(value = "xm_core_xmMenu_del",name = "删除用户故事",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenu_del",name = "删除用户需求",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/del",method=RequestMethod.POST)
public Map<String,Object> delXmMenu(@RequestBody XmMenu xmMenu){
Map<String,Object> m = new HashMap<>();
@ -266,13 +266,13 @@ public class XmMenuController {
xmTask.setMenuId(xmMenu.getMenuId());
long taskCount=xmTaskService.countByWhere(xmTask);
if(taskCount>0) {
tips.setFailureMsg("存在"+taskCount+"个任务关联该故事,不允许删除");
tips.setFailureMsg("存在"+taskCount+"个任务关联该需求,不允许删除");
}else {
XmMenu query=new XmMenu();
query.setPmenuId(xmMenu.getMenuId());
long childCount=xmMenuService.countByWhere(query);
if(childCount>0) {
tips.setFailureMsg("存在"+childCount+"个子故事关联该故事,不允许删除");
tips.setFailureMsg("存在"+childCount+"个子需求关联该需求,不允许删除");
}else {
xmMenuService.deleteByPk(xmMenu);
}
@ -294,7 +294,7 @@ public class XmMenuController {
@ApiResponses({
@ApiResponse(code = 200,response=XmMenu.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
})
@HasQx(value = "xm_core_xmMenu_edit",name = "修改用户故事",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenu_edit",name = "修改用户需求",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/edit",method=RequestMethod.POST)
public Map<String,Object> editXmMenu(@RequestBody XmMenu xmMenu) {
Map<String,Object> m = new HashMap<>();
@ -340,7 +340,7 @@ public class XmMenuController {
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
@HasQx(value = "xm_core_xmMenu_batchDel",name = "批量删除用户故事",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenu_batchDel",name = "批量删除用户需求",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/batchDel",method=RequestMethod.POST)
public Map<String,Object> batchDelXmMenu(@RequestBody List<XmMenu> xmMenus) {
Map<String,Object> m = new HashMap<>();
@ -371,12 +371,12 @@ public class XmMenuController {
if(canDelList.size()>0) {
xmMenuService.doBatchDelete(canDelList);
}
String msg="成功删除"+canDelList.size()+"个故事信息";
String msg="成功删除"+canDelList.size()+"个需求信息";
if(hasTasksMenus.size()>0 ) {
msg=msg+",【"+StringUtils.arrayToDelimitedString(hasTasksMenus.toArray(), ",")+"】存在任务关联,不允许删除";
}
if(hasChildMenus.size()>0 ) {
msg=msg+",【"+StringUtils.arrayToDelimitedString(hasChildMenus.toArray(), ",")+"】存在子故事,不允许删除";
msg=msg+",【"+StringUtils.arrayToDelimitedString(hasChildMenus.toArray(), ",")+"】存在子需求,不允许删除";
}
tips.setOkMsg(msg);
@ -392,7 +392,7 @@ public class XmMenuController {
return m;
}
@HasQx(value = "xm_core_xmMenu_batchAdd",name = "批量新增用户故事",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenu_batchAdd",name = "批量新增用户需求",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/batchAdd",method=RequestMethod.POST)
public Map<String,Object> batchAddXmMenu(@RequestBody List<XmMenu> xmMenus) {
Map<String,Object> m = new HashMap<>();
@ -418,7 +418,7 @@ public class XmMenuController {
return m;
}
@HasQx(value = "xm_core_xmMenu_batchEdit",name = "批量修改用户故事",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenu_batchEdit",name = "批量修改用户需求",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/batchEdit",method=RequestMethod.POST)
public Map<String,Object> batchEditXmMenu(@RequestBody List<XmMenuVo> xmMenus) {
Map<String,Object> m = new HashMap<>();

10
xm-core/src/main/java/com/xm/core/ctrl/XmMenuExchangeController.java

@ -100,7 +100,7 @@ public class XmMenuExchangeController {
@ApiResponses({
@ApiResponse(code = 200,response=XmMenuExchange.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
})
@HasQx(value = "xm_core_xmMenuExchange_add",name = "发布故事评论",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuExchange_add",name = "发布需求评论",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/add",method=RequestMethod.POST)
public Map<String,Object> addXmMenuExchange(@RequestBody XmMenuExchange xmMenuExchange) {
Map<String,Object> m = new HashMap<>();
@ -111,7 +111,7 @@ public class XmMenuExchangeController {
}
xmMenuExchange.setCtime(new Date());
xmMenuExchangeService.insert(xmMenuExchange);
String imMsg=xmMenuExchange.getCusername()+"发表关于故事【"+xmMenuExchange.getMenuId()+"-"+xmMenuExchange.getMenuName()+"】的评论:"+xmMenuExchange.getRemark();
String imMsg=xmMenuExchange.getCusername()+"发表关于需求【"+xmMenuExchange.getMenuId()+"-"+xmMenuExchange.getMenuName()+"】的评论:"+xmMenuExchange.getRemark();
pushMsgService.pushMenuRelUsersMsg(xmMenuExchange.getCbranchId(), xmMenuExchange.getMenuId(), xmMenuExchange.getCuserid(), xmMenuExchange.getCusername(), imMsg);
m.put("data",xmMenuExchange);
}catch (BizException e) {
@ -131,7 +131,7 @@ public class XmMenuExchangeController {
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}")
})
@HasQx(value = "xm_core_xmMenuExchange_del",name = "删除故事评论",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuExchange_del",name = "删除需求评论",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/del",method=RequestMethod.POST)
public Map<String,Object> delXmMenuExchange(@RequestBody XmMenuExchange xmMenuExchange){
Map<String,Object> m = new HashMap<>();
@ -155,7 +155,7 @@ public class XmMenuExchangeController {
@ApiResponses({
@ApiResponse(code = 200,response=XmMenuExchange.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
})
@HasQx(value = "xm_core_xmMenuExchange_edit",name = "修改故事评论",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuExchange_edit",name = "修改需求评论",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/edit",method=RequestMethod.POST)
public Map<String,Object> editXmMenuExchange(@RequestBody XmMenuExchange xmMenuExchange) {
Map<String,Object> m = new HashMap<>();
@ -182,7 +182,7 @@ public class XmMenuExchangeController {
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
@HasQx(value = "xm_core_xmMenuExchange_batchDel",name = "批量删除故事评论",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuExchange_batchDel",name = "批量删除需求评论",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/batchDel",method=RequestMethod.POST)
public Map<String,Object> batchDelXmMenuExchange(@RequestBody List<XmMenuExchange> xmMenuExchanges) {
Map<String,Object> m = new HashMap<>();

18
xm-core/src/main/java/com/xm/core/ctrl/XmMenuPlanController.java

@ -121,7 +121,7 @@ public class XmMenuPlanController {
@ApiResponses({
@ApiResponse(code = 200,response=XmMenuPlan.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
})
@HasQx(value = "xm_core_xmMenuPlan_add",name = "新增故事计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuPlan_add",name = "新增需求计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/add",method=RequestMethod.POST)
public Map<String,Object> addXmMenuPlan(@RequestBody XmMenuPlan xmMenuPlan) {
Map<String,Object> m = new HashMap<>();
@ -156,7 +156,7 @@ public class XmMenuPlanController {
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}")
})
@HasQx(value = "xm_core_xmMenuPlan_del",name = "删除故事计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuPlan_del",name = "删除需求计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/del",method=RequestMethod.POST)
public Map<String,Object> delXmMenuPlan(@RequestBody XmMenuPlan xmMenuPlan){
Map<String,Object> m = new HashMap<>();
@ -182,7 +182,7 @@ public class XmMenuPlanController {
@ApiResponses({
@ApiResponse(code = 200,response=XmMenuPlan.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
})
@HasQx(value = "xm_core_xmMenuPlan_edit",name = "修改故事计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuPlan_edit",name = "修改需求计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/edit",method=RequestMethod.POST)
public Map<String,Object> editXmMenuPlan(@RequestBody XmMenuPlan xmMenuPlan) {
Map<String,Object> m = new HashMap<>();
@ -190,7 +190,7 @@ public class XmMenuPlanController {
try{
xmMenuPlanService.updateByPk(xmMenuPlan);
User user = LoginUtils.getCurrentUserInfo();
pushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmMenuPlan.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"对故事【"+xmMenuPlan.getMenuName()+"】相关计划进行调整,故事负责人为【"+xmMenuPlan.getChargeUsername()+"】");
pushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmMenuPlan.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"对需求【"+xmMenuPlan.getMenuName()+"】相关计划进行调整,需求负责人为【"+xmMenuPlan.getChargeUsername()+"】");
m.put("data",xmMenuPlan);
}catch (BizException e) {
tips=e.getTips();
@ -211,7 +211,7 @@ public class XmMenuPlanController {
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
@HasQx(value = "xm_core_xmMenuPlan_batchDel",name = "批量删除故事计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuPlan_batchDel",name = "批量删除需求计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/batchDel",method=RequestMethod.POST)
public Map<String,Object> batchDelXmMenuPlan(@RequestBody List<XmMenuPlan> xmMenuPlans) {
Map<String,Object> m = new HashMap<>();
@ -232,7 +232,7 @@ public class XmMenuPlanController {
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
@HasQx(value = "xm_core_xmMenuPlan_batchEdit",name = "批量修改故事计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuPlan_batchEdit",name = "批量修改需求计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/batchEdit",method=RequestMethod.POST)
public Map<String,Object> batchEditXmMenuPlan(@RequestBody List<XmMenuPlan> xmMenuPlans) {
Map<String,Object> m = new HashMap<>();
@ -242,7 +242,7 @@ public class XmMenuPlanController {
User user = LoginUtils.getCurrentUserInfo();
for (XmMenuPlan xmMenuPlan : xmMenuPlans) {
pushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmMenuPlan.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"对故事【"+xmMenuPlan.getMenuName()+"】相关计划进行调整,故事负责人为【"+xmMenuPlan.getChargeUsername()+"】");
pushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmMenuPlan.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"对需求【"+xmMenuPlan.getMenuName()+"】相关计划进行调整,需求负责人为【"+xmMenuPlan.getChargeUsername()+"】");
}
}catch (BizException e) {
tips=e.getTips();
@ -258,7 +258,7 @@ public class XmMenuPlanController {
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
@HasQx(value = "xm_core_xmMenuPlan_batchAddPlanByProjectIdAndMenuList",name = "由分配到项目的故事创建故事计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuPlan_batchAddPlanByProjectIdAndMenuList",name = "由分配到项目的需求创建需求计划",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/batchAddPlanByProjectIdAndMenuList",method=RequestMethod.POST)
public Map<String,Object> batchAddPlanByProjectIdAndMenuList(@RequestBody XmMenuPlanVo vo) {
Map<String,Object> m = new HashMap<>();
@ -280,7 +280,7 @@ public class XmMenuPlanController {
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
@HasQx(value = "xm_core_xmMenuPlan_loadTasksToXmMenuPlan",name = "计算故事对应的bug、task、测试案例等数据",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmMenuPlan_loadTasksToXmMenuPlan",name = "计算需求对应的bug、task、测试案例等数据",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/loadTasksToXmMenuPlan",method=RequestMethod.POST)
public Map<String,Object> loadTasksToXmMenuPlan(@RequestBody Map<String,Object> params) {
Map<String,Object> m = new HashMap<>();

4
xm-core/src/main/java/com/xm/core/ctrl/XmProductController.java

@ -272,7 +272,7 @@ public class XmProductController {
if(!"1".equals(xmProductDb.getIsTpl())){
long menus=xmProductService.checkExistsMenu(xmProduct.getId());
if(menus>0) {
return ResponseHelper.failed("had-menus","该产品有"+menus+"个故事关联,不允许删除,请先解绑故事");
return ResponseHelper.failed("had-menus","该产品有"+menus+"个需求关联,不允许删除,请先解绑需求");
}
}
@ -355,7 +355,7 @@ public class XmProductController {
msg=msg+",【"+StringUtils.arrayToDelimitedString(hasProjects.toArray(), ",")+"】存在项目关联,不允许删除";
}
if(hasMenus.size()>0 ) {
msg=msg+",【"+StringUtils.arrayToDelimitedString(hasMenus.toArray(), ",")+"】存在故事关联,不允许删除";
msg=msg+",【"+StringUtils.arrayToDelimitedString(hasMenus.toArray(), ",")+"】存在需求关联,不允许删除";
}
tips.setOkMsg(msg);
}catch (BizException e) {

2
xm-core/src/main/java/com/xm/core/ctrl/XmProjectStateController.java

@ -99,7 +99,7 @@ public class XmProjectStateController {
@ApiImplicitParam(name="finishCases",value="完成案例总数",required=false),
@ApiImplicitParam(name="iterationCnt",value="迭代数",required=false),
@ApiImplicitParam(name="productCnt",value="产品数",required=false),
@ApiImplicitParam(name="menuCnt",value="故事数",required=false),
@ApiImplicitParam(name="menuCnt",value="需求数",required=false),
@ApiImplicitParam(name="taskCnt",value="任务数",required=false),
@ApiImplicitParam(name="finishTaskCnt",value="完成的任务数",required=false),
@ApiImplicitParam(name="pageSize",value="每页记录数",required=false),

2
xm-core/src/main/java/com/xm/core/ctrl/XmProjectStateHisController.java

@ -97,7 +97,7 @@ public class XmProjectStateHisController {
@ApiImplicitParam(name="finishCases",value="完成案例总数",required=false),
@ApiImplicitParam(name="iterationCnt",value="迭代数",required=false),
@ApiImplicitParam(name="productCnt",value="产品数",required=false),
@ApiImplicitParam(name="menuCnt",value="故事数",required=false),
@ApiImplicitParam(name="menuCnt",value="需求数",required=false),
@ApiImplicitParam(name="pageSize",value="每页记录数",required=false),
@ApiImplicitParam(name="currentPage",value="当前页码,从1开始",required=false),
@ApiImplicitParam(name="total",value="总记录数,服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算",required=false),

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

@ -867,15 +867,15 @@ public class XmTaskController {
m.put("tips", tips);
return m;
}
@ApiOperation( value = "批量将多个任务与一个用户故事关联",notes="")
@ApiOperation( value = "批量将多个任务与一个用户需求关联",notes="")
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
@HasQx(value = "xm_core_xmTask_batchRelTasksWithMenu",name = "批量将任务与一个用户故事关联",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@HasQx(value = "xm_core_xmTask_batchRelTasksWithMenu",name = "批量将任务与一个用户需求关联",categoryId = "admin-xm",categoryName = "管理端-项目管理系统")
@RequestMapping(value="/batchRelTasksWithMenu",method=RequestMethod.POST)
public Map<String,Object> batchRelTasksWithMenu(@RequestBody List<XmTask> xmTasks) {
Map<String,Object> m = new HashMap<>();
Tips tips=new Tips("成功"+xmTasks.size()+"条任务数据与用户故事关联");
Tips tips=new Tips("成功"+xmTasks.size()+"条任务数据与用户需求关联");
try{
User user=LoginUtils.getCurrentUserInfo();
@ -923,16 +923,16 @@ public class XmTaskController {
if(allowTasks.size()>0){
xmTaskService.batchRelTasksWithMenu(allowTasks);
for (XmTask t : allowTasks) {
xmRecordService.addXmTaskRecord(t.getProjectId(), t.getId(), "项目-任务-批量更新任务", "将任务"+t.getName()+"与故事【"+t.getMenuId()+"-"+t.getMenuName()+"】关联",JSON.toJSONString(t),null);
xmRecordService.addXmTaskRecord(t.getProjectId(), t.getId(), "项目-任务-批量更新任务", "将任务"+t.getName()+"与需求【"+t.getMenuId()+"-"+t.getMenuName()+"】关联",JSON.toJSONString(t),null);
}
if(noAllowTasks.size()>0){
tips.setOkMsg(allowTasks.size()+"个任务成功关联用户故事,另外有"+noAllowTasks.size()+"个任务无权操作,只有任务负责人、项目经理、组长可以批量将任务与用户故事进行关联");
tips.setOkMsg(allowTasks.size()+"个任务成功关联用户需求,另外有"+noAllowTasks.size()+"个任务无权操作,只有任务负责人、项目经理、组长可以批量将任务与用户需求进行关联");
}
}else{
if(noAllowTasks.size()>0){
tips.setFailureMsg(allowTasks.size()+"个任务成功关联用户故事,另外有"+noAllowTasks.size()+"个任务无权操作,只有任务负责人、项目经理、组长可以批量将任务与用户故事进行关联");
tips.setFailureMsg(allowTasks.size()+"个任务成功关联用户需求,另外有"+noAllowTasks.size()+"个任务无权操作,只有任务负责人、项目经理、组长可以批量将任务与用户需求进行关联");
}
}

4
xm-core/src/main/java/com/xm/core/ctrl/XmTestCaseController.java

@ -50,8 +50,8 @@ public class XmTestCaseController {
@ApiImplicitParam(name="caseRemark",value="备注",required=false),
@ApiImplicitParam(name="testStep",value="测试步骤",required=false),
@ApiImplicitParam(name="expectResult",value="期望结果",required=false),
@ApiImplicitParam(name="menuId",value="关联的故事",required=false),
@ApiImplicitParam(name="menuName",value="关联故事名",required=false),
@ApiImplicitParam(name="menuId",value="关联的需求",required=false),
@ApiImplicitParam(name="menuName",value="关联需求名",required=false),
@ApiImplicitParam(name="ctime",value="创建时间",required=false),
@ApiImplicitParam(name="ltime",value="更新时间",required=false),
@ApiImplicitParam(name="luserid",value="更新人编号",required=false),

2
xm-core/src/main/java/com/xm/core/ctrl/XmTestCaseExecController.java

@ -64,7 +64,7 @@ public class XmTestCaseExecController {
@ApiImplicitParam(name="execUsername",value="执行人姓名",required=false),
@ApiImplicitParam(name="taskId",value="归属测试任务编号",required=false),
@ApiImplicitParam(name="taskName",value="归属测试任务名称",required=false),
@ApiImplicitParam(name="menuId",value="故事编号",required=false),
@ApiImplicitParam(name="menuId",value="需求编号",required=false),
@ApiImplicitParam(name="pageSize",value="每页记录数",required=false),
@ApiImplicitParam(name="currentPage",value="当前页码,从1开始",required=false),
@ApiImplicitParam(name="total",value="总记录数,服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算",required=false),

6
xm-core/src/main/java/com/xm/core/entity/XmBranchState.java

@ -174,7 +174,7 @@ public class XmBranchState implements java.io.Serializable {
@ApiModelProperty(notes="产品数",allowEmptyValue=true,example="",allowableValues="")
Integer productCnt;
@ApiModelProperty(notes="故事数",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="需求数",allowEmptyValue=true,example="",allowableValues="")
Integer menuCnt;
/**主键**/
@ -493,7 +493,7 @@ public class XmBranchState implements java.io.Serializable {
this.productCnt = productCnt;
}
/**
* 故事
* 需求
**/
public void setMenuCnt(Integer menuCnt) {
this.menuCnt = menuCnt;
@ -806,7 +806,7 @@ public class XmBranchState implements java.io.Serializable {
return this.productCnt;
}
/**
* 故事
* 需求
**/
public Integer getMenuCnt() {
return this.menuCnt;

6
xm-core/src/main/java/com/xm/core/entity/XmIteration.java

@ -71,7 +71,7 @@ public class XmIteration implements java.io.Serializable {
@ApiModelProperty(notes="备注",allowEmptyValue=true,example="",allowableValues="")
String remark;
@ApiModelProperty(notes="迭代阶段:0未开始,1需求评审,2计划会,3研发中,4测试中,5迭代上线,6已完成",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="迭代计划:0未开始,1需求评审,2计划会,3研发中,4测试中,5迭代上线,6已完成",allowEmptyValue=true,example="",allowableValues="")
String iphase;
/**迭代编码**/
@ -186,7 +186,7 @@ public class XmIteration implements java.io.Serializable {
this.remark = remark;
}
/**
* 迭代阶段:0未开始,1需求评审,2计划会,3研发中,4测试中,5迭代上线,6已完成
* 迭代计划:0未开始,1需求评审,2计划会,3研发中,4测试中,5迭代上线,6已完成
**/
public void setIphase(String iphase) {
this.iphase = iphase;
@ -295,7 +295,7 @@ public class XmIteration implements java.io.Serializable {
return this.remark;
}
/**
* 迭代阶段:0未开始,1需求评审,2计划会,3研发中,4测试中,5迭代上线,6已完成
* 迭代计划:0未开始,1需求评审,2计划会,3研发中,4测试中,5迭代上线,6已完成
**/
public String getIphase() {
return this.iphase;

6
xm-core/src/main/java/com/xm/core/entity/XmIterationMenu.java

@ -26,7 +26,7 @@ public class XmIterationMenu implements java.io.Serializable {
@ApiModelProperty(notes="对应的迭代编号",allowEmptyValue=true,example="",allowableValues="")
String iterationId;
@ApiModelProperty(notes="故事编号",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="需求编号",allowEmptyValue=true,example="",allowableValues="")
String menuId;
@ApiModelProperty(notes="产品编号",allowEmptyValue=true,example="",allowableValues="")
@ -69,7 +69,7 @@ public class XmIterationMenu implements java.io.Serializable {
this.iterationId = iterationId;
}
/**
* 故事编号
* 需求编号
**/
public void setMenuId(String menuId) {
this.menuId = menuId;
@ -124,7 +124,7 @@ public class XmIterationMenu implements java.io.Serializable {
return this.iterationId;
}
/**
* 故事编号
* 需求编号
**/
public String getMenuId() {
return this.menuId;

6
xm-core/src/main/java/com/xm/core/entity/XmIterationState.java

@ -60,7 +60,7 @@ public class XmIterationState implements java.io.Serializable {
@ApiModelProperty(notes="关联产品数",allowEmptyValue=true,example="",allowableValues="")
Integer productCnt;
@ApiModelProperty(notes="关联故事数",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="关联需求数",allowEmptyValue=true,example="",allowableValues="")
Integer menuCnt;
@ApiModelProperty(notes="关联任务数",allowEmptyValue=true,example="",allowableValues="")
@ -190,7 +190,7 @@ public class XmIterationState implements java.io.Serializable {
this.productCnt = productCnt;
}
/**
* 关联故事
* 关联需求
**/
public void setMenuCnt(Integer menuCnt) {
this.menuCnt = menuCnt;
@ -353,7 +353,7 @@ public class XmIterationState implements java.io.Serializable {
return this.productCnt;
}
/**
* 关联故事
* 关联需求
**/
public Integer getMenuCnt() {
return this.menuCnt;

12
xm-core/src/main/java/com/xm/core/entity/XmMenu.java

@ -61,10 +61,10 @@ public class XmMenu implements java.io.Serializable {
@ApiModelProperty(notes="排序序号",allowEmptyValue=true,example="",allowableValues="")
String seqNo;
@ApiModelProperty(notes="故事管理员编号",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="需求管理员编号",allowEmptyValue=true,example="",allowableValues="")
String mmUserid;
@ApiModelProperty(notes="故事管理员姓名",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="需求管理员姓名",allowEmptyValue=true,example="",allowableValues="")
String mmUsername;
@ApiModelProperty(notes="创建时间",allowEmptyValue=true,example="",allowableValues="")
@ -191,13 +191,13 @@ public class XmMenu implements java.io.Serializable {
this.seqNo = seqNo;
}
/**
* 故事管理员编号
* 需求管理员编号
**/
public void setMmUserid(String mmUserid) {
this.mmUserid = mmUserid;
}
/**
* 故事管理员姓名
* 需求管理员姓名
**/
public void setMmUsername(String mmUsername) {
this.mmUsername = mmUsername;
@ -348,13 +348,13 @@ public class XmMenu implements java.io.Serializable {
return this.seqNo;
}
/**
* 故事管理员编号
* 需求管理员编号
**/
public String getMmUserid() {
return this.mmUserid;
}
/**
* 故事管理员姓名
* 需求管理员姓名
**/
public String getMmUsername() {
return this.mmUsername;

6
xm-core/src/main/java/com/xm/core/entity/XmProduct.java

@ -46,7 +46,7 @@ public class XmProduct implements java.io.Serializable {
@ApiModelProperty(notes="归属部门",allowEmptyValue=true,example="",allowableValues="")
String deptid;
@ApiModelProperty(notes="产品阶段:0未开始,1研发中,2已完成",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="产品计划:0未开始,1研发中,2已完成",allowEmptyValue=true,example="",allowableValues="")
String pstatus;
@ApiModelProperty(notes="开始日期",allowEmptyValue=true,example="",allowableValues="")
@ -152,7 +152,7 @@ public class XmProduct implements java.io.Serializable {
this.deptid = deptid;
}
/**
* 产品阶段:0未开始,1研发中,2已完成
* 产品计划:0未开始,1研发中,2已完成
**/
public void setPstatus(String pstatus) {
this.pstatus = pstatus;
@ -291,7 +291,7 @@ public class XmProduct implements java.io.Serializable {
return this.deptid;
}
/**
* 产品阶段:0未开始,1研发中,2已完成
* 产品计划:0未开始,1研发中,2已完成
**/
public String getPstatus() {
return this.pstatus;

36
xm-core/src/main/java/com/xm/core/entity/XmProject.java

@ -86,13 +86,13 @@ public class XmProject implements java.io.Serializable {
@ApiModelProperty(notes="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除",allowEmptyValue=true,example="",allowableValues="")
String bizFlowState;
@ApiModelProperty(notes="非人力成本总预算-应该大于或等于阶段计划非人力总成本",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="非人力成本总预算-应该大于或等于计划非人力总成本",allowEmptyValue=true,example="",allowableValues="")
BigDecimal planNouserAt;
@ApiModelProperty(notes="内部人力成本总预算-应该大于或等于阶段计划内部人力总成本",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="内部人力成本总预算-应该大于或等于计划内部人力总成本",allowEmptyValue=true,example="",allowableValues="")
BigDecimal planInnerUserAt;
@ApiModelProperty(notes="外购人力成本总预算-应该大于或等于阶段计划外购人力总成本",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="外购人力成本总预算-应该大于或等于计划外购人力总成本",allowEmptyValue=true,example="",allowableValues="")
BigDecimal planOutUserAt;
@ApiModelProperty(notes="是否锁定整个项目不允许变化0否1是",allowEmptyValue=true,example="",allowableValues="")
@ -107,7 +107,7 @@ public class XmProject implements java.io.Serializable {
@ApiModelProperty(notes="基线主键",allowEmptyValue=true,example="",allowableValues="")
String baselineId;
@ApiModelProperty(notes="总预算工作量-应该大于或等于阶段计划总工作量",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="总预算工作量-应该大于或等于计划总工作量",allowEmptyValue=true,example="",allowableValues="")
BigDecimal planWorkload;
@ApiModelProperty(notes="总预计收款金额",allowEmptyValue=true,example="",allowableValues="")
@ -137,10 +137,10 @@ public class XmProject implements java.io.Serializable {
@ApiModelProperty(notes="税率",allowEmptyValue=true,example="",allowableValues="")
BigDecimal taxRate;
@ApiModelProperty(notes="内部人力总工作量-应该大于或等于阶段计划内部人力总成本",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="内部人力总工作量-应该大于或等于计划内部人力总成本",allowEmptyValue=true,example="",allowableValues="")
BigDecimal planInnerUserWorkload;
@ApiModelProperty(notes="外购人力总工作量-应该大于或等于阶段计划外购人力总成本",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="外购人力总工作量-应该大于或等于计划外购人力总成本",allowEmptyValue=true,example="",allowableValues="")
BigDecimal planOutUserWorkload;
@ApiModelProperty(notes="关联模板编号",allowEmptyValue=true,example="",allowableValues="")
@ -282,19 +282,19 @@ public class XmProject implements java.io.Serializable {
this.bizFlowState = bizFlowState;
}
/**
* 非人力成本总预算-应该大于或等于阶段计划非人力总成本
* 非人力成本总预算-应该大于或等于计划非人力总成本
**/
public void setPlanNouserAt(BigDecimal planNouserAt) {
this.planNouserAt = planNouserAt;
}
/**
* 内部人力成本总预算-应该大于或等于阶段计划内部人力总成本
* 内部人力成本总预算-应该大于或等于计划内部人力总成本
**/
public void setPlanInnerUserAt(BigDecimal planInnerUserAt) {
this.planInnerUserAt = planInnerUserAt;
}
/**
* 外购人力成本总预算-应该大于或等于阶段计划外购人力总成本
* 外购人力成本总预算-应该大于或等于计划外购人力总成本
**/
public void setPlanOutUserAt(BigDecimal planOutUserAt) {
this.planOutUserAt = planOutUserAt;
@ -324,7 +324,7 @@ public class XmProject implements java.io.Serializable {
this.baselineId = baselineId;
}
/**
* 总预算工作量-应该大于或等于阶段计划总工作量
* 总预算工作量-应该大于或等于计划总工作量
**/
public void setPlanWorkload(BigDecimal planWorkload) {
this.planWorkload = planWorkload;
@ -384,13 +384,13 @@ public class XmProject implements java.io.Serializable {
this.taxRate = taxRate;
}
/**
* 内部人力总工作量-应该大于或等于阶段计划内部人力总成本
* 内部人力总工作量-应该大于或等于计划内部人力总成本
**/
public void setPlanInnerUserWorkload(BigDecimal planInnerUserWorkload) {
this.planInnerUserWorkload = planInnerUserWorkload;
}
/**
* 外购人力总工作量-应该大于或等于阶段计划外购人力总成本
* 外购人力总工作量-应该大于或等于计划外购人力总成本
**/
public void setPlanOutUserWorkload(BigDecimal planOutUserWorkload) {
this.planOutUserWorkload = planOutUserWorkload;
@ -541,19 +541,19 @@ public class XmProject implements java.io.Serializable {
return this.bizFlowState;
}
/**
* 非人力成本总预算-应该大于或等于阶段计划非人力总成本
* 非人力成本总预算-应该大于或等于计划非人力总成本
**/
public BigDecimal getPlanNouserAt() {
return this.planNouserAt;
}
/**
* 内部人力成本总预算-应该大于或等于阶段计划内部人力总成本
* 内部人力成本总预算-应该大于或等于计划内部人力总成本
**/
public BigDecimal getPlanInnerUserAt() {
return this.planInnerUserAt;
}
/**
* 外购人力成本总预算-应该大于或等于阶段计划外购人力总成本
* 外购人力成本总预算-应该大于或等于计划外购人力总成本
**/
public BigDecimal getPlanOutUserAt() {
return this.planOutUserAt;
@ -583,7 +583,7 @@ public class XmProject implements java.io.Serializable {
return this.baselineId;
}
/**
* 总预算工作量-应该大于或等于阶段计划总工作量
* 总预算工作量-应该大于或等于计划总工作量
**/
public BigDecimal getPlanWorkload() {
return this.planWorkload;
@ -643,13 +643,13 @@ public class XmProject implements java.io.Serializable {
return this.taxRate;
}
/**
* 内部人力总工作量-应该大于或等于阶段计划内部人力总成本
* 内部人力总工作量-应该大于或等于计划内部人力总成本
**/
public BigDecimal getPlanInnerUserWorkload() {
return this.planInnerUserWorkload;
}
/**
* 外购人力总工作量-应该大于或等于阶段计划外购人力总成本
* 外购人力总工作量-应该大于或等于计划外购人力总成本
**/
public BigDecimal getPlanOutUserWorkload() {
return this.planOutUserWorkload;

6
xm-core/src/main/java/com/xm/core/entity/XmProjectMBudgetCostUser.java

@ -57,7 +57,7 @@ public class XmProjectMBudgetCostUser implements java.io.Serializable {
@ApiModelProperty(notes="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除",allowEmptyValue=true,example="",allowableValues="")
String bizFlowState;
@ApiModelProperty(notes="项目阶段",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="项目计划",allowEmptyValue=true,example="",allowableValues="")
String projectPhaseId;
@ApiModelProperty(notes="成本类型0非人力1内部人力2外购人力",allowEmptyValue=true,example="",allowableValues="")
@ -145,7 +145,7 @@ public class XmProjectMBudgetCostUser implements java.io.Serializable {
this.bizFlowState = bizFlowState;
}
/**
* 项目阶段
* 项目计划
**/
public void setProjectPhaseId(String projectPhaseId) {
this.projectPhaseId = projectPhaseId;
@ -230,7 +230,7 @@ public class XmProjectMBudgetCostUser implements java.io.Serializable {
return this.bizFlowState;
}
/**
* 项目阶段
* 项目计划
**/
public String getProjectPhaseId() {
return this.projectPhaseId;

12
xm-core/src/main/java/com/xm/core/entity/XmProjectMCostNouser.java

@ -66,7 +66,7 @@ public class XmProjectMCostNouser implements java.io.Serializable {
@ApiModelProperty(notes="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除",allowEmptyValue=true,example="",allowableValues="")
String bizFlowState;
@ApiModelProperty(notes="项目计划阶段编号",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="项目计划计划编号",allowEmptyValue=true,example="",allowableValues="")
String projectPhaseId;
@ApiModelProperty(notes="实际成本金额",allowEmptyValue=true,example="",allowableValues="")
@ -84,7 +84,7 @@ public class XmProjectMCostNouser implements java.io.Serializable {
@ApiModelProperty(notes="科目名称",allowEmptyValue=true,example="",allowableValues="")
String subjectName;
@ApiModelProperty(notes="阶段名称",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="计划名称",allowEmptyValue=true,example="",allowableValues="")
String projectPhaseName;
/**主键**/
@ -187,7 +187,7 @@ public class XmProjectMCostNouser implements java.io.Serializable {
this.bizFlowState = bizFlowState;
}
/**
* 项目计划阶段编号
* 项目计划计划编号
**/
public void setProjectPhaseId(String projectPhaseId) {
this.projectPhaseId = projectPhaseId;
@ -223,7 +223,7 @@ public class XmProjectMCostNouser implements java.io.Serializable {
this.subjectName = subjectName;
}
/**
* 阶段名称
* 计划名称
**/
public void setProjectPhaseName(String projectPhaseName) {
this.projectPhaseName = projectPhaseName;
@ -320,7 +320,7 @@ public class XmProjectMCostNouser implements java.io.Serializable {
return this.bizFlowState;
}
/**
* 项目计划阶段编号
* 项目计划计划编号
**/
public String getProjectPhaseId() {
return this.projectPhaseId;
@ -356,7 +356,7 @@ public class XmProjectMCostNouser implements java.io.Serializable {
return this.subjectName;
}
/**
* 阶段名称
* 计划名称
**/
public String getProjectPhaseName() {
return this.projectPhaseName;

12
xm-core/src/main/java/com/xm/core/entity/XmProjectMCostUser.java

@ -69,7 +69,7 @@ public class XmProjectMCostUser implements java.io.Serializable {
@ApiModelProperty(notes="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除",allowEmptyValue=true,example="",allowableValues="")
String bizFlowState;
@ApiModelProperty(notes="项目计划阶段编号",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="项目计划计划编号",allowEmptyValue=true,example="",allowableValues="")
String projectPhaseId;
@ApiModelProperty(notes="金额",allowEmptyValue=true,example="",allowableValues="")
@ -87,7 +87,7 @@ public class XmProjectMCostUser implements java.io.Serializable {
@ApiModelProperty(notes="科目名称",allowEmptyValue=true,example="",allowableValues="")
String subjectName;
@ApiModelProperty(notes="阶段名称",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="计划名称",allowEmptyValue=true,example="",allowableValues="")
String projectPhaseName;
@ApiModelProperty(notes="执行人申请结算时的流程编号",allowEmptyValue=true,example="",allowableValues="")
@ -211,7 +211,7 @@ public class XmProjectMCostUser implements java.io.Serializable {
this.bizFlowState = bizFlowState;
}
/**
* 项目计划阶段编号
* 项目计划计划编号
**/
public void setProjectPhaseId(String projectPhaseId) {
this.projectPhaseId = projectPhaseId;
@ -247,7 +247,7 @@ public class XmProjectMCostUser implements java.io.Serializable {
this.subjectName = subjectName;
}
/**
* 阶段名称
* 计划名称
**/
public void setProjectPhaseName(String projectPhaseName) {
this.projectPhaseName = projectPhaseName;
@ -380,7 +380,7 @@ public class XmProjectMCostUser implements java.io.Serializable {
return this.bizFlowState;
}
/**
* 项目计划阶段编号
* 项目计划计划编号
**/
public String getProjectPhaseId() {
return this.projectPhaseId;
@ -416,7 +416,7 @@ public class XmProjectMCostUser implements java.io.Serializable {
return this.subjectName;
}
/**
* 阶段名称
* 计划名称
**/
public String getProjectPhaseName() {
return this.projectPhaseName;

32
xm-core/src/main/java/com/xm/core/entity/XmProjectPhase.java

@ -9,27 +9,27 @@ import java.math.BigDecimal;
* 组织 com 顶级模块 xm 大模块 core 小模块 <br>
* 实体 XmProjectPhase所有属性名: <br>
* id,phaseName,remark,parentPhaseId,branchId,projectId,beginDate,endDate,phaseBudgetHours,phaseBudgetStaffNu,ctime,phaseBudgetNouserAt,phaseBudgetInnerUserAt,phaseBudgetOutUserAt,projectBaselineId,bizProcInstId,bizFlowState,phaseBudgetWorkload,phaseActWorkload,phaseActInnerUserWorkload,phaseActOutUserWorkload,taskType,planType,seqNo,phaseBudgetInnerUserWorkload,phaseBudgetOutUserWorkload,actNouserAt,actInnerUserAt,phaseBudgetInnerUserPrice,phaseBudgetOutUserPrice,phaseBudgetOutUserCnt,phaseBudgetInnerUserCnt,actRate,phaseStatus,actOutUserAt,taskCnt,finishTaskCnt,iterationCnt,calcTime,taskBudgetWorkload,taskBudgetAt,mngUserid,mngUsername,milestone,pleaf,tagIds,tagNames,ntype,childrenCnt,ltime,isKeyPath,pidPaths,lvl,isTpl;<br>
* xm_project_phase 项目阶段模板的所有字段名: <br>
* xm_project_phase 项目计划模板的所有字段名: <br>
* id,phase_name,remark,parent_phase_id,branch_id,project_id,begin_date,end_date,phase_budget_hours,phase_budget_staff_nu,ctime,phase_budget_nouser_at,phase_budget_inner_user_at,phase_budget_out_user_at,project_baseline_id,biz_proc_inst_id,biz_flow_state,phase_budget_workload,phase_act_workload,phase_act_inner_user_workload,phase_act_out_user_workload,task_type,plan_type,seq_no,phase_budget_inner_user_workload,phase_budget_out_user_workload,act_nouser_at,act_inner_user_at,phase_budget_inner_user_price,phase_budget_out_user_price,phase_budget_out_user_cnt,phase_budget_inner_user_cnt,act_rate,phase_status,act_out_user_at,task_cnt,finish_task_cnt,iteration_cnt,calc_time,task_budget_workload,task_budget_at,mng_userid,mng_username,milestone,pleaf,tag_ids,tag_names,ntype,children_cnt,ltime,is_key_path,pid_paths,lvl,is_tpl;<br>
* 当前主键(包括多主键):<br>
* id;<br>
*/
@ApiModel(description="项目阶段模板")
@ApiModel(description="项目计划模板")
public class XmProjectPhase implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(notes="阶段主键,主键",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="计划主键,主键",allowEmptyValue=true,example="",allowableValues="")
String id;
@ApiModelProperty(notes="阶段名称",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="计划名称",allowEmptyValue=true,example="",allowableValues="")
String phaseName;
@ApiModelProperty(notes="备注",allowEmptyValue=true,example="",allowableValues="")
String remark;
@ApiModelProperty(notes="上级阶段编号",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="上级计划编号",allowEmptyValue=true,example="",allowableValues="")
String parentPhaseId;
@ApiModelProperty(notes="机构编号",allowEmptyValue=true,example="",allowableValues="")
@ -119,7 +119,7 @@ public class XmProjectPhase implements java.io.Serializable {
@ApiModelProperty(notes="实际进度0-100",allowEmptyValue=true,example="",allowableValues="")
BigDecimal actRate;
@ApiModelProperty(notes="阶段状态0初始1执行中2完工3关闭4删除中5已删除6暂停",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="计划状态0初始1执行中2完工3关闭4删除中5已删除6暂停",allowEmptyValue=true,example="",allowableValues="")
String phaseStatus;
@ApiModelProperty(notes="实际外部人力成本",allowEmptyValue=true,example="",allowableValues="")
@ -182,23 +182,23 @@ public class XmProjectPhase implements java.io.Serializable {
@ApiModelProperty(notes="是否为模板",allowEmptyValue=true,example="",allowableValues="")
String isTpl;
/**阶段主键**/
/**计划主键**/
public XmProjectPhase(String id) {
this.id = id;
}
/**项目阶段模板**/
/**项目计划模板**/
public XmProjectPhase() {
}
/**
* 阶段主键
* 计划主键
**/
public void setId(String id) {
this.id = id;
}
/**
* 阶段名称
* 计划名称
**/
public void setPhaseName(String phaseName) {
this.phaseName = phaseName;
@ -210,7 +210,7 @@ public class XmProjectPhase implements java.io.Serializable {
this.remark = remark;
}
/**
* 上级阶段编号
* 上级计划编号
**/
public void setParentPhaseId(String parentPhaseId) {
this.parentPhaseId = parentPhaseId;
@ -390,7 +390,7 @@ public class XmProjectPhase implements java.io.Serializable {
this.actRate = actRate;
}
/**
* 阶段状态0初始1执行中2完工3关闭4删除中5已删除6暂停
* 计划状态0初始1执行中2完工3关闭4删除中5已删除6暂停
**/
public void setPhaseStatus(String phaseStatus) {
this.phaseStatus = phaseStatus;
@ -517,13 +517,13 @@ public class XmProjectPhase implements java.io.Serializable {
}
/**
* 阶段主键
* 计划主键
**/
public String getId() {
return this.id;
}
/**
* 阶段名称
* 计划名称
**/
public String getPhaseName() {
return this.phaseName;
@ -535,7 +535,7 @@ public class XmProjectPhase implements java.io.Serializable {
return this.remark;
}
/**
* 上级阶段编号
* 上级计划编号
**/
public String getParentPhaseId() {
return this.parentPhaseId;
@ -715,7 +715,7 @@ public class XmProjectPhase implements java.io.Serializable {
return this.actRate;
}
/**
* 阶段状态0初始1执行中2完工3关闭4删除中5已删除6暂停
* 计划状态0初始1执行中2完工3关闭4删除中5已删除6暂停
**/
public String getPhaseStatus() {
return this.phaseStatus;

6
xm-core/src/main/java/com/xm/core/entity/XmProjectState.java

@ -180,7 +180,7 @@ public class XmProjectState implements java.io.Serializable {
@ApiModelProperty(notes="产品数",allowEmptyValue=true,example="",allowableValues="")
Integer productCnt;
@ApiModelProperty(notes="故事数",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="需求数",allowEmptyValue=true,example="",allowableValues="")
Integer menuCnt;
/**主键**/
@ -511,7 +511,7 @@ public class XmProjectState implements java.io.Serializable {
this.productCnt = productCnt;
}
/**
* 故事
* 需求
**/
public void setMenuCnt(Integer menuCnt) {
this.menuCnt = menuCnt;
@ -836,7 +836,7 @@ public class XmProjectState implements java.io.Serializable {
return this.productCnt;
}
/**
* 故事
* 需求
**/
public Integer getMenuCnt() {
return this.menuCnt;

6
xm-core/src/main/java/com/xm/core/entity/XmProjectStateHis.java

@ -180,7 +180,7 @@ public class XmProjectStateHis implements java.io.Serializable {
@ApiModelProperty(notes="产品数",allowEmptyValue=true,example="",allowableValues="")
Integer productCnt;
@ApiModelProperty(notes="故事数",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="需求数",allowEmptyValue=true,example="",allowableValues="")
Integer menuCnt;
/**主键**/
@ -511,7 +511,7 @@ public class XmProjectStateHis implements java.io.Serializable {
this.productCnt = productCnt;
}
/**
* 故事
* 需求
**/
public void setMenuCnt(Integer menuCnt) {
this.menuCnt = menuCnt;
@ -836,7 +836,7 @@ public class XmProjectStateHis implements java.io.Serializable {
return this.productCnt;
}
/**
* 故事
* 需求
**/
public Integer getMenuCnt() {
return this.menuCnt;

12
xm-core/src/main/java/com/xm/core/entity/XmQuestion.java

@ -80,10 +80,10 @@ public class XmQuestion implements java.io.Serializable {
@ApiModelProperty(notes="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除",allowEmptyValue=true,example="",allowableValues="")
String bizFlowState;
@ApiModelProperty(notes="故事编号",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="需求编号",allowEmptyValue=true,example="",allowableValues="")
String menuId;
@ApiModelProperty(notes="故事名称",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="需求名称",allowEmptyValue=true,example="",allowableValues="")
String menuName;
@ApiModelProperty(notes="预估工时单位人时",allowEmptyValue=true,example="",allowableValues="")
@ -279,13 +279,13 @@ public class XmQuestion implements java.io.Serializable {
this.bizFlowState = bizFlowState;
}
/**
* 故事编号
* 需求编号
**/
public void setMenuId(String menuId) {
this.menuId = menuId;
}
/**
* 故事名称
* 需求名称
**/
public void setMenuName(String menuName) {
this.menuName = menuName;
@ -538,13 +538,13 @@ public class XmQuestion implements java.io.Serializable {
return this.bizFlowState;
}
/**
* 故事编号
* 需求编号
**/
public String getMenuId() {
return this.menuId;
}
/**
* 故事名称
* 需求名称
**/
public String getMenuName() {
return this.menuName;

12
xm-core/src/main/java/com/xm/core/entity/XmTask.java

@ -119,10 +119,10 @@ public class XmTask implements java.io.Serializable {
@ApiModelProperty(notes="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除",allowEmptyValue=true,example="",allowableValues="")
String bizFlowState;
@ApiModelProperty(notes="项目阶段编号",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="项目计划编号",allowEmptyValue=true,example="",allowableValues="")
String projectPhaseId;
@ApiModelProperty(notes="项目阶段名称",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="项目计划名称",allowEmptyValue=true,example="",allowableValues="")
String projectPhaseName;
@ApiModelProperty(notes="技能列表,逗号分隔",allowEmptyValue=true,example="",allowableValues="")
@ -396,13 +396,13 @@ public class XmTask implements java.io.Serializable {
this.bizFlowState = bizFlowState;
}
/**
* 项目阶段编号
* 项目计划编号
**/
public void setProjectPhaseId(String projectPhaseId) {
this.projectPhaseId = projectPhaseId;
}
/**
* 项目阶段名称
* 项目计划名称
**/
public void setProjectPhaseName(String projectPhaseName) {
this.projectPhaseName = projectPhaseName;
@ -733,13 +733,13 @@ public class XmTask implements java.io.Serializable {
return this.bizFlowState;
}
/**
* 项目阶段编号
* 项目计划编号
**/
public String getProjectPhaseId() {
return this.projectPhaseId;
}
/**
* 项目阶段名称
* 项目计划名称
**/
public String getProjectPhaseName() {
return this.projectPhaseName;

12
xm-core/src/main/java/com/xm/core/entity/XmTestCase.java

@ -35,10 +35,10 @@ public class XmTestCase implements java.io.Serializable {
@ApiModelProperty(notes="期望结果",allowEmptyValue=true,example="",allowableValues="")
String expectResult;
@ApiModelProperty(notes="关联的故事",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="关联的需求",allowEmptyValue=true,example="",allowableValues="")
String menuId;
@ApiModelProperty(notes="关联故事名",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="关联需求名",allowEmptyValue=true,example="",allowableValues="")
String menuName;
@ApiModelProperty(notes="创建时间",allowEmptyValue=true,example="",allowableValues="")
@ -105,13 +105,13 @@ public class XmTestCase implements java.io.Serializable {
this.expectResult = expectResult;
}
/**
* 关联的故事
* 关联的需求
**/
public void setMenuId(String menuId) {
this.menuId = menuId;
}
/**
* 关联故事
* 关联需求
**/
public void setMenuName(String menuName) {
this.menuName = menuName;
@ -196,13 +196,13 @@ public class XmTestCase implements java.io.Serializable {
return this.expectResult;
}
/**
* 关联的故事
* 关联的需求
**/
public String getMenuId() {
return this.menuId;
}
/**
* 关联故事
* 关联需求
**/
public String getMenuName() {
return this.menuName;

12
xm-core/src/main/java/com/xm/core/entity/XmTestCaseExec.java

@ -74,10 +74,10 @@ public class XmTestCaseExec implements java.io.Serializable {
@ApiModelProperty(notes="归属测试任务名称",allowEmptyValue=true,example="",allowableValues="")
String taskName;
@ApiModelProperty(notes="故事编号",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="需求编号",allowEmptyValue=true,example="",allowableValues="")
String menuId;
@ApiModelProperty(notes="故事名称",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="需求名称",allowEmptyValue=true,example="",allowableValues="")
String menuName;
/**执行编号**/
@ -198,13 +198,13 @@ public class XmTestCaseExec implements java.io.Serializable {
this.taskName = taskName;
}
/**
* 故事编号
* 需求编号
**/
public void setMenuId(String menuId) {
this.menuId = menuId;
}
/**
* 故事名称
* 需求名称
**/
public void setMenuName(String menuName) {
this.menuName = menuName;
@ -319,13 +319,13 @@ public class XmTestCaseExec implements java.io.Serializable {
return this.taskName;
}
/**
* 故事编号
* 需求编号
**/
public String getMenuId() {
return this.menuId;
}
/**
* 故事名称
* 需求名称
**/
public String getMenuName() {
return this.menuName;

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

@ -112,7 +112,7 @@ public class XmRecordService extends BaseService {
/**
* 针对项目下的任务的所有操作用此方法
* @param projectId 项目编号
* @param phaseId 阶段编号
* @param phaseId 计划编号
* @param action 操作如 新增任务修改任务信息修改任务进度
* @param remarks 人性化语言描述
*/
@ -130,7 +130,7 @@ public class XmRecordService extends BaseService {
/**
* 针对项目下的任务的所有操作用此方法
* @param projectId 项目编号
* @param phaseId 阶段编号
* @param phaseId 计划编号
* @param action 操作如 新增任务修改任务信息修改任务进度
* @param remarks 人性化语言描述
* @param newValue 需要记录下来的新数据 可空

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

@ -375,7 +375,7 @@ public class XmTaskService extends BaseService {
}
/**
* 批量更新任务的故事为新的故事或者更新为空
* 批量更新任务的需求为新的需求或者更新为空
* @param xmTasks
*/
@Transactional

2
xm-core/src/main/java/com/xm/core/service/push/XmMenuPushMsgService.java

@ -22,7 +22,7 @@ public class XmMenuPushMsgService extends PushMsgService {
/**
* 发消息给故事相关人员
* 发消息给需求相关人员
* 产品经理/客户/任务执行人
* @param branchId
* @param menuId

6
xm-core/src/main/java/com/xm/core/service/push/XmPushMsgService.java

@ -15,9 +15,9 @@ public class XmPushMsgService extends PushMsgService {
/**
* 添加候选人时-发送消息给候选人发消息给任务负责人发消息给故事负责人
* 候选人变成执行人-发送消息给候选人发消息给任务负责人发消息给故事负责人
* 执行人提交测试提交验收时发给 故事负责人任务负责人小组组长
* 添加候选人时-发送消息给候选人发消息给任务负责人发消息给需求负责人
* 候选人变成执行人-发送消息给候选人发消息给任务负责人发消息给需求负责人
* 执行人提交测试提交验收时发给 需求负责人任务负责人小组组长
* @param msg
*/
public void pushCssMsg(String branchId,String sendUserid,String sendUsername,String msg){

6
xm-core/src/main/java/com/xm/share/entity/ShareBizInfo.java

@ -64,7 +64,7 @@ public class ShareBizInfo implements java.io.Serializable {
@ApiModelProperty(notes="上级分享人姓名,冗余字段,方便计算",allowEmptyValue=true,example="",allowableValues="")
String pshareUsername;
@ApiModelProperty(notes="业务分类0商品1项目2任务3故事4app",allowEmptyValue=true,example="",allowableValues="")
@ApiModelProperty(notes="业务分类0商品1项目2任务3需求4app",allowEmptyValue=true,example="",allowableValues="")
String bizType;
@ApiModelProperty(notes="业务分类的主键,用于与分佣方案比对,分佣方案是可以针对一类商品进行分佣,可以对于具体的商品进行分佣",allowEmptyValue=true,example="",allowableValues="")
@ -170,7 +170,7 @@ public class ShareBizInfo implements java.io.Serializable {
this.pshareUsername = pshareUsername;
}
/**
* 业务分类0商品1项目2任务3故事4app
* 业务分类0商品1项目2任务3需求4app
**/
public void setBizType(String bizType) {
this.bizType = bizType;
@ -273,7 +273,7 @@ public class ShareBizInfo implements java.io.Serializable {
return this.pshareUsername;
}
/**
* 业务分类0商品1项目2任务3故事4app
* 业务分类0商品1项目2任务3需求4app
**/
public String getBizType() {
return this.bizType;

2
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

@ -148,7 +148,7 @@
delete from xm_task
where biz_proc_inst_id=#{procInstId}
</delete>
<!-- 查询任务总的预算及对应的阶段的预算,任务总预算不能大于阶段总预算 -->
<!-- 查询任务总的预算及对应的计划的预算,任务总预算不能大于计划总预算 -->
<select id="selectTotalPhaseAndTaskBudgetCost" parameterType="HashMap" resultType="HashMap">
SELECT
sum( ifnull(res.budget_cost,0) ) AS budget_cost,

Loading…
Cancel
Save