From f9ca72d2c14bc64fce54aa2e8742d7b7f6ff3a35 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 18 四月 2024 00:46:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java |   65 ++++++++++++++++++++++++++------
 1 files changed, 53 insertions(+), 12 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java
index 4fd3f46..7e47dc2 100644
--- a/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-applyjtcodeservice/src/main/java/com/vci/ubcs/code/applyjtcodeservice/service/impl/DockingPreAttrMappingServiceImpl.java
@@ -1,9 +1,11 @@
 package com.vci.ubcs.code.applyjtcodeservice.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.code.applyjtcodeservice.vo.GroupAttrPoolMappingVO;
 import com.vci.ubcs.code.entity.CodeClassify;
 import com.vci.ubcs.code.feign.ICodeClassifyClient;
 import com.vci.ubcs.code.applyjtcodeservice.entity.*;
@@ -18,16 +20,16 @@
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreAttrMappingVO;
 import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreAttrRangeVO;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /***
@@ -36,6 +38,7 @@
  * @date 2023-05-22
  */
 @Service
+@Slf4j
 public class DockingPreAttrMappingServiceImpl extends ServiceImpl<DockingPreAttrMappingMapper, DockingPreAttrMapping> implements IDockingPreAttrMappingService {
 
 	/***
@@ -43,6 +46,7 @@
 	 */
 	@Autowired(required = false)
 	private DockingPreAttrMappingMapper dockingPreAttrMappingMapper;
+
 	/***
 	 * 涓绘暟鎹垎绫绘湇鍔�
 	 */
@@ -60,18 +64,17 @@
 	 */
 	@Autowired(required = false)
 	private IDockingPreMetaAttrService dockingPreMetaAttrService;
+
 	/***
 	 * 灞炴�у彇鍊艰寖鍥存湇鍔�
 	 */
 	@Autowired(required = false)
 	private IDockingPreAttrRangeService dockingPreAttrRangeService;
 
-
 	/***
 	 * 闆嗗洟鍒嗙被瑙嗗浘妯″瀷鏈嶅姟
 	 */
 	@Autowired(required = false)
-
 	private IDockingPreViewModelService dockingPreViewModelService;
 
 	/***
@@ -92,7 +95,7 @@
 		VciBaseUtil.alertNotNull(sourceClassifyId,"闆嗗洟鍒嗙被涓婚敭");
 		//棣栧厛鑾峰彇鍒嗙被妯℃澘灞炴�э紝鐒跺悗涓庡睘鎬ч厤缃潗姣旇緝锛屼互闃茶鏈夊鍒犲睘鎬х殑鍙兘
 		DockingPreClassify dockingPreClassify=dockingPreClassifyService.getById(sourceClassifyId);
-		List<DockingPreMetaAttr> dockingPreMetaAttrList=	dockingPreMetaAttrService.selectByWrapper(Wrappers.<DockingPreMetaAttr>query().lambda().eq(DockingPreMetaAttr::getSourceClassifyId,sourceClassifyId));
+		List<DockingPreMetaAttr> dockingPreMetaAttrList = dockingPreMetaAttrService.selectByWrapper(Wrappers.<DockingPreMetaAttr>query().lambda().eq(DockingPreMetaAttr::getSourceClassifyId,sourceClassifyId));
 		List<DockingPreAttrMapping> dockingPreAttrMappings=this.selectByWrapper(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getSourceClassifyId, sourceClassifyId).eq(DockingPreAttrMapping::getTargetClassifyId, codeClassifyId));
 		Map<String/**灞炴�т富閿�**/, DockingPreAttrMapping> dockingPreAttrMappingMap = dockingPreAttrMappings.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getMetaListId(), t -> t));
 		List<DockingPreViewModel> dockingPreViewModelList= dockingPreViewModelService.list(Wrappers.<DockingPreViewModel>query().lambda().eq(DockingPreViewModel::getSourceClassifyId,sourceClassifyId));
@@ -103,10 +106,10 @@
 			String attrOid=dockingPreMetaAttr.getOid();
 			DockingPreAttrMapping dockingPreAttrMapping=new DockingPreAttrMapping();
 			if(dockingPreAttrMappingMap.containsKey(attrOid)){
-				dockingPreAttrMapping=	dockingPreAttrMappingMap.get(attrOid);
-				DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreAttrMapping,null);
+				dockingPreAttrMapping = dockingPreAttrMappingMap.get(attrOid);
+				DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreAttrMapping);
 			}else{
-				DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreAttrMapping, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM,null);
+				DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreAttrMapping, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
 				dockingPreAttrMapping.setMetaListId(dockingPreMetaAttr.getOid());//灞炴�т富閿�
 				dockingPreAttrMapping.setSourceAttrKey(dockingPreMetaAttr.getEnglishName());//鑻辨枃鍚嶇О
 				dockingPreAttrMapping.setSourceAttrName(dockingPreMetaAttr.getChineseName());//涓枃鍚嶇О
@@ -153,7 +156,7 @@
 		 * 1.浼犻�掕繃鏉ョ殑鏈夊彲鑳戒富鏁版嵁妯℃澘鏂板灞炴�э紝杩欐牱鐨勯渶瑕佹坊鍔狅紝涔熸湁鍙兘鍒犻櫎鐨勫睘鎬э紝杩欐牱鐨勬槧灏勯渶瑕佸垹闄�
 		 * 涔熸湁鏇存柊鐨勮繖鏍峰垯鏇存柊
 		 */
-		List<DockingPreAttrMapping> newDockingPreAttrMapping=new ArrayList<>();
+		List<DockingPreAttrMapping> newDockingPreAttrMapping = new ArrayList<>();
 		List<String>appingConfigOidList=new ArrayList<>();
 		List<String>attrIdList=new ArrayList<>();
 		List<String> attributeOidList=new ArrayList<>();
@@ -236,7 +239,6 @@
 		return null;
 	}
 
-
 	/***
 	 * 瀵硅薄杞崲
 	 * @param dockingPreAttrMappings
@@ -257,4 +259,43 @@
 			return dockingPreAttrMappingVOList;
 		}
 
+	/**
+	 * 闆嗗洟灞炴�ф睜鏄犲皠鏁版嵁鍚屾瀵奸泦鍥㈠睘鎬ф槧灏勭晫闈�
+	 * @param groupAttrPoolMappings
+	 * @return
+	 */
+	@Override
+	public R syncGroupAttrMapping(List<GroupAttrPoolMapping> groupAttrPoolMappings) {
+		log.info("寮�濮嬮泦鍥㈠睘鎬ф睜鍚屾鍒伴泦鍥㈠睘鎬ф槧灏勯厤缃〃");
+		List<String> groupAttrKeys = groupAttrPoolMappings.stream().map(GroupAttrPoolMapping::getGroupAttrKey).collect(Collectors.toList());
+		List<DockingPreAttrMapping> dockingPreAttrMappings = dockingPreAttrMappingMapper.selectList(
+			Wrappers.<DockingPreAttrMapping>query()
+				.lambda().in(DockingPreAttrMapping::getSourceAttrKey,groupAttrKeys)
+		);
+		// 灞炴�ф槧灏勯厤缃〃涓笉瀛樺湪瑕佸悓姝ョ殑闆嗗洟灞炴��
+		if(Func.isEmpty(dockingPreAttrMappings)){
+			return R.fail(String.format("瑕佸悓姝ョ殑%s灞炴�э紝鍦ㄩ泦鍥㈠睘鎬ф槧灏勮〃涓笉瀛樺湪锛�", JSON.toJSONString(groupAttrKeys)));
+		}
+		log.info(String.format("杩欎簺%s闆嗗洟灞炴�ф鍦ㄥ線闆嗗洟灞炴�ф槧灏勮〃涓悓姝ャ��",JSON.toJSONString(groupAttrPoolMappings)));
+		Map<String, GroupAttrPoolMapping> syncTargetMap = new HashMap<>();
+		// 鍑嗗瑕佷慨鏀圭殑姣斿鍙傛暟
+		groupAttrPoolMappings.stream().forEach(item->{
+			syncTargetMap.put((item.getGroupAttrKey()+item.getGroupAttrName()).toLowerCase(Locale.ROOT),item);
+		});
+		List<DockingPreAttrMapping> newGroupAttrPoolMappings = new ArrayList<>();
+		//鏌ユ壘鍒版洿鏀瑰氨鏀瑰彉鏌ヨ鍑烘潵鐨勬暟鎹繘琛屼慨鏀广��
+		dockingPreAttrMappings.stream().forEach(item->{
+			GroupAttrPoolMapping groupAttrPoolMapping = syncTargetMap.get((item.getSourceAttrKey()+item.getSourceAttrName()).toLowerCase(Locale.ROOT));
+			if(Func.isNotEmpty(groupAttrPoolMapping)){
+				DockingPreAttrMapping dockingPreAttrMapping = BeanUtil.copy(item, DockingPreAttrMapping.class);
+				dockingPreAttrMapping.setTargetAttrKey(groupAttrPoolMapping.getCodeMetaAttrKey());
+				dockingPreAttrMapping.setTargetAttrName(groupAttrPoolMapping.getCodeMetaAttrName());
+				newGroupAttrPoolMappings.add(dockingPreAttrMapping);
+			}
+		});
+		boolean resBoolean = this.saveOrUpdateBatch(newGroupAttrPoolMappings);
+		log.info("闆嗗洟灞炴�ф睜鍚屾鍒伴泦鍥㈠睘鎬ф槧灏勯厤缃〃瀹屾垚锛�");
+		return resBoolean ? R.success("闆嗗洟灞炴�ф睜鍚屾鍒伴泦鍥㈠睘鎬ф槧灏勯厤缃〃鎴愬姛锛�"):R.fail("鍚屾杩囩▼涓紝淇敼闆嗗洟灞炴�ф槧灏勮〃鏃跺け璐ワ紒");
+	}
+
 }

--
Gitblit v1.9.3