ludc
2023-07-14 36d3d9da36c71e65081e38cf9cfbd5e0ff6bfeed
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;
@@ -109,6 +106,18 @@
      return LifeCycleEventWrapper.build().pageVO(eventMapper.selectPage(Condition.getPage(query),Condition.getQueryWrapper(conditionMap, LifeCycleEvent.class).lambda().orderByAsc(LifeCycleEvent::getEventFullName)));
   }
   public List<LifeCycleEventVO> listEventNoPage(){
      QueryWrapper<LifeCycleEvent> queryWrapper = new QueryWrapper();
      List<LifeCycleEvent> lifeCycleEvents =  eventMapper.selectList(queryWrapper);
      List<LifeCycleEventVO> vos = new ArrayList<>();
      lifeCycleEvents.stream().forEach(lifeCycleEvent -> {
         LifeCycleEventVO vo = new LifeCycleEventVO();
         BeanUtil.convert(lifeCycleEvent,vo);
         vos.add(vo);
      });
      return vos;
   }
   /**
    * 添加保存
    *
@@ -120,8 +129,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 +253,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() + "]连接线上中使用的状态没有找到");
@@ -320,9 +329,7 @@
      LifeCycleRule rule = selectByOid(lifeCycleDTO.getOid());
      //查询重复
      QueryWrapper wrapper = new QueryWrapper(LifeCycleRule.class);
      if(rule.getId().equals(lifeCycleDTO.getId())){
         throw new VciBaseException("生命周期编号不能修改");
      }
      wrapper.eq("lower(id)",lifeCycleDTO.getId().toLowerCase(Locale.ROOT));
      wrapper.ne("oid",lifeCycleDTO.getOid());
      if(baseMapper.selectCount(wrapper)>0){
@@ -332,6 +339,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("life_cycle_oid",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("life_cycle_oid",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