From 1e3cfb229f54298f4ef27fa73dc05affaf1b9dcb Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期二, 13 六月 2023 17:27:55 +0800
Subject: [PATCH] 1、MDM服务发布、停用、回收、启用等功能测试修改。 2、对相应联调进行修改。

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |  148 +++++++++++++++++++++++++++++-------------------
 1 files changed, 89 insertions(+), 59 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index a660ef9..8bc42d2 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -57,6 +57,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.Cache;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
@@ -326,15 +327,19 @@
 	 *
 	 * @param baseModelDTO 鏁版嵁浼犺緭瀵硅薄
 	 */
+	@Transactional
 	@Override
 	public void changeStatus(BaseModelDTO baseModelDTO) {
 		VciBaseUtil.alertNotNull(baseModelDTO, "鏁版嵁淇℃伅", baseModelDTO.getOid(), "涓婚敭", baseModelDTO.getBtmname(), "涓氬姟绫诲瀷", baseModelDTO.getLcStatus(), "鐩爣鐘舵��");
 		List<String> oids = VciBaseUtil.str2List(baseModelDTO.getOid());
 //		List<ClientBusinessObject> cboList = boService.selectCBOByOidCollection(oids, baseModelDTO.getBtmname());
 		//鎻掍釜鐐� 涓氬姟绫诲瀷瀹屾垚鍚庨渶瑕佷慨鏀�
-		QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>();
-		wrapper.eq("BTMNAME",baseModelDTO.getBtmname());
-		wrapper.in("OID",oids);
+//		QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>();
+		List<BaseModel> baseModels = new ArrayList<>();
+		baseModels = selectByTypeAndOid(baseModelDTO.getBtmname(), baseModelDTO.getOid());
+		if(baseModels.size() == 0){
+			throw new VciBaseException("鏈煡璇㈠埌鐩稿叧鏁版嵁銆�");
+		}
 		// 寰呭畬鍠�
 		List<BtmTypeVO> cboList =  null;  // btmTypeClient.selectList(wrapper);
 		//杩橀渶瑕佷慨鏀筧llCode鐨勭敓鍛藉懆鏈�
@@ -348,16 +353,23 @@
 //		List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap);
 		// 鍥炴敹闇�瑕佷笟鍔℃暟鎹垹闄�
 		if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) {
+			R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname()));
+//			String referTable = listR.getData().get(0).getTableName();
+			commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(),VciBaseUtil.toInSql(baseModelDTO.getOid()));
 			// BatchCBO batchCBO = new BatchCBO();
 			// batchCBO.getDeleteCbos().addAll(cboList);
-
-			// 寰呭畬鍠�
-			//btmTypeClient.deleteBatchIds(cboList);
-
 			//boService.persistenceBatch(batchCBO);
 		} else {
+			for (BaseModel baseModel : baseModels) {
+				baseModel.setLcStatus(baseModelDTO.getLcStatus());
+			}
+			updateBatchByBaseModel(baseModelDTO.getBtmname(),baseModels);
 			// lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus());
 		}
+		for (CodeAllCode codeCbo : codeCbos) {
+			codeCbo.setLcStatus(baseModelDTO.getLcStatus());
+		}
+		codeAllCodeService.updateBatchById(codeCbos);
 		// lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
 	}
 
@@ -1407,31 +1419,45 @@
 
 		DataGrid<Map<String, String>> dataGrid = new DataGrid<>();
 		List<Map<String, String>> dataList = new ArrayList<>();
-//		if (!CollectionUtils.isEmpty(maps)) {
-//			maps.stream().forEach(map -> {
-//				Map<String, String> data = new HashMap<>();
-//				map.forEach((key, value) -> {
-//					data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
-//				});
-//				dataList.add(data);
-//			});
-//		}
-//		dataGrid.setData(dataList);
 		if (!CollectionUtils.isEmpty(maps)) {
-			wrapperData(maps, templateVO, sqlBO.getSelectFieldList(), false);
 			maps.stream().forEach(map -> {
 				Map<String, String> data = new HashMap<>();
+				for (String s : map.keySet()) {
+					data.put(s.toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
+				}
 //				map.forEach((key, value) -> {
 //					data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
 //				});
-				for (String s : map.keySet()) {
-					data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
-				}
 				dataList.add(data);
 			});
-			dataGrid.setData(dataList);
-			dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString()));
+			wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), false);
+//			maps.stream().forEach(map -> {
+//				Map<String, String> data = new HashMap<>();
+////				map.forEach((key, value) -> {
+////					data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
+////				});
+//				for (String s : map.keySet()) {
+//					data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
+//				}
+//				dataList.add(data);
+//			});
 		}
+//		dataGrid.setData(dataList);
+//		if (!CollectionUtils.isEmpty(maps)) {
+//			wrapperData(maps, templateVO, sqlBO.getSelectFieldList(), false);
+//			maps.stream().forEach(map -> {
+//				Map<String, String> data = new HashMap<>();
+////				map.forEach((key, value) -> {
+////					data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
+////				});
+//				for (String s : map.keySet()) {
+//					data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
+//				}
+//				dataList.add(data);
+//			});
+		dataGrid.setData(dataList);
+		dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString()));
+//		}
 		return dataGrid;
 	}
 
@@ -2157,15 +2183,15 @@
 		//pageHelper.addDefaultDesc("createTime");
 		pageHelper.addDefaultDesc("id");
 		if (!classifyService.checkHasChild(codeClassifyOid)) {
-			conditionMap.put(CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
+			conditionMap.put("t."+CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
 		} else {
 			//琛ㄩ渶瑕佹敼
 //			conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
-			conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from pl_code_classify where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED +
+			conditionMap.put("t."+CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from pl_code_classify where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED +
 				"' start with parentCodeClassifyOid = '" + codeClassifyOid + "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
 		}
-		conditionMap.put("lastr", "1");
-		conditionMap.put("lastv", "1");
+		conditionMap.put("t.lastr", "1");
+		conditionMap.put("t.lastv", "1");
 		return queryGrid(btmTypeId, templateVO, conditionMap, pageHelper);
 //        List<String> selectFieldList = templateVO.getAttributes().stream().map(CodeClassifyTemplateAttrVO::getId).collect(Collectors.toList());
 //        //鍙傜収璁╁钩鍙扮洿鎺ユ煡璇㈠氨琛�
@@ -3001,7 +3027,7 @@
 	 * @return 澶勭悊鎴愬姛鏁版嵁鏉℃暟
 	 */
 	@Override
-	public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) throws Exception {
+	public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) {
 		//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
 		R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
 		if(listR.getData().size() == 0){
@@ -3027,7 +3053,7 @@
 	 * @return 鏌ヨ鍑虹殑鏁版嵁
 	 */
 	@Override
-	public List<BaseModel> selectByTypeAndOid(String btmType, String oids) throws IllegalAccessException, NoSuchFieldException, InstantiationException, InvocationTargetException, IntrospectionException, SQLException {
+	public List<BaseModel> selectByTypeAndOid(String btmType, String oids)  {
 
 		//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
 		R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
@@ -3040,38 +3066,42 @@
 
 		List<BaseModel> baseModels = new ArrayList<>();
 		//灏嗘煡璇㈠埌鐨勬暟鎹浆鎹负basemodel锛屼娇鐢ㄧ殑鍙嶅皠鏂瑰紡鏉ヨ繘琛屽垱寤虹殑
-		for (Map map : maps) {
-			Object obj = BaseModel.class.newInstance();
-			BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
-			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
-			for (PropertyDescriptor property : propertyDescriptors) {
-				Method setter = property.getWriteMethod();
-				if (setter != null) {
-					//oracle鐨勬椂闂翠负TIMESTAMP鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚data锛屽惁鍒欏皢鎶ラ敊
-					if(map.get(property.getName().toUpperCase()) instanceof TIMESTAMP){
-						LocalDateTime localDateTime = ((TIMESTAMP) map.get(property.getName().toUpperCase())).toLocalDateTime();
-						ZoneId zoneId = ZoneId.systemDefault();
-						ZonedDateTime zdt = localDateTime.atZone(zoneId);
-						Date date = Date.from(zdt.toInstant());
-						setter.invoke(obj,date);
-						map.remove(property.getName().toUpperCase());
-					} //oracle鐨勬暟瀛椾负BigDecimal鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚Integer锛屽惁鍒欏皢鎶ラ敊
-					else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal
-						&& ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())){
-						setter.invoke(obj, ((BigDecimal)map.get(property.getName().toUpperCase())).intValue());
-						map.remove(property.getName().toUpperCase());
-					}else if(map.get(property.getName().toUpperCase()) != null){
-						setter.invoke(obj, map.get(property.getName().toUpperCase()));
-						map.remove(property.getName().toUpperCase());
+		try{
+			for (Map map : maps) {
+				Object obj = BaseModel.class.newInstance();
+				BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
+				PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+				for (PropertyDescriptor property : propertyDescriptors) {
+					Method setter = property.getWriteMethod();
+					if (setter != null) {
+						//oracle鐨勬椂闂翠负TIMESTAMP鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚data锛屽惁鍒欏皢鎶ラ敊
+						if(map.get(property.getName().toUpperCase()) instanceof TIMESTAMP){
+							LocalDateTime localDateTime = ((TIMESTAMP) map.get(property.getName().toUpperCase())).toLocalDateTime();
+							ZoneId zoneId = ZoneId.systemDefault();
+							ZonedDateTime zdt = localDateTime.atZone(zoneId);
+							Date date = Date.from(zdt.toInstant());
+							setter.invoke(obj,date);
+							map.remove(property.getName().toUpperCase());
+						} //oracle鐨勬暟瀛椾负BigDecimal鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚Integer锛屽惁鍒欏皢鎶ラ敊
+						else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal
+							&& ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())){
+							setter.invoke(obj, ((BigDecimal)map.get(property.getName().toUpperCase())).intValue());
+							map.remove(property.getName().toUpperCase());
+						}else if(map.get(property.getName().toUpperCase()) != null){
+							setter.invoke(obj, map.get(property.getName().toUpperCase()));
+							map.remove(property.getName().toUpperCase());
+						}
 					}
 				}
-			}
-			for (Object key : map.keySet()) {
-				map.put(key,String.valueOf(map.get(key)));
-			}
+				for (Object key : map.keySet()) {
+					map.put(key,String.valueOf(map.get(key)));
+				}
 
-			((BaseModel) obj).setData(map);
-			baseModels.add((BaseModel) obj);
+				((BaseModel) obj).setData(map);
+				baseModels.add((BaseModel) obj);
+			}
+		}catch (Exception e){
+			throw new VciBaseException("鏌ヨ澶辫触锛�" + e.getMessage());
 		}
 		return baseModels;
 	}
@@ -3147,7 +3177,7 @@
 	 * @return 澶勭悊鐘舵��
 	 */
 	@Override
-	public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) throws Exception {
+	public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) {
 		//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
 		R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
 		if(listR.getData().size() == 0){

--
Gitblit v1.9.3