From 02dbaaa04bc443e860a715cf907bc0fb5c1a7da4 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 11 七月 2023 09:09:34 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs

---
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java |   92 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 88 insertions(+), 4 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
index f947641..2dc1b5f 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
@@ -4,6 +4,7 @@
 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;
@@ -203,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);
 	}
 
 	/**
@@ -594,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()){
 			// 闇�瑕佹帶鍒剁増鏈�
@@ -868,4 +872,84 @@
 		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];
+	}
 }

--
Gitblit v1.9.3