xiejun
2023-07-13 2871cb99e018f6bf9e2ef76a424a1429a7c818f0
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LifeCycleServiceImpl.java
@@ -15,10 +15,7 @@
import com.vci.ubcs.omd.service.IBtmTypeService;
import com.vci.ubcs.omd.service.ILifeCycleService;
import com.vci.ubcs.omd.service.IStatusService;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.omd.vo.LifeCycleEventVO;
import com.vci.ubcs.omd.vo.LifeCycleVO;
import com.vci.ubcs.omd.vo.StatusVO;
import com.vci.ubcs.omd.vo.*;
import com.vci.ubcs.omd.wrapper.LifeCycleEventWrapper;
import com.vci.ubcs.omd.wrapper.LifeCycleRuleWrapper;
import com.vci.ubcs.starter.enumpack.NewAppConstantEnum;
@@ -120,8 +117,8 @@
   public LifeCycleVO addSave(LifeCycleDTO lifeCycleDTO) {
      VciBaseUtil.alertNotNull(lifeCycleDTO,"生命周期信息",lifeCycleDTO.getId(),"生命周期的编号",lifeCycleDTO.getName(),"生命周期名称",lifeCycleDTO.getNodes(),"生命周期的节点",lifeCycleDTO.getStartStatus(),"起始状态");
      //先查询是否存在
      QueryWrapper wrapper = new QueryWrapper(LifeCycleRule.class);
      wrapper.eq("lower(id)",lifeCycleDTO.getId().toLowerCase(Locale.ROOT));
      QueryWrapper<LifeCycleRule> wrapper = new QueryWrapper<>();
      wrapper.eq("id",lifeCycleDTO.getId().toLowerCase(Locale.ROOT));
      if(baseMapper.selectCount(wrapper)>0){
         throw new VciBaseException("生命周期的编号不能重复");
      }
@@ -244,7 +241,7 @@
    * @return 连接线的主键
    */
   private String addLifeCycleEdge(LifeCycleEdgeDTO edgeDTO,List<String> statusList,String lifeOid,String creator,Date now){
      VciBaseUtil.alertNotNull(edgeDTO.getSource(),"来源状态",edgeDTO.getTarget(),"目标状态",edgeDTO.getName(),"连接线名称");
      VciBaseUtil.alertNotNull(edgeDTO.getSource(),"来源状态",edgeDTO.getTarget(),"目标状态");
      if(!statusList.contains(edgeDTO.getSource())
         ||!statusList.contains(edgeDTO.getTarget())){
         throw new VciBaseException("数据错误,[" + edgeDTO.getName() + "]连接线上中使用的状态没有找到");
@@ -332,6 +329,36 @@
      return LifeCycleRuleWrapper.build().entityVO(getById(rule.getOid()));
   }
   public LifeCycleVO detail(LifeCycleDTO lifeCycleDTO){
      QueryWrapper wrapper = Condition.getQueryWrapper(org.springblade.core.tool.utils.BeanUtil.copy(lifeCycleDTO, LifeCycleRule.class));
      LifeCycleRule lifeCycleRule = baseMapper.selectOne(wrapper);
      LifeCycleVO vo = LifeCycleRuleWrapper.build().entityVO(lifeCycleRule);
      String lifeOid = lifeCycleRule.getOid();
      QueryWrapper<LifeCycleNode> nodeWrapper = new QueryWrapper<>();
      nodeWrapper.eq("lifeCycleOid",lifeOid.toLowerCase(Locale.ROOT));
      List<LifeCycleNode> nodes = nodeMapper.selectList(nodeWrapper);
      List<LifeCycleNodeVO> nodeVos = new ArrayList<>();
      nodes.stream().forEach(doo->{
         LifeCycleNodeVO vo1 = new LifeCycleNodeVO();
         BeanUtil.convert(doo,vo1);
         nodeVos.add(vo1);
      });
      vo.setNodes(nodeVos);
      QueryWrapper<LifeCycleEdge> edgeWrapper = new QueryWrapper<>();
      edgeWrapper.eq("lifeCycleOid",lifeOid.toLowerCase(Locale.ROOT));
      List<LifeCycleEdge> edges = edgeMapper.selectList(edgeWrapper);
      List<LifeCycleEdgeVO> edgeVos = new ArrayList<>();
      edges.stream().forEach(doo->{
         LifeCycleEdgeVO vo2 = new LifeCycleEdgeVO();
         BeanUtil.convert(doo,vo2);
         edgeVos.add(vo2);
      });
      vo.setEdges(edgeVos);
      return vo;
   }
   /**
    * 修改生命周期
    * @param lifeCycleDTO