From 76293d27f60ca77343e77d35bfbfae97cdc6035f Mon Sep 17 00:00:00 2001
From: lihang <lihang@vci-tech.com>
Date: 星期三, 24 五月 2023 18:34:37 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreMetaAttrServiceImpl.java    |   13 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreAttrMappingService.java         |   25 +++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreAttrRangeService.java           |   16 ++
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingPreAttrMapping.java          |    5 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrRangeServiceImpl.java   |   19 ++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingPreAttrMappingWrapper.java          |   46 +++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingServiceImpl.java |  173 +++++++++++++++++++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreMetaAttrService.java            |   13 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingPreAttrRangeWrapper.java            |   45 +++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingPreApplyCodeController.java      |   82 ++++++++++
 10 files changed, 429 insertions(+), 8 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingPreAttrMapping.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingPreAttrMapping.java
index 666c20e..1372480 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingPreAttrMapping.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingPreAttrMapping.java
@@ -67,11 +67,6 @@
 	 */
 	@ApiModelProperty(value = "妯℃澘瑙嗗浘鐨刼id")
 	private String viewModeId;
-	/***
-	 * 妯℃澘鍚嶇О
-	 */
-	@ApiModelProperty(value = "妯℃澘鍚嶇О")
-	private String viewModeName;
 
 	/***
 	 * 鐩爣灞炴�у唴閮ㄥ悕绉�
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingPreApplyCodeController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingPreApplyCodeController.java
new file mode 100644
index 0000000..6ddef1b
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingPreApplyCodeController.java
@@ -0,0 +1,82 @@
+package com.vci.ubcs.code.controller;
+
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.vci.ubcs.code.service.IDockingPreAttrMappingService;
+import com.vci.ubcs.code.service.IDockingPreAttrRangeService;
+import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrMappingVO;
+import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrRangeVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 缂栫爜淇℃伅 鎺у埗鍣�
+ *
+ * @author xiejun
+ * @since 2023-05-23
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("ubcs-code/DockingPreApplyCode")
+@Api(value = "闆嗗洟灞炴�ф槧灏勯厤缃�", tags = "闆嗗洟灞炴�ф槧灏勯厤缃帴鍙�")
+public class DockingPreApplyCodeController {
+	/**
+	 * 闆嗗洟灞炴�ф槧灏勯厤缃睘鎬�
+	 */
+	private final IDockingPreAttrMappingService dockingPreAttrMappingService;
+	/***
+	 * 灞炴�ф灇涓捐寖鍥存湇鍔�
+	 */
+
+	private final IDockingPreAttrRangeService dockingPreAttrRangeService;
+
+	/**
+	 * 鏍规嵁涓绘暟鎹紪鐮乷id鑾峰彇闆嗗洟灞炴�ф槧灏勪俊鎭�
+	 * @param codeClassifyId 涓婚敭
+	 * @return 涓绘暟鎹紪鐮佽鍒欐樉绀哄璞�
+	 */
+	@GetMapping("/gridAttrMapping")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "鍒嗙被涓婚敭鑾峰彇涓庨泦鍥㈡ā鍨嬪睘鎬ф槧灏勫叧绯�", notes = "浼犲叆codeClassifyId")
+	public R getDockingAttrMappingsByCodeClassId(String codeClassifyId){
+		List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList=dockingPreAttrMappingService.getdockingAttrMappingsByCodeclassId(codeClassifyId);
+		return R.data(dockingPreAttrMappingVOList);
+	}
+
+	/**
+	 * 鏍规嵁闆嗗洟灞炴�d鑾峰彇灞炴�ф灇涓捐寖鍥�
+	 * @param meatId 涓婚敭
+	 * @return
+	 */
+	@GetMapping("/gridAttrRanges")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "鏍规嵁灞炴�d鑾峰彇灞炴�ф灇涓捐寖鍥�", notes = "浼犲叆")
+	public R getDockingPreAttrRangesByMetaId(String meatId){
+		List<DockingPreAttrRangeVO> dockingPreAttrRangeVOList=dockingPreAttrRangeService.getDockingPreAttrRangesByMetaId(meatId);
+		return R.data(dockingPreAttrRangeVOList);
+	}
+
+	/**
+	 * 淇濆瓨灞炴�ф槧灏勯厤缃粍浠�
+	 * @param dockingPreAttrMappingVOList 灞炴�ф槧灏勯厤缃暟鎹紶杈撳璞�
+	 * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+	 */
+	@PostMapping( "/batchAddSave")
+	public R batchSave(@Valid @RequestBody List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList){
+		List<DockingPreAttrMappingVO> dockingPreAttrRangeVOS=new ArrayList<>();
+		try {
+			 dockingPreAttrRangeVOS = dockingPreAttrMappingService.batchAddSave(dockingPreAttrMappingVOList);
+		}catch (Exception e){
+			return R.fail("闆嗗洟闆嗘垚灞炴�ф槧灏勯厤缃繚瀛樺け璐ワ細"+e.getMessage());
+		}
+		return R.data(dockingPreAttrRangeVOS);
+	}
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreAttrMappingService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreAttrMappingService.java
index 10c9951..fd7d7f4 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreAttrMappingService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreAttrMappingService.java
@@ -1,11 +1,36 @@
 package com.vci.ubcs.code.service;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.vci.ubcs.code.entity.DockingPreAttrMapping;
+import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrMappingVO;
+import java.util.List;
+
 /**
  * 闆嗗洟闆嗘垚閰嶇疆鏈嶅姟
  * @author xiej
  * @date 2023-05-17
  */
 public interface IDockingPreAttrMappingService extends IService<DockingPreAttrMapping> {
+
+	/***
+	 * 鏍规嵁涓绘暟鎹垎绫讳富閿幏鍙栧垎绫讳俊鎭厤缃�
+	 * @param codeClassifyId
+	 * @return
+	 */
+	List<DockingPreAttrMappingVO> getdockingAttrMappingsByCodeclassId(String codeClassifyId);
+
+	/**
+	 * 浣跨敤鏌ヨ灏佽鍣ㄦ潵鏌ヨ
+	 * @param wrapper 鏌ヨ灏佽鍣�
+	 * @return 鏁版嵁瀵硅薄
+	 */
+	List<DockingPreAttrMapping> selectByWrapper(Wrapper wrapper);
+
+	/**
+	 * 淇濆瓨灞炴�ф槧灏勯厤缃粍浠�
+	 * @param dockingPreAttrMappingDTOS 灞炴�ф槧灏勯厤缃暟鎹紶杈撳璞�
+	 * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+	 */
+	public  List<DockingPreAttrMappingVO> batchAddSave(List<DockingPreAttrMappingVO> dockingPreAttrMappingDTOS)throws Exception;
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreAttrRangeService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreAttrRangeService.java
index aa5f397..38bc9e8 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreAttrRangeService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreAttrRangeService.java
@@ -1,7 +1,23 @@
 package com.vci.ubcs.code.service;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.vci.ubcs.code.entity.DockingPreAttrRange;
+import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrRangeVO;
+
+import java.util.List;
 
 public interface IDockingPreAttrRangeService extends IService<DockingPreAttrRange> {
+	/***
+	 * 鏍规嵁闆嗗洟灞炴�d鑾峰彇鍙栧�艰寖鍥�
+	 * @return
+	 */
+	List<DockingPreAttrRangeVO> getDockingPreAttrRangesByMetaId(String meatId);
+
+	/**
+	 * 浣跨敤鏌ヨ灏佽鍣ㄦ潵鏌ヨ
+	 * @param wrapper 鏌ヨ灏佽鍣�
+	 * @return 鏁版嵁瀵硅薄
+	 */
+	List<DockingPreAttrRange> selectByWrapper(Wrapper wrapper);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreMetaAttrService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreMetaAttrService.java
index 1ce7ec9..dd623d1 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreMetaAttrService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingPreMetaAttrService.java
@@ -1,7 +1,10 @@
 package com.vci.ubcs.code.service;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.vci.ubcs.code.entity.DockingPreMetaAttr;
+
+import java.util.List;
 
 /***
  * 闆嗗洟灞炴�ф湇鍔�
@@ -9,4 +12,14 @@
  * @date 2023-05-23
  */
 public interface IDockingPreMetaAttrService extends IService<DockingPreMetaAttr> {
+
+
+
+	/***
+	 * 鏋勯�犲櫒鏌ヨ鏂瑰紡
+	 * @param wrapper 鏌ヨ灏佽鍣�
+	 * @return
+	 */
+
+	public List<DockingPreMetaAttr> selectByWrapper(Wrapper wrapper);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingServiceImpl.java
index d76f98b..2bff19f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingServiceImpl.java
@@ -1,10 +1,29 @@
 package com.vci.ubcs.code.service.impl;
-
+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.entity.DockingPreAttrMapping;
+import com.vci.ubcs.code.entity.DockingPreAttrRange;
+import com.vci.ubcs.code.entity.DockingPreMetaAttr;
 import com.vci.ubcs.code.mapper.DockingPreAttrMappingMapper;
 import com.vci.ubcs.code.service.IDockingPreAttrMappingService;
+import com.vci.ubcs.code.service.IDockingPreAttrRangeService;
+import com.vci.ubcs.code.service.IDockingPreMetaAttrService;
+import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrMappingVO;
+import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrRangeVO;
+import com.vci.ubcs.code.wrapper.DockingPreAttrMappingWrapper;
+import com.vci.ubcs.code.wrapper.DockingPreAttrRangeWrapper;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import org.springframework.beans.factory.annotation.Autowired;
 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.stream.Collectors;
 
 /***
  *闆嗗洟灞炴�ф槧灏勬湇鍔�
@@ -13,4 +32,156 @@
  */
 @Service
 public class DockingPreAttrMappingServiceImpl extends ServiceImpl<DockingPreAttrMappingMapper, DockingPreAttrMapping> implements IDockingPreAttrMappingService {
+	/***
+	 * 闆嗗洟鍒嗙被灞炴�у睘鎬ф槧灏勯厤缃湇鍔�
+	 */
+	@Autowired(required = false)
+	DockingPreAttrMappingMapper dockingPreAttrMappingMapper;
+	/***
+	 * 闆嗗洟灞炴�ф湇鍔�
+	 */
+	@Autowired(required = false)
+	IDockingPreMetaAttrService dockingPreMetaAttrService;
+	/***
+	 * 灞炴�у彇鍊艰寖鍥存湇鍔�
+	 */
+	@Autowired(required = false)
+	IDockingPreAttrRangeService dockingPreAttrRangeService;
+	/***
+	 * 鏍规嵁涓绘暟鎹垎绫讳富閿幏鍙栧垎绫讳俊鎭厤缃�
+	 * @param codeClassifyId
+	 * @return
+	 */
+	@Override
+	public List<DockingPreAttrMappingVO> getdockingAttrMappingsByCodeclassId(String codeClassifyId) {
+		//棣栧厛鑾峰彇鍒嗙被妯℃澘灞炴�э紝鐒跺悗涓庡睘鎬ч厤缃潗姣旇緝锛屼互闃茶鏈夊鍒犲睘鎬х殑鍙兘
+		List<DockingPreMetaAttr> dockingPreMetaAttrList=	dockingPreMetaAttrService.selectByWrapper(Wrappers.<DockingPreMetaAttr>query().lambda().eq(DockingPreMetaAttr::getSourceClassifyId,codeClassifyId));
+		List<DockingPreAttrMapping> dockingPreAttrMappings=this.selectByWrapper(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getSourceClassifyId, codeClassifyId));
+		Map<String/**灞炴�т富閿�**/, DockingPreAttrMapping> dockingPreAttrMappingMap = dockingPreAttrMappings.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getMetaListId(), t -> t));
+
+		List<DockingPreAttrMapping> newDockingPreAttrMappingList=new ArrayList<>();
+		dockingPreMetaAttrList.stream().forEach(dockingPreMetaAttr -> {
+			String attrOid=dockingPreMetaAttr.getOid();
+			DockingPreAttrMapping dockingPreAttrMapping=new DockingPreAttrMapping();
+			if(dockingPreAttrMappingMap.containsKey(attrOid)){
+				dockingPreAttrMapping=	dockingPreAttrMappingMap.get(attrOid);
+			}else{
+				dockingPreAttrMapping.setMetaListId(dockingPreMetaAttr.getOid());//灞炴�т富閿�
+				dockingPreAttrMapping.setSourceAttrKey(dockingPreMetaAttr.getEnglishName());//鑻辨枃鍚嶇О
+				dockingPreAttrMapping.setSourceAttrName(dockingPreMetaAttr.getChineseName());//涓枃鍚嶇О
+				dockingPreAttrMapping.setSourceClassifyId(dockingPreMetaAttr.getSourceClassifyId());//闆嗗洟鍒嗙被oid
+				dockingPreAttrMapping.setSourceClassifyName("");//鍒嗙被鍚嶇О
+				dockingPreAttrMapping.setViewModeId(dockingPreMetaAttr.getViewModelId());//妯″瀷瑙嗗浘id
+				dockingPreAttrMapping.setViewModelName("");//鍒嗙被妯″瀷鍚嶇О
+				dockingPreAttrMapping.setViewName("");//鍒嗙被妯″瀷鍚嶇О
+
+			}
+			newDockingPreAttrMappingList.add(dockingPreAttrMapping);
+		});
+		return 	dockingPreAttrMappingDO2VOS(dockingPreAttrMappings,false);
+	}
+
+	/***
+	 * 鏋勯�犲櫒鏌ヨ鏂瑰紡
+	 * @param wrapper 鏌ヨ灏佽鍣�
+	 * @return
+	 */
+	@Override
+	public List<DockingPreAttrMapping> selectByWrapper(Wrapper wrapper) {
+		return dockingPreAttrMappingMapper.selectList(wrapper);
+	}
+
+	/****
+	 * 闆嗗洟灞炴�ф槧灏勯厤缃繚瀛�
+	 * @param dockingPreAttrMappingVOList
+	 * @return
+	 * @throws VciBaseException
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public List<DockingPreAttrMappingVO> batchAddSave(List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList) throws Exception {
+		if(org.springframework.util.CollectionUtils.isEmpty(dockingPreAttrMappingVOList)){
+			return new ArrayList<>();
+		}
+		/**
+		 * 1.浼犻�掕繃鏉ョ殑鏈夊彲鑳戒富鏁版嵁妯℃澘鏂板灞炴�э紝杩欐牱鐨勯渶瑕佹坊鍔狅紝涔熸湁鍙兘鍒犻櫎鐨勫睘鎬э紝杩欐牱鐨勬槧灏勯渶瑕佸垹闄�
+		 * 涔熸湁鏇存柊鐨勮繖鏍峰垯鏇存柊
+		 */
+		List<DockingPreAttrMapping> newDockingPreAttrMapping=new ArrayList<>();
+		List<String>appingConfigOidList=new ArrayList<>();
+		List<String>attrIdList=new ArrayList<>();
+		List<String> attributeOidList=new ArrayList<>();
+		List<DockingPreAttrRange> newDockingPreAttrRangeList=new ArrayList<>();
+		List<DockingPreAttrRangeVO> newDockingPreAttrRangeVOList=new ArrayList<>();
+		dockingPreAttrMappingVOList.stream().forEach(dockingPreAttrMappingVO -> {
+			List<DockingPreAttrRangeVO>dockingPreAttrRangeVOList=dockingPreAttrMappingVO.getDockingPreAttrRangeVoList();
+			appingConfigOidList.add(dockingPreAttrMappingVO.getOid());
+			if(!CollectionUtils.isEmpty(dockingPreAttrRangeVOList)) {
+				attrIdList.add(dockingPreAttrMappingVO.getMetaListId());
+				newDockingPreAttrRangeVOList.addAll(dockingPreAttrRangeVOList);
+			}
+		});
+		//灏嗗睘鎬у彇鍊艰寖鍥磋浆鎴愭暟鎹寔涔呭眰瀵硅薄
+		newDockingPreAttrRangeList=DockingPreAttrRangeWrapper.build().voentitys(newDockingPreAttrRangeVOList);
+		//灏嗗睘鎬ф槧灏勯厤缃俊鎭浆鎹负闇�瑕佹暟鎹寔涔呭眰淇濆瓨鐨勫璞�
+		newDockingPreAttrMapping=DockingPreAttrMappingWrapper.build().voentitys(dockingPreAttrMappingVOList);
+
+		List<DockingPreAttrRange> oldDockingPreAttrRangeList=new ArrayList<>();
+		if(!org.springframework.util.CollectionUtils.isEmpty(attrIdList)) {
+			//鑾峰彇瀛樺湪鐨勫睘鎬у彇鍊艰寖鍥�.
+			oldDockingPreAttrRangeList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda().in(DockingPreAttrRange::getMetaListId,attrIdList));
+		}
+		//鑾峰彇瀛樺湪鐨勫睘鎬ф槧灏�.
+		List<DockingPreAttrMapping> oldDataAttrMapping = dockingPreAttrMappingMapper.selectList(Wrappers.<DockingPreAttrMapping>query().lambda().in(DockingPreAttrMapping::getOid,appingConfigOidList));
+
+		Map<String/**oid**/,DockingPreAttrMapping/**灞炴�у璞�**/> allSaveAttrMappingMap = newDockingPreAttrMapping.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t,(o1, o2)->o2));
+		Map<String/**oid**/,DockingPreAttrMapping/**瀵硅薄**/> oldAttrMappingMap =oldDataAttrMapping.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t,(o1, o2)->o2));
+		//闇�瑕佸垹闄ょ殑灞炴�ф槧灏�
+		List<String> deleteIdList=new ArrayList<>();
+		oldDataAttrMapping.stream().forEach(cbo -> {
+			String oid =cbo.getOid();
+			if(!allSaveAttrMappingMap.containsKey(oid)){
+				deleteIdList.add(oid);
+			}
+		});
+		this.removeBatchByIds(deleteIdList);//鍒犻櫎宸茬粡涓㈡帀鐨�
+		this.saveOrUpdateBatch(newDockingPreAttrMapping);//娣诲姞鏇存柊鏂扮殑閰嶇疆淇℃伅
+
+		//鍙栧�艰寖鍥村鐞�
+		if(!CollectionUtils.isEmpty(newDockingPreAttrRangeList)) {
+			Map<String/**oid**/, DockingPreAttrRange/**灞炴�у璞�**/> allSaveAttrAttrRangeDOMap =newDockingPreAttrRangeList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t, (o1, o2) -> o2));
+			Map<String/**oid**/, DockingPreAttrRange/**瀵硅薄**/> oldSaveAttrAttrRangeDOMap = oldDockingPreAttrRangeList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t, (o1, o2) -> o2));
+
+			//闇�瑕佸垹闄ょ殑灞炴�у彇鍊艰寖鍥�
+			List<String> deleteRangeIdList = new ArrayList<>();
+			oldDockingPreAttrRangeList.stream().forEach(cbo -> {
+				String oid = cbo.getOid();
+				if (!allSaveAttrAttrRangeDOMap.containsKey(oid)) {
+					deleteRangeIdList.add(oid);
+				}
+			});
+			dockingPreAttrRangeService.removeBatchByIds(deleteIdList);//鍒犻櫎宸茬粡涓㈡帀鐨�
+			dockingPreAttrRangeService.saveOrUpdateBatch(newDockingPreAttrRangeList);//娣诲姞鏇存柊鏂扮殑閰嶇疆淇℃伅
+		}
+		return dockingPreAttrMappingVOList;
+	}
+
+	/***
+	 * 瀵硅薄杞崲
+	 * @param dockingPreAttrMappings
+	 * @return
+	 */
+	private List<DockingPreAttrMappingVO> dockingPreAttrMappingDO2VOS(Collection<DockingPreAttrMapping> dockingPreAttrMappings,boolean contain) {
+		List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList=new ArrayList<>();
+			dockingPreAttrMappingVOList=DockingPreAttrMappingWrapper.build().entityVOs(dockingPreAttrMappings);
+			if(CollectionUtils.isEmpty(dockingPreAttrMappingVOList)){
+				dockingPreAttrMappingVOList.stream().distinct().forEach(dockingPreAttrMappingVO -> {
+					if(contain) {
+						List<DockingPreAttrRangeVO>  dockingPreAttrRangeVOList=	dockingPreAttrRangeService.getDockingPreAttrRangesByMetaId(dockingPreAttrMappingVO.getMetaListId());
+						dockingPreAttrMappingVO.setDockingPreAttrRangeVoList(dockingPreAttrRangeVOList);
+					}
+				});
+			}
+			return dockingPreAttrMappingVOList;
+		}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrRangeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrRangeServiceImpl.java
index dc062bc..6f67a30 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrRangeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrRangeServiceImpl.java
@@ -1,11 +1,17 @@
 package com.vci.ubcs.code.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.vci.ubcs.code.entity.DockingPreAttrRange;
 import com.vci.ubcs.code.mapper.DockingPreAttrRangeMapper;
 import com.vci.ubcs.code.service.IDockingPreAttrRangeService;
+import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrRangeVO;
+import com.vci.ubcs.code.wrapper.DockingPreAttrRangeWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import java.util.List;
 
 /***
  *闆嗗洟灞炴�у彇鍊艰寖鍥存湇鍔�
@@ -14,4 +20,17 @@
  */
 @Service
 public class DockingPreAttrRangeServiceImpl extends ServiceImpl<DockingPreAttrRangeMapper, DockingPreAttrRange> implements IDockingPreAttrRangeService {
+	@Autowired(required = false)
+	DockingPreAttrRangeMapper dockingPreAttrRangeMapper;
+	@Override
+	public List<DockingPreAttrRangeVO> getDockingPreAttrRangesByMetaId(String meatId) {
+		List<DockingPreAttrRange> dockingPreAttrMappings=this.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda().eq(DockingPreAttrRange::getMetaListId, meatId));
+		return DockingPreAttrRangeWrapper.build().entityVOs(dockingPreAttrMappings);
+	}
+
+	@Override
+	public List<DockingPreAttrRange> selectByWrapper(Wrapper wrapper) {
+		return dockingPreAttrRangeMapper.selectList(wrapper);
+	}
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreMetaAttrServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreMetaAttrServiceImpl.java
index 71f79a5..167036f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreMetaAttrServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreMetaAttrServiceImpl.java
@@ -1,10 +1,15 @@
 package com.vci.ubcs.code.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.code.entity.DockingPreAttrMapping;
 import com.vci.ubcs.code.entity.DockingPreMetaAttr;
 import com.vci.ubcs.code.mapper.DockingPreMetaAttrMapper;
 import com.vci.ubcs.code.service.IDockingPreMetaAttrService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /***
  * 闆嗗洟灞炴�ф湇鍔�
@@ -13,4 +18,12 @@
  */
 @Service
 public class DockingPreMetaAttrServiceImpl extends ServiceImpl<DockingPreMetaAttrMapper, DockingPreMetaAttr> implements IDockingPreMetaAttrService {
+
+	@Autowired(required = false)
+	DockingPreMetaAttrMapper dockingPreMetaAttrMapper;
+
+	@Override
+	public List<DockingPreMetaAttr> selectByWrapper(Wrapper wrapper) {
+		return dockingPreMetaAttrMapper.selectList(wrapper);
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingPreAttrMappingWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingPreAttrMappingWrapper.java
index e4bb278..4db0b71 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingPreAttrMappingWrapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingPreAttrMappingWrapper.java
@@ -1,11 +1,16 @@
 package com.vci.ubcs.code.wrapper;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.vci.ubcs.code.entity.DockingPreAttrMapping;
-import com.vci.ubcs.code.vo.pagemodel.DockingLogeVO;
+import com.vci.ubcs.code.entity.DockingPreAttrRange;
 import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrMappingVO;
+import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrRangeVO;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
 import java.util.Objects;
 /**
  *闆嗗洟缂栫爜闆嗘垚灞炴�ф槧灏勯厤缃寘瑁呯被
@@ -14,9 +19,48 @@
  * @since 2023-05-23
  */
 public class DockingPreAttrMappingWrapper extends BaseEntityWrapper<DockingPreAttrMapping, DockingPreAttrMappingVO> {
+	public static DockingPreAttrMappingWrapper build() {
+		return new DockingPreAttrMappingWrapper();
+	}
+
 	@Override
 	public DockingPreAttrMappingVO entityVO(DockingPreAttrMapping entity) {
 		DockingPreAttrMappingVO dockingPreAttrMappingVO = Objects.requireNonNull(BeanUtil.copy(entity, DockingPreAttrMappingVO.class));
 		return dockingPreAttrMappingVO;
 	}
+
+	/***
+	 * 鏁扮粍瀵硅薄杞崲
+	 * @param dockingPreAttrMappings
+	 * @return
+	 */
+	public List<DockingPreAttrMappingVO> entityVOs(Collection<DockingPreAttrMapping> dockingPreAttrMappings) {
+		List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList=new ArrayList<>();
+		if(!CollectionUtils.isEmpty(dockingPreAttrMappings)) {
+			dockingPreAttrMappings.stream().forEach(dockingPreAttrMapping -> {
+				dockingPreAttrMappingVOList.add(entityVO(dockingPreAttrMapping));
+			});
+		}
+		return dockingPreAttrMappingVOList;
+	}
+
+	/***
+	 * 鏁扮粍瀵硅薄杞崲
+	 * @param dockingPreAttrMappingVOS
+	 * @return
+	 */
+	public List<DockingPreAttrMapping> voentitys(Collection<DockingPreAttrMappingVO> dockingPreAttrMappingVOS) {
+		List<DockingPreAttrMapping> dockingPreAttrMappingList=new ArrayList<>();
+		if(!CollectionUtils.isEmpty(dockingPreAttrMappingVOS)) {
+			dockingPreAttrMappingVOS.stream().forEach(dockingPreAttrMappingVO -> {
+				dockingPreAttrMappingList.add(voentity(dockingPreAttrMappingVO));
+			});
+		}
+		return dockingPreAttrMappingList;
+	}
+
+	public DockingPreAttrMapping voentity( DockingPreAttrMappingVO vo) {
+		DockingPreAttrMapping dockingPreAttrMapping = Objects.requireNonNull(BeanUtil.copy(vo, DockingPreAttrMapping.class));
+		return dockingPreAttrMapping;
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingPreAttrRangeWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingPreAttrRangeWrapper.java
index 53d00d9..0df3141 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingPreAttrRangeWrapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingPreAttrRangeWrapper.java
@@ -1,5 +1,6 @@
 package com.vci.ubcs.code.wrapper;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.vci.ubcs.code.entity.DockingPreAttrMapping;
 import com.vci.ubcs.code.entity.DockingPreAttrRange;
 import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrMappingVO;
@@ -8,6 +9,9 @@
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
 import java.util.Objects;
 /**
  *闆嗗洟缂栫爜鍒嗙被妯″瀷瑙嗗浘灞炴�у彇鍊艰寖鍥村寘瑁呯被
@@ -16,10 +20,49 @@
  * @since 2023-05-23
  */
 public class DockingPreAttrRangeWrapper extends BaseEntityWrapper<DockingPreAttrRange, DockingPreAttrRangeVO> {
-
+	public static DockingPreAttrRangeWrapper build() {
+		return new DockingPreAttrRangeWrapper();
+	}
 	@Override
 	public DockingPreAttrRangeVO entityVO(DockingPreAttrRange entity) {
 		DockingPreAttrRangeVO dockingPreAttrRangeVO = Objects.requireNonNull(BeanUtil.copy(entity, DockingPreAttrRangeVO.class));
 		return dockingPreAttrRangeVO;
 	}
+
+
+	/***
+	 * 鏁扮粍瀵硅薄杞崲
+	 * @param dockingPreAttrRanges
+	 * @return
+	 */
+	public List<DockingPreAttrRangeVO> entityVOs(Collection<DockingPreAttrRange> dockingPreAttrRanges) {
+		List<DockingPreAttrRangeVO> dockingPreAttrRangeVOList=new ArrayList<>();
+		if(!CollectionUtils.isEmpty(dockingPreAttrRanges)) {
+			dockingPreAttrRanges.stream().forEach(dockingPreAttrRange -> {
+				dockingPreAttrRangeVOList.add(entityVO(dockingPreAttrRange));
+			});
+		}
+		return dockingPreAttrRangeVOList;
+	}
+
+	/***
+	 * 鏁扮粍瀵硅薄杞崲
+	 * @param dockingPreAttrRangeVos
+	 * @return
+	 */
+	public List<DockingPreAttrRange> voentitys(Collection<DockingPreAttrRangeVO> dockingPreAttrRangeVos) {
+		List<DockingPreAttrRange> dockingPreAttrRangeList=new ArrayList<>();
+		if(!CollectionUtils.isEmpty(dockingPreAttrRangeVos)) {
+			dockingPreAttrRangeVos.stream().forEach(dockingPreAttrRangeVO -> {
+				dockingPreAttrRangeList.add(voentity(dockingPreAttrRangeVO));
+			});
+		}
+		return dockingPreAttrRangeList;
+	}
+
+	public DockingPreAttrRange voentity( DockingPreAttrRangeVO vo) {
+		DockingPreAttrRange dockingPreAttrRange = Objects.requireNonNull(BeanUtil.copy(vo, DockingPreAttrRange.class));
+		return dockingPreAttrRange;
+	}
+
 }

--
Gitblit v1.9.3