From 0b714bd4979e605ee6c384e040568d0128975a06 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期四, 24 八月 2023 20:29:11 +0800
Subject: [PATCH] 代码提交
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 137 +++++++++++++++++++++++++++++++--------------
1 files changed, 94 insertions(+), 43 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 3072649..672fade 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
@@ -188,38 +188,40 @@
//鍙傜収鐨勮嚜琛岃緭鍏ュ悕绉�
//鍒嗙被娉ㄥ叆鐨勪笉鐢紝閮芥槸瀵煎叆鍚庤嚜鍔ㄥ鐞嗙殑
//缂栫爜锛岀姸鎬佺瓑瀛楁涓嶅鍏�
- List<CodeClassifyTemplateAttrVO> templateAttrVOS = templateVO.getAttributes().stream().filter(s ->
- !DEFAULT_ATTR_LIST.contains(s.getId())
- && StringUtils.isBlank(s.getComponentRule())
- && StringUtils.isBlank(s.getClassifyInvokeAttr())
- && (VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
- ).collect(Collectors.toList());
- if(CollectionUtils.isEmpty(templateAttrVOS)){
- throw new VciBaseException("妯℃澘娌℃湁閰嶇疆浠讳綍銆愯〃鍗曟樉绀恒�戜负銆愭槸銆戠殑灞炴��");
- }
- templateAttrVOS.stream().forEach(codetemplateAttr ->{
- String field=codetemplateAttr.getId();
- String name=codetemplateAttr.getName();
- CodeClassifyTemplateAttrVO codeBaseAttributeDTO=new CodeClassifyTemplateAttrVO();
- boolean res=(StringUtils.isNotBlank(codetemplateAttr.getAttributeGroup())&& codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE))//鍩烘湰灞炴�у瓧娈垫樉绀�
- ||(StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag()))//鍏抽敭灞炴�х殑瀛樺叆
- ||(StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) //鐩镐技灞炴�х殑瀛樺叆
- ||(StringUtils.isNotBlank(codetemplateAttr.getRequireFlag())&&Boolean.parseBoolean(codetemplateAttr.getRequireFlag()));
- if(allFieldToOutNameMap.containsKey(name)){//濡傛灉瀛樺湪鐨勮瘽鍒欓渶瑕佹牴鎹叿浣撶殑鍘昏祴鍊�
- codeBaseAttributeDTO= allFieldToOutNameMap.get(name);
- if(StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag())){
- codeBaseAttributeDTO.setKeyAttrFlag(codetemplateAttr.getKeyAttrFlag());//灞炴�у叧閿睘鎬�
- }
- if(StringUtils.isNotBlank(codetemplateAttr.getRequireFlag())&&Boolean.parseBoolean(codetemplateAttr.getRequireFlag())){
- codeBaseAttributeDTO.setRequireFlag(codetemplateAttr.getRequireFlag());//灞炴�у繀濉」
- }
- if(StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())){
- codeBaseAttributeDTO.setSameRepeatAttrFlag(codetemplateAttr.getSameRepeatAttrFlag());//灞炴�х浉浼煎睘鎬�
- }
- }else if(res){
- allFieldToOutNameMap.put(name,codetemplateAttr);
+ if(!CollectionUtils.isEmpty(templateVO.getAttributes())) {
+ List<CodeClassifyTemplateAttrVO> templateAttrVOS = templateVO.getAttributes().stream().filter(s ->
+ !DEFAULT_ATTR_LIST.contains(s.getId())
+ && StringUtils.isBlank(s.getComponentRule())
+ && StringUtils.isBlank(s.getClassifyInvokeAttr())
+ && (VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
+ ).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(templateAttrVOS)){
+ throw new VciBaseException("妯℃澘娌℃湁閰嶇疆浠讳綍銆愯〃鍗曟樉绀恒�戜负銆愭槸銆戠殑灞炴��");
}
- });
+ templateAttrVOS.stream().forEach(codetemplateAttr -> {
+ String field = codetemplateAttr.getId();
+ String name = codetemplateAttr.getName();
+ CodeClassifyTemplateAttrVO codeBaseAttributeDTO = new CodeClassifyTemplateAttrVO();
+ boolean res = (StringUtils.isNotBlank(codetemplateAttr.getAttributeGroup()) && codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE))//鍩烘湰灞炴�у瓧娈垫樉绀�
+ || (StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag()))//鍏抽敭灞炴�х殑瀛樺叆
+ || (StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) //鐩镐技灞炴�х殑瀛樺叆
+ || (StringUtils.isNotBlank(codetemplateAttr.getRequireFlag()) && Boolean.parseBoolean(codetemplateAttr.getRequireFlag()));
+ if (allFieldToOutNameMap.containsKey(name)) {//濡傛灉瀛樺湪鐨勮瘽鍒欓渶瑕佹牴鎹叿浣撶殑鍘昏祴鍊�
+ codeBaseAttributeDTO = allFieldToOutNameMap.get(name);
+ if (StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag())) {
+ codeBaseAttributeDTO.setKeyAttrFlag(codetemplateAttr.getKeyAttrFlag());//灞炴�у叧閿睘鎬�
+ }
+ if (StringUtils.isNotBlank(codetemplateAttr.getRequireFlag()) && Boolean.parseBoolean(codetemplateAttr.getRequireFlag())) {
+ codeBaseAttributeDTO.setRequireFlag(codetemplateAttr.getRequireFlag());//灞炴�у繀濉」
+ }
+ if (StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) {
+ codeBaseAttributeDTO.setSameRepeatAttrFlag(codetemplateAttr.getSameRepeatAttrFlag());//灞炴�х浉浼煎睘鎬�
+ }
+ } else if (res) {
+ allFieldToOutNameMap.put(name, codetemplateAttr);
+ }
+ });
+ }
});
//鏁寸悊濂芥墍鏈夋ā鏉块渶瑕佸啓鍏xecl鐨勫睘鎬т俊鎭�
Workbook workbook = new HSSFWorkbook();
@@ -1897,7 +1899,7 @@
* @return 鏈夐敊璇俊鎭殑excel
*/
@Override
- public void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) {
+ public void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode) {
Map<String,String> errorMap=new HashMap<>();
VciBaseUtil.alertNotNull(orderDTO,"缂栫爜鐢宠鐩稿叧鐨勬暟鎹�",orderDTO.getCodeClassifyOid(),"涓婚搴撳垎绫讳富閿�");
CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
@@ -2017,10 +2019,15 @@
sourceOid=codeOidToSystemOidMap.get(oid);
}
String code="";
+ String groupCode="";
String errorid="103";
String mes=errorMap.get(rowIndex);
XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
- resultDataObjectDetailDO.setCode(code);
+ if(isCodeOrGroupCode){
+ resultDataObjectDetailDO.setCode(groupCode);
+ }else{
+ resultDataObjectDetailDO.setCode(code);
+ }
resultDataObjectDetailDO.setId(sourceOid);
resultDataObjectDetailDO.setErrorid(errorid);
resultDataObjectDetailDO.setMsg(mes);
@@ -2046,6 +2053,7 @@
String oid = cbo.getOid();
String sourceOid = oid;
String code = "";
+ String groupCode="";
String errorid = "201";
if(codeOidToSystemOidMap.containsKey(oid)){
sourceOid=codeOidToSystemOidMap.get(oid);
@@ -2056,22 +2064,35 @@
String lcstatus =newCbo.getLcStatus();
String newOid =newCbo.getOid();
Date ts =newCbo.getTs();
+ groupCode=newCbo.getData().get("GROUPCODE");
code=newCbo.getId();
String lastmodifier=newCbo.getLastModifier();
- if (!lcstatus.equals(CodeDefaultLC.RELEASED.getValue())) {
+ if (lcstatus!=null&&!lcstatus.equals(CodeDefaultLC.RELEASED.getValue())) {
newCbo.setOid(newOid);
newCbo.setLastModifier(lastmodifier);
- newCbo.setId(code);
+ /*if(isCodeOrGroupCode) {
+ newCbo.setId(code);
+ }else{
+ newCbo.getData().put("groupcode",groupCode);
+ }*/
newCbo.setTs(ts);
cbo.setLastModifier(cbo.getLastModifier());
editBoList.add(newCbo);
}
String mes = errorKeyMap.get(rowIndex);
XMLResultDataObjectDetailDO resultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
- resultDataObjectDetailDO.setCode(code);
+ if(isCodeOrGroupCode) {
+ if(StringUtils.isBlank(groupCode)){
+ mes+="锛涚敵璇风殑缂栫爜绫诲瀷涓洪泦鍥㈢爜锛岀瓑寰呴泦鍥㈢紪鐮佽祴鍊�";
+ }
+ resultDataObjectDetailDO.setCode(groupCode);
+ }else{
+ resultDataObjectDetailDO.setCode(code);
+ }
resultDataObjectDetailDO.setId(sourceOid);
resultDataObjectDetailDO.setErrorid(errorid);
resultDataObjectDetailDO.setMsg(mes);
+
resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
}
}
@@ -2115,15 +2136,26 @@
// if(!isProcess){
dataCBOList.stream().forEach(needSaveCbo->{
XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
- resultDataObjectDetailDO.setCode(needSaveCbo.getId());
+ String code=needSaveCbo.getId();
+ String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE","");
+ //resultDataObjectDetailDO.setCode(needSaveCbo.getId());
+ String msg="鐢宠缂栫爜鎴愬姛";
String oid=needSaveCbo.getOid();
String sourceOid=oid;
if(codeOidToSystemOidMap.containsKey(oid)){
sourceOid=codeOidToSystemOidMap.get(oid);
}
+ if(isCodeOrGroupCode) {
+ if(StringUtils.isBlank(groupCode)){
+ msg="鐢宠鐨勭紪鐮佺被鍨嬩负闆嗗洟鐮侊紝绛夊緟闆嗗洟缂栫爜璧嬪��";
+ }
+ resultDataObjectDetailDO.setCode(groupCode);
+ }else{
+ resultDataObjectDetailDO.setCode(code);
+ }
resultDataObjectDetailDO.setId(sourceOid);
resultDataObjectDetailDO.setErrorid("0");
- resultDataObjectDetailDO.setMsg("鐢宠缂栫爜鎴愬姛");
+ resultDataObjectDetailDO.setMsg(msg);
resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
});
/* }else{
@@ -2162,6 +2194,7 @@
}
}
+
/***
* 闆嗘垚鎵归噺鍚屾鏇存柊鎺ュ彛
* @param codeClassifyVO;
@@ -2404,6 +2437,7 @@
}
}
}
+
/**
* 鏍¢獙灞炴�ф槸鍚︿负蹇呰緭
*
@@ -2711,7 +2745,7 @@
* @param errorMap
* @return
*/
- private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap){
+ private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap){
codeDataMap.keySet().forEach(code->{
RowDatas rowDatas=codeDataMap.get(code);
Map<String, String> data= rowDatas.getFiledValue();
@@ -3642,7 +3676,8 @@
CodeImportResultVO resultVO = new CodeImportResultVO();
resultVO.setKeyAttrRuleInfo(String.format(keyRuleVO ==null?"":"鏌ヨ瑙勫垯锛氬幓闄ょ┖鏍�--{0},蹇界暐澶у皬鍐�--{1},蹇界暐鍏ㄥ崐瑙�--{2},蹇界暐鍏ㄩ儴绌烘牸--{3}",
new String[]{trim?"鏄�":"鍚�",ignoreCase?"鏄�":"鍚�",ignoreWidth?"鏄�":"鍚�",trimAll?"鏄�":"鍚�"}));
- resultVO.setSelfRepeatRowIndexList(getSelfRepeatRowIndex(ketAttrMap,cboList,keyRuleVO));
+ //resultVO.setSelfRepeatRowIndexList(getSelfRepeatRowIndex(ketAttrMap,cboList,keyRuleVO));
+ getSelfRepeatRowIndex(ketAttrMap,cboList,keyRuleVO,resultVO);
if(!CollectionUtils.isEmpty(resultVO.getSelfRepeatRowIndexList())){
//鎴戜滑绉婚櫎鏈韩閲嶅鐨勬暟鎹�
cboList = cboList.stream().filter(s->!resultVO.getSelfRepeatRowIndexList().contains(s.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList());
@@ -3801,9 +3836,10 @@
* @param keyRuleVO 鍏抽敭灞炴�ф帶鍒惰鍒�
* @return 閲嶅鐨勮鍙�
*/
- private Set<String> getSelfRepeatRowIndex(Map<String/**灞炴�х殑缂栧彿**/, CodeClassifyTemplateAttrVO> ketAttrMap,
- List<ClientBusinessObject> dataList,CodeKeyAttrRepeatVO keyRuleVO){
+ private void getSelfRepeatRowIndex(Map<String/**灞炴�х殑缂栧彿**/, CodeClassifyTemplateAttrVO> ketAttrMap,
+ List<ClientBusinessObject> dataList,CodeKeyAttrRepeatVO keyRuleVO,CodeImportResultVO resultVO){
Set<String> selfRepeatRowIndexList = new CopyOnWriteArraySet<>();
+ Map<String,List<String>> keyAttrOkOidTORepeatOidMap=new HashMap<>();
boolean trimAll =keyRuleVO ==null?false: VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag());
//鍏ㄩ儴鍘荤┖鐨勪紭鍏堢骇澶т簬鍘荤┖
boolean trim =keyRuleVO ==null?false: VciBaseUtil.getBoolean(keyRuleVO.getIgnorespaceflag());
@@ -3812,8 +3848,10 @@
//蹇呴』灏嗗睘鎬ф寜鐓ч『搴忔帓搴忓ソ
List<CodeClassifyTemplateAttrVO> attrVOList = ketAttrMap.values().stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList());
Map<String/**琛屽彿**/,String/**鍏抽敭灞炴�х殑缁勫悎鍐呭**/> rowIndexKeyStringMap = new HashMap<>();
+ Map<String/**鍏抽敭灞炴�х殑缁勫悎鍐呭**/,String/**绗竴涓叧閿睘鎬х殑鏁版嵁oid**/> okOidKeyStringMap = new HashMap<>();
dataList.parallelStream().forEach(cbo-> {
String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
+ String oid=cbo.getOid();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < attrVOList.size(); i++) {
CodeClassifyTemplateAttrVO attrVO = attrVOList.get(i);
@@ -3839,12 +3877,25 @@
String keyString = sb.toString();
if(rowIndexKeyStringMap.containsValue(keyString) && StringUtils.isNotBlank(keyString)){
selfRepeatRowIndexList.add(rowIndex);
+ String okOid=okOidKeyStringMap.getOrDefault(keyString,"");
+ if(StringUtils.isBlank(okOid)){
+ List<String>newOidList=new ArrayList<>();
+ newOidList.add(oid);
+ if(keyAttrOkOidTORepeatOidMap.containsKey(okOid)){
+ List<String> oldOidList= keyAttrOkOidTORepeatOidMap.get(okOid);
+ newOidList.addAll(oldOidList);
+
+ }
+ keyAttrOkOidTORepeatOidMap.put(okOid,newOidList);
+ }
}else {
+ okOidKeyStringMap.put(sb.toString(),oid);
rowIndexKeyStringMap.put(rowIndex, sb.toString());
}
});
//鍥犱负鍙槸鍏抽敭灞炴�ч噸澶嶏紝鎵�浠ユ垜浠笉鑳介噸澶嶇殑澶氭潯閫変竴鏉℃潵鎶ラ敊
- return selfRepeatRowIndexList;
+ resultVO.setKeyAttrRepeatRowIndexList(selfRepeatRowIndexList);
+ resultVO.setKeyAttrOkOidTORepeatOidMap(keyAttrOkOidTORepeatOidMap);
}
/**
* excel鐨勬爣棰樹笂鑾峰彇瀛楁鎵�鍦ㄧ殑浣嶇疆
--
Gitblit v1.9.3