From a2fa411f10fefa7d7186e5d20ffe928d4689c373 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期一, 18 九月 2023 10:32:55 +0800
Subject: [PATCH] 申请集团码相关接口加上特殊取集团码的情况处理

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java                                               |    9 +++
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java                                         |    5 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java                                                  |    6 +-
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java                                          |    3 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java                                      |   63 ++++++++++++++++++++
 Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java |   18 ++++-
 Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java                |   20 ++++--
 7 files changed, 106 insertions(+), 18 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java
index 529a4ef..729a3ba 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IMdmEngineClient.java
@@ -61,13 +61,14 @@
 	 */
 	@PostMapping(INSERT_BATCH_BY_TYPE)
 	R<Integer> insertBatchByType(@RequestParam("btmType")String btmType,@RequestBody List<BaseModel> baseModels);
+
 	/**
-	 * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鏇存柊鎿嶄綔
+	 * 鏇存柊涓氬姟鏁版嵁鍚屾椂瀵圭爜鍊艰〃鏁版嵁鎿嶄綔鎺ュ彛
 	 *
 	 * @param btmType 涓氬姟绫诲瀷
 	 * @param baseModels      澶勭悊鏁版嵁
 	 * @return 澶勭悊鐘舵��
 	 */
 	@PostMapping(UPDATE_BATCH_BY_TYPE)
-	R<Integer> updateBatchByType(@RequestParam("btmType")String btmType,@RequestBody List<BaseModel> baseModels);
+	R<Integer>updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java
index 1f85f08..0452c25 100644
--- a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java
+++ b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/feigh/MdmInterJtClient.java
@@ -106,7 +106,7 @@
 	public R getApplyGroupCode(DockingReturnStoreVO dockingReturnStoreVO) {
 		log.info("鑾峰彇闆嗗洟闆嗗洟鐮侊紝璧嬪�煎埌涓绘暟鎹� start");
 		try {
-			List<BaseModel> editObjectList = new ArrayList();
+			Map<String,List<BaseModel>> editObjectMap = new HashMap<>();
 
 			List<DockingPreApplyForm> dockingPreApplyFormList = new ArrayList();
 			//String classId = javaObject.getClassId();
@@ -167,18 +167,24 @@
 				if (res) {
 					//姝ゅ闇�瑕佹煡璇笟鍔℃暟鎹紝鍘绘洿鏀�
 					BaseModel baseModel = new BaseModel();
-					baseModel.setId("10" + customCoding);
+					String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
+					if(partCoe.equals(classOid)){
+						baseModel.setId(10+customCoding);
+					}
+					String btmeName=baseModel.getBtmname();
 					baseModel.getData().put("groupcode",customCoding);
 					log.info("鐢宠鍗�:"+applyId+",闆嗗洟鐮侊細"+customCoding+"缂栫爜锛�"+baseModel.getId());
-					editObjectList.add(baseModel);
+					editObjectMap.getOrDefault(btmeName,new ArrayList<>()).add(baseModel);
+
 				}
-				List<String> dataOidList=new ArrayList<>();
-				dataOidList.add(jdataid);
+			}
+			if(!CollectionUtils.isEmpty(editObjectMap)) {
 				//璋冪敤涓绘暟鎹湇鍔℃壒閲忎繚瀛樻帴鍙�
-				mdmEngineClient.updateBatchByType(jdatabtmname,editObjectList);
+				editObjectMap.forEach((btmName, modeList) -> {
+					mdmEngineClient.updateBatchBtypeDatas(btmName, modeList);
+				});
 			}
 			dockingPreApplyFormService.saveOrUpdateBatch(dockingPreApplyFormList);
-
 		}catch (Throwable e){
 			e.printStackTrace();
 			return R.fail("闆嗗洟鐮侀泦鎴愯祴鍊煎け璐�"+e);
diff --git a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
index ae69cc9..b0535f1 100644
--- a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/GroupMdmInterServiceImpl.java
@@ -9,6 +9,8 @@
 import com.vci.ubcs.code.applyjtcodeservice.entity.*;
 import com.vci.ubcs.code.applyjtcodeservice.service.IGroupMdmInterService;
 import com.vci.ubcs.code.applyjtcodeservice.vo.*;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
+import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
 import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
 import com.vci.ubcs.code.applyjtcodeservice.feign.MdmApplyGroupCodeProvider;
 import com.vci.ubcs.code.applyjtcodeservice.mapper.DockingPreAttrMappingMapper;
@@ -168,11 +170,14 @@
 							if (isEditDatas) {
 								if (baseModelMap.containsKey(applyId)) {
 									BaseModel baseModel = baseModelMap.get(applyId);
-									baseModel.getData().getOrDefault("codeclassid","");
+									String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
+									if(partCoe.equals(classOid)){
+										baseModel.setId(10+customCoding);
+									}
 									BeanUtilForVCI.copyDeclaredIgnoreCase(baseModel, baseModel);
 									DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
 									DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
-									//baseModel.setId(customCoding);
+
 									baseModel.getData().getOrDefault("groupCode", customCoding);
 									updateCbos.add(baseModel);//鏇存柊鏁版嵁闆嗗洟code
 								}
@@ -202,7 +207,7 @@
 					}
 					//淇濆瓨琛ㄥ崟鏁版嵁
 					dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
-					mdmEngineClient.updateBatchByType(btmName, updateCbos);//淇濆瓨鏁版嵁
+					mdmEngineClient.updateBatchBtypeDatas(btmName, updateCbos);//淇濆瓨鏁版嵁
 				}
 				return R.success("鐢宠鎺ュ彛璋冪敤鎴愬姛");
 			} catch (VciBaseException e) {
@@ -212,7 +217,6 @@
 			return R.fail("鐢宠鎺ュ彛寮�鍏冲凡鍏抽棴锛屼笉鐢宠闆嗗洟鐮�");
 		}
 	}
-
 	/***
 	 * 涓绘暟鎹儚闆嗗洟鏇存敼缂栫爜
 	 * @param oids 闇�瑕佷慨鏀圭殑鏁版嵁涓婚敭鏁扮粍
@@ -292,6 +296,10 @@
 							if (baseModelMap.containsKey(applyId)) {
 								BaseModel baseModel = baseModelMap.get(applyId);
 								//BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel);
+								String classOid=baseModel.getData().getOrDefault("CODECLSFID","");
+								if(partCoe.equals(classOid)){
+									baseModel.setId(10+customCoding);
+								}
 								DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
 								//	baseModel.setId(customCoding);
 								baseModel.getData().put("groupCode", customCoding);
@@ -323,7 +331,7 @@
 				}
 				//淇濆瓨琛ㄥ崟鏁版嵁
 				dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
-				mdmEngineClient.updateBatchByType(btmName, updateCbos);//淇濆瓨鏁版嵁
+				mdmEngineClient.updateBatchBtypeDatas(btmName, updateCbos);//淇濆瓨鏁版嵁
 			}
 			return R.success("鏇存柊鎺ュ彛璋冪敤鎴愬姛");
 		} catch (VciBaseException e) {
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java
index 5cc9423..761211d 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/MdmEngineClient.java
@@ -79,7 +79,7 @@
 		}
 	}
 	/**
-	 * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鎻掑叆鎿嶄綔
+	 * 鏇存柊涓氬姟鏁版嵁鍚屾椂瀵圭爜鍊艰〃鏁版嵁鎿嶄綔鎺ュ彛
 	 *
 	 * @param btmType 涓氬姟绫诲瀷
 	 * @param baseModels      澶勭悊鏁版嵁
@@ -87,9 +87,9 @@
 	 */
 	@Override
 	@PostMapping(UPDATE_BATCH_BY_TYPE)
-	public R<Integer> updateBatchByType(String btmType, List<BaseModel> baseModels) {
+	public R<Integer>updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels){
 		try {
-			return mdmEngineService.updateBatchByBaseModel(btmType,baseModels);
+			return mdmEngineService.updateBatchBtypeDatas(btmType,baseModels);
 		} catch (Exception e) {
 			throw new RuntimeException(e);
 		}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
index 3174c1e..6dd6af6 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -413,6 +413,15 @@
 	R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels);
 
 	/**
+	 * 鏇存柊涓氬姟鏁版嵁鍚屾椂瀵圭爜鍊艰〃鏁版嵁鎿嶄綔鎺ュ彛
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param baseModels      澶勭悊鏁版嵁
+	 * @return 澶勭悊鐘舵��
+	 */
+	public R<Integer>updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels);
+
+	/**
 	 * 榛樿鍒楄〃
 	 * @param referConfigVO
 	 * @return
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 389adc9..aa73ec6 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
@@ -16,6 +16,7 @@
 import com.vci.ubcs.code.enumpack.*;
 import com.vci.ubcs.code.mapper.CommonsMapper;
 import com.vci.ubcs.code.service.*;
+import com.vci.ubcs.code.util.ClientBusinessObject;
 import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO;
 import com.vci.ubcs.code.vo.CodeReferConfigVO;
 import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
@@ -56,6 +57,7 @@
 import com.vci.ubcs.system.user.feign.IUserClient;
 import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
 import oracle.sql.TIMESTAMP;
+import org.aspectj.apache.bcel.classfile.Code;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springblade.core.cache.utils.CacheUtil;
@@ -3684,8 +3686,67 @@
 
         return R.success("鏇存柊鎴愬姛锛�");
     }
+	/**
+	 * 鏇存柊涓氬姟鏁版嵁鍚屾椂瀵圭爜鍊艰〃鏁版嵁鎿嶄綔鎺ュ彛
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param baseModels      澶勭悊鏁版嵁
+	 * @return 澶勭悊鐘舵��
+	 */
+	@Transactional(rollbackFor = VciBaseException.class)
+	@Override
+	public R<Integer> updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels) {
 
-    /**
+		//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+		R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+		if (!listR.isSuccess() || listR.getData().size() == 0) {
+			throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+		}
+		//鑾峰彇褰撳墠涓氬姟绫诲瀷鎵�鏈夊瓧娈电敤鏉ュ仛瀵规瘮
+		R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(btmType);
+		if (!allAttributeByBtmId.isSuccess() || allAttributeByBtmId.getData().getAttributes().size() == 0) {
+			throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲瀛楁淇℃伅锛岃妫�鏌ワ紒");
+		}
+		Set<String> existFild = allAttributeByBtmId.getData().getAttributes().stream().map(btmTypeAttributeVO -> {
+			return btmTypeAttributeVO.getId();
+		}).collect(Collectors.toSet());
+		if(!CollectionUtils.isEmpty(baseModels)){
+			List<String> oidList=baseModels.stream().filter(data-> com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(data.getOid())).map(BaseModel::getOid).distinct().collect(Collectors.toList());
+			LambdaQueryWrapper<CodeAllCode> lqw = new LambdaQueryWrapper<>();
+			lqw.in(CodeAllCode::getCreateCodeOid,oidList);
+			List<CodeAllCode> codeAllCodeList= codeAllCodeService.selectByWrapper(lqw);
+			Map<String, CodeAllCode> cboMap = codeAllCodeList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getCreateCodeOid(), t -> t));
+			List<CodeAllCode> newCodeAllCodeList=new ArrayList<>();
+			//灏哹ean杞负map,mybatis缁熶竴澶勭悊
+			List<Map<String, String>> maps = new ArrayList<>();
+			try {
+				baseModels.stream().forEach(baseModel->{
+					String oid=baseModel.getOid();
+					try {
+						maps.add(VciBaseUtil.convertBean2Map(baseModel,existFild));
+					} catch (Exception e) {
+						throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
+					}
+					if(cboMap.containsKey(oid)){
+						CodeAllCode codeAllCode=	cboMap.get(oid);
+						codeAllCode.setId(baseModel.getId());
+						codeAllCode.setLastModifier(AuthUtil.getUser().getUserName());
+						codeAllCode.setLastModifyTime(new Date());
+						codeAllCode.setLcStatus(baseModel.getLcStatus());
+						newCodeAllCodeList.add(codeAllCode);
+					}
+				});
+				commonsMapper.updateBatchByBaseModel(listR.getData().get(0).getTableName(), maps);
+				codeAllCodeService.saveOrUpdateBatch(newCodeAllCodeList);
+			} catch (Exception e) {
+				throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
+			}
+
+		}
+		return R.success("鏇存柊鎴愬姛锛�");
+	}
+
+	/**
      * 鑾峰彇鍙傜収鐨勪俊鎭�
      *
      * @param referConfigVO 鍙傜収鐨勯厤缃�
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 16ee22f..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
@@ -2494,6 +2494,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());
 					}

--
Gitblit v1.9.3