lihang
2023-07-10 dd2cbe9c6f7360d0f50da4e5f0fc506ad3915d8b
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
@@ -204,7 +204,7 @@
    */
   @Override
   public List<BtmType> listBtmTypeDOByIdCollection(Collection<String> idCollection) throws ServiceException {
      return CollectionUtils.isEmpty(idCollection) ? null : baseMapper.selectList(Wrappers.<BtmType>query().lambda().in(BtmType::getId, idCollection));
      return CollectionUtils.isEmpty(idCollection) ? null : baseMapper.selectByIdCollection(idCollection);
   }
   /**
@@ -595,11 +595,14 @@
      if (btmTypeDTO.getId().length() > 24) {
         throw new VciBaseException("业务类型英文名称不能超过18,目前长度为{0}", new Object[]{btmTypeDTO.getId().length()});
      }
      List<BtmType> btmTypeDOList = listBtmTypeDOByIdCollection(VciBaseUtil.str2List(btmTypeDTO.getId()));
      List<BtmType> btmTypeDOList = listBtmTypeDOByIdCollection(VciBaseUtil.str2List(btmTypeDTO.getId().toLowerCase(Locale.ROOT)));
      if (!CollectionUtils.isEmpty(btmTypeDOList) && btmTypeDOList.size() > 0) {
         boolean exist = btmTypeDOList.stream().filter(btm -> StringUtils.isNotBlank(btm.getOid())).anyMatch(btm -> !StringUtils.equals(btmTypeDTO.getOid(), btm.getOid()));
         BtmType existBtmType = btmTypeDOList.get(0);
         throw new VciBaseException("业务类型英文名称已经存在(不区分大小写),这个英文名称对应的中文名称为{0},创建人{1},创建时间{2}"
            , new Object[]{existBtmType.getName(), existBtmType.getCreator(), VciDateUtil.date2Str(existBtmType.getCreateTime(), VciDateUtil.DateFormat)});
         if (exist) {
            throw new VciBaseException("业务类型英文名称已经存在(不区分大小写),这个英文名称对应的中文名称为{0},创建人{1},创建时间{2}"
               , new Object[]{existBtmType.getName(), existBtmType.getCreator(), VciDateUtil.date2Str(existBtmType.getCreateTime(), VciDateUtil.DateFormat)});
         }
      }
      if (btmTypeDTO.isRevisionFlag()){
         // 需要控制版本
@@ -887,6 +890,30 @@
   }
   /**
    * 获取引用某些生命周期的业务类型
    *
    * @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 生命周期的编号
@@ -901,4 +928,28 @@
      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];
   }
}