Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
7e364e99fe
  1. 17
      xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java
  2. 17
      xm-core/src/main/java/com/xm/core/ctrl/XmProductController.java
  3. 16
      xm-core/src/main/java/com/xm/core/ctrl/XmProductPhaseController.java
  4. 2
      xm-core/src/main/java/com/xm/core/service/XmProductService.java
  5. 10
      xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java
  6. 98
      xm-core/src/main/java/com/xm/core/service/XmRecordService.java

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

@ -1,5 +1,6 @@
package com.xm.core.ctrl;
import com.alibaba.fastjson.JSON;
import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException;
import com.mdp.core.utils.NumberUtil;
@ -14,6 +15,7 @@ import com.xm.core.entity.XmMenu;
import com.xm.core.entity.XmProjectPhase;
import com.xm.core.entity.XmTask;
import com.xm.core.service.XmMenuService;
import com.xm.core.service.XmRecordService;
import com.xm.core.service.XmTaskService;
import com.xm.core.vo.XmMenuVo;
import io.swagger.annotations.*;
@ -53,6 +55,10 @@ public class XmMenuController {
@Autowired
private XmTaskService xmTaskService;
@Autowired
private XmRecordService xmRecordService;
@ApiOperation( value = "查询项目菜单表信息列表",notes="listXmMenu,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}")
@ApiImplicitParams({
@ApiImplicitParam(name="menuId",value="菜单编号,主键",required=false),
@ -304,7 +310,7 @@ public class XmMenuController {
}
xmMenuService.parentIdPathsCalcBeforeSave(xmMenu);
xmMenuService.insert(xmMenu);
xmRecordService.addXmMenuRecord(xmMenu.getProductId(),xmMenu.getMenuId(),"新增产品需求","新增需求"+xmMenu.getMenuName());
m.put("data",xmMenu);
}catch (BizException e) {
tips=e.getTips();
@ -342,6 +348,8 @@ public class XmMenuController {
tips.setFailureMsg("存在"+childCount+"个子需求关联该需求,不允许删除");
}else {
xmMenuService.deleteByPk(xmMenu);
xmRecordService.addXmMenuRecord(xmMenu.getProductId(),xmMenu.getMenuId(),"删除产品需求","删除需求"+xmMenu.getMenuName(),"",JSON.toJSONString(xmMenu));
}
}
}catch (BizException e) {
@ -387,6 +395,8 @@ public class XmMenuController {
}
}
xmMenuService.updateByPk(xmMenu);
xmRecordService.addXmMenuRecord(xmMenu.getProductId(),xmMenu.getMenuId(),"修改产品需求","修改产品需求"+xmMenu.getMenuName(),"", JSON.toJSONString(xmMenu));
m.put("data",xmMenu);
}catch (BizException e) {
tips=e.getTips();
@ -426,6 +436,8 @@ public class XmMenuController {
}
if(canDelList.size()>0) {
xmMenuService.doBatchDelete(canDelList);
xmRecordService.addXmMenuRecord(canDelList.get(0).getProductId(),"","批量删除产品需求","批量删除产品需求"+canDelList.size()+"个。【"+canDelList.stream().map(i->i.getMenuName()).collect(Collectors.joining(","))+"】","", JSON.toJSONString(canDelList));
}
String msg="成功删除"+canDelList.size()+"个需求信息。\n";
if(hasChildMenus.size()>0 ) {
@ -458,6 +470,8 @@ public class XmMenuController {
this.xmMenuService.parentIdPathsCalcBeforeSave(xmMenus);
this.xmMenuService.doBatchInsert(xmMenus);
xmRecordService.addXmMenuRecord(xmMenus.get(0).getProductId(),"","批量新增产品需求","批量新增产品需求"+xmMenus.size()+"个。【"+xmMenus.stream().map(i->i.getMenuName()).collect(Collectors.joining(","))+"】");
}else {
tips.setFailureMsg("没有数据可以新增,请上送数据");
}
@ -483,6 +497,7 @@ public class XmMenuController {
if(xmMenus.size()>0) {
this.xmMenuService.parentIdPathsCalcBeforeSave(xmMenus.stream().map(i->(XmMenu)i).collect(Collectors.toList()));
this.xmMenuService.batchInsertOrUpdate(xmMenus);
xmRecordService.addXmMenuRecord(xmMenus.get(0).getProductId(),"","批量修改产品需求","批量修改产品需求【"+xmMenus.stream().map(i->i.getMenuName()).collect(Collectors.joining(","))+"】");
}else {
tips.setFailureMsg("没有数据可以修改,请上送数据");

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

@ -1,5 +1,6 @@
package com.xm.core.ctrl;
import com.alibaba.fastjson.JSON;
import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException;
import com.mdp.core.utils.RequestUtils;
@ -14,6 +15,7 @@ import com.xm.core.entity.XmProject;
import com.xm.core.service.XmProductService;
import com.xm.core.service.XmProjectGroupService;
import com.xm.core.service.XmProjectService;
import com.xm.core.service.XmRecordService;
import io.swagger.annotations.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -49,6 +51,10 @@ public class XmProductController {
@Autowired
private XmProjectGroupService groupService;
@Autowired
private XmRecordService xmRecordService;
@Value("${mdp.platform-branch-id:platform-branch-001}")
String platformBranchId="platform-branch-001";
@ -195,6 +201,7 @@ public class XmProductController {
}
XmProduct xmProductNew=xmProductService.copyTo(user,xmProduct);
xmRecordService.addXmProductRecord(xmProductNew.getId(),"通过拷贝创建产品","拷贝项目【"+xmProduct.getId()+"】【"+xmProduct.getProductName()+"】,创建新的项目【"+xmProductNew.getId()+"】【"+xmProductNew.getProductName()+"】","参数:"+ JSON.toJSONString(xmProduct),"");
m.put("data",xmProductNew);
}catch (BizException e) {
tips=e.getTips();
@ -235,6 +242,8 @@ public class XmProductController {
}
xmProduct.setCtime(new Date());
xmProductService.insert(xmProduct);
xmRecordService.addXmProductRecord(xmProduct.getId(),"创建产品","创建产品【"+xmProduct.getId()+"】【"+xmProduct.getProductName()+"】");
m.put("data",xmProduct);
}catch (BizException e) {
tips=e.getTips();
@ -284,6 +293,8 @@ public class XmProductController {
**/
xmProductService.doDeleteByPk(xmProduct);
xmProductService.clearCache(xmProduct.getId());
xmRecordService.addXmProductRecord(xmProduct.getId(),"删除产品","删除产品【"+xmProductDb.getId()+"】【"+xmProductDb.getProductName()+"】","",JSON.toJSONString(xmProductDb));
}catch (BizException e) {
tips=e.getTips();
logger.error("",e);
@ -314,6 +325,8 @@ public class XmProductController {
xmProductService.updateByPk(xmProduct);
xmProductService.clearCache(xmProduct.getId());
xmRecordService.addXmProductRecord(xmProduct.getId(),"修改产品","修改产品【"+xmProductDb.getId()+"】【"+xmProductDb.getProductName()+"】",JSON.toJSONString(xmProduct),JSON.toJSONString(xmProductDb));
m.put("data",xmProduct);
}catch (BizException e) {
tips=e.getTips();
@ -379,7 +392,11 @@ public class XmProductController {
xmProductService.doBatchDelete(canDelList);
for (XmProduct xmProduct : canDelList) {
xmProductService.clearCache(xmProduct.getId());
xmRecordService.addXmProductRecord(xmProduct.getId(),"批量删除产品","批量删除产品【"+xmProduct.getId()+"】【"+xmProduct.getProductName()+"】","",JSON.toJSONString(xmProduct));
}
}
String msg="成功删除"+canDelList.size()+"条产品信息";
if(canDelList.size()==xmProducts.size()){

16
xm-core/src/main/java/com/xm/core/ctrl/XmProductPhaseController.java

@ -188,6 +188,7 @@ public class XmProductPhaseController {
xmProjectPhaseToUpdate.setMngUserid(xmProjectPhase.getMngUserid());
xmProjectPhaseToUpdate.setMngUsername(xmProjectPhase.getMngUsername());
this.xmProjectPhaseService.updateSomeFieldByPk(xmProjectPhaseToUpdate);
this.xmRecordService.addProductPhaseRecord(xmProduct.getId(),xmProjectPhase.getId(),"产品-计划-设置计划负责人","计划负责人由【"+xmProjectPhaseDb.getMngUsername()+"】变更为【"+xmProjectPhase.getMngUsername()+"】");
}
}
@ -321,7 +322,7 @@ public class XmProductPhaseController {
tips.setFailureMsg("存在"+xmProjectPhaseDb.getChildrenCnt()+"条子计划,不允许删除");
} else {
xmProjectPhaseService.deleteByPk(xmProjectPhaseDb);
xmRecordService.addProductPhaseRecord(xmProjectPhaseDb.getProductId(), xmProjectPhaseDb.getId(), "产品-计划-删除计划", "删除计划"+xmProjectPhaseDb.getPhaseName(),JSON.toJSONString(xmProjectPhaseDb),null);
xmRecordService.addProductPhaseRecord(xmProjectPhaseDb.getProductId(), xmProjectPhaseDb.getId(), "产品-计划-删除计划", "删除计划"+xmProjectPhaseDb.getPhaseName(),"",JSON.toJSONString(xmProjectPhaseDb));
}
}
@ -465,6 +466,8 @@ public class XmProductPhaseController {
}
if(canDelNodes.size()>0){
this.xmProjectPhaseService.doBatchDelete(canDelNodes);
xmRecordService.addProductPhaseRecord(xmProjectPhase.getProductId(), "", "产品-计划-批量删除计划", "批量删除计划"+canDelNodes.stream().map(i->i.getPhaseName()).collect(Collectors.joining(",")),"",JSON.toJSONString(canDelNodes));
}
List<String> msgs=new ArrayList<>();
msgs.add("成功删除"+canDelNodes.size()+"条数据。");
@ -674,7 +677,10 @@ public class XmProductPhaseController {
m.put("tips", tips);
return m;
}
int i= xmProjectPhaseService.loadTasksToXmProjectPhase((String) params.get("productId"));
int i= xmProjectPhaseService.loadTasksToXmProductPhase(xmProduct.getId());
xmRecordService.addProductPhaseRecord(xmProduct.getId(), "", "产品-计划-汇总统计", "计算产品计划进度","",null);
}catch (BizException e) {
tips=e.getTips();
logger.error("",e);
@ -686,11 +692,11 @@ public class XmProductPhaseController {
return m;
}
@ApiOperation( value = "计算bug、task、测试案例、等数据",notes="loadTasksToXmProjectPhase")
@ApiOperation( value = "关键路径计算",notes="calcKeyPaths")
@ApiResponses({
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
@HasQx(value = "xm_core_xmProductPhase_loadTasksToXmProductPhase",name = "计算各个计划对应的bug、task、测试案例等数据",categoryId = "admin-xm",categoryName = "管理端-产品管理系统")
@HasQx(value = "xm_core_xmProductPhase_calcKeyPaths",name = "关键路径计算",categoryId = "admin-xm",categoryName = "管理端-产品管理系统")
@RequestMapping(value="/calcKeyPaths",method=RequestMethod.POST)
public Map<String,Object> calcKeyPaths(@RequestBody Map<String,Object> params) {
Map<String,Object> m = new HashMap<>();
@ -709,6 +715,8 @@ public class XmProductPhaseController {
return m;
}
xmProjectPhaseService.calcKeyPaths((String) params.get("productId"));
xmRecordService.addProductPhaseRecord(xmProduct.getId(), "", "产品-计划-关键路径计算", "计算产品计划关键路径","",null);
}catch (BizException e) {
tips=e.getTips();
logger.error("",e);

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

@ -94,6 +94,7 @@ public class XmProductService extends BaseService {
if(xmProductDb==null){
throw new BizException("产品不存在");
}
if(!"1".equals(xmProductDb.getIsTpl())){
if(!user.getBranchId().equals(xmProductDb.getBranchId())){
throw new BizException("您无权复制其它组织的产品。");
@ -240,6 +241,7 @@ public class XmProductService extends BaseService {
this.groupUserService.batchInsert(usersDb);
}
}
xmProduct.setProductName(xmProductDb.getProductName());
return xmProductTo;
}

10
xm-core/src/main/java/com/xm/core/service/XmProjectPhaseService.java

@ -169,6 +169,16 @@ public class XmProjectPhaseService extends BaseService {
return this.update("loadTasksToXmProjectPhase", projectId);
}
/**
* 计算bugtask测试案例等数据
* @param productId
* @return
*/
public int loadTasksToXmProductPhase(String productId) {
return this.update("loadTasksToXmProductPhase", productId);
}
public Long checkExistsTask(String phaseId) {
Long i= this.selectOne("checkExistsTask", phaseId);
return i;

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

@ -32,6 +32,43 @@ public class XmRecordService extends BaseService {
return record;
}
/**
* 针对产品的所有的操作日志用此方法
* @param productId 项目编号
* @param action 操作如 新增产品修改产品修改产品进度
* @param remarks 人性化语言描述
* @param newValue 需要记录下来的新数据可空
* @param oldValue 需要记录下来的旧数据可空
*/
@Async
public void addXmProductRecord(String productId,String action,String remarks,String newValue,String oldValue) {
XmRecord record=this.initXmRecord();
record.setProductId(productId);
record.setBizId(productId);
record.setAction(action);
record.setRemarks(remarks);
record.setObjType("product");
record.setNewValue(newValue);
record.setOldValue(oldValue);
this.insert(record);
}
/**
* 针对产品的所有的操作日志用此方法
* @param productId 产品编号
* @param action 操作如 新增产品修改产品修改产品进度
* @param remarks 人性化语言描述
*/
@Async
public void addXmProductRecord(String productId,String action,String remarks) {
XmRecord record=this.initXmRecord();
record.setProductId(productId);
record.setAction(action);
record.setBizId(productId);
record.setRemarks(remarks);
record.setObjType("product");
this.insert(record);
}
/**
* 针对项目的所有的操作日志用此方法
* @param projectId 项目编号
@ -44,6 +81,7 @@ public class XmRecordService extends BaseService {
public void addXmProjectRecord(String projectId,String action,String remarks,String newValue,String oldValue) {
XmRecord record=this.initXmRecord();
record.setProjectId(projectId);
record.setBizId(projectId);
record.setAction(action);
record.setRemarks(remarks);
record.setObjType("project");
@ -64,6 +102,7 @@ public class XmRecordService extends BaseService {
record.setProjectId(projectId);
record.setAction(action);
record.setRemarks(remarks);
record.setBizId(projectId);
record.setObjType("project");
this.insert(record);
}
@ -108,6 +147,45 @@ public class XmRecordService extends BaseService {
this.insert(record);
}
/**
* 针对产品下的需求的所有操作用此方法
* @param productId 产品编号
* @param menuId 需求编号
* @param action 操作如 新增任务修改任务信息修改任务进度
* @param remarks 人性化语言描述
*/
@Async
public void addXmMenuRecord(String productId,String menuId,String action,String remarks) {
XmRecord record=this.initXmRecord();
record.setProductId(productId);
record.setBizId(menuId);
record.setAction(action);
record.setRemarks(remarks);
record.setObjType("menu");
this.insert(record);
}
/**
* 针对产品下的需求的所有操作用此方法
* @param productId 产品编号
* @param menuId 需求编号
* @param action 操作如 新增任务修改任务信息修改任务进度
* @param remarks 人性化语言描述
* @param newValue 需要记录下来的新数据 可空
* @param oldValue 需要记录下来的旧数据 可空
*/
@Async
public void addXmMenuRecord(String productId,String menuId,String action,String remarks,String newValue,String oldValue) {
XmRecord record=this.initXmRecord();
record.setProductId(productId);
record.setBizId(menuId);
record.setAction(action);
record.setRemarks(remarks);
record.setObjType("task");
record.setNewValue(newValue);
record.setOldValue(oldValue);
this.insert(record);
}
/**
* 针对项目下的任务的所有操作用此方法
@ -151,7 +229,7 @@ public class XmRecordService extends BaseService {
/**
* 针对项目下的任务的所有操作用此方法
* @param productId 项目编号
* @param productId 产品编号
* @param phaseId 计划编号
* @param action 操作如 新增任务修改任务信息修改任务进度
* @param remarks 人性化语言描述
@ -159,7 +237,7 @@ public class XmRecordService extends BaseService {
@Async
public void addProductPhaseRecord(String productId, String phaseId, String action, String remarks) {
XmRecord record=this.initXmRecord();
record.setProjectId(productId);
record.setProductId(productId);
record.setBizId(phaseId);
record.setAction(action);
record.setRemarks(remarks);
@ -169,7 +247,7 @@ public class XmRecordService extends BaseService {
/**
* 针对项目下的任务的所有操作用此方法
* @param productId 项目编号
* @param productId 产品编号
* @param phaseId 计划编号
* @param action 操作如 新增任务修改任务信息修改任务进度
* @param remarks 人性化语言描述
@ -179,7 +257,7 @@ public class XmRecordService extends BaseService {
@Async
public void addProductPhaseRecord(String productId, String phaseId, String action, String remarks, String newValue, String oldValue) {
XmRecord record=this.initXmRecord();
record.setProjectId(productId);
record.setProductId(productId);
record.setBizId(phaseId);
record.setAction(action);
record.setRemarks(remarks);
@ -230,7 +308,7 @@ public class XmRecordService extends BaseService {
/**
* 针对项目下的任务的所有操作用此方法
* @param productId 项目编号
* @param productId 产品编号
* @param groupId 小组编号
* @param action 操作如 新增任务修改任务信息修改任务进度
* @param remarks 人性化语言描述
@ -238,7 +316,7 @@ public class XmRecordService extends BaseService {
@Async
public void addXmProductGroupRecord(String productId,String groupId,String action,String remarks) {
XmRecord record=this.initXmRecord();
record.setProjectId(productId);
record.setProductId(productId);
record.setBizId(groupId);
record.setAction(action);
record.setRemarks(remarks);
@ -248,7 +326,7 @@ public class XmRecordService extends BaseService {
/**
* 针对项目下的任务的所有操作用此方法
* @param productId 项目编号
* @param productId 产品编号
* @param action 操作如 新增任务修改任务信息修改任务进度
* @param remarks 人性化语言描述
* @param newValue 需要记录下来的新数据 可空
@ -257,7 +335,7 @@ public class XmRecordService extends BaseService {
@Async
public void addXmProductGroupRecord(String productId,String groupId,String action,String remarks,String newValue,String oldValue) {
XmRecord record=this.initXmRecord();
record.setProjectId(productId);
record.setProductId(productId);
record.setBizId(groupId);
record.setAction(action);
record.setRemarks(remarks);
@ -322,7 +400,7 @@ public class XmRecordService extends BaseService {
record.setBizId(costId);
record.setAction(action);
record.setRemarks(remarks);
record.setObjType("group");
record.setObjType("cost");
this.insert(record);
}
@ -342,7 +420,7 @@ public class XmRecordService extends BaseService {
record.setBizId(costId);
record.setAction(action);
record.setRemarks(remarks);
record.setObjType("group");
record.setObjType("cost");
record.setNewValue(newValue);
record.setOldValue(oldValue);
this.insert(record);

Loading…
Cancel
Save