From 820dde03b508f1ca6436cacf517ff197e1875f4f Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 10 十月 2023 16:05:31 +0800
Subject: [PATCH] 集成系统信息管理-分类授权-重置、展开所有节点多选父节点增删
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 89 ++++++++++++++++++++++++++++++--------------
1 files changed, 60 insertions(+), 29 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 6ac3b6e..aabbb1e 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
@@ -179,7 +179,7 @@
* @return excel鐨勬枃浠跺湴鍧�
*/
@Override
- public String downloadTopImportExcel(String codeClassifyOid){
+ public String downloadTopImportExcel(String codeClassifyOid){
List<CodeClassifyTemplateVO> templateVOList=new ArrayList<>();
VciBaseUtil.alertNotNull("瀵煎嚭妯℃澘","瀵煎嚭鐨勯厤缃�",codeClassifyOid,"涓婚搴撳垎绫荤殑涓婚敭");
CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid);
@@ -495,7 +495,6 @@
return text;
}
-
/**
* 鎵归噺鐢宠缂栫爜鏁版嵁
*
@@ -538,7 +537,6 @@
// return null;
return codeImProtRusultVO;
}
-
/***
* 浠庨《灞傛壒閲忕敵璇峰鍏ユ柟娉�
@@ -719,10 +717,8 @@
createRedisDatas(uuid + "-ok",codeImprotDataVOS, newErrorMap,true);
});
+
//寰�鐗╁搧鑺傜偣涓婂姞妯℃澘
-
-
-
List<String> needRowIndexList=new ArrayList<>();
CodeImProtRusultVO codeImProtRusultVO = new CodeImProtRusultVO();
if(errorMap.size()>0) {
@@ -792,6 +788,7 @@
String uuid=VciBaseUtil.getPk();
boolean isCreateUUid=false;
boolean isExport=false;
+ long start = System.currentTimeMillis();
for(int i=0;i<sheetDataSetList.size()-1;i++) {
if (CollectionUtils.isEmpty(sheetDataSetList) || CollectionUtils.isEmpty(sheetDataSetList.get(i).getRowData())
|| sheetDataSetList.get(i).getRowData().size() < 1) {
@@ -809,7 +806,6 @@
// 5.3 浼佷笟缂栫爜鐨勯暱搴︼紝鍜岀紪鐮佽鍒欑殑闀垮害瑕佸搴斾笂
// 5.4 鑾峰彇娴佹按鐮佹鐨勫�硷紝鍘婚櫎濉厖鐨勫瓧绗︼紝鐪嬫祦姘村彿鏄灏戯紝鐒跺悗灏嗘祦姘村彿鍜岀幇鍦ㄧ殑鏈�澶ф祦姘村彿鍒ゆ柇锛屽皬浜庡氨鐩存帴褰曞叆锛屽ぇ浜庡垯淇敼鏈�澶ф祦姘村彿
// 5.5 瀛樺偍浼佷笟缂栫爜鍒癮llcode涓�
-
//鏌ヨ鍒嗙被鍜屾ā鏉�
CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
@@ -944,7 +940,7 @@
ruleRowIndexMap.keySet().parallelStream().forEach(ruleOid -> {
List<String> rowIndexList = ruleRowIndexMap.get(ruleOid);
List<ClientBusinessObject> thisCbos = cboList.stream().filter(cbo -> rowIndexList.contains(cbo.getAttributeValue(IMPORT_ROW_INDEX)) && !errorMap.containsKey(cbo.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList());
-//鎴戜滑闇�瑕佸厛鏌ヨ涓�涓嬶紝鍐呭鏄惁宸茬粡瀛樺湪
+ //鎴戜滑闇�瑕佸厛鏌ヨ涓�涓嬶紝鍐呭鏄惁宸茬粡瀛樺湪
if(!CollectionUtils.isEmpty(thisCbos)){
List<String> existIds = new ArrayList<>();
VciBaseUtil.switchCollectionForOracleIn(thisCbos).stream().forEach(cbos -> {
@@ -1043,6 +1039,7 @@
if (!CollectionUtils.isEmpty(thisCbos)) {
try {
+ // TODO 澶氱嚎绋嬫祦闂
productCodeService.productCodeAndSaveData(classifyFullInfo, finalTemplateVO, ruleVOMap.get(ruleOid), null, dataCBOList);
} catch (Throwable e) {
log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e);
@@ -1061,6 +1058,8 @@
engineService.batchSaveSelectChar(templateVO, dataCBOIdList);
}
}
+ long end = System.currentTimeMillis();
+ log.debug("=============for鎵ц鏃堕棿================="+String.valueOf(start-end));
String excelFileName="";
if(isExport&&!CollectionUtils.isEmpty(shetNameMap)) {
excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + "閿欒淇℃伅.xls";
@@ -1086,6 +1085,7 @@
return codeImProtRusultVO;
}
+
/*private void converBaseModels(List<ClientBusinessObject> clientBusinessObjects,List<BaseModel>dataCBOList){
clientBusinessObjects.stream().forEach(clientBusinessObject -> {
BaseModel baseModel=new BaseModel();
@@ -1099,6 +1099,7 @@
});
}*/
+
/***
* 浠巈xecl閲屾瀯寤哄璞�
* @param rowDataList
@@ -2090,6 +2091,7 @@
XMLResultDataObjectDetailDO resultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
if(isCodeOrGroupCode) {
if(StringUtils.isBlank(groupCode)){
+ errorid="1";
mes+="锛涚敵璇风殑缂栫爜绫诲瀷涓洪泦鍥㈢爜锛岀瓑寰呴泦鍥㈢紪鐮佽祴鍊�";
}
resultDataObjectDetailDO.setCode(groupCode);
@@ -2157,14 +2159,16 @@
}
if(isCodeOrGroupCode) {
if(StringUtils.isBlank(groupCode)){
+ resultDataObjectDetailDO.setErrorid("1");
msg="鐢宠鐨勭紪鐮佺被鍨嬩负闆嗗洟鐮侊紝绛夊緟闆嗗洟缂栫爜璧嬪��";
}
resultDataObjectDetailDO.setCode(groupCode);
}else{
resultDataObjectDetailDO.setCode(code);
+ resultDataObjectDetailDO.setErrorid("0");
}
resultDataObjectDetailDO.setId(sourceOid);
- resultDataObjectDetailDO.setErrorid("0");
+
resultDataObjectDetailDO.setMsg(msg);
resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
//澶勭悊浼犻�佺殑鏁版嵁涓叧閿睘鎬ч噸澶嶇殑锛岀洿鎺ユ嬁鍒板凡缁忕敵璇峰埌缂栫爜鐨勬暟鎹紪鐮佺洿鎺ュ皢璧嬬粰鍏抽敭灞炴�ч噸澶嶇殑鏁版嵁
@@ -2324,13 +2328,19 @@
sb.append(" select * from ");
sb.append(tableName);
sb.append(" where 1=1 ");
+ sb.append(" and lastr=1 and lastv=1" );
if(isCodeOrGroupCode) {
- sb.append(" groupcode in (");
+ sb.append(" and ( groupcode in (");
+ sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
+ sb.append(")");
+ sb.append(" or id in (");
+ sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
+ sb.append("))");
}else{
- sb.append(" id in (");
+ sb.append(" and id in (");
+ sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
+ sb.append(")");
}
- sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
- sb.append(")");
List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
List<ClientBusinessObject> cboList= ChangeMapTOClientBusinessObjects(dataMapList);
@@ -2359,7 +2369,7 @@
RowDatas rowData=codeDataMap.get(code);
String status=rowData.getStatus();
String operation=rowData.getOperation();
- if (cbo.getTs().compareTo(orderDTO.getTs())==0?true:false) {
+ if (cbo.getTs().compareTo(orderDTO.getTs())==0?false:true) {
// throw new VciBaseException("鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯");
errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+";鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯");
}
@@ -2401,7 +2411,7 @@
List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid()));
if (!CollectionUtils.isEmpty(newCodeAllCodeList)) {
- CodeAllCode codeCbo = codeAllCodeList.get(0);
+ CodeAllCode codeCbo = newCodeAllCodeList.get(0);
log.info("codeCbos code:" + codeCbo.getId());
codeCbo.setLcStatus(status);
codeAllCodeList.add(codeCbo);
@@ -2420,7 +2430,7 @@
List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid()));
log.info("codeCbos size:" + newCodeAllCodeList.size());
if (!CollectionUtils.isEmpty(newCodeAllCodeList)) {
- CodeAllCode codeCbo = codeAllCodeList.get(0);
+ CodeAllCode codeCbo = newCodeAllCodeList.get(0);
log.info("codeCbos code:" + codeCbo.getId());
codeCbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue());
codeAllCodeList.add(codeCbo);
@@ -2478,13 +2488,16 @@
//瀛樺偍鏁版嵁
try {
engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),updateList);
- codeAllCodeService.saveBatch(codeAllCodeList);
+ codeAllCodeService.saveOrUpdateBatch(codeAllCodeList);
if(deleteList.size()>0) {
commonsMapper.deleteByTaleAndOid(tableName, VciBaseUtil.array2String(deleteList.toArray(new String[]{})));
}
//鏄惁璋冪敤闆嗗洟鎺ュ彛鐢宠鎺ュ彛
if(isCodeOrGroupCode){
List<String> IdList=resultDataObjectDetailDOs.stream().filter(xMLResultDataObjectDetailDO-> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(xMLResultDataObjectDetailDO.getId())).map(XMLResultDataObjectDetailDO::getId).distinct().collect(Collectors.toList());
+
+
+
if(!CollectionUtils.isEmpty(IdList)) {
this.sendApplyGroupcode(IdList, classifyFullInfo.getTopClassifyVO().getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue());
}
@@ -2612,17 +2625,36 @@
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
if (!CollectionUtils.isEmpty(conditionMap)) {
- final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()) + " where 1 = 1 "};
+ String tableName="";
+ R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
+ if(r.isSuccess()) {
+ BtmTypeVO btmTypeVO = r.getData();
+ if (btmTypeVO != null) {
+ tableName = btmTypeVO.getTableName();
+
+ }
+ }
+ if (StringUtils.isBlank(tableName)) {
+ String errormsg="鏍规嵁涓氬姟绫诲瀷涓烘煡璇㈠埌鐩稿叧涓氬姟琛�";
+ errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+errormsg);
+ return;
+ }
+ final String[] sql = {"select count(*) from " + tableName + " t where 1 = 1 "};
conditionMap.forEach((key, value) -> {
- sql[0] += " and " + key + " = " + value;
+ if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)){
+ sql[0] += " and " + key + " is null ";
+ }else{
+ sql[0] += " and " + key + " = " + value;
+ }
+
});
if (StringUtils.isNotBlank(orderDTO.getOid())) {
//淇敼鐨勬椂鍊欙紝闇�瑕佹帓闄よ嚜宸�
- sql[0] += " and oid != '" + orderDTO.getOid() + "'";
+ sql[0] += " and t.oid != '" + orderDTO.getOid() + "'";
} else if (StringUtils.isNotBlank(orderDTO.getCopyFromVersion())) {
- sql[0] += " and oid != '" + orderDTO.getCopyFromVersion() + "'";
+ sql[0] += " and t.oid != '" + orderDTO.getCopyFromVersion() + "'";
}
- sql[0] += " and lastR = '1' and lastV = '1' ";
+ sql[0] += " and t.lastR = '1' and t.lastV = '1' ";
if (commonsMapper.queryCountBySql(sql[0]) > 0) {
String ruleInfoMsg = keyRuleVO == null ? "" : "鏌ヨ瑙勫垯锛氬幓闄ょ┖鏍�--{0},蹇界暐澶у皬鍐�--{1},蹇界暐鍏ㄥ崐瑙�--{2},蹇界暐鍏ㄩ儴绌烘牸--{3}";
String[] objs = new String[]{trim ? "鏄�" : "鍚�", ignoreCase ? "鏄�" : "鍚�", ignoreWidth ? "鏄�" : "鍚�", trimAll ? "鏄�" : "鍚�"};
@@ -2827,6 +2859,9 @@
ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code);
if(isCodeOrGroupCode){
code=sysDataObject.getAttributeValue("GROUPCODE");
+ if(StringUtils.isBlank(code)){
+ code=sysDataObject.getId();
+ }
}
CodeOrderDTO orderDTO = new CodeOrderDTO();
if(codeDataMap.containsKey(code)){
@@ -2835,11 +2870,7 @@
orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭
orderDTO.setOid(sysDataObject.getOid());//鏁版嵁oid
orderDTO.setLcStatus(rowDatas.getStatus());//鐘舵��
- if(isCodeOrGroupCode){
- orderDTO.setId(sysDataObject.getId());
- }else{
- orderDTO.setId(code);
- }
+ orderDTO.setId(code);
orderDTO.setTs(sysDataObject.getTs());
orderDTO.setBtmname(codeClassifyVO.getBtmname());//涓氬姟绫诲瀷
orderDTO.setDescription("闆嗘垚璋冪敤:鏇存柊");//鏁版嵁鎻忚堪
@@ -4013,7 +4044,7 @@
DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject);
for (String key:dataMap.keySet()){
Object value= dataMap.getOrDefault(key,"");
- clientBusinessObject.setAttributeValue(key,value.toString());
+ clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString());
}
clientBusinessObjectList.add(clientBusinessObject);
});
@@ -4446,7 +4477,7 @@
* @param idList
* @param btmName
*/
- private void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
+ public void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
String oids=VciBaseUtil.array2String(idList.toArray(new String[]{}));
if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue())) {
mdmInterJtClient.applyGroupCode(oids,btmName);
--
Gitblit v1.9.3