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/impl/MdmEngineServiceImpl.java |   63 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 1 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 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 鍙傜収鐨勯厤缃�

--
Gitblit v1.9.3