From b04005e136d7de620bb66660cc268f5750ca7b42 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期三, 05 七月 2023 15:35:27 +0800 Subject: [PATCH] 集成接口保存 --- Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultCodeRuleVO.java | 90 ++++++++ /dev/null | 39 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 163 ++++++++++++-- Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionVO.java | 18 + Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/result.json | 94 ++++++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 98 +++++--- .idea/workspace.xml | 19 + Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/classify/LibraryVO.java | 2 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyVO.java | 13 + Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionValueVO.java | 70 ++++++ Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyRuleVO.java | 27 +- 11 files changed, 515 insertions(+), 118 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8c95b58..43aec9b 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,10 +2,12 @@ <project version="4"> <component name="ChangeListManager"> <list default="true" id="16f0b01c-a58c-44dd-9719-cb51eacd47bf" name="Default Changelist" comment="澧炲姞鏍戝弬鐓х粍浠�"> - <change afterPath="$PROJECT_DIR$/Source/UBCS-WEB/src/api/refer/tree.js" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/Source/UBCS-WEB/src/components/FormTemplate/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/Source/UBCS-WEB/src/components/FormTemplate/index.vue" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeRuleVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeRuleVO.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionVO.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionValueVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionValueVO.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyVO.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> @@ -25,9 +27,14 @@ <property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> <property name="WebServerToolWindowFactoryState" value="false" /> <property name="aspect.path.notification.shown" value="true" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$/Source/UBCS" /> <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> <property name="nodejs_npm_path_reset_for_default_project" value="true" /> + <property name="project.structure.last.edited" value="Project" /> + <property name="project.structure.proportion" value="0.0" /> + <property name="project.structure.side.proportion" value="0.0" /> </component> + <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" /> <component name="TaskManager"> <task active="true" id="Default" summary="Default task"> <changelist id="16f0b01c-a58c-44dd-9719-cb51eacd47bf" name="Default Changelist" comment="" /> @@ -36,9 +43,13 @@ <option name="presentableId" value="Default" /> <updated>1679912923408</updated> <workItem from="1679912925465" duration="56000" /> + <workItem from="1688456866976" duration="772000" /> </task> <servers /> </component> + <component name="TypeScriptGeneratedFilesManager"> + <option name="version" value="3" /> + </component> <component name="VcsManagerConfiguration"> <MESSAGE value="澧炲姞鏍戝弬鐓х粍浠�" /> <option name="LAST_COMMIT_MESSAGE" value="澧炲姞鏍戝弬鐓х粍浠�" /> diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/classify/LibraryVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/classify/LibraryVO.java index f96c27c..ab1dacc 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/classify/LibraryVO.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/classify/LibraryVO.java @@ -6,7 +6,7 @@ import java.util.List; -@XStreamAlias("library ") +@XStreamAlias("library") public class LibraryVO { @XStreamAsAttribute private String id; diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeRuleVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeRuleVO.java deleted file mode 100644 index 489dbe0..0000000 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeRuleVO.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.vci.ubcs.code.vo.webserviceModel.coderule; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import com.thoughtworks.xstream.annotations.XStreamImplicit; - -import java.util.List; - -@XStreamAlias("codeRule") -public class CodeRuleVO { - - /** - * 缂栫爜瑙勫垯鐨勭紪鍙� - */ - @XStreamAsAttribute - private String id; - - /** - * 瑙勫垯缂栧彿 - */ - @XStreamAsAttribute - private String num; - /** - * 缂栫爜瑙勫垯鐨勫悕绉� - */ - @XStreamAsAttribute - private String name; - - /** - * 瑙勫垯鐨勬弿杩� - */ - @XStreamAsAttribute - private String description; - /** - * 缂栫爜鐨勭爜娈典俊鎭� - */ - @XStreamImplicit - private List<CodeSectionVO> secVOList; -} diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionVO.java index 034594e..7065cc1 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionVO.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionVO.java @@ -67,7 +67,7 @@ /*** * 鐮佹鐮佸�� */ - private List<CodeSectionValueVO> sectionValues; + private List<CodeSectionValueVO> sectionValue; /** * 鏃ユ湡鏍煎紡 */ @@ -146,6 +146,22 @@ this.codeDateFormatStr = codeDateFormatStr; } + public String getParentClassifySecOid() { + return parentClassifySecOid; + } + + public void setParentClassifySecOid(String parentClassifySecOid) { + this.parentClassifySecOid = parentClassifySecOid; + } + + public List<CodeSectionValueVO> getSectionValue() { + return sectionValue; + } + + public void setSectionValue(List<CodeSectionValueVO> sectionValue) { + this.sectionValue = sectionValue; + } + @Override public String toString() { return "CodeSectionVO{" + diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionValueVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionValueVO.java index 85f1388..99a9b17 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionValueVO.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/CodeSectionValueVO.java @@ -1,19 +1,38 @@ package com.vci.ubcs.code.vo.webserviceModel.coderule; +import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; +@XStreamAlias("sectionValue") public class CodeSectionValueVO { + public CodeSectionValueVO() { + } + + public CodeSectionValueVO(String id, String num, String value,String name ,String description) { + this.id = id; + this.num = num; + this.value = value; + this.description = description; + } + /*** * 鐮佸�间富閿� */ + @XStreamAsAttribute private String id; /*** * 鐮佸�肩紪鍙� */ + @XStreamAsAttribute private String num; + + @XStreamAsAttribute + private String name; + /*** * 鐮佹鍊� */ + @XStreamAsAttribute private String value; /** @@ -21,4 +40,55 @@ */ @XStreamAsAttribute private String description; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getNum() { + return num; + } + + public void setNum(String num) { + this.num = num; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "CodeSectionValueVO{" + + "id='" + id + '\'' + + ", num='" + num + '\'' + + ", name='" + name + '\'' + + ", value='" + value + '\'' + + ", description='" + description + '\'' + + '}'; + } } diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyRuleVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyRuleVO.java index 62581d7..97387f1 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyRuleVO.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyRuleVO.java @@ -2,20 +2,21 @@ public class ResultClassifyRuleVO { - private ResultClassifyRuleData resultData; + private ResultClassifyRuleData data; - public ResultClassifyRuleData getResultData() { - return resultData; - } - public void setResultData(ResultClassifyRuleData resultData) { - this.resultData = resultData; - } + public ResultClassifyRuleData getData() { + return data; + } - @Override - public String toString() { - return "ResultClassifyVO{" + - "resultData=" + resultData + - '}'; - } + public void setData(ResultClassifyRuleData data) { + this.data = data; + } + + @Override + public String toString() { + return "ResultClassifyRuleVO{" + + "data=" + data + + '}'; + } } diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyVO.java index b7d37f5..eb844e1 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyVO.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultClassifyVO.java @@ -50,7 +50,7 @@ * 瑙勫垯id */ @XStreamAsAttribute - private CodeRuleVO codeRuleVO; + private ResultCodeRuleVO codeRule; /*** * 鏄惁涓哄彾瀛愯妭鐐� */ @@ -129,9 +129,17 @@ isLeaf = leaf; } + public ResultCodeRuleVO getCodeRule() { + return codeRule; + } + + public void setCodeRule(ResultCodeRuleVO codeRule) { + this.codeRule = codeRule; + } + @Override public String toString() { - return "ClassifyVO{" + + return "ResultClassifyVO{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", pid='" + pid + '\'' + @@ -140,6 +148,7 @@ ", fullPathName='" + fullPathName + '\'' + ", lcStatus='" + lcStatus + '\'' + ", codeRuleId='" + codeRuleId + '\'' + + ", codeRule=" + codeRule + ", isLeaf=" + isLeaf + '}'; } diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultCodeRuleVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultCodeRuleVO.java new file mode 100644 index 0000000..38f9eea --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/ResultCodeRuleVO.java @@ -0,0 +1,90 @@ +package com.vci.ubcs.code.vo.webserviceModel.coderule; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamAsAttribute; +import com.thoughtworks.xstream.annotations.XStreamImplicit; + +import java.util.List; + +@XStreamAlias("codeRule") +public class ResultCodeRuleVO { + + /** + * 缂栫爜瑙勫垯鐨勭紪鍙� + */ + @XStreamAsAttribute + private String id; + + /** + * 瑙勫垯缂栧彿 + */ + @XStreamAsAttribute + private String num; + /** + * 缂栫爜瑙勫垯鐨勫悕绉� + */ + @XStreamAsAttribute + private String name; + + /** + * 瑙勫垯鐨勬弿杩� + */ + @XStreamAsAttribute + private String description; + /** + * 缂栫爜鐨勭爜娈典俊鎭� + */ + @XStreamImplicit + private List<CodeSectionVO> codeSection; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getNum() { + return num; + } + + public void setNum(String num) { + this.num = num; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public List<CodeSectionVO> getCodeSection() { + return codeSection; + } + + public void setCodeSection(List<CodeSectionVO> codeSection) { + this.codeSection = codeSection; + } + + @Override + public String toString() { + return "CodeRuleVO{" + + "id='" + id + '\'' + + ", num='" + num + '\'' + + ", name='" + name + '\'' + + ", description='" + description + '\'' + + ", codeSection=" + codeSection + + '}'; + } +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/result.json b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/result.json new file mode 100644 index 0000000..5dfef0e --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/coderule/result.json @@ -0,0 +1,94 @@ +{ + "resultData": { + "msg": "鎴愬姛!", + "library": { + "classify": [ + { + "classCode": "020202", + "lcStatus": "Enabled", + "name": "鍙g洊", + "description": "鍙g洊", + "pid": "0C600A6A-6398-FC30-D13E-121201FDA908", + "codeRule": { + "num": "001-copy", + "description": "鐗╁搧缂栫爜瑙勫垯", + "codeSection": [ + { + "sectionValue": [ + { + "num": "0", + "id": "B6C55202-A224-9098-6A82-E3FC5DEEF790", + "value": "020202" + } + ], + "num": "01", + "codeSecLengthType": "code_sec_length_variable", + "name": "灞傜骇鐮佹", + "secType": "codelevelsec", + "id": "1674682431208296448", + "pkCodeRule": "9FE2AF3E-2940-BD80-D46F-E3853314673D" + }, + { + "sectionValue": [], + "num": "02", + "name": "娴佹按鐮佹", + "description": "娴佹按鐮佹", + "secType": "codeserialsec", + "id": "801B6412-E617-214A-08A5-9EDF5821AA66", + "pkCodeRule": "9FE2AF3E-2940-BD80-D46F-E3853314673D", + "codeSecLength": "4" + } + ], + "id": "9FE2AF3E-2940-BD80-D46F-E3853314673D" + }, + "id": "B6C55202-A224-9098-6A82-E3FC5DEEF790", + "leaf": false + }, + { + "classCode": "020201", + "lcStatus": "Enabled", + "name": "閿�", + "description": "閿�", + "pid": "0C600A6A-6398-FC30-D13E-121201FDA908", + "codeRule": { + "num": "001-copy", + "description": "鐗╁搧缂栫爜瑙勫垯", + "codeSection": [ + { + "sectionValue": [ + { + "num": "0", + "id": "46B5DB5E-F783-DFE9-B48A-C4A367D02AC0", + "value": "020201" + } + ], + "num": "01", + "codeSecLengthType": "code_sec_length_variable", + "name": "灞傜骇鐮佹", + "secType": "codelevelsec", + "id": "1674682431208296448", + "pkCodeRule": "9FE2AF3E-2940-BD80-D46F-E3853314673D" + }, + { + "sectionValue": [], + "num": "02", + "name": "娴佹按鐮佹", + "description": "娴佹按鐮佹", + "secType": "codeserialsec", + "id": "801B6412-E617-214A-08A5-9EDF5821AA66", + "pkCodeRule": "9FE2AF3E-2940-BD80-D46F-E3853314673D", + "codeSecLength": "4" + } + ], + "id": "9FE2AF3E-2940-BD80-D46F-E3853314673D" + }, + "id": "46B5DB5E-F783-DFE9-B48A-C4A367D02AC0", + "leaf": false + } + ], + "name": "", + "id": "wupin" + }, + "errorid": "0" + } +} 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 90a9ab3..dca96e7 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 @@ -38,10 +38,7 @@ import com.vci.ubcs.starter.web.enumpck.BooleanEnum; import com.vci.ubcs.starter.web.enumpck.UserSecretEnum; import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; -import com.vci.ubcs.starter.web.pagemodel.DataGrid; -import com.vci.ubcs.starter.web.pagemodel.KeyValue; -import com.vci.ubcs.starter.web.pagemodel.PageHelper; -import com.vci.ubcs.starter.web.pagemodel.UIFormReferVO; +import com.vci.ubcs.starter.web.pagemodel.*; import com.vci.ubcs.starter.web.toolmodel.DateConverter; import com.vci.ubcs.starter.web.util.*; import lombok.AllArgsConstructor; @@ -1451,7 +1448,8 @@ @Override public R batchImportData(List<CodeImprotSaveDatVO> codeImprotSaveDatVOList, String classifyAttr, boolean isImprot) { - List<BaseModel> dataCBOList=new ArrayList<>(); + + boolean success=true; codeImprotSaveDatVOList.stream().forEach(codeImprotSaveDatVO -> { List<SheetRowData> rowDataList = new ArrayList<>(); List<ClientBusinessObject>cboList=new ArrayList<>(); @@ -1490,19 +1488,31 @@ String fullPath = getFullPath(classifyFullInfo); excelToCbo(classifyFullInfo,fieldIndexMap,rowDataList, codeClassifyTemplateVO,cboList,fullPath,!isImprot); Map<String,String> errorMap=new HashMap<>(); + Map<String/**璺緞**/, CodeClassifyVO> pathMap=new HashMap<>() ; + //鏍¢獙缂栫爜瑙勫垯鍜岀爜娈垫槸鍚︽纭� + Map<String, List<String>> ruleRowIndexMap = new ConcurrentHashMap<>(); + Map<String, CodeRuleVO> ruleVOMap =new ConcurrentHashMap<>(); if(isImprot) { Map<String/**涓婚敭**/, String/**璺緞**/> childOidPathMap = getChildClassifyPathMap(classifyFullInfo, fullPath); //閮借浆鎹㈠畬浜嗐�傞渶瑕佹壒閲忔鏌� //鎵炬墍鏈夌殑鍒嗙被璺緞,闇�瑕佹牎楠岃矾寰勬槸鍚︽纭紝鏄惁閮藉湪褰撳墠鐨勫垎绫荤殑涓嬬骇 List<CodeClassifyVO> childClassifyVOs = classifyService.listChildrenClassify(orderDTO.getCodeClassifyOid(), true, classifyAttr, true); - Map<String/**璺緞**/, CodeClassifyVO> pathMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getPath().startsWith("#") ? s.getPath().substring(1) : s.getPath(), t -> t)); + pathMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getPath().startsWith("#") ? s.getPath().substring(1) : s.getPath(), t -> t)); Map<String/**涓婚敭**/, CodeClassifyVO> classifyVOMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); classifyVOMap.put(classifyFullInfo.getCurrentClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO()); pathMap.put("#current#", classifyFullInfo.getCurrentClassifyVO()); //鎴戜滑闇�瑕佸垽鏂繖浜涘垎绫荤殑妯℃澘鏄笉鏄竴鏍风殑锛屽彧闇�瑕佹牎楠岋紝涓嶇敤鑾峰彇 //妫�鏌ュ垎绫荤殑璺緞 checkClassifyPathInHistory(cboList, errorMap, pathMap, childOidPathMap); + //妫�鏌ヨ鍒� + Map<String/**鍒嗙被涓婚敭**/, String/**瑙勫垯涓婚敭**/> ruleOidMap = new ConcurrentHashMap<String, String>(); + List<String> unExistRuleClassifyOidList = new CopyOnWriteArrayList<>(); + checkRuleOidInHistory(classifyVOMap, ruleOidMap, unExistRuleClassifyOidList); + ruleVOMap = ruleService.listCodeRuleByIds(ruleOidMap.values(), true).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); + + checkSecLengthInHistory(cboList, classifyVOMap, ruleVOMap, ruleOidMap, errorMap, ruleRowIndexMap); } + //鍒嗙被娉ㄥ叆 batchSwitchClassifyAttrOnOrder(attrVOS,cboList,classifyFullInfo,isImprot); //boolean @@ -1532,36 +1542,58 @@ //4.鏍¢獙瑙勫垯 batchCheckVerifyOnOrder(attrVOS, cboList,errorMap); - - //SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); - List<ClientBusinessObject>needSaveCboList = cboList.stream().filter(cbo -> { - String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); - return !errorMap.containsKey(rowIndex); - }).collect(Collectors.toList()); - - log.info("鍒嗙被锛�"+classifyFullInfo.getCurrentClassifyVO().getName()+"鏁版嵁:"+needSaveCboList.size()); - if (!CollectionUtils.isEmpty(needSaveCboList)) { -// List<BaseModel> dataCBOList=new ArrayList<>(); - needSaveCboList.stream().forEach(clientBusinessObject -> { - BaseModel baseModel=new BaseModel(); - BeanUtil.convert(clientBusinessObject,baseModel); - //baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject)); - dataCBOList.add(baseModel); -// allNeedSaveCboList.add(baseModel); - }); - try { - //9.鎴戜滑澶勭悊涓氬姟鏁版嵁 - if (isImprot) { - productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, null, dataCBOList); - }else { - productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList); + if(isImprot){ + List<ClientBusinessObject> needSaveCboList = cboList.stream().filter(cbo -> { + String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); + return !errorMap.containsKey(rowIndex); + }).collect(Collectors.toList()); + List<ClientBusinessObject> finalNeedSaveCboList = needSaveCboList; + Map<String, CodeRuleVO> finalRuleVOMap = ruleVOMap; + ruleRowIndexMap.keySet().parallelStream().forEach(ruleOid -> { + List <BaseModel>dataCBOList=new CopyOnWriteArrayList<>(); + List<String> rowIndexList = ruleRowIndexMap.get(ruleOid); + List<ClientBusinessObject> thisCbos = needSaveCboList.stream().filter(cbo -> rowIndexList.contains(cbo.getAttributeValue(IMPORT_ROW_INDEX)) && !errorMap.containsKey(cbo.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(thisCbos)) { + thisCbos.stream().forEach(clientBusinessObject -> { + BaseModel baseModel = new BaseModel(); + BeanUtil.convert(clientBusinessObject, baseModel); + dataCBOList.add(baseModel); + }); + try { + productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, finalRuleVOMap.get(ruleOid), null, dataCBOList); + } catch (Throwable e) { + //success=false; + log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e); + thisCbos.stream().forEach(cbo -> { + String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";绯荤粺閿欒锛屽瓨鍌ㄦ暟鎹殑鏃跺�欏嚭閿欎簡"); + }); + } } - } catch (Exception e) { - e.printStackTrace(); + engineService.batchSaveSelectChar(codeClassifyTemplateVO, dataCBOList); + }); + }else { + List<BaseModel> dataCBOList=new ArrayList<>(); + List<ClientBusinessObject> needSaveCboList = cboList.stream().filter(cbo -> { + String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); + return !errorMap.containsKey(rowIndex); + }).collect(Collectors.toList()); + log.info("鍒嗙被锛�" + classifyFullInfo.getCurrentClassifyVO().getName() + "鏁版嵁:" + needSaveCboList.size()); + if (!CollectionUtils.isEmpty(needSaveCboList)) { + needSaveCboList.stream().forEach(clientBusinessObject -> { + BaseModel baseModel = new BaseModel(); + BeanUtil.convert(clientBusinessObject, baseModel); + dataCBOList.add(baseModel); + }); + try { + productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList); + } catch (Exception e) { + e.printStackTrace(); + } + //濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰 + engineService.batchSaveSelectChar(codeClassifyTemplateVO, dataCBOList); } } - //濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰 - engineService.batchSaveSelectChar(codeClassifyTemplateVO, dataCBOList); }); return R.success(isImprot?"鎵归噺鍘嗗彶瀵煎叆鎴愬姛":"鎵归噺鐢宠鎴愬姛"); } 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