From de9b95a2f14d42bcde076aeb32f1e1c4396b67f4 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 18 九月 2023 10:35:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java |   74 ++++++++++++++++++++++++++-----------
 1 files changed, 52 insertions(+), 22 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 6ac3b6e..25953b9 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
@@ -179,7 +179,7 @@
 	 * @return excel鐨勬枃浠跺湴鍧�
 	 */
 	@Override
-	public  String downloadTopImportExcel(String codeClassifyOid){
+	public String downloadTopImportExcel(String codeClassifyOid){
 		List<CodeClassifyTemplateVO> templateVOList=new ArrayList<>();
 		VciBaseUtil.alertNotNull("瀵煎嚭妯℃澘","瀵煎嚭鐨勯厤缃�",codeClassifyOid,"涓婚搴撳垎绫荤殑涓婚敭");
 		CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid);
@@ -2090,6 +2090,7 @@
 							XMLResultDataObjectDetailDO resultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
 							if(isCodeOrGroupCode) {
 								if(StringUtils.isBlank(groupCode)){
+									errorid="1";
 									mes+="锛涚敵璇风殑缂栫爜绫诲瀷涓洪泦鍥㈢爜锛岀瓑寰呴泦鍥㈢紪鐮佽祴鍊�";
 								}
 								resultDataObjectDetailDO.setCode(groupCode);
@@ -2157,14 +2158,16 @@
 					}
 					if(isCodeOrGroupCode) {
 						if(StringUtils.isBlank(groupCode)){
+							resultDataObjectDetailDO.setErrorid("1");
 							msg="鐢宠鐨勭紪鐮佺被鍨嬩负闆嗗洟鐮侊紝绛夊緟闆嗗洟缂栫爜璧嬪��";
 						}
 						resultDataObjectDetailDO.setCode(groupCode);
 					}else{
 						resultDataObjectDetailDO.setCode(code);
+						resultDataObjectDetailDO.setErrorid("0");
 					}
 					resultDataObjectDetailDO.setId(sourceOid);
-					resultDataObjectDetailDO.setErrorid("0");
+
 					resultDataObjectDetailDO.setMsg(msg);
 					resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
 					//澶勭悊浼犻�佺殑鏁版嵁涓叧閿睘鎬ч噸澶嶇殑锛岀洿鎺ユ嬁鍒板凡缁忕敵璇峰埌缂栫爜鐨勬暟鎹紪鐮佺洿鎺ュ皢璧嬬粰鍏抽敭灞炴�ч噸澶嶇殑鏁版嵁
@@ -2324,13 +2327,19 @@
 		sb.append(" select * from ");
 		sb.append(tableName);
 		sb.append(" where 1=1 ");
+		sb.append(" and lastr=1 and lastv=1" );
 		if(isCodeOrGroupCode) {
-			sb.append(" groupcode in (");
+			sb.append(" and ( groupcode in (");
+			sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
+			sb.append(")");
+			sb.append(" or id in (");
+			sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
+			sb.append("))");
 		}else{
-			sb.append(" id in (");
+			sb.append(" and id in (");
+			sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
+			sb.append(")");
 		}
-		sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
-		sb.append(")");
 
 		List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
 		List<ClientBusinessObject> cboList=	ChangeMapTOClientBusinessObjects(dataMapList);
@@ -2359,7 +2368,7 @@
 			RowDatas rowData=codeDataMap.get(code);
 			String status=rowData.getStatus();
 			String operation=rowData.getOperation();
-			if (cbo.getTs().compareTo(orderDTO.getTs())==0?true:false) {
+			if (cbo.getTs().compareTo(orderDTO.getTs())==0?false:true) {
 				// throw new VciBaseException("鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯");
 				errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+";鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯");
 			}
@@ -2401,7 +2410,7 @@
 
 				List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid()));
 				if (!CollectionUtils.isEmpty(newCodeAllCodeList)) {
-					CodeAllCode codeCbo = codeAllCodeList.get(0);
+					CodeAllCode codeCbo = newCodeAllCodeList.get(0);
 					log.info("codeCbos code:" + codeCbo.getId());
 					codeCbo.setLcStatus(status);
 					codeAllCodeList.add(codeCbo);
@@ -2420,7 +2429,7 @@
 					List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid()));
 					log.info("codeCbos size:" + newCodeAllCodeList.size());
 					if (!CollectionUtils.isEmpty(newCodeAllCodeList)) {
-						CodeAllCode codeCbo = codeAllCodeList.get(0);
+						CodeAllCode codeCbo = newCodeAllCodeList.get(0);
 						log.info("codeCbos code:" + codeCbo.getId());
 						codeCbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue());
 						codeAllCodeList.add(codeCbo);
@@ -2478,13 +2487,16 @@
 			//瀛樺偍鏁版嵁
 			try {
 				engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),updateList);
-				codeAllCodeService.saveBatch(codeAllCodeList);
+				codeAllCodeService.saveOrUpdateBatch(codeAllCodeList);
 				if(deleteList.size()>0) {
 					commonsMapper.deleteByTaleAndOid(tableName, VciBaseUtil.array2String(deleteList.toArray(new String[]{})));
 				}
 				//鏄惁璋冪敤闆嗗洟鎺ュ彛鐢宠鎺ュ彛
 				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());
 					}
@@ -2612,17 +2624,36 @@
 		//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
 
 		if (!CollectionUtils.isEmpty(conditionMap)) {
-			final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()) + " where 1 = 1 "};
+			String tableName="";
+			R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
+			if(r.isSuccess()) {
+				BtmTypeVO btmTypeVO = r.getData();
+				if (btmTypeVO != null) {
+					tableName = btmTypeVO.getTableName();
+
+				}
+			}
+			if (StringUtils.isBlank(tableName)) {
+				String errormsg="鏍规嵁涓氬姟绫诲瀷涓烘煡璇㈠埌鐩稿叧涓氬姟琛�";
+				errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+errormsg);
+				return;
+			}
+			final String[] sql = {"select count(*) from " + tableName + " t where 1 = 1 "};
 			conditionMap.forEach((key, value) -> {
-				sql[0] += " and " + key + " = " + value;
+				if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)){
+					sql[0] += " and " + key + " is null ";
+				}else{
+					sql[0] += " and " + key + " = " + value;
+				}
+
 			});
 			if (StringUtils.isNotBlank(orderDTO.getOid())) {
 				//淇敼鐨勬椂鍊欙紝闇�瑕佹帓闄よ嚜宸�
-				sql[0] += " and oid != '" + orderDTO.getOid() + "'";
+				sql[0] += " and t.oid != '" + orderDTO.getOid() + "'";
 			} else if (StringUtils.isNotBlank(orderDTO.getCopyFromVersion())) {
-				sql[0] += " and oid != '" + orderDTO.getCopyFromVersion() + "'";
+				sql[0] += " and t.oid != '" + orderDTO.getCopyFromVersion() + "'";
 			}
-			sql[0] += " and lastR = '1' and lastV = '1' ";
+			sql[0] += " and t.lastR = '1' and t.lastV = '1' ";
 			if (commonsMapper.queryCountBySql(sql[0]) > 0) {
 				String ruleInfoMsg = keyRuleVO == null ? "" : "鏌ヨ瑙勫垯锛氬幓闄ょ┖鏍�--{0},蹇界暐澶у皬鍐�--{1},蹇界暐鍏ㄥ崐瑙�--{2},蹇界暐鍏ㄩ儴绌烘牸--{3}";
 				String[] objs = new String[]{trim ? "鏄�" : "鍚�", ignoreCase ? "鏄�" : "鍚�", ignoreWidth ? "鏄�" : "鍚�", trimAll ? "鏄�" : "鍚�"};
@@ -2827,6 +2858,9 @@
 			ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code);
 			if(isCodeOrGroupCode){
 				code=sysDataObject.getAttributeValue("GROUPCODE");
+				if(StringUtils.isBlank(code)){
+					code=sysDataObject.getId();
+				}
 			}
 			CodeOrderDTO orderDTO = new CodeOrderDTO();
 			if(codeDataMap.containsKey(code)){
@@ -2835,11 +2869,7 @@
 				orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭
 				orderDTO.setOid(sysDataObject.getOid());//鏁版嵁oid
 				orderDTO.setLcStatus(rowDatas.getStatus());//鐘舵��
-				if(isCodeOrGroupCode){
-					orderDTO.setId(sysDataObject.getId());
-				}else{
-					orderDTO.setId(code);
-				}
+				orderDTO.setId(code);
 				orderDTO.setTs(sysDataObject.getTs());
 				orderDTO.setBtmname(codeClassifyVO.getBtmname());//涓氬姟绫诲瀷
 				orderDTO.setDescription("闆嗘垚璋冪敤:鏇存柊");//鏁版嵁鎻忚堪
@@ -4013,7 +4043,7 @@
 			DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject);
 			for (String key:dataMap.keySet()){
 				Object value= dataMap.getOrDefault(key,"");
-				clientBusinessObject.setAttributeValue(key,value.toString());
+				clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString());
 			}
 			clientBusinessObjectList.add(clientBusinessObject);
 		});
@@ -4446,7 +4476,7 @@
 	 * @param idList
 	 * @param btmName
 	 */
-	private void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
+	public void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
 		String oids=VciBaseUtil.array2String(idList.toArray(new String[]{}));
 		if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue())) {
 			mdmInterJtClient.applyGroupCode(oids,btmName);

--
Gitblit v1.9.3