From 9e341acec731503f1540b65727441e771b8ef9b4 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期二, 17 十月 2023 11:40:20 +0800
Subject: [PATCH] 校验关键属性规则写到后面

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java |   90 ++++++++++++++++++++++----------------------
 1 files changed, 45 insertions(+), 45 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
index e44faca..4696e02 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -495,7 +495,6 @@
 		return text;
 	}
 
-
 	/**
 	 * 鎵归噺鐢宠缂栫爜鏁版嵁
 	 *
@@ -538,7 +537,6 @@
 //		return null;
 		return codeImProtRusultVO;
 	}
-
 
 	/***
 	 * 浠庨《灞傛壒閲忕敵璇峰鍏ユ柟娉�
@@ -645,7 +643,6 @@
 
 			});
 
-
 			//閮借浆鎹㈠畬浜嗐�傞渶瑕佹壒閲忔鏌�
 			//濡傛灉鍑洪敊浜嗭紝鎴戜滑渚濈劧鎵ц鏈夋晥鐨勬暟鎹紝鏃犳晥鐨勬暟鎹啓鍥炲埌excel涓�
 			//2.鍒ゆ柇蹇呰緭椤广�傘�傞渶瑕佸叏閮ㄧ殑灞炴�э紝濡傛灉鏄繀杈擄紝浣嗘槸琛ㄥ崟閲岄潰涓嶆樉绀虹殑锛屽彧鑳芥槸鍒嗙被娉ㄥ叆鎴栬�呯粍鍚堣鍒�
@@ -719,10 +716,8 @@
 			createRedisDatas(uuid + "-ok",codeImprotDataVOS, newErrorMap,true);
 
 		});
+
 		//寰�鐗╁搧鑺傜偣涓婂姞妯℃澘
-
-
-
 		List<String> needRowIndexList=new ArrayList<>();
 		CodeImProtRusultVO codeImProtRusultVO = new CodeImProtRusultVO();
 		if(errorMap.size()>0) {
@@ -792,6 +787,7 @@
 		String uuid=VciBaseUtil.getPk();
 		boolean isCreateUUid=false;
 		boolean isExport=false;
+		long start = System.currentTimeMillis();
 		for(int i=0;i<sheetDataSetList.size()-1;i++) {
 			if (CollectionUtils.isEmpty(sheetDataSetList) || CollectionUtils.isEmpty(sheetDataSetList.get(i).getRowData())
 				|| sheetDataSetList.get(i).getRowData().size() < 1) {
@@ -809,7 +805,6 @@
 			//     5.3 浼佷笟缂栫爜鐨勯暱搴︼紝鍜岀紪鐮佽鍒欑殑闀垮害瑕佸搴斾笂
 			//     5.4 鑾峰彇娴佹按鐮佹鐨勫�硷紝鍘婚櫎濉厖鐨勫瓧绗︼紝鐪嬫祦姘村彿鏄灏戯紝鐒跺悗灏嗘祦姘村彿鍜岀幇鍦ㄧ殑鏈�澶ф祦姘村彿鍒ゆ柇锛屽皬浜庡氨鐩存帴褰曞叆锛屽ぇ浜庡垯淇敼鏈�澶ф祦姘村彿
 			//     5.5 瀛樺偍浼佷笟缂栫爜鍒癮llcode涓�
-
 			//鏌ヨ鍒嗙被鍜屾ā鏉�
 			CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
 
@@ -944,7 +939,7 @@
 			ruleRowIndexMap.keySet().parallelStream().forEach(ruleOid -> {
 				List<String> rowIndexList = ruleRowIndexMap.get(ruleOid);
 				List<ClientBusinessObject> thisCbos = cboList.stream().filter(cbo -> rowIndexList.contains(cbo.getAttributeValue(IMPORT_ROW_INDEX)) && !errorMap.containsKey(cbo.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList());
-//鎴戜滑闇�瑕佸厛鏌ヨ涓�涓嬶紝鍐呭鏄惁宸茬粡瀛樺湪
+				//鎴戜滑闇�瑕佸厛鏌ヨ涓�涓嬶紝鍐呭鏄惁宸茬粡瀛樺湪
 				if(!CollectionUtils.isEmpty(thisCbos)){
 					List<String> existIds = new ArrayList<>();
 					VciBaseUtil.switchCollectionForOracleIn(thisCbos).stream().forEach(cbos -> {
@@ -1043,6 +1038,7 @@
 
 					if (!CollectionUtils.isEmpty(thisCbos)) {
 						try {
+							// TODO 澶氱嚎绋嬫祦闂
 							productCodeService.productCodeAndSaveData(classifyFullInfo, finalTemplateVO, ruleVOMap.get(ruleOid), null, dataCBOList);
 						} catch (Throwable e) {
 							log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e);
@@ -1061,6 +1057,8 @@
 				engineService.batchSaveSelectChar(templateVO, dataCBOIdList);
 			}
 		}
+		long end = System.currentTimeMillis();
+		//log.info("=============for鎵ц鏃堕棿================="+String.valueOf((end-start)/1000));
 		String excelFileName="";
 		if(isExport&&!CollectionUtils.isEmpty(shetNameMap)) {
 			excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒淇℃伅.xls";
@@ -1086,6 +1084,7 @@
 
 		return codeImProtRusultVO;
 	}
+
 	/*private void converBaseModels(List<ClientBusinessObject> clientBusinessObjects,List<BaseModel>dataCBOList){
 		clientBusinessObjects.stream().forEach(clientBusinessObject -> {
 			BaseModel baseModel=new BaseModel();
@@ -1099,6 +1098,7 @@
 		});
 
 	}*/
+
 	/***
 	 * 浠巈xecl閲屾瀯寤哄璞�
 	 * @param rowDataList
@@ -1938,7 +1938,8 @@
 			&& com.alibaba.cloud.commons.lang.StringUtils.isBlank(s.getComponentRule()) && com.alibaba.cloud.commons.lang.StringUtils.isBlank(s.getClassifyInvokeAttr())//缁勫悎瑙勫垯鍜屽垎绫绘敞鍏ョ‘瀹炴病缁欑敤鎴峰鍑哄幓
 		).collect(Collectors.toList());
 		if(!CollectionUtils.isEmpty(unExistAttrVOs)){
-			throw new VciBaseException("銆�" + unExistAttrVOs.stream().map(CodeClassifyTemplateAttrVO::getName) + "銆戣繖浜涘睘鎬у湪excel涓病鏈夋壘鍒�");
+			String message=unExistAttrVOs.stream().map(CodeClassifyTemplateAttrVO::getName).collect(Collectors.joining(SERIAL_UNIT_SPACE));
+			throw new VciBaseException("銆�" + message + "銆戣繖浜涘睘鎬у湪excel涓病鏈夋壘鍒�");
 		}
 		List<ClientBusinessObject> cboList = new ArrayList<>();
 		String fullPath = getFullPath(classifyFullInfo);
@@ -1954,16 +1955,29 @@
 
 		//閮借浆鎹㈠畬浜嗐�傞渶瑕佹壒閲忔鏌�
 		//濡傛灉鍑洪敊浜嗭紝鎴戜滑渚濈劧鎵ц鏈夋晥鐨勬暟鎹紝鏃犳晥鐨勬暟鎹啓鍥炲埌excel涓�
+
+
+		Map<String,String> errorKeyMap=new HashMap<>();
+		//1.鍒嗙被娉ㄥ叆
+		batchSwitchClassifyAttrOnOrder(attrVOS,cboList,classifyFullInfo,false);
+		//boolean
+		reSwitchBooleanAttrOnOrder(attrVOS,cboList);
+		// cboList.stream().forEach(cbo->{
+		//2.鏍¢獙瑙勫垯
+		batchCheckVerifyOnOrder(attrVOS, cboList,errorMap);
+		//3.鏍¢獙鏋氫妇鏄惁姝g‘
+		batchSwitchEnumAttrOnOrder(attrVOS,cboList,errorMap);
+		//4.鏃堕棿鏍煎紡鐨勯獙璇�
+		//4.鏃堕棿鐨勶紝蹇呴』缁熶竴涓簓yyy-MM-dd HH:mm:ss
+		batchSwitchDateAttrOnOrder(attrVOS,cboList,errorMap);
+		//5.澶勭悊鍙傜収鐨勬儏鍐�
+		batchSwitchReferAttrOnOrder(attrVOS,cboList,errorMap);
+		//6璁剧疆榛樿鍊�
+		batchSwitchAttrDefault(attrVOS, cboList);
 		//2.鍒ゆ柇蹇呰緭椤广�傘�傞渶瑕佸叏閮ㄧ殑灞炴�э紝濡傛灉鏄繀杈擄紝浣嗘槸琛ㄥ崟閲岄潰涓嶆樉绀虹殑锛屽彧鑳芥槸鍒嗙被娉ㄥ叆鎴栬�呯粍鍚堣鍒�
 		batchCheckRequiredAttrOnOrder(templateVO,cboList,errorMap);
-
-
-		/**
-		 * 鍏抽敭鐔熸倝閿欒鎻愮ず
-		 */
-		Map<String,String> errorKeyMap=new HashMap<>();
-
-
+		//鏈�鍚庡紕缁勫悎瑙勫垯
+		batchSwitchComponentAttrOnOrder(attrVOS,cboList);
 		//3.鍒ゆ柇鍏抽敭灞炴��
 		CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList);
 		Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList();
@@ -2000,20 +2014,6 @@
 				errorKeyMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅" );
 			});
 		}
-		//鍒嗙被娉ㄥ叆
-		batchSwitchClassifyAttrOnOrder(attrVOS,cboList,classifyFullInfo,false);
-		//boolean
-		reSwitchBooleanAttrOnOrder(attrVOS,cboList);
-		// cboList.stream().forEach(cbo->{
-		//4.鏍¢獙瑙勫垯
-		batchCheckVerifyOnOrder(attrVOS, cboList,errorMap);
-		//5.鏍¢獙鏋氫妇鏄惁姝g‘
-		batchSwitchEnumAttrOnOrder(attrVOS,cboList,errorMap);
-		//6.鏃堕棿鏍煎紡鐨勯獙璇�
-		//6.鏃堕棿鐨勶紝蹇呴』缁熶竴涓簓yyy-MM-dd HH:mm:ss
-		batchSwitchDateAttrOnOrder(attrVOS,cboList,errorMap);
-		//7.澶勭悊鍙傜収鐨勬儏鍐�
-		batchSwitchReferAttrOnOrder(attrVOS,cboList,errorMap);
 		//鏍¢獙灞炴�ф槸鍚︽纭敊璇俊鎭�
 		if(errorMap.size()>0){
 			String[] newMsg = {""};
@@ -2114,10 +2114,7 @@
 		}
 
 		//  });
-		//璁剧疆榛樿鍊�
-		batchSwitchAttrDefault(attrVOS, cboList);
-		//鏈�鍚庡紕缁勫悎瑙勫垯
-		batchSwitchComponentAttrOnOrder(attrVOS,cboList);
+
 		//瑕佹妸浠ヤ笂鐨勯敊璇殑閮芥姏鍑哄悗锛屽啀缁х画澶勭悊鏃堕棿鍜岀粍鍚堣鍒�
 		List<ClientBusinessObject> needSaveCboList = cboList.stream().filter(cbo -> {
 			String rowIndex =cbo.getAttributeValue(IMPORT_ROW_INDEX);
@@ -2376,20 +2373,20 @@
                 throw new VciBaseException("鏁版嵁涓嶆槸{0}鐨勭姸鎬侊紝涓嶅厑璁镐慨鏀�", new String[]{CodeDefaultLC.EDITING.getText()});
             }*/
 			if(operation.equals("update")) {
-				//1. 鍒ゆ柇蹇呰緭椤�
-				checkRequiredAttrOnOrder(templateVO, orderDTO, errorMap);
-				//2.鍏堟敞鍏ワ紝鍐嶇粍鍚堬紝鏈�鍚庢牎楠�
+				//1.鍏堟敞鍏ワ紝鍐嶇粍鍚堬紝鏈�鍚庢牎楠�
 				switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO, errorMap);
-				//3.澶勭悊缁勫悎瑙勫垯銆傜粍鍚堣鍒欎笉鑳戒娇鐢ㄧ紪鐮佺殑灞炴�э紝鍥犱负缂栫爜鐨勭敓鎴愬彲鑳芥槸闇�瑕佸睘鎬х殑
+				//2.澶勭悊缁勫悎瑙勫垯銆傜粍鍚堣鍒欎笉鑳戒娇鐢ㄧ紪鐮佺殑灞炴�э紝鍥犱负缂栫爜鐨勭敓鎴愬彲鑳芥槸闇�瑕佸睘鎬х殑
 				switchComponentAttrOnOrder(templateVO, orderDTO);
-				//4.鏍¢獙瑙勫垯
+				//3.鏍¢獙瑙勫垯
 				checkVerifyOnOrder(templateVO, orderDTO, errorMap);
-				//5.鍒ゆ柇鍏抽敭灞炴��
-				checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO, errorMap);
-				//6.鏍¢獙鏋氫妇鐨勫唴瀹规槸鍚︽纭�
+				//4.鏍¢獙鏋氫妇鐨勫唴瀹规槸鍚︽纭�
 				checkEnumOnOrder(templateVO, orderDTO, errorMap);
-				//7.澶勭悊鏃堕棿鏍煎紡锛屽湪鏁版嵁搴撻噷闈笉璁烘槸瀛楃涓茶繕鏄棩鏈熸牸寮忥紝閮戒娇鐢ㄧ浉鍚岀殑鏍煎紡瀛樺偍
+				//5.澶勭悊鏃堕棿鏍煎紡锛屽湪鏁版嵁搴撻噷闈笉璁烘槸瀛楃涓茶繕鏄棩鏈熸牸寮忥紝閮戒娇鐢ㄧ浉鍚岀殑鏍煎紡瀛樺偍
 				switchDateAttrOnOrder(templateVO, orderDTO);
+				//6. 鍒ゆ柇蹇呰緭椤�
+				checkRequiredAttrOnOrder(templateVO, orderDTO, errorMap);
+				//7.鍒ゆ柇鍏抽敭灞炴��
+				checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO, errorMap);
 				//榛樿鐨勫唴瀹逛笉鑳藉彉锛屾墍浠ュ彧闇�瑕佹嫹璐濊嚜瀹氫箟鐨勭浉鍏冲睘鎬у嵆鍙�
 				copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true, errorMap);
 				//浼佷笟鐮佸拰闆嗗洟鐮佺殑涓嶄慨鏀�
@@ -2494,6 +2491,9 @@
 				//鏄惁璋冪敤闆嗗洟鎺ュ彛鐢宠鎺ュ彛
 				if(isCodeOrGroupCode){
 					List<String> IdList=resultDataObjectDetailDOs.stream().filter(xMLResultDataObjectDetailDO-> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(xMLResultDataObjectDetailDO.getId())).map(XMLResultDataObjectDetailDO::getId).distinct().collect(Collectors.toList());
+
+
+
 					if(!CollectionUtils.isEmpty(IdList)) {
 						this.sendApplyGroupcode(IdList, classifyFullInfo.getTopClassifyVO().getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue());
 					}
@@ -3695,7 +3695,7 @@
 	 */
 	private void batchCheckRequiredAttrOnOrder(CodeClassifyTemplateVO templateVO,List<ClientBusinessObject> cboList,Map<String,String> errorMap){
 		Map<String, CodeClassifyTemplateAttrVO> requiredAttrMap = templateVO.getAttributes().stream().filter(s ->
-			VciBaseUtil.getBoolean(s.getRequireFlag()) && StringUtils.isBlank(s.getComponentRule()) && StringUtils.isBlank(s.getClassifyInvokeLevel())//涓嶈兘鏄粍鍚堢殑鍜屽垎绫绘敞鍏ョ殑
+			VciBaseUtil.getBoolean(s.getRequireFlag()) && StringUtils.isBlank(s.getComponentRule()) && (StringUtils.isBlank(s.getClassifyInvokeLevel())||s.getClassifyInvokeLevel().equals("none"))//涓嶈兘鏄粍鍚堢殑鍜屽垎绫绘敞鍏ョ殑
 		).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
 		//涓嶮dmEngineServiceImpl閲岄潰鐨刢heckRequiredAttrOnOrder 閫昏緫搴旇鐩镐技
 		if(!CollectionUtils.isEmpty(requiredAttrMap)) {

--
Gitblit v1.9.3