From 504dcb79430e0010e6b443e1ae2ef7f35b86e1a7 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 01 十二月 2023 14:35:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleCharacterServiceImpl.java |   70 +++++++++++++++++++++++++---------
 1 files changed, 51 insertions(+), 19 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleCharacterServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleCharacterServiceImpl.java
index aaabd6f..edff3be 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleCharacterServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleCharacterServiceImpl.java
@@ -10,6 +10,7 @@
 import com.vci.ubcs.code.service.ICodeRuleCharacterService;
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleCharacterVO;
 import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.poi.bo.SheetRowData;
 import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springblade.core.tool.api.R;
@@ -41,19 +42,22 @@
 	public List<Map<String, String>> getDataByRuleId(String codeRuleId,String chartType) throws VciBaseException {
 		List<Map<String,String>> charValueList=new ArrayList<>();
 		CodeRuleCharacter codeRuleCharacter=codeRuleCharacterMapper.selectOne(Wrappers.<CodeRuleCharacter>query().lambda().eq(CodeRuleCharacter::getCodeRuleId,codeRuleId).eq(CodeRuleCharacter::getChartType,chartType));
-		List<Character> characterList=codeRuleCharacter.getChartValue().chars().mapToObj(c -> (char) c).collect(Collectors.toList());
-		for (int i = 0; i < characterList.size(); i += 15) {
-			final int startIndex = i;
-			final int endIndex = Math.min(i + 15, characterList.size());
-			List<Character> subList = characterList.subList(startIndex, endIndex);
-			Map<String, String> chartMap=new HashMap<>();
-			// 璋冪敤鎻掑叆鏁版嵁搴撶殑鏂规硶
-			for (int j=1;j<subList.size()+1;j++){
-				String characterValue=subList.get(j-1)==null?"":subList.get(j-1).toString();
-				chartMap.put(String.valueOf(j),String.valueOf(characterValue));
+		if(codeRuleCharacter!=null&&StringUtils.isNotBlank(codeRuleCharacter.getOid())){
+			List<Character> characterList=codeRuleCharacter.getChartValue().chars().mapToObj(c -> (char) c).collect(Collectors.toList());
+			for (int i = 0; i < characterList.size(); i += 15) {
+				final int startIndex = i;
+				final int endIndex = Math.min(i + 15, characterList.size());
+				List<Character> subList = characterList.subList(startIndex, endIndex);
+				Map<String, String> chartMap=new HashMap<>();
+				// 璋冪敤鎻掑叆鏁版嵁搴撶殑鏂规硶
+				for (int j=1;j<subList.size()+1;j++){
+					String characterValue=subList.get(j-1)==null?"":subList.get(j-1).toString();
+					chartMap.put(String.valueOf(j),String.valueOf(characterValue));
+				}
+				charValueList.add(chartMap);
 			}
-			charValueList.add(chartMap);
 		}
+
 		return charValueList;
 	}
 	/***
@@ -63,20 +67,48 @@
 	 * @throws VciBaseException
 	 */
 	@Override
-	public R saveOrUpdate(CodeRuleCharacterVO codeRuleCharacterVO) throws VciBaseException {
+	public R saveOrUpdate(CodeRuleCharacterVO codeRuleCharacterVO,int operation) throws VciBaseException {
 		VciBaseUtil.alertNotNull(codeRuleCharacterVO.getCodeRuleId(),"缂栫爜瑙勫垯id",codeRuleCharacterVO.getChartType(),"瀛楃闆嗙被鍨�");
 		CodeRuleCharacter codeRuleCharacter=codeRuleCharacterMapper.selectOne(Wrappers.<CodeRuleCharacter>query().lambda().eq(CodeRuleCharacter::getCodeRuleId,codeRuleCharacterVO.getCodeRuleId()).eq(CodeRuleCharacter::getChartType,codeRuleCharacterVO.getChartType()));
 		if(codeRuleCharacter!=null&& StringUtils.isNotBlank(codeRuleCharacter.getOid())) {
 			List<Character> oldCharacterList =  StringUtils.isBlank(codeRuleCharacter.getChartValue())?new ArrayList<>():codeRuleCharacter.getChartValue().chars().mapToObj(c -> (char) c).collect(Collectors.toList());
 			List<Character> newCharacterList = StringUtils.isBlank(codeRuleCharacterVO.getChartValue())?new ArrayList<>():codeRuleCharacterVO.getChartValue().chars().mapToObj(c -> (char) c).collect(Collectors.toList());
-			List<Character> intersectList = intersect(oldCharacterList, newCharacterList);
-			if (intersectList.size() > 0) {
-				String ss = Joiner.on(",").join(intersectList);
-				throw new VciBaseException("绯荤粺涓瓨鍦ㄧ浉搴旂殑瀛楃:銆�" + ss + "銆�");
+			if(operation==1) {//鏂板鏃跺��
+				List<Character> intersectList = intersect(oldCharacterList, newCharacterList);
+				if (intersectList.size() > 0) {
+					String ss = Joiner.on(",").join(intersectList);
+					throw new VciBaseException("绯荤粺涓瓨鍦ㄧ浉搴旂殑瀛楃:銆�" + ss + "銆�");
+				}
+				List<Character> allCharacterList = union(oldCharacterList, newCharacterList);
+				String str = allCharacterList.stream().map(integer -> Func.isNotEmpty(integer) ? integer.toString() : "").collect(Collectors.joining());
+				codeRuleCharacter.setChartValue(str);
+			}else if(operation==2){//淇敼
+				String oldChartValue= codeRuleCharacterVO.getOldChartValue();
+				String chartValue= codeRuleCharacterVO.getChartValue();
+				Map<String,String> oldChartNewChartMap=new HashMap<>();
+				List<Character> chartValueList = StringUtils.isBlank(chartValue)?new ArrayList<>():chartValue.chars().mapToObj(c -> (char) c).collect(Collectors.toList());
+				List<Character> oldChartValueList = StringUtils.isBlank(oldChartValue)?new ArrayList<>():oldChartValue.chars().mapToObj(c -> (char) c).collect(Collectors.toList());
+
+			    if(chartValueList.size()!=oldChartValueList.size()){
+					throw new VciBaseException("鏇挎崲鐨勫�间釜鏁颁笌閫変腑鍊肩殑涓暟涓嶇浉绛�");
+				}
+				/***
+				 * id
+				 */
+				for (int i=0;i<oldChartValueList.size();i++){
+					Character oldValue=oldChartValueList.get(i);
+					if(oldCharacterList.contains(oldValue)){
+						int index =oldCharacterList.indexOf(oldValue);
+						oldCharacterList.set(index,chartValueList.get(i));
+					}
+				}
+				String str = oldCharacterList.stream().map(integer -> Func.isNotEmpty(integer) ? integer.toString() : "").collect(Collectors.joining());
+				codeRuleCharacter.setChartValue(str);
+			}else{//鍒犻櫎
+				oldCharacterList.removeAll(newCharacterList);
+				String str = oldCharacterList.stream().map(integer -> Func.isNotEmpty(integer) ? integer.toString() : "").collect(Collectors.joining());
+				codeRuleCharacter.setChartValue(str);
 			}
-			List<Character> allCharacterList = union(oldCharacterList, newCharacterList);
-			String str = allCharacterList.stream().map(integer -> Func.isNotEmpty(integer)?integer.toString():"").collect(Collectors.joining());
-			codeRuleCharacter.setChartValue(str);
 			codeRuleCharacterMapper.updateById(codeRuleCharacter);
 		}else{
 			codeRuleCharacter=new CodeRuleCharacter();

--
Gitblit v1.9.3