1428594221
2023-06-14 931eb15f748f181fbf347508830f21830f09c863
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -57,9 +57,11 @@
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.awt.event.ItemEvent;
import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.*;
@@ -103,6 +105,20 @@
   public List<CodeClassify> selectByWrapper(Wrapper wrapper) {
      return codeClassifyMapper.selectList(wrapper);
   }
   /**
    * 查询
    * @param wrapper 查询封装器
    * @return
    */
   @Override
   public List<String> select1(Wrapper wrapper) {
      return codeClassifyMapper.selectObjs(wrapper);
   }
   @Override
   public IPage<CodeClassifyVO> selectPlCodeClassifyPage(IPage<CodeClassifyVO> page, CodeClassifyVO plCodeClassify) {
@@ -438,13 +454,43 @@
   }
   /**
    * 主键查询数据对象,关联查询
    * @param oid 主键
    * @return  数据对象
    */
   private CodeClassify selectByOidRel(String oid){
      List<CodeClassify> codeClassifyList = codeClassifyMapper.selectClassifyByKeyAndReseRel("'"+oid.trim()+"'");
//      CodeClassify codeClassifyEntity = (CodeClassify) codeClassifyList;
      if(codeClassifyList.size() == 0 ){
         throw new ServiceException("dataNotExist");//根据主键id未查到相关数据
      }
//      if(codeClassifyEntity == null || StringUtils.isBlank(codeClassifyEntity.getOid())){
//         throw new ServiceException("dataOidNotExist");//根据主键id未查到相关数据
//      }
      return codeClassifyList.get(0);
   }
   /**
    * 查询主题库分类 树
    * @param treeQueryObject 树查询对象
    * @return 主题库分类 显示树
    */
   @Override
   public List<Tree> treeCodeClassify(TreeQueryObject treeQueryObject) {
      List<CodeClassify> doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid());
      List<CodeClassify> doList = null;
      String id = null;
      String lcStatus = null;
      if(!Objects.isNull(treeQueryObject.getConditionMap())){
         id = treeQueryObject.getConditionMap().getOrDefault("id",null);
         lcStatus = treeQueryObject.getConditionMap().getOrDefault("lcStatus",null);
      }
      if(StringUtils.isNotBlank(id) || StringUtils.isNotBlank(lcStatus) ){
         doList = codeClassifyMapper
            .selectCodeClassifyDOByTree(treeQueryObject.getConditionMap().get("id"),treeQueryObject.getConditionMap().get("lcStatus"),treeQueryObject.getParentOid());
      }else{
         doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid());
      }
      List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList);
      TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME.toLowerCase(Locale.ROOT));
      treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
@@ -912,12 +958,12 @@
            attributeVO.setAttributeLength(attr.getAttributeLength());
            attributeVO.setBtmTypeId(btmTypeDetail.getData().getId());
            attributeVO.setBtmname(btmTypeDetail.getData().getName());
            attributeVO.setAttrDataTypeText(EnumCache.getValue(EnumEnum.VCO_FIELD_TYPE,attr.getAttrDataType()));
            attributeVO.setAttrDataTypeText(EnumCache.getValue(EnumEnum.VCI_FIELD_TYPE,attr.getAttrDataType()));
            boolean add = true;
            if(StringUtils.isNotBlank(id) && !attributeVO.getId().contains(id.replace("*",""))){
               add = false;
            }
            if(StringUtils.isNotBlank(name) && !attributeVO.getId().contains(name.replace("*",""))){
            if(StringUtils.isNotBlank(name) && !attributeVO.getName().contains(name.replace("*",""))){
               add = false;
            }
            if(add){
@@ -930,20 +976,31 @@
         throw new ServiceException("业务类型feign接口调用出错");
      }
      List<BtmTypeAttributeVO> defaultAttrVOS = btmTypeVOR.getData().getAttributes();
      if(!CollectionUtils.isEmpty(defaultAttrVOS)){
         defaultAttrVOS.stream().forEach(attr->{
      // 取两个集合差集
      List<String> ids = unDefaultAttributes.stream().map(BtmTypeAttributeVO::getId).collect(Collectors.toList());
      defaultAttrVOS.forEach(item->{
         if(!ids.contains(item.getId())){
            BtmTypeAttributeVO attributeVO = new BtmTypeAttributeVO();
            BeanUtils.copyProperties(item,attributeVO);
            attributeVO.setAttrDataType(item.getAttrDataType());
            attributeVO.setAttributeLength(item.getAttributeLength());
            attributeVO.setBtmTypeId(btmTypeDetail.getData().getId());
            attributeVO.setBtmname(btmTypeDetail.getData().getName());
            attributeVO.setAttrDataTypeText(EnumCache.getValue(EnumEnum.VCI_FIELD_TYPE,item.getAttrDataType()));
            boolean add = true;
            if(StringUtils.isNotBlank(id) && !attr.getId().contains(id.replace("*",""))){
            if(StringUtils.isNotBlank(id) && !item.getId().contains(id.replace("*",""))){
               add = false;
            }
            if(StringUtils.isNotBlank(name) && !attr.getId().contains(name.replace("*",""))){
            if(StringUtils.isNotBlank(name) && !item.getName().contains(name.replace("*",""))){
               add = false;
            }
            if(add){
               attributeVOS.add(attr);
               attributeVOS.add(attributeVO);
            }
         });
      }
         }
      });
      DataGrid<BtmTypeAttributeVO> dataGrid = new DataGrid<>();
      dataGrid.setData(attributeVOS);
      dataGrid.setTotal(attributeVOS.size());
@@ -993,10 +1050,15 @@
      }
      //使用主键查询一下
      List<CodeClassify> classifyDOS = codeClassifyMapper.selectBatchIds(oidLevelMap.keySet());
      String oids = "";
      for (String s : oidLevelMap.keySet()) {
         oids += "'"+s+"',";
      }
      List<CodeClassify> classifyDOS = codeClassifyMapper.selectClassifyByKeyAndReseRel(oids.substring(0,oids.length()-1));
      if(!CollectionUtils.isEmpty(classifyDOS)){
         classifyDOS.stream().forEach(classifyDO->{
            classifyDO.setDataLevel(VciBaseUtil.getInt(oidLevelMap.getOrDefault(classifyDO.getOid(),"0")));
            classifyDO.setLcStatusText(EnumCache.getValue("codeLcstatus",classifyDO.getLcStatus()));
         });
      }
      return classifyDOS;
@@ -1030,20 +1092,7 @@
   }
   /**
<<<<<<< Updated upstream
<<<<<<< Updated upstream
<<<<<<< Updated upstream
    * 主题库的树,已联调业务类型查询feign
=======
    * 主题库的树,已经联调业务类型查询
>>>>>>> Stashed changes
=======
    * 主题库的树,已经联调业务类型查询
>>>>>>> Stashed changes
=======
    * 主题库的树,已经联调业务类型查询
>>>>>>> Stashed changes
    *
    * @param treeQueryObject 树形查询对象
    * @return 主题库显示树
    */
@@ -1123,7 +1172,7 @@
   public CodeClassifyFullInfoBO getClassifyFullInfo(String codeClassifyOid) {
      VciBaseUtil.alertNotNull(codeClassifyOid,"分类的主键");
      CodeClassifyFullInfoBO fullInfo = new CodeClassifyFullInfoBO();
      CodeClassify classifyDO = selectByOid(codeClassifyOid);
      CodeClassify classifyDO = selectByOidRel(codeClassifyOid);
      //查询上级
      fullInfo.setCurrentClassifyVO(codeClassifyDO2VO(classifyDO));
//      List<Map<String, Object>> maps = codeClassifyMapper.selectAllLevelParentByOid(codeClassifyOid);