| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alibaba.nacos.api.exception.NacosException; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.vci.ubcs.omd.constant.BtmTypeConstant; |
| | |
| | | ddlDTO.setBtmTypeList(btmTypeVOList); |
| | | try { |
| | | // 将以前的checkDifferent和reflexDifferent结合了 |
| | | R result = DomainRepeater.checkDifferent(ddlDTO,btmTypeVO.getDomain()); |
| | | R result = DomainRepeater.checkDifferent(ddlDTO,btmTypeVO.getBizDomain()); |
| | | if (result.isSuccess()){ |
| | | List<ModifyAttributeInfo> infoList = new ArrayList<>(); |
| | | Object data = result.getData(); |
| | |
| | | } |
| | | checkBtmTypeBeforeSave(btmTypeDTO); |
| | | BtmType btmTypeDO = Optional.ofNullable(BeanUtil.copy(btmTypeDTO, BtmType.class)).orElseGet(BtmType::new); |
| | | btmTypeDO.setBizDomain(btmTypeDTO.getDomain()); |
| | | List<BtmTypeLinkAttributesDTO> attributes = btmTypeDTO.getAttributes(); |
| | | List<BtmTypeAttributeVO> afterAttributes; |
| | | if (StringUtils.isBlank(btmTypeDO.getOid())){ |
| | | btmTypeDO = BtmTypeWrapper.build().entityBeforeInsert(btmTypeDO); |
| | | if (StringUtils.isBlank(btmTypeDO.getTableName())) { |
| | | btmTypeDO.setTableName(getTableName(btmTypeDO.getId(),btmTypeDO.getDomain())); |
| | | btmTypeDO.setTableName(getTableName(btmTypeDO.getId(),btmTypeDO.getBizDomain())); |
| | | } |
| | | // 添加属性 |
| | | btmTypeDTO.setOid(btmTypeDO.getOid()); |
| | |
| | | if (btmTypeDTO.isRevisionFlag()){ |
| | | // 需要控制版本 |
| | | // 检查使用的版本规则是否存在 |
| | | if (StringUtils.isNotBlank(btmTypeDTO.getRevisionRuleId())) { |
| | | if (!revisionRuleService.checkRevisionRuleExist(btmTypeDTO.getRevisionRuleId())) { |
| | | throw new VciBaseException("版本规则{0}[{1}]在系统中不存在,请先查证", |
| | | new Object[]{btmTypeDTO.getRevisionRuleId(), btmTypeDTO.getRevisionRuleName()}); |
| | | } |
| | | if (StringUtils.isNotBlank(btmTypeDTO.getRevisionRuleId())) { |
| | | if (!revisionRuleService.checkRevisionRuleExist(btmTypeDTO.getRevisionRuleId())) { |
| | | throw new VciBaseException("版本规则{0}[{1}]在系统中不存在,请先查证", |
| | | new Object[]{btmTypeDTO.getRevisionRuleId(), btmTypeDTO.getRevisionRuleName()}); |
| | | } |
| | | btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.REVISION_MANAGE_FIELD_MAP)); |
| | | } |
| | | } |
| | | if (btmTypeDTO.isLifeCycleFlag()){ |
| | | // 需要控制生命周期 |
| | |
| | | // new Object[]{btmTypeDTO.getSubLifeCycleId(), btmTypeDTO.getSubLifeCycleName()}); |
| | | // } |
| | | // } |
| | | // btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.LIFECYCLE_MANAGE_FIELD_MAP)); |
| | | } |
| | | if (btmTypeDTO.isSecretFlag()){ |
| | | // 需要控制密级 |
| | | // btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.SECRET_MANAGE_FIELD_MAP)); |
| | | } |
| | | } |
| | | @Override |
| | |
| | | try { |
| | | Map<String, String> domain = Optional.ofNullable(DomainRepeater.getDomain()).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(DomainVO::getValue, DomainVO::getLabel)); |
| | | List<BtmTypeVO> vos = BtmTypeWrapper.build().listEntityVO(baseMapper.selectAll()); |
| | | Map<String, List<BtmTypeVO>> domainMap = vos.stream().sorted(Comparator.comparing(BtmTypeVO::getId)).collect(Collectors.groupingBy(BtmTypeVO::getDomain)); |
| | | Map<String, List<BtmTypeVO>> domainMap = vos.stream().sorted(Comparator.comparing(BtmTypeVO::getId)).collect(Collectors.groupingBy(BtmTypeVO::getBizDomain)); |
| | | List<BtmTreeVO> treeList = new ArrayList<>(); |
| | | domainMap.forEach((k,v)-> { |
| | | if (domain.containsKey(k)){ |
| | |
| | | btmType.setCreator(user); |
| | | btmType.setBtmName(BtmTypeConstant.BTMTYPE); |
| | | btmType.setCreateTime(now); |
| | | btmType.setDomain(domain); |
| | | btmType.setBizDomain(domain); |
| | | btmType.setLastModifyTime(now); |
| | | btmType.setLastModifier(user); |
| | | btmType.setName(dto.getDescription()); |
| | |
| | | btmType.setAttributes(btmTypeAttributeService.getAllAttribute(btmType)); |
| | | return btmType; |
| | | } |
| | | |
| | | /** |
| | | * 获取引用某个生命周期的业务类型 |
| | | * |
| | | * @param lifeId 生命周期的编号 |
| | | * @return 业务类型显示对象 |
| | | */ |
| | | @Override |
| | | public List<BtmTypeVO> selectByLifeId(String lifeId) { |
| | | if(StringUtils.isBlank(lifeId)){ |
| | | return new ArrayList<>(); |
| | | } |
| | | LambdaQueryWrapper<BtmType> query = new LambdaQueryWrapper<BtmType>(); |
| | | query.eq(BtmType::getLifeCycleId,lifeId); |
| | | return BtmTypeWrapper.build().listEntityVO(getBaseMapper().selectList(query)); |
| | | } |
| | | |
| | | /** |
| | | * 获取引用某些生命周期的业务类型 |
| | | * |
| | | * @param lifeIds 生命周期的编号集合 |
| | | * @return 业务类型显示对象 |
| | | */ |
| | | @Override |
| | | public List<BtmTypeVO> selectByLifeIds(Collection<String> lifeIds) { |
| | | if(CollectionUtils.isEmpty(lifeIds)){ |
| | | return new ArrayList<>(); |
| | | } |
| | | List<BtmType> btmTypeList = new ArrayList<>(); |
| | | VciBaseUtil.switchCollectionForOracleIn(lifeIds).stream().forEach(ids->{ |
| | | LambdaQueryWrapper<BtmType> query = new LambdaQueryWrapper<BtmType>(); |
| | | ids.stream().forEach(id->{ |
| | | query.eq(BtmType::getLifeCycleId,id); |
| | | query.or(); |
| | | }); |
| | | query.eq(BtmType::getLifeCycleId,"-1"); |
| | | btmTypeList.addAll(baseMapper.selectList(query)); |
| | | }); |
| | | return BtmTypeWrapper.build().listEntityVO(btmTypeList); |
| | | } |
| | | |
| | | /** |
| | | * 统计引用某个生命周期的业务类型 |
| | | * |
| | | * @param lifeId 生命周期的编号 |
| | | * @return 个数 |
| | | */ |
| | | @Override |
| | | public Integer countByLifeId(String lifeId) { |
| | | if(StringUtils.isBlank(lifeId)){ |
| | | return 0; |
| | | } |
| | | LambdaQueryWrapper<BtmType> query = new LambdaQueryWrapper<BtmType>(); |
| | | query.eq(BtmType::getLifeCycleId,lifeId); |
| | | return baseMapper.selectCount(query).intValue(); |
| | | } |
| | | |
| | | /** |
| | | * 统计引用某些生命周期的业务类型 |
| | | * |
| | | * @param lifeIds 生命周期的编号集合 |
| | | * @return 个数 |
| | | */ |
| | | @Override |
| | | public Integer countByLifeIds(Collection<String> lifeIds) { |
| | | if(CollectionUtils.isEmpty(lifeIds)){ |
| | | return 0; |
| | | } |
| | | final Integer[] total = {0}; |
| | | VciBaseUtil.switchCollectionForOracleIn(lifeIds).stream().forEach(ids->{ |
| | | LambdaQueryWrapper<BtmType> query = new LambdaQueryWrapper<BtmType>(); |
| | | ids.stream().forEach(id->{ |
| | | query.eq(BtmType::getLifeCycleId,id); |
| | | query.or(); |
| | | }); |
| | | query.eq(BtmType::getLifeCycleId,"-1"); |
| | | total[0] += baseMapper.selectCount(query).intValue(); |
| | | }); |
| | | return total[0]; |
| | | } |
| | | } |