From e9f139bd71644a2cffdfbff44c12915a5780e56a Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 05 七月 2023 19:35:28 +0800
Subject: [PATCH] 主题库定义bug
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 163 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 138 insertions(+), 25 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
index ef799e4..620cc28 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -20,6 +20,11 @@
import com.vci.ubcs.code.vo.webserviceModel.attrmap.*;
import com.vci.ubcs.code.vo.webserviceModel.attrmap.DataObjectVO;
import com.vci.ubcs.code.vo.webserviceModel.classify.*;
+import com.vci.ubcs.code.vo.webserviceModel.classify.QueryClassifyVO;
+import com.vci.ubcs.code.vo.webserviceModel.classify.QueryData;
+import com.vci.ubcs.code.vo.webserviceModel.classify.QueryLibraryVO;
+import com.vci.ubcs.code.vo.webserviceModel.classify.ResultClassifyVO;
+import com.vci.ubcs.code.vo.webserviceModel.coderule.*;
import com.vci.ubcs.code.vo.webserviceModel.data.*;
import com.vci.ubcs.code.vo.webserviceModel.result.json.*;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultClassfyVO;
@@ -48,6 +53,7 @@
import java.util.stream.Collectors;
import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
+import static com.vci.ubcs.code.constant.MdmEngineConstant.IMPORT_ROW_INDEX;
import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC;
/***
@@ -480,17 +486,48 @@
errorid = "101";
throw new Throwable("鎺ュ彛鍙傛暟锛氳处鍙蜂俊鎭幏鍙栧け璐�");
}
- if(!CollectionUtils.isEmpty(classifyIdList)){
- //鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎
- List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, classifyIdList));
- codeClassifyVOS=classifyService.codeClassifyDO2VOs(libIdDos);
- }else {
- List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId, libId));
- String oid= libIdDos.get(0).getOid();
- TreeQueryObject treeQueryObject=new TreeQueryObject();
- treeQueryObject.setParentOid(oid);
- treeQueryObject.setQueryAllLevel(true);
- codeClassifyVOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject);
+ List<CodeClassify> libIdDos =classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, libId));
+ if(CollectionUtils.isEmpty(libIdDos)) {
+ CodeClassify libCodeClassify =libIdDos.get(0);
+ String oid=libCodeClassify.getOid();
+ if (!CollectionUtils.isEmpty(classifyIdList)) {
+ //鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎
+ List<CodeClassify> childCodeClassifyList = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, classifyIdList));
+ List<CodeClassify>newchildCodeClassifyList=new ArrayList<>();
+ if(!CollectionUtils.isEmpty(childCodeClassifyList)) {
+ Map<String,String> errorMap=new HashMap<>();
+ childCodeClassifyList.stream().forEach(codeClassify -> {
+ CodeClassifyVO toClassifyVO= classifyService.getTopClassifyVO(codeClassify.getOid());
+ if(toClassifyVO.getOid().equals(libCodeClassify.getOid())){
+ newchildCodeClassifyList.add(codeClassify);
+ }
+ });
+ Map<String/**鍒嗙被缂栧彿**/, CodeClassify/**鍒嗙被瀵硅薄**/> classifyfCodeMap = newchildCodeClassifyList.stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
+ classifyIdList.stream().forEach(classifyfCode -> {
+ if(!classifyfCodeMap.containsKey(classifyfCode)) {
+ errorMap.put("error", errorMap.getOrDefault("error", "") + ";鏍规嵁classCode锛氥��" + classifyfCode + "銆戝湪library:銆�" + libCodeClassify.getId() + "銆戜笅鏈煡璇㈠埌");
+ }
+ });
+ if(errorMap.size()>0){
+ errorid = "101";
+ msg = errorMap.getOrDefault("error","");
+ throw new Throwable(msg);
+ }
+ codeClassifyVOS = classifyService.codeClassifyDO2VOs(newchildCodeClassifyList);
+ }else{
+ errorid = "101";
+ msg = "鎺ュ彛鍙傛暟锛歝lassCode 鏈煡璇㈠埌瀵瑰簲鐨勫垎绫讳俊鎭�";
+ throw new Throwable(msg);
+ }
+ } else {
+ TreeQueryObject treeQueryObject = new TreeQueryObject();
+ treeQueryObject.setParentOid(oid);
+ treeQueryObject.setQueryAllLevel(true);
+ codeClassifyVOS = classifyService.selectCodeClassifyDOByTree(treeQueryObject);
+ }
+ }else{
+ errorid = "101";
+ throw new Throwable("鎺ュ彛鍙傛暟锛氳处鍙蜂俊鎭幏鍙栧け璐�");
}
LibraryVO libraryVo=new LibraryVO();
libraryVo.setId(libId);
@@ -750,9 +787,9 @@
String systemId="";
log.info("鏌ヨ鍒嗙被鐨勬暟鎹弬鏁�:->"+data);
log.info("鏌ヨ鍒嗙被鐨勬暟鎹被鍨�:->"+dataType);
- ResultClassifyVO resultClassifyVO =new ResultClassifyVO();
- List<ClassifyVO> classifyVOList=new ArrayList<>();
- ResultData resultData=new ResultData();
+ ResultClassifyRuleVO resultClassifyRuleVO =new ResultClassifyRuleVO();
+ List<com.vci.ubcs.code.vo.webserviceModel.coderule.ResultClassifyVO> classifyVOList=new ArrayList<>();
+ ResultClassifyRuleData resultClassifyRuleData=new ResultClassifyRuleData();
try {
if (StringUtils.isBlank(data)) {
errorid = "101";
@@ -807,14 +844,89 @@
treeQueryObject.setQueryAllLevel(true);
codeClassifyVOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject);
}
- LibraryVO libraryVo=new LibraryVO();
- libraryVo.setId(libId);
- libraryVo.setName("");
+ ResultLibraryVO resultLibraryVO=new ResultLibraryVO();
+ resultLibraryVO.setId(libId);
+ resultLibraryVO.setName("");
if(!CollectionUtils.isEmpty(codeClassifyVOS)){
errorid = "0";
msg="鎴愬姛!";
codeClassifyVOS.stream().forEach(codeClassifyDO -> {
- ClassifyVO classifyVO=new ClassifyVO();
+ //鍚庡幓鍖呭惈鐮佹鐨勭紪鐮佽鍒�
+ CodeRuleVO codeRuleVO= this.engineService.getCodeRuleByClassifyOid(codeClassifyDO.getOid());
+ ResultCodeRuleVO resultCodeRuleVO=new ResultCodeRuleVO();
+ if(codeRuleVO!=null){
+ CodeRuleVO resultClassifyRuleVO1=new CodeRuleVO();
+ List<CodeBasicSecVO> codeBasicSecVOS= codeRuleVO.getSecVOList();
+ List<CodeSectionVO> codeSectionVOList=new CopyOnWriteArrayList<>();
+ if(!CollectionUtils.isEmpty(codeBasicSecVOS)){
+ codeBasicSecVOS.stream().forEach(codeBasicSecVO -> {
+ List<CodeSectionValueVO> codeSectionValueVOList=new ArrayList<>();
+ String secType= codeBasicSecVO.getSecType();
+ if(secType.equals("codevariablesec")){//鍙彉鐮佹
+ CodeSectionValueVO sectionValueVO=new CodeSectionValueVO("","","","","");
+ codeSectionValueVOList.add(sectionValueVO);
+ }else if(secType.equals("codefixedsec")){//鍥哄畾鐮佹
+ List<CodeFixedValueVO> fixedValueVOList=codeBasicSecVO.getFixedValueVOList();
+ fixedValueVOList.stream().forEach(codeFixedValueVO -> {
+ CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(codeFixedValueVO.getOid(),codeFixedValueVO.getOrderNum()+"",codeFixedValueVO.getId(),codeFixedValueVO.getName(),codeFixedValueVO.getDescription());
+ codeSectionValueVOList.add(sectionValueVO);
+ });
+ }else if(secType.equals("codeclassifysec")){//鍒嗙被鐮佹
+ String secOid=codeBasicSecVO.getOid();
+ String parentClassifySecOid= codeBasicSecVO.getParentClassifySecOid();
+ List<CodeClassifyValueVO> codeClassifyValueVOS= this.codeClassifyValueService.listCodeClassifyValueBySecOid(secOid,parentClassifySecOid);
+ if(CollectionUtils.isEmpty(codeClassifyValueVOS)){
+ codeClassifyValueVOS.stream().forEach(codeClassifyValueVO -> {
+ CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(codeClassifyValueVO.getOid(),codeClassifyValueVO.getOrderNum()+"",codeClassifyValueVO.getId(),codeClassifyValueVO.getName(),codeClassifyValueVO.getDescription());
+ });
+ }
+ }else if(secType.equals("codedatesec")){//鏃ユ湡鐮佹
+
+ }else if(secType.equals("coderefersec")){//寮曠敤鐮佹
+
+ }else if(secType.equals("codelevelsec")) {//灞傜骇鐮佹
+ int level = codeBasicSecVO.getCodeLevelValue();
+ CodeClassifyVO levelCodeClassifyVO = new CodeClassifyVO();
+ CodeClassifyFullInfoBO classifyFullInfoBO = this.classifyService.getClassifyFullInfo(codeClassifyDO.getOid());
+ if(codeBasicSecVO.getCodeLevelType().equals("code_level_special")){//鎸囧畾灞傜骇
+ List<CodeClassifyVO> classifyVOS = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel()))).collect(Collectors.toList());
+ if (classifyVOS.size() >= level && level > 0) {
+ levelCodeClassifyVO = classifyVOS.get(level - 1);
+ }
+ }else{//鏈�灏忓眰
+ levelCodeClassifyVO=codeClassifyDO;
+ }
+ CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(levelCodeClassifyVO.getOid(),"0",levelCodeClassifyVO.getId(),codeBasicSecVO.getName(),codeBasicSecVO.getDescription());
+ codeSectionValueVOList.add(sectionValueVO);
+ }else if(secType.equals("codeattrsec")){//灞炴�х爜娈�
+
+ }else if(secType.equals("codeserialsec")){//娴佹按鐮佹
+
+ }
+ //鏋勫缓瑙勫垯鐮佹
+ CodeSectionVO codeSectionVO=new CodeSectionVO();
+ codeSectionVO.setId(codeBasicSecVO.getOid());//涓婚敭
+ codeSectionVO.setName(codeBasicSecVO.getName());//鐮佹鍚嶇О
+ codeSectionVO.setCodeSecLength(codeBasicSecVO.getCodeSecLength());//鐮佹闀垮害
+ codeSectionVO.setNum(codeBasicSecVO.getId());//鐮佹缂栧彿
+ codeSectionVO.setCodeDateFormatStr(codeBasicSecVO.getCodeDateFormatStr());//鏃ユ湡绫诲瀷
+ codeSectionVO.setCodeSecLengthType(codeBasicSecVO.getCodeSecLengthType());//鐮佹闀垮害绫诲瀷
+ codeSectionVO.setPkCodeRule(codeRuleVO.getOid());
+ codeSectionVO.setSecType(codeBasicSecVO.getSecType());//鐮佹绫诲瀷
+ codeSectionVO.setDescription(codeBasicSecVO.getDescription());
+ codeSectionVO.setParentClassifySecOid(codeBasicSecVO.getParentClassifySecOid());
+ codeSectionVO.setSectionValue(codeSectionValueVOList);
+ codeSectionVOList.add(codeSectionVO);
+ });
+ }
+ //鏋勫缓瑙勫垯淇℃伅
+ resultCodeRuleVO.setId(codeRuleVO.getOid());
+ resultCodeRuleVO.setNum(codeRuleVO.getId());
+ resultCodeRuleVO.setDescription(codeRuleVO.getDescription());
+ resultCodeRuleVO.setCodeSection(codeSectionVOList);
+ }
+ //鏋勫缓鍒嗙被淇℃伅
+ com.vci.ubcs.code.vo.webserviceModel.coderule.ResultClassifyVO classifyVO=new com.vci.ubcs.code.vo.webserviceModel.coderule.ResultClassifyVO();
classifyVO.setId(codeClassifyDO.getOid());
classifyVO.setLcStatus(codeClassifyDO.getLcStatus());
classifyVO.setClassCode(codeClassifyDO.getId());
@@ -822,32 +934,33 @@
classifyVO.setName(codeClassifyDO.getName());
classifyVO.setPid(codeClassifyDO.getParentcodeclassifyoid());
classifyVO.setFullPathName(codeClassifyDO.getPath());
+ classifyVO.setCodeRule(resultCodeRuleVO);
classifyVOList.add(classifyVO);
});
- libraryVo.setClassify(classifyVOList);
+ resultLibraryVO.setClassify(classifyVOList);
}else{
errorid = "100";
msg="鏈煡璇㈠埌鐩稿叧鐨勫垎绫讳俊鎭�";
}
issucess=true;
- resultData.setLibrary(libraryVo);
+ resultClassifyRuleData.setLibrary(resultLibraryVO);
}catch (Throwable e){
e.printStackTrace();;
msg="鏌ヨ鍒嗙被澶辫触:"+e.getMessage();
}finally {
- resultData.setErrorid(errorid);
- resultData.setMsg(msg);
- resultClassifyVO.setResultData(resultData);
+ resultClassifyRuleData.setErrorid(errorid);
+ resultClassifyRuleData.setMsg(msg);
+ resultClassifyRuleVO.setData(resultClassifyRuleData);
}
if(dataType.equals("xml")){
//缁勭粐杩斿洖鎺ュ彛淇℃伅
XStream xStream = new XStream(new DomDriver());
xStream.processAnnotations(XMLResultSystemVO.class);
xStream.autodetectAnnotations(true);
- resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultData);
+ resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultClassifyRuleData);
}else{
- Object object = JSONObject.toJSON(resultClassifyVO);
+ Object object = JSONObject.toJSON(resultClassifyRuleVO);
resultStr = object.toString();
}
try {
--
Gitblit v1.9.3