From ba90ddf7618567877f1211f671ae1b34c378faad Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 17 十一月 2023 16:14:21 +0800
Subject: [PATCH] 整合代码
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 128 ++++++++++++++++++++++++++++--------------
1 files changed, 86 insertions(+), 42 deletions(-)
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 28ca14e..b1d2ef4 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
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.google.protobuf.ServiceException;
import com.vci.ubcs.code.applyjtcodeservice.feign.IMdmInterJtClient;
import com.vci.ubcs.code.bo.AttributeValue;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
@@ -98,6 +99,10 @@
@Value("${batchadd.redis.time:6000000}")
public int BATCHADD_REDIS_TIME;
+
+ @Value("${batchadd.import_data_limit:5001}")
+ private Integer IMPORT_DATA_LIMIT;
+
/**
* 涓婚搴撳垎绫荤殑鏈嶅姟
*/
@@ -524,7 +529,7 @@
//鏍¢獙妯℃澘鏄笉鏄渶鏂扮殑
checkTemplateSync(sheetDataSetList,templateVO,0);
//鍏堜笉鐢ㄧ灞炴�ф槸鍚﹂兘瀛樺湪锛屽厛杞崲涓�涓嬫暟鎹�
- Map<String,String> errorMap = new HashMap<>();
+ Map<String,String> errorMap = new ConcurrentHashMap<>();
String redisUUid=batchImportCodes(orderDTO,templateVO,dataSet,errorMap,true);
CodeImProtRusultVO codeImProtRusultVO = new CodeImProtRusultVO();
List<String> needRowIndexList = new ArrayList<>();
@@ -649,7 +654,7 @@
//2.鍒ゆ柇蹇呰緭椤广�傘�傞渶瑕佸叏閮ㄧ殑灞炴�э紝濡傛灉鏄繀杈擄紝浣嗘槸琛ㄥ崟閲岄潰涓嶆樉绀虹殑锛屽彧鑳芥槸鍒嗙被娉ㄥ叆鎴栬�呯粍鍚堣鍒�
batchCheckRequiredAttrOnOrder(templateVO,allCboList,errorMap);
//3.鍒ゆ柇鍏抽敭灞炴��
- CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, allCboList);
+ CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, allCboList,errorMap);
Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList();
Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList();
if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){
@@ -659,7 +664,7 @@
}
if(!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)){
keyAttrRepeatRowIndexList.stream().forEach(rowIndex->{
- errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅" );
+ errorMap.put(rowIndex, "鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex,"") );
});
}
//鍒嗙被娉ㄥ叆
@@ -794,6 +799,10 @@
|| sheetDataSetList.get(i).getRowData().size() < 1) {
continue;
}
+ // 鍗曟瀵煎叆鏁伴噺闄愬埗
+ if(sheetDataSetList.get(i).getRowData().size() > IMPORT_DATA_LIMIT){
+ throw new ServiceException("涓轰簡淇濊瘉绯荤粺鐨勭ǔ瀹氭�э紝璇蜂竴娆′笉瑕佸鍏ヨ秴杩�"+IMPORT_DATA_LIMIT+"鏉$殑鏁版嵁");
+ }
//鍘嗗彶瀵煎叆鐨勬椂鍊欎笉澶勭悊缂栫爜
//----閫昏緫鍐呭----
//1. 鍒嗙被鐨勮矾寰勫彲浠ュ湪椤甸潰涓婇�夋嫨鏄垎绫荤紪鍙疯繕鏄垎绫荤殑鍚嶇О
@@ -847,7 +856,7 @@
String idFieldName = attrVOS.stream().filter(s -> VciQueryWrapperForDO.ID_FIELD.equalsIgnoreCase(s.getId())).findFirst().orElseGet(() -> new CodeClassifyTemplateAttrVO()).getName();
getFieldIndexMap(titleRowData, attrNameIdMap, fieldIndexMap);
//鍏堜笉鐢ㄧ灞炴�ф槸鍚﹂兘瀛樺湪锛屽厛杞崲涓�涓嬫暟鎹�
- List<ClientBusinessObject> cboList = new ArrayList<>();
+ List<ClientBusinessObject> cboList = new CopyOnWriteArrayList<>();
String fullPath = getFullPath(classifyFullInfo);
//鎴戜滑闇�瑕佽幏鍙栧埌鎵�鏈夌殑涓嬬骇鍒嗙被鐨刼id鐨勮矾寰勶紝鍥犱负鍚庨潰闇�瑕�
Map<String/**涓婚敭**/, String/**璺緞**/> childOidPathMap = getChildClassifyPathMap(classifyFullInfo, fullPath);
@@ -894,7 +903,7 @@
//鍒ゆ柇蹇呰緭椤�
batchCheckRequiredAttrOnOrder(templateVO, cboList, errorMap);
- //鏈夐檺鏍¢獙缂栫爜鏄惁瀛樺湪
+ //浼樺厛鏍¢獙缂栫爜鏄惁瀛樺湪
batchCheckIdExistOnOrder(templateVO, cboList, errorMap);
//boolean
@@ -904,15 +913,18 @@
batchSwitchEnumAttrOnOrder(attrVOS, cboList, errorMap);
batchSwitchReferAttrOnOrder(attrVOS, cboList, errorMap);
+
//6.澶勭悊鍒嗙被娉ㄥ叆
batchSwitchClassifyAttrOnOrder(attrVOS, cboList, classifyFullInfo,true);
//璁剧疆榛樿鍊�
batchSwitchAttrDefault(attrVOS, cboList);
+
//7.澶勭悊缁勫悎瑙勫垯
batchSwitchComponentAttrOnOrder(attrVOS, cboList);
+
//3.鍒ゆ柇鍏抽敭灞炴��
- CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList);
+ CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList,errorMap);
Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList();
Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList();
if (!CollectionUtils.isEmpty(selfRepeatRowIndexList)) {
@@ -922,7 +934,7 @@
}
if (!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)) {
keyAttrRepeatRowIndexList.stream().forEach(rowIndex -> {
- errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅");
+ errorMap.put(rowIndex, "鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex, ""));
});
}
//4.鏍¢獙瑙勫垯
@@ -933,7 +945,7 @@
if (CollectionUtils.isEmpty(ruleOidMap.values())) {
throw new VciBaseException("瀵煎叆鐨勬暟鎹墍閫夋嫨鐨勫垎绫婚兘娌℃湁璁剧疆缂栫爜瑙勫垯");
}
- // TODO: 鏀圭敤oid鏌ヨ瑙勫垯鐨勶紝鍒敤id
+ // TODO: 璇ョ敤oid鏌ヨ瑙勫垯鐨勶紝鍒敤id
Map<String, CodeRuleVO> ruleVOMap = ruleService.listCodeRuleByOids(ruleOidMap.values()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
//鏍¢獙缂栫爜瑙勫垯鍜岀爜娈垫槸鍚︽纭�
Map<String, List<String>> ruleRowIndexMap = new ConcurrentHashMap<>();
@@ -1029,7 +1041,7 @@
//VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
List<String> rowIndexList = ruleRowIndexMap.get(ruleOid);
List<ClientBusinessObject> thisCbos = finalNeedSaveCboList.stream().filter(cbo -> rowIndexList.contains(cbo.getAttributeValue(IMPORT_ROW_INDEX)) && !errorMap.containsKey(cbo.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList());
- List<BaseModel> dataCBOList=new ArrayList<>();
+ List<BaseModel> dataCBOList=new CopyOnWriteArrayList<>();
thisCbos.stream().forEach(clientBusinessObject -> {
BaseModel baseModel=new BaseModel();
BeanUtil.convert(clientBusinessObject,baseModel);
@@ -1046,7 +1058,7 @@
log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e);
thisCbos.stream().forEach(cbo -> {
String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
- errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";绯荤粺閿欒锛屽瓨鍌ㄦ暟鎹殑鏃跺�欏嚭閿欎簡");
+ errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";绯荤粺閿欒锛屽瓨鍌ㄦ暟鎹殑鏃跺�欏嚭閿欎簡:"+e.getMessage());
});
}
@@ -1292,7 +1304,7 @@
//2.鍒ゆ柇蹇呰緭椤广�傘�傞渶瑕佸叏閮ㄧ殑灞炴�э紝濡傛灉鏄繀杈擄紝浣嗘槸琛ㄥ崟閲岄潰涓嶆樉绀虹殑锛屽彧鑳芥槸鍒嗙被娉ㄥ叆鎴栬�呯粍鍚堣鍒�
batchCheckRequiredAttrOnOrder(templateVO,cboList,errorMap);
//3.鍒ゆ柇鍏抽敭灞炴��
- CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList);
+ CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList,errorMap);
Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList();
Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList();
if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){
@@ -1302,7 +1314,7 @@
}
if(!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)){
keyAttrRepeatRowIndexList.stream().forEach(rowIndex->{
- errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅" );
+ errorMap.put(rowIndex,"鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex,""));
});
}
//鍒嗙被娉ㄥ叆
@@ -1529,7 +1541,6 @@
total += commonsMapper.queryCountBySql(countSql);
}
}else{
-
total = commonsMapper.queryCountBySql(countSql);
}
List<String> selectFieldList = new ArrayList<>();
@@ -1729,7 +1740,7 @@
).collect(Collectors.toList());
String fullPath = getFullPath(classifyFullInfo);
excelToCbo(classifyFullInfo,fieldIndexMap,rowDataList, codeClassifyTemplateVO,cboList,fullPath,!isImprot);
- Map<String,String> errorMap=new HashMap<>();
+ Map<String,String> errorMap=new ConcurrentHashMap<>();
Map<String/**璺緞**/, CodeClassifyVO> pathMap=new HashMap<>() ;
//鏍¢獙缂栫爜瑙勫垯鍜岀爜娈垫槸鍚︽纭�
Map<String, List<String>> ruleRowIndexMap = new ConcurrentHashMap<>();
@@ -1774,12 +1785,12 @@
//鏈�鍚庡紕缁勫悎瑙勫垯
batchSwitchComponentAttrOnOrder(attrVOS,cboList);
//3.鍒ゆ柇鍏抽敭灞炴��
- CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, codeClassifyTemplateVO, cboList);
+ CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, codeClassifyTemplateVO, cboList,errorMap);
Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList();
Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList();
if(!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)){
keyAttrRepeatRowIndexList.stream().forEach(rowIndex->{
- errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅" );
+ errorMap.put(rowIndex,"鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex,""));
});
}
//4.鏍¢獙瑙勫垯
@@ -1908,7 +1919,7 @@
*/
@Override
public void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode) {
- Map<String,String> errorMap=new HashMap<>();
+ Map<String,String> errorMap=new ConcurrentHashMap<>();
VciBaseUtil.alertNotNull(orderDTO,"缂栫爜鐢宠鐩稿叧鐨勬暟鎹�",orderDTO.getCodeClassifyOid(),"涓婚搴撳垎绫讳富閿�");
CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
//瑙勫垯鐨勪富閿渶瑕佸幓鑾峰彇
@@ -1958,7 +1969,6 @@
//閮借浆鎹㈠畬浜嗐�傞渶瑕佹壒閲忔鏌�
//濡傛灉鍑洪敊浜嗭紝鎴戜滑渚濈劧鎵ц鏈夋晥鐨勬暟鎹紝鏃犳晥鐨勬暟鎹啓鍥炲埌excel涓�
-
Map<String,String> errorKeyMap=new HashMap<>();
//1.鍒嗙被娉ㄥ叆
batchSwitchClassifyAttrOnOrder(attrVOS,cboList,classifyFullInfo,false);
@@ -1981,7 +1991,7 @@
//鏈�鍚庡紕缁勫悎瑙勫垯
batchSwitchComponentAttrOnOrder(attrVOS,cboList);
//3.鍒ゆ柇鍏抽敭灞炴��
- CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList);
+ CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList,errorMap);
Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList();
Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList();
Map<String,List<String>>keyAttrOkOidTORepeatOidMap= keyResultVO.getKeyAttrOkOidTORepeatOidMap();
@@ -2013,7 +2023,7 @@
resultDataObjectDetailDO.setMsg(errorMap.getOrDefault(rowIndex,"") + ";鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅" );
resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
*/
- errorKeyMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅" );
+ errorKeyMap.put(rowIndex, "鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅;" + errorMap.getOrDefault(rowIndex,""));
});
}
//鏍¢獙灞炴�ф槸鍚︽纭敊璇俊鎭�
@@ -2261,6 +2271,7 @@
}
return resultDataObjectDetailDOs;
}
+
/***
* 闆嗘垚鎵归噺鍚屾鏇存柊鎺ュ彛
* @param codeClassifyVO;
@@ -2556,6 +2567,7 @@
});
}
}
+
/**
* 杞崲缁勫悎瑙勫垯鐨勫��
*
@@ -2602,6 +2614,7 @@
});
}
}
+
/**
* 鏍¢獙鍏抽敭灞炴��
*
@@ -2630,7 +2643,6 @@
});
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
-
if (!CollectionUtils.isEmpty(conditionMap)) {
String tableName="";
R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
@@ -2642,11 +2654,12 @@
}
}
if (StringUtils.isBlank(tableName)) {
- String errormsg="鏍规嵁涓氬姟绫诲瀷涓烘煡璇㈠埌鐩稿叧涓氬姟琛�";
+ String errormsg="鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿叧涓氬姟琛�";
errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+errormsg);
return;
}
- final String[] sql = {"select count(*) from " + tableName + " t where 1 = 1 "};
+ //final String[] sql = {"select count(*) from " + tableName + " t where 1 = 1 "};
+ final String[] sql = {"select id from " + tableName + " t where 1 = 1 "};
conditionMap.forEach((key, value) -> {
if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)){
sql[0] += " and " + key + " is null ";
@@ -2661,17 +2674,24 @@
} else if (StringUtils.isNotBlank(orderDTO.getCopyFromVersion())) {
sql[0] += " and t.oid != '" + orderDTO.getCopyFromVersion() + "'";
}
+ // 涓嶉渶瑕佸弬涓庢牎楠岀殑瑙勫垯oid
+ String isParticipateCheckOids = classifyService.selectLeafByParentClassifyOid(classifyFullInfo.getTopClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO().getOid());
+ if(Func.isNotBlank(isParticipateCheckOids)){
+ sql[0] += " and codeclsfid not in("+isParticipateCheckOids+")";
+ }
sql[0] += " and t.lastR = '1' and t.lastV = '1' ";
- if (commonsMapper.queryCountBySql(sql[0]) > 0) {
+ List<String> repeatData = commonsMapper.selectList(sql[0]);
+ if (!repeatData.isEmpty()) {
String ruleInfoMsg = keyRuleVO == null ? "" : "鏌ヨ瑙勫垯锛氬幓闄ょ┖鏍�--{0},蹇界暐澶у皬鍐�--{1},蹇界暐鍏ㄥ崐瑙�--{2},蹇界暐鍏ㄩ儴绌烘牸--{3}";
String[] objs = new String[]{trim ? "鏄�" : "鍚�", ignoreCase ? "鏄�" : "鍚�", ignoreWidth ? "鏄�" : "鍚�", trimAll ? "鏄�" : "鍚�"};
- String defaultValue=";鏍规嵁鎮ㄥ~鍐欑殑鍏抽敭灞炴�х殑鍐呭锛岀粨鍚堝叧閿睘鎬ф煡璇㈣鍒欙紝鍙戠幇杩欎釜鏁版嵁宸茬粡鍦ㄧ郴缁熶腑瀛樺湪浜嗐�傝淇!銆�";
+ String defaultValue=";鏍规嵁鎮ㄥ~鍐欑殑鍏抽敭灞炴�х殑鍐呭锛岀粨鍚堝叧閿睘鎬ф煡璇㈣鍒欙紝鍙戠幇杩欎釜鏁版嵁宸茬粡鍦ㄧ郴缁熶腑瀛樺湪浜�,鏁版嵁鐨勭紪鍙峰涓嬶細"+repeatData.stream().collect(Collectors.joining(","))+"銆傝淇!銆�";
String errormsg=defaultValue+ MessageFormat.format(ruleInfoMsg, objs);
errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+errormsg);
// throw new VciBaseException("鏍规嵁鎮ㄥ~鍐欑殑鍏抽敭灞炴�х殑鍐呭锛岀粨鍚堝叧閿睘鎬ф煡璇㈣鍒欙紝鍙戠幇杩欎釜鏁版嵁宸茬粡鍦ㄧ郴缁熶腑瀛樺湪浜嗐�傝淇!銆�" + ruleInfoMsg, objs);
}
}
}
+
/**
* 鏍¢獙鏋氫妇鐨勫唴瀹�
*
@@ -2695,6 +2715,7 @@
});
}
}
+
/**
* 杞崲鏃堕棿鐨勬牸寮�
*
@@ -2756,10 +2777,10 @@
// if (lifeCycleVO != null) {
// cbo.setLcStatus(lifeCycleVO.getStartStatus());
// } else {
- cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
+ cbo.setLcStatus(CodeDefaultLC.RELEASED.getValue());
// }
} else {
- cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
+ cbo.setLcStatus(CodeDefaultLC.RELEASED.getValue());
}
}
@@ -2787,6 +2808,7 @@
orderDTO.getData().put(attrId, value);
}
}
+
/**
* 浠庣紪鐮佺敵璇蜂俊鎭璞′笂鑾峰彇鏌愪釜灞炴�х殑鍊�
*
@@ -2806,6 +2828,7 @@
}
return value;
}
+
/**
* 澶勭悊鍒嗙被娉ㄥ叆鐨勪俊鎭�
*
@@ -2851,6 +2874,7 @@
});
}
}
+
/***
*
* @param codeClassifyVO
@@ -3091,6 +3115,7 @@
});
}
+
/**
* excel杞崲涓篶bo鐨勫璞�
* @param classifyFullInfo 鍒嗙被鐨勫叏閮ㄤ俊鎭�
@@ -3125,7 +3150,7 @@
Integer userSecret = VciBaseUtil.getCurrentUserSecret();
cbo.setAttributeValue(SECRET_FIELD,String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret));
}
- cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
+ cbo.setLcStatus(CodeDefaultLC.RELEASED.getValue());
}else{
//姝ゆ椂杩樻病鏈夎浆鎹㈣矾寰�
//cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath));
@@ -3140,6 +3165,7 @@
});
}
+
/**
* excel杞崲涓篶bo鐨勫璞�
* @param classifyFullInfo 鍒嗙被鐨勫叏閮ㄤ俊鎭�
@@ -3157,7 +3183,7 @@
ClientBusinessObject cbo=new ClientBusinessObject();
DefaultAttrAssimtUtil.addDefaultAttrAssimt(cbo, classifyFullInfo.getTopClassifyVO().getBtmTypeId());
rowData.getData().forEach((index,value)->{
- String field = fieldIndexMap.get(index);
+ String field = fieldIndexMap.get(index);
if (StringUtils.isBlank(field)) {
throw new VciBaseException("绗�" + (index + 1) + "鍒楃殑鏍囬鍦ㄧ郴缁熶腑涓嶅瓨鍦�");
}
@@ -3182,7 +3208,7 @@
Integer userSecret = VciBaseUtil.getCurrentUserSecret();
cbo.setAttributeValue(SECRET_FIELD,String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret));
}
- cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
+ cbo.setLcStatus(CodeDefaultLC.RELEASED.getValue());
}else{
//姝ゆ椂杩樻病鏈夎浆鎹㈣矾寰�
//cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath));
@@ -3228,6 +3254,7 @@
}
}
}
+
/**
* 鎵归噺杞崲鏃堕棿閮戒负鎸囧畾鐨勬牸寮�
* @param attrVOS 妯℃澘灞炴��
@@ -3453,6 +3480,7 @@
}
}
+
/**
* 鎵归噺妫�鏌ヤ紒涓氱紪鐮佹槸鍚﹀瓨鍦�
* @param templateVO 妯℃澘鐨勬樉绀哄璞�
@@ -3514,6 +3542,7 @@
});
}
}
+
/***
* 鏍¢獙鍒嗙被瀵瑰簲鐨勬ā鏉夸俊鎭�
* @param titleRowData
@@ -3597,6 +3626,7 @@
}
return codeClassifyTemplateVOList ;
}
+
/**
* 浠庡睘鎬т笂鑾峰彇鍙傜収鐨勫唴瀹�
* @param attrVO 灞炴�х殑淇℃伅
@@ -3658,6 +3688,7 @@
}
return showText;
}
+
/**
* 澶勭悊鏋氫妇鐨勬樉绀哄璞�
* @param attrVOS 妯℃澘灞炴��
@@ -3719,6 +3750,7 @@
}
}
}
+
/**
* 澶勭悊鍒嗙被娉ㄥ叆
* @param attrVOS 妯℃澘灞炴��
@@ -3781,7 +3813,7 @@
* @param cboList 鎵归噺鐨勬暟鎹�
*/
private CodeImportResultVO batchCheckKeyAttrOnOrder(CodeClassifyFullInfoBO classifyFullInfo, CodeClassifyTemplateVO templateVO,
- List<ClientBusinessObject> cboList) {
+ List<ClientBusinessObject> cboList,Map<String,String> errorMap) {
//涓嶮dmEngineServiceImpl閲岀殑checkKeyAttrOnOrder鐩镐技
//鍏堣幏鍙栧叧閿睘鎬х殑瑙勫垯锛屼篃鍒╃敤缁ф壙鐨勬柟寮�
CodeKeyAttrRepeatVO keyRuleVO = keyRuleService.getRuleByClassifyFullInfo(classifyFullInfo);
@@ -3808,7 +3840,9 @@
//2.鍒ゆ柇鍏抽敭灞炴�у湪绯荤粺閲屾槸鍚﹂噸澶�
//鍥犱负鏁版嵁閲忓緢澶э紝鎵�浠ュ緱鎯冲姙娉曞苟琛�
//SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
- Map<String,List<BaseModel>> indexTODataMap=new HashMap<>();
+ Map<String,List<BaseModel>> indexTODataMap=new ConcurrentHashMap<>();
+ // 鏌ヨ涓嶉渶瑕佸弬涓庡叧閿睘鎬ф牎楠岀殑闄よ嚜宸变互澶栫殑鎵�鏈夊垎绫籵id
+ final String isParticipateCheckOids = classifyService.selectLeafByParentClassifyOid(classifyFullInfo.getTopClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO().getOid());
List<ClientBusinessObject> repeatDataMap = cboList.parallelStream().filter(cbo -> {
//姣忚閮藉緱鏌ヨ.濡傛灉鍏朵腑鍑虹幇浜嗛敊璇紝鎴戜滑灏辩洿鎺ユ姏鍑哄紓甯革紝鍏朵綑鐨勬樉绀�
//VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
@@ -3822,22 +3856,29 @@
engineService.wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap);
});
if (!CollectionUtils.isEmpty(ketAttrMap)) {
+ // 娣诲姞涓嶅弬涓庡叧閿睘鎬ф牎楠岀殑鍒嗙被oid鍒ゆ柇
+ if(Func.isNotBlank(isParticipateCheckOids)){
+ conditionMap.put("t.codeclsfid",QueryOptionConstant.NOTIN+isParticipateCheckOids);
+ }
CodeTemplateAttrSqlBO sqlBO = engineService.getSqlByTemplateVO(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), templateVO, conditionMap, null);
- boolean isKeyCheck= commonsMapper.queryCountBySql(sqlBO.getSqlCount()) > 0;
- if(isKeyCheck){
- List<Map<String,String>> newDataList= commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlUnPage());
- //List<ClientBusinessObject> newCboList= ChangeMapTOClientBusinessObjects(newDataList);
- List<BaseModel> newCboList=new ArrayList<>();
+ List<String> repeatData = commonsMapper.selectList(sqlBO.getSqlId());
+ if(!repeatData.isEmpty()){
+ final List<Map<String,String>> newDataList = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlUnPage());
+ //List<ClientBusinessObject> newCboList=ChangeMapTOClientBusinessObjects(newDataList);
+ List<BaseModel> newCboList = new ArrayList<>();
newDataList.stream().forEach(stringStringMap -> {
BaseModel baseModel=new BaseModel();
DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,baseModel);
newCboList.add(baseModel);
});
+ // 娣诲姞閿欒鍊�
+ String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
+ errorMap.put(rowIndex, "閲嶅鐨勮褰曠紪鍙蜂负:"+repeatData.stream().collect(Collectors.joining(",")));
if(!CollectionUtils.isEmpty(newCboList)) {
indexTODataMap.put(cbo.getAttributeValue(IMPORT_ROW_INDEX), newCboList);
}
}
- return isKeyCheck;
+ return !repeatData.isEmpty();
}else{
return false;
}
@@ -3865,7 +3906,7 @@
if(StringUtils.isBlank(classifyPath)){
classifyPath = "#current#";
}
- if ( !pathMap.containsKey(classifyPath)) {
+ if (!pathMap.containsKey(classifyPath)) {
String row_index = cbo.getAttributeValue(IMPORT_ROW_INDEX);
errorMap.put(row_index,errorMap.getOrDefault(row_index,"") + ";鍒嗙被璺緞涓嶅瓨鍦�");
} else {
@@ -3951,7 +3992,6 @@
return childOidPathMap;
}
-
/**
* 鑾峰彇瀵煎叆鐨勫唴瀹逛腑鍏抽敭灞炴�ч噸澶嶇殑琛屽彿
* @param ketAttrMap 鍏抽敭灞炴�х殑鏄犲皠
@@ -4005,7 +4045,7 @@
List<String>newOidList=new ArrayList<>();
newOidList.add(oid);
if(keyAttrOkOidTORepeatOidMap.containsKey(okOid)){
- List<String> oldOidList= keyAttrOkOidTORepeatOidMap.get(okOid);
+ List<String> oldOidList = keyAttrOkOidTORepeatOidMap.get(okOid);
newOidList.addAll(oldOidList);
}
@@ -4020,6 +4060,7 @@
resultVO.setKeyAttrRepeatRowIndexList(selfRepeatRowIndexList);
resultVO.setKeyAttrOkOidTORepeatOidMap(keyAttrOkOidTORepeatOidMap);
}
+
/**
* excel鐨勬爣棰樹笂鑾峰彇瀛楁鎵�鍦ㄧ殑浣嶇疆
* @param titleRowData 鏍囬鐨勫唴瀹�
@@ -4134,6 +4175,7 @@
codeClassifyDatas.addAll(newCodeImprotDataVO);
log.info("222");
}
+
/***
* @param titleRowData
* @param newTemplateVO
@@ -4179,7 +4221,8 @@
codeImprotDataVO.setColNames(colNames);
codeImprotDataVO.getDatas().add(filedValueMap);
}
- /***
+
+ /**
* 姝g‘閿欒鏁版嵁redis缂撳瓨
* @param uuid
* @param templateVO
@@ -4493,4 +4536,5 @@
mdmInterJtClient.receiveEditApply(oids,btmName);
}
}
+
}
--
Gitblit v1.9.3