| | |
| | | @Override |
| | | public BtmTypeVO getBtmTypeByOid(String pkBtmType) throws ServiceException { |
| | | Func.requireNotNull(pkBtmType,"业务类型主键不能为空"); |
| | | BtmTypeVO btmTypeVO = BtmTypeWrapper.build().entityVO(baseMapper.selectOne(Wrappers.<BtmType>query().lambda().eq(BtmType::getOid, pkBtmType))); |
| | | BtmType queryBtmType = baseMapper.selectOne(Wrappers.<BtmType>query().lambda().eq(BtmType::getOid, pkBtmType)); |
| | | if (queryBtmType == null){ |
| | | return null; |
| | | } |
| | | BtmTypeVO btmTypeVO = BtmTypeWrapper.build().entityVO(queryBtmType); |
| | | btmTypeVO.setAttributes(btmTypeAttributeService.getAttributeByBtmTypeOid(pkBtmType)); |
| | | return btmTypeVO; |
| | | } |
| | |
| | | if (!existFieldMap.containsKey(k)){ |
| | | BtmTypeLinkAttributesDTO attr = new BtmTypeLinkAttributesDTO(); |
| | | attr.setId(k); |
| | | attr.setName(v); |
| | | attr.setAttrDataType(VciFieldTypeEnum.VTString.name()); |
| | | attr.setAttributeLength(50); |
| | | attr.setNullableFlag(false); |
| | |
| | | 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()); |
| | |
| | | afterAttributes = updateAttributeForBtm(btmTypeByOid.getOid(),beforeAttributes, attributes); |
| | | } |
| | | BtmTypeVO btmTypeVO = BtmTypeWrapper.build().entityVO(btmTypeDO); |
| | | //在创建表的时候还需要把默认的字段带上。 |
| | | List<BtmTypeAttributeVO> defaultAttribute = btmTypeAttributeService.getDefaultAttribute(btmTypeVO); |
| | | afterAttributes.addAll(defaultAttribute); |
| | | btmTypeVO.setAttributes(afterAttributes); |
| | | try { |
| | | if (autoCreateTable) { |
| | | checkTableSame(btmTypeVO); |
| | | // checkTableSame(btmTypeVO); |
| | | R result = DomainRepeater.submitBtmType(btmTypeDTO.getDomain(), btmTypeVO); |
| | | if (result.isSuccess()){ |
| | | List<ModifyAttributeInfo> infoList = new ArrayList<>(); |
| | |
| | | dataSourceTransactionManager.commit(transaction); |
| | | }else { |
| | | dataSourceTransactionManager.rollback(transaction); |
| | | return R.fail(result.getMsg()); |
| | | } |
| | | } |
| | | } catch (Throwable e) { |
| | | if (autoCreateTable) { |
| | | dataSourceTransactionManager.rollback(transaction); |
| | | throw new VciBaseException(e.getMessage()); |
| | | } |
| | | } |
| | | return R.data(btmTypeVO); |
| | |
| | | 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 |
| | |
| | | @Override |
| | | public List<BtmTreeVO> treeDomain() { |
| | | try { |
| | | Map<String, String> domain = Optional.ofNullable(DomainRepeater.getDomain()).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(s -> s.getValue(), t -> t.getLabel())); |
| | | 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().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)){ |
| | | String label = domain.get(k); |
| | | BtmTreeVO parent = new BtmTreeVO(); |
| | | parent.setName(label); |
| | | parent.setLabel(label); |
| | | parent.setId(k); |
| | | parent.setChildList(v.stream().map(s -> { |
| | | BtmTreeVO child = new BtmTreeVO(); |
| | | child.setOid(s.getOid()); |
| | | child.setName(s.getId() + " " + (s.getName() == null ? "" : s.getName())); |
| | | child.setName(s.getName()); |
| | | child.setId(s.getId()); |
| | | child.setLabel(s.getId() + (s.getName() == null ? "" : "(" + s.getName() + ")")); |
| | | return child; |
| | | }).collect(Collectors.toList())); |
| | | treeList.add(parent); |
| | |
| | | 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()); |