Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
cde66a8edb
  1. 31
      xm-core/src/main/java/com/xm/core/ctrl/XmIterationLinkController.java
  2. 16
      xm-core/src/main/java/com/xm/core/ctrl/XmProductProjectLinkController.java
  3. 5
      xm-core/src/main/java/com/xm/core/service/XmMenuService.java
  4. 4
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java
  5. 4
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml
  6. 6
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

31
xm-core/src/main/java/com/xm/core/ctrl/XmIterationLinkController.java

@ -4,14 +4,15 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
import com.mdp.core.utils.ResponseHelper; import com.mdp.core.utils.ResponseHelper;
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.XmIterationLink; import com.xm.core.entity.XmIterationLink;
import com.xm.core.service.XmGroupService;
import com.xm.core.service.XmProductService;
import com.xm.core.service.XmProjectService;
import com.xm.core.entity.XmMenu;
import com.xm.core.entity.XmTask;
import com.xm.core.service.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -31,7 +32,6 @@ import com.mdp.mybatis.PageUtils;
import com.mdp.core.entity.Tips; import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException; import com.mdp.core.err.BizException;
import com.mdp.core.utils.RequestUtils; import com.mdp.core.utils.RequestUtils;
import com.xm.core.service.XmIterationLinkService;
/** /**
* url编制采用rest风格,如对XM.xm_iteration_product_link 迭代表与产品表的关联关系一般由迭代管理员将迭代挂接到产品表的操作有增删改查,对应的url分别为:<br> * url编制采用rest风格,如对XM.xm_iteration_product_link 迭代表与产品表的关联关系一般由迭代管理员将迭代挂接到产品表的操作有增删改查,对应的url分别为:<br>
@ -54,6 +54,17 @@ public class XmIterationLinkController {
@Autowired @Autowired
private XmIterationLinkService xmIterationLinkService; private XmIterationLinkService xmIterationLinkService;
@Autowired
private XmIterationService xmIterationService;
@Autowired
private XmTaskService xmTaskService;
@Autowired
private XmMenuService xmMenuService;
@Autowired @Autowired
XmGroupService xmGroupService; XmGroupService xmGroupService;
@ -187,13 +198,25 @@ public class XmIterationLinkController {
if(!xmGroupService.checkUserIsProductAdm(xmIterationLink.getProId(),user.getUserid())){ if(!xmGroupService.checkUserIsProductAdm(xmIterationLink.getProId(),user.getUserid())){
return ResponseHelper.failed("no-product-qx","您不是产品管理人员,无权将该产品移出迭代"); return ResponseHelper.failed("no-product-qx","您不是产品管理人员,无权将该产品移出迭代");
}; };
//检查是否有需求关联这个迭代如果有不允许删除
List<XmMenu> menus= xmMenuService.listTenMenuByIteration(xmIterationLink.getIterationId());
if(menus!=null && menus.size()>0){
return ResponseHelper.failed("menus-not-0","存在至少"+menus.size()+"个需求与迭代关联,不能移出.关联需求【"+menus.stream().map(i->i.getMenuName()).collect(Collectors.joining(","))+"】");
}
}else if("0".equals(xmIterationLink.getLtype())){ }else if("0".equals(xmIterationLink.getLtype())){
if(!xmGroupService.checkUserIsProjectAdm(xmIterationLink.getProId(),user.getUserid())){ if(!xmGroupService.checkUserIsProjectAdm(xmIterationLink.getProId(),user.getUserid())){
return ResponseHelper.failed("no-project-qx","您不是项目管理人员,无权将该项目移出迭代"); return ResponseHelper.failed("no-project-qx","您不是项目管理人员,无权将该项目移出迭代");
}; };
//检查是否有任务关联这个迭代如果有不允许删除
List<XmTask> tasks= xmTaskService.listTenTaskByIteration(xmIterationLink.getIterationId());
if(tasks!=null && tasks.size()>0){
return ResponseHelper.failed("tasks-not-0","存在至少"+tasks.size()+"个任务与迭代关联,不能移出.关联任务【"+tasks.stream().map(i->i.getName()).collect(Collectors.joining(","))+"】");
}
}else{ }else{
return ResponseHelper.failed("ltype-not-0|1","请上送正确的关联类型"); return ResponseHelper.failed("ltype-not-0|1","请上送正确的关联类型");
} }
xmIterationLinkService.deleteByPk(xmIterationLink); xmIterationLinkService.deleteByPk(xmIterationLink);
}catch (BizException e) { }catch (BizException e) {
tips=e.getTips(); tips=e.getTips();

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

@ -5,6 +5,7 @@ import java.util.*;
import com.mdp.core.utils.ResponseHelper; import com.mdp.core.utils.ResponseHelper;
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.service.XmGroupService;
import org.aspectj.weaver.ResolvedPointcutDefinition; import org.aspectj.weaver.ResolvedPointcutDefinition;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -53,7 +54,8 @@ public class XmProductProjectLinkController {
@Autowired @Autowired
private XmProductProjectLinkService xmProductProjectLinkService; private XmProductProjectLinkService xmProductProjectLinkService;
@Autowired
XmGroupService xmGroupService;
@ -97,6 +99,11 @@ public class XmProductProjectLinkController {
m.put("tips", tips); m.put("tips", tips);
return m; return m;
} }
if(!xmGroupService.checkUserIsProductAdm(xmProductProjectLink.getProductId(),user.getUserid())){
if(!xmGroupService.checkUserIsProjectAdm(xmProductProjectLink.getProjectId(),user.getUserid())){
return ResponseHelper.failed("not-pm","您不是项目管理人员、也不是产品管理人员,无权关联");
}
};
xmProductProjectLink.setCtime(new Date()); xmProductProjectLink.setCtime(new Date());
xmProductProjectLink.setLinkStatus("1"); xmProductProjectLink.setLinkStatus("1");
xmProductProjectLink.setCuserid(user.getUserid()); xmProductProjectLink.setCuserid(user.getUserid());
@ -123,13 +130,18 @@ public class XmProductProjectLinkController {
Map<String,Object> m = new HashMap<>(); Map<String,Object> m = new HashMap<>();
Tips tips=new Tips("成功删除一条数据"); Tips tips=new Tips("成功删除一条数据");
try{ try{
User user = LoginUtils.getCurrentUserInfo();
if(!StringUtils.hasText(xmProductProjectLink.getProductId())){ if(!StringUtils.hasText(xmProductProjectLink.getProductId())){
return ResponseHelper.failed("productId-0","产品编号不能为空"); return ResponseHelper.failed("productId-0","产品编号不能为空");
} }
if(!StringUtils.hasText(xmProductProjectLink.getProjectId())){ if(!StringUtils.hasText(xmProductProjectLink.getProjectId())){
return ResponseHelper.failed("projectId-0","项目编号不能为空"); return ResponseHelper.failed("projectId-0","项目编号不能为空");
} }
if(!xmGroupService.checkUserIsProductAdm(xmProductProjectLink.getProductId(),user.getUserid())){
if(!xmGroupService.checkUserIsProjectAdm(xmProductProjectLink.getProjectId(),user.getUserid())){
return ResponseHelper.failed("not-pm","您不是项目管理人员、也不是产品管理人员,无权取消关联");
}
};
xmProductProjectLinkService.deleteByPk(xmProductProjectLink); xmProductProjectLinkService.deleteByPk(xmProductProjectLink);
}catch (BizException e) { }catch (BizException e) {
tips=e.getTips(); tips=e.getTips();

5
xm-core/src/main/java/com/xm/core/service/XmMenuService.java

@ -280,5 +280,10 @@ public class XmMenuService extends BaseService {
public void batchProductPhase(XmPhaseMenusVo xmPhaseMenusVo) { public void batchProductPhase(XmPhaseMenusVo xmPhaseMenusVo) {
super.update("batchProductPhase",xmPhaseMenusVo); super.update("batchProductPhase",xmPhaseMenusVo);
} }
public List<XmMenu> listTenMenuByIteration(String iterationId) {
return super.selectList("listTenMenuByIteration",iterationId);
}
} }

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

@ -696,5 +696,9 @@ public class XmTaskService extends BaseService {
} }
return tips; return tips;
} }
public List<XmTask> listTenTaskByIteration(String iterationId) {
return super.selectList("listTenTaskByIteration",iterationId);
}
} }

4
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml

@ -151,6 +151,10 @@
#{item} #{item}
</foreach> </foreach>
</update> </update>
<select id="listTenMenuByIteration" parameterType="String" resultType="com.xm.core.entity.XmMenu">
select menu_name from xm_menu res where res.iteration_id=#{iterationId}
limit 10
</select>
<!--结束 自定义sql函数区域--> <!--结束 自定义sql函数区域-->

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

@ -315,6 +315,12 @@
</foreach> </foreach>
group by p.id group by p.id
</select> </select>
<select id="listTenTaskByIteration" parameterType="String" resultType="com.xm.core.entity.XmTask">
select name from xm_task res where exists(select 1 from xm_menu m where m.menu_id=res.menu_id and m.iteration_id=#{iterationId} and m.ntype='0')
and res.ntype='0'
limit 10
</select>
<!--结束 自定义sql函数区域--> <!--结束 自定义sql函数区域-->

Loading…
Cancel
Save