lihang
2023-05-23 1d91a31301494b9f0b7e17b3eef280f8d54e2806
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
@@ -6,14 +6,13 @@
import com.alibaba.nacos.api.exception.NacosException;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.omd.cache.EnumCache;
import com.vci.ubcs.omd.constant.BtmTypeFieldConstant;
import com.vci.ubcs.omd.dto.BtmAndLinkTypeDdlDTO;
import com.vci.ubcs.omd.entity.Attribute;
import com.vci.ubcs.omd.repeater.DomainRepeater;
import com.vci.ubcs.omd.service.IAttributeService;
import com.vci.ubcs.omd.service.IBtmTypeAttributeService;
import com.vci.ubcs.omd.service.IModifyAttributeService;
import com.vci.ubcs.omd.vo.BtmTypeTreeVO;
import com.vci.ubcs.omd.service.*;
import com.vci.ubcs.omd.vo.*;
import com.vci.ubcs.omd.wrapper.BtmTypeWrapper;
import com.vci.ubcs.omd.wrapper.ModifyAttributeWrapper;
import com.vci.ubcs.starter.web.constant.OmdRegExpConstant;
@@ -23,10 +22,6 @@
import com.vci.ubcs.omd.entity.BtmTypeAttribute;
import com.vci.ubcs.omd.entity.ModifyAttributeInfo;
import com.vci.ubcs.omd.mapper.BtmTypeMapper;
import com.vci.ubcs.omd.service.IBtmTypeService;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
import com.vci.ubcs.omd.vo.LinkTypeVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
@@ -77,6 +72,12 @@
    */
   @Autowired
   private IModifyAttributeService modifyAttributeService;
   /**
    * 版本规则的服务
    */
   @Autowired
   private IRevisionRuleService revisionRuleService;
   /**
    * 属性的服务
@@ -496,6 +497,7 @@
            btmTypeDO.setTableName(getTableName(btmTypeDO.getId(),btmTypeDO.getDomain()));
         }
         // 添加属性
         btmTypeDTO.setOid(btmTypeDO.getOid());
         afterAttributes = addAttributeForBtm(btmTypeDTO);
         baseMapper.insert(btmTypeDO);
      }else {
@@ -590,12 +592,12 @@
      if (btmTypeDTO.isRevisionFlag()){
         // 需要控制版本
         // 检查使用的版本规则是否存在
//            if (StringUtils.isNotBlank(btmTypeDTO.getRevisionRuleId())) {
//               if (revisionRuleServiceI.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()){
@@ -620,9 +622,6 @@
         // 需要控制密级
         btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.SECRET_MANAGE_FIELD_MAP));
      }
      if (StringUtils.isBlank(btmTypeDTO.getOid())) {
         btmTypeDTO.setOid(VciBaseUtil.getPk());
      }
   }
   @Override
   public boolean deleteLogic(@NotEmpty List<Long> ids) {
@@ -642,18 +641,21 @@
   @Override
   public List<BtmTypeTreeVO> treeDomain() {
      try {
         List<String> domain = DomainRepeater.getDomain();
         Map<String, String> domain = Optional.ofNullable(DomainRepeater.getDomain()).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(s -> s.getValue(), t -> t.getLabel()));
         List<BtmTypeVO> vos = BtmTypeWrapper.build().listEntityVO(baseMapper.selectAll());
         Map<String, List<BtmTypeVO>> domainMap = vos.stream().collect(Collectors.groupingBy(BtmTypeVO::getDomain));
         List<BtmTypeTreeVO> treeList = new ArrayList<>();
         domainMap.forEach((k,v)-> {
            if (domain.contains(k)){
            if (domain.containsKey(k)){
               String label = domain.get(k);
               BtmTypeTreeVO parent = new BtmTypeTreeVO();
               parent.setName(k);
               parent.setName(label);
               parent.setId(k);
               parent.setChildList(v.stream().map(s -> {
                  BtmTypeTreeVO child = new BtmTypeTreeVO();
                  child.setOid(s.getOid());
                  child.setName(s.getId() + " " + (s.getName() == null ? "" : s.getName()));
                  child.setId(s.getId());
                  return child;
               }).collect(Collectors.toList()));
               treeList.add(parent);
@@ -675,7 +677,7 @@
   public List<BtmTypeVO> getFromTable(String domain) {
      VciBaseUtil.alertNotNull(domain,"领域值");
      try {
         if (!DomainRepeater.getDomain().contains(domain)){
         if (!DomainRepeater.getDomain().stream().collect(Collectors.toMap(DomainVO::getValue, DomainVO::getLabel)).containsKey(domain)){
            return null;
         }
         R result = DomainRepeater.getFromTable(domain);
@@ -737,7 +739,9 @@
            Attribute attribute = new Attribute();
            attribute.setKey(attr.getId());
            attribute.setLabel(attr.getName());
            attribute.setDictKey(attr.getAttrDataType());
            attribute.setTypeCode("attributeType");
            attribute.setTypeKey(attr.getAttrDataType());
//            attribute.setDictKey(attr.getAttrDataType());
            attribute.setMaxLength(attr.getAttributeLength());
            attribute.setPrecision(attr.getPrecisionLength());
            attribute.setDescription(attr.getDescription());
@@ -797,7 +801,7 @@
         attributeService.saveBatch(idAttrMap.values());
      }else {
         List<Attribute> addList = idAttrMap.values().stream().filter(a -> existAttr.stream().noneMatch(b -> StringUtils.equals(a.getKey(), b.getKey()))).collect(Collectors.toList());
         if (CollectionUtils.isEmpty(addList)) {
         if (!CollectionUtils.isEmpty(addList)) {
            attributeService.saveBatch(addList);
         }
      }