From f9a91b50e2f8dfaa2cbdc31276833862d704d84f Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 10 七月 2023 10:10:46 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 217 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 185 insertions(+), 32 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..57b99c2 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,47 +844,163 @@
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();
- classifyVO.setId(codeClassifyDO.getOid());
- classifyVO.setLcStatus(codeClassifyDO.getLcStatus());
- classifyVO.setClassCode(codeClassifyDO.getId());
- classifyVO.setDescription(codeClassifyDO.getDescription());
- classifyVO.setName(codeClassifyDO.getName());
- classifyVO.setPid(codeClassifyDO.getParentcodeclassifyoid());
- classifyVO.setFullPathName(codeClassifyDO.getPath());
+ //鍚庡幓鍖呭惈鐮佹鐨勭紪鐮佽鍒�
+ 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<>();
+ Map<String,List<String>> secIdTOListValueOidMap=new HashMap<>();
+ if(!CollectionUtils.isEmpty(codeBasicSecVOS)){
+ codeBasicSecVOS.stream().forEach(codeBasicSecVO -> {
+ List<CodeSectionValueVO> codeSectionValueVOList=new ArrayList<>();
+ String secType= codeBasicSecVO.getSecType();
+ if(secType.equals("codevariablesec")){//鍙彉鐮佹
+ //绌虹潃锛屽墠绔紶
+ }else if(secType.equals("codefixedsec")){//鍥哄畾鐮佹
+ List<CodeFixedValueVO> fixedValueVOList=codeBasicSecVO.getFixedValueVOList();
+ fixedValueVOList.stream().forEach(codeFixedValueVO -> {
+ String id=StringUtils.isBlank(codeFixedValueVO.getOid())?"":codeFixedValueVO.getOid();
+ String value=StringUtils.isBlank(codeFixedValueVO.getId())?"":codeFixedValueVO.getId();
+ String num=StringUtils.isBlank(codeFixedValueVO.getOrderNum()+"")?"":codeFixedValueVO.getOrderNum()+"";
+ String name=StringUtils.isBlank(codeFixedValueVO.getName())?"":codeFixedValueVO.getName();
+ String description=StringUtils.isBlank(codeFixedValueVO.getDescription())?"":codeFixedValueVO.getDescription();
+ CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(id,num,value,name,"",description);
+ codeSectionValueVOList.add(sectionValueVO);
+ });
+ }else if(secType.equals("codeclassifysec")){//鍒嗙被鐮佹
+ String secOid=codeBasicSecVO.getOid();
+ String parentClassifySecOid= codeBasicSecVO.getParentClassifySecOid();
+ String parentClassifyValueOid="";
+ if(secIdTOListValueOidMap.containsKey(parentClassifySecOid)){
+ List<String> parentClassifyValueList= secIdTOListValueOidMap.get(parentClassifySecOid);
+ parentClassifyValueOid=VciBaseUtil.array2String(parentClassifyValueList.toArray(new String[]{}));
+ }
+ List<CodeClassifyValueVO> codeClassifyValueVOS= this.codeClassifyValueService.listCodeClassifyValueBySecOid(secOid,parentClassifyValueOid);
+ if(!CollectionUtils.isEmpty(codeClassifyValueVOS)){
+ List<String>valueOidList=new ArrayList<>();
+
+ codeClassifyValueVOS.stream().forEach(codeClassifyValueVO -> {
+ String id=StringUtils.isBlank(codeClassifyValueVO.getOid())?"":codeClassifyValueVO.getOid();
+ String value=StringUtils.isBlank(codeClassifyValueVO.getId())?"":codeClassifyValueVO.getId();
+ String num=StringUtils.isBlank(codeClassifyValueVO.getOrderNum()+"")?"":codeClassifyValueVO.getOrderNum()+"";
+ String name=StringUtils.isBlank(codeClassifyValueVO.getName())?"":codeClassifyValueVO.getName();
+ String pid=StringUtils.isBlank(codeClassifyValueVO.getParentClassifyValueOid())?"":codeClassifyValueVO.getParentClassifyValueOid();
+ String description=StringUtils.isBlank(codeClassifyValueVO.getDescription())?"":codeClassifyValueVO.getDescription();
+ CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(id,num,value,name,pid,description);
+ codeSectionValueVOList.add(sectionValueVO);
+ valueOidList.add(id);
+ });
+ secIdTOListValueOidMap.put(secOid,valueOidList);
+ }
+ }else if(secType.equals("codedatesec")){//鏃ユ湡鐮佹
+ //绌虹潃锛屽墠绔紶
+ }else if(secType.equals("coderefersec")){//寮曠敤鐮佹
+ codeBasicSecVO.getReferAttributeId();
+ codeBasicSecVO.getReferCodeClassifyOid();
+ codeBasicSecVO.getReferBtmId();
+ codeBasicSecVO.getReferBtmName();
+ //codeBasicSecVO.getReferValueInfo();
+
+ }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;
+ }
+ String id=StringUtils.isBlank(levelCodeClassifyVO.getOid())?"":levelCodeClassifyVO.getOid();
+ String num="";
+ String value=StringUtils.isBlank(levelCodeClassifyVO.getId())?"":levelCodeClassifyVO.getId();
+ String name=StringUtils.isBlank(levelCodeClassifyVO.getName())?"":levelCodeClassifyVO.getName();
+ String description=StringUtils.isBlank(levelCodeClassifyVO.getDescription())?"":levelCodeClassifyVO.getDescription();
+ CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(id,num,value,name,"",description);
+ codeSectionValueVOList.add(sectionValueVO);
+ }else if(secType.equals("codeattrsec")){//灞炴�х爜娈�
+ codeBasicSecVO.getReferAttributeId();
+ codeBasicSecVO.getReferCodeClassifyOid();
+ codeBasicSecVO.getReferBtmId();
+ codeBasicSecVO.getReferBtmName();
+ }else if(secType.equals("codeserialsec")){//娴佹按鐮佹
+
+ }
+ //鏋勫缓瑙勫垯鐮佹
+ CodeSectionVO codeSectionVO=new CodeSectionVO();
+ codeSectionVO.setId(StringUtils.isBlank(codeBasicSecVO.getOid())?"":codeBasicSecVO.getOid());//涓婚敭
+ codeSectionVO.setName(StringUtils.isBlank(codeBasicSecVO.getName())?"":codeBasicSecVO.getName());//鐮佹鍚嶇О
+ codeSectionVO.setCodeSecLength(StringUtils.isBlank(codeBasicSecVO.getCodeSecLength())?"":codeBasicSecVO.getCodeSecLength());//鐮佹闀垮害
+ codeSectionVO.setNum(StringUtils.isBlank(codeBasicSecVO.getOrderNum()+"")?"":codeBasicSecVO.getOrderNum()+"");//鐮佹搴忓彿
+ codeSectionVO.setCodeDateFormatStr(StringUtils.isBlank(codeBasicSecVO.getCodeDateFormatStr())?"":codeBasicSecVO.getCodeDateFormatStr());//鏃ユ湡绫诲瀷
+ codeSectionVO.setCodeSecLengthType(StringUtils.isBlank(codeBasicSecVO.getCodeSecLengthType())?"":codeBasicSecVO.getCodeSecLengthType());//鐮佹闀垮害绫诲瀷
+ codeSectionVO.setPkCodeRule(StringUtils.isBlank(codeRuleVO.getOid())?"":codeRuleVO.getOid());//瑙勫垯涓婚敭
+ codeSectionVO.setSecType(StringUtils.isBlank(codeBasicSecVO.getSecType())?"":codeBasicSecVO.getSecType());//鐮佹绫诲瀷
+ codeSectionVO.setDescription(StringUtils.isBlank(codeBasicSecVO.getDescription())?"":codeBasicSecVO.getDescription());//鎻忚堪
+ codeSectionVO.setParentClassifySecOid(StringUtils.isBlank(codeBasicSecVO.getParentClassifySecOid())?"":codeBasicSecVO.getParentClassifySecOid());//鍒嗙被鐮佹涓婄骇
+ codeSectionVO.setSecTypeText(StringUtils.isBlank(codeBasicSecVO.getSecTypeText())?"":codeBasicSecVO.getSecTypeText());
+ //if(!CollectionUtils.isEmpty(codeSectionValueVOList)) {
+ codeSectionVO.setSectionValue(codeSectionValueVOList);
+ //}
+ codeSectionVO.setSectionCode(codeBasicSecVO.getId());//鐮佹缂栧彿
+ codeSectionVOList.add(codeSectionVO);
+ });
+ }
+ //鏋勫缓瑙勫垯淇℃伅
+ resultCodeRuleVO.setId(StringUtils.isBlank(codeRuleVO.getOid())?"":codeRuleVO.getOid());//涓婚敭
+ resultCodeRuleVO.setNum("");//搴忓彿
+ resultCodeRuleVO.setName(StringUtils.isBlank(codeRuleVO.getName())?"":codeRuleVO.getName());//鍚嶇О璁剧疆
+ resultCodeRuleVO.setRuleCode(StringUtils.isBlank(codeRuleVO.getId())?"":codeRuleVO.getId());//瑙勫垯缂栧彿
+ resultCodeRuleVO.setDescription(StringUtils.isBlank(codeRuleVO.getDescription())?"":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(StringUtils.isBlank(codeClassifyDO.getOid())?"":codeClassifyDO.getOid());
+ classifyVO.setLcStatus(StringUtils.isBlank(codeClassifyDO.getLcStatus())?"":codeClassifyDO.getLcStatus());
+ classifyVO.setClassCode(StringUtils.isBlank(codeClassifyDO.getId())?"":codeClassifyDO.getId());
+ classifyVO.setDescription(StringUtils.isBlank(codeClassifyDO.getDescription())?"":codeClassifyDO.getDescription());
+ classifyVO.setName(StringUtils.isBlank(codeClassifyDO.getName())?"":codeClassifyDO.getName());
+ classifyVO.setPid(StringUtils.isBlank(codeClassifyDO.getParentcodeclassifyoid())?"":codeClassifyDO.getParentcodeclassifyoid());
+ classifyVO.setFullPathName(StringUtils.isBlank(codeClassifyDO.getPath())?"":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