| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.vci.ubcs.omd.constant.BtmTypeConstant; |
| | | import com.baomidou.mybatisplus.extension.toolkit.SqlRunner; |
| | | import com.vci.ubcs.omd.dto.LifeCycleDTO; |
| | | import com.vci.ubcs.omd.dto.LifeCycleEdgeDTO; |
| | | import com.vci.ubcs.omd.dto.LifeCycleLineEventDTO; |
| | | import com.vci.ubcs.omd.dto.LifeCycleNodeDTO; |
| | | import com.vci.ubcs.omd.entity.*; |
| | | import com.vci.ubcs.omd.mapper.*; |
| | | import com.vci.ubcs.omd.repeater.DomainRepeater; |
| | | 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; |
| | |
| | | @Resource |
| | | private LifeCycleEventMapper eventMapper; |
| | | |
| | | |
| | | @Resource |
| | | private LifeCycleMapper lifeCycleMapper; |
| | | /** |
| | | * 获取生命周期列表 |
| | | * |
| | |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | | * 添加保存 |
| | | * |
| | |
| | | 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("生命周期的编号不能重复"); |
| | | } |
| | |
| | | * @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() + "]连接线上中使用的状态没有找到"); |
| | |
| | | lifeCycleDTO.getOid(),"主键"); |
| | | LifeCycleRule rule = selectByOid(lifeCycleDTO.getOid()); |
| | | //查询重复 |
| | | QueryWrapper wrapper = new QueryWrapper(LifeCycleRule.class); |
| | | if(rule.getId().equals(lifeCycleDTO.getId())){ |
| | | throw new VciBaseException("生命周期编号不能修改"); |
| | | } |
| | | |
| | | String sql="select * from pl_omd_life_cycle_rule where lower(id)=? and oid != ?"; |
| | | /*QueryWrapper wrapper = new QueryWrapper(LifeCycleRule.class); |
| | | wrapper.eq("lower(id)",lifeCycleDTO.getId().toLowerCase(Locale.ROOT)); |
| | | wrapper.ne("oid",lifeCycleDTO.getOid()); |
| | | if(baseMapper.selectCount(wrapper)>0){ |
| | | throw new VciBaseException("生命周期的编号不能重复"); |
| | | }*/ |
| | | if(lifeCycleMapper.checkIdExist(lifeCycleDTO.getId().toLowerCase(Locale.ROOT),lifeCycleDTO.getOid())>0){ |
| | | throw new VciBaseException("生命周期的编号不能重复"); |
| | | } |
| | | editLifeCycle(lifeCycleDTO,rule); |
| | | 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 |