From 93db5b42a725ded6bd1cc41981804bc8649c03ba Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 14 三月 2024 15:30:13 +0800
Subject: [PATCH] func vaildate添加说明注释
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/GroupMapAttrXMLServiceImpl.java | 196 +++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 191 insertions(+), 5 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/GroupMapAttrXMLServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/GroupMapAttrXMLServiceImpl.java
index 1c5b5ce..7c23a2b 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/GroupMapAttrXMLServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/GroupMapAttrXMLServiceImpl.java
@@ -1,24 +1,33 @@
package com.vci.ubcs.code.service.impl;
+import com.vci.ubcs.code.entity.GroupMapAttrXML;
import com.vci.ubcs.code.service.IGroupMapAttrXMLService;
import com.vci.ubcs.code.util.gennerAttrMapUtil;
+import com.vci.ubcs.code.vo.GroupMapAttrXMLVO;
import com.vci.ubcs.code.vo.webserviceModel.attrmap.ClsfAttrMappingDO;
import com.vci.ubcs.code.vo.webserviceModel.attrmap.LibraryClsfDO;
import com.vci.ubcs.code.vo.webserviceModel.attrmap.LibraryDO;
import com.vci.ubcs.code.webService.config.AttributeMapConfig;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.EnvironmentAware;
+import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
+import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.rmi.ServerException;
+import java.security.acl.Group;
import java.util.*;
import java.util.stream.Collectors;
@@ -29,18 +38,195 @@
*/
@Service
@Slf4j
-public class GroupMapAttrXMLServiceImpl implements IGroupMapAttrXMLService {
+public class GroupMapAttrXMLServiceImpl implements IGroupMapAttrXMLService,EnvironmentAware {
- private static final String XML_FILE_PATH = "C:\\data1\\ubcs\\ubcs-server\\xml\\PDM.xml";
+ @Autowired
+ private AttributeMapConfig attributeMapConfig;
+
+ @Value("${code.universalinterface.attrconfig.attrmap_parent_path:/data1/ubcs/ubcs-server/xml}")
+ private String ATTRMAP_PARENT_PATH;
+
+ /**
+ * 褰撳墠鎿嶄綔绯荤粺锛屾槸鍚︿负windows绯荤粺
+ */
+ private String separator = "\\";
+
+ /**
+ * 鏍规嵁褰撳墠杩愯鐨勭幆澧冿紝鍖归厤鍒嗛殧绗�
+ * @param environment
+ */
+ @Override
+ public void setEnvironment(Environment environment) {
+ String os = environment.getProperty("os.name").toLowerCase();
+ if (!os.contains("win")) {
+ this.separator = "/";
+ }
+ }
+
+ /**
+ * 鑾峰彇xml鏂囦欢鐨勮缁嗕俊鎭�
+ * @param groupMapAttrXML
+ * @return
+ * @throws IOException
+ */
+ @Override
+ public GroupMapAttrXML getGroupMapXMLInfo(GroupMapAttrXML groupMapAttrXML) throws ServerException {
+ if(Func.isEmpty(groupMapAttrXML.getAttrMapPath())){
+ throw new ServiceException("灞炴�ф槧灏勬枃浠惰矾寰勪笉鑳戒负绌猴紒");
+ }
+ File file = new File(groupMapAttrXML.getAttrMapPath());
+ Map<String, String> stringStringMap = attributeMapConfig.getSystem_attrmap();
+ GroupMapAttrXML data = new GroupMapAttrXML();
+ if (file.exists() && file.isFile()) {
+ data.setGroupMapAttrName(file.getName());
+ data.setAttrMapPath(file.getPath());
+ if(!stringStringMap.isEmpty() && stringStringMap.containsKey(file.getName().replace(".xml",""))){
+ groupMapAttrXML.setIsEnable(true);
+ }else {
+ groupMapAttrXML.setIsEnable(false);
+ }
+ data.setGroupMapAttrContent(getXMLContent(file.getPath()));
+ }
+ return data;
+ }
+
+ /**
+ * 鑾峰彇鎵�鏈夐厤缃湪nacos涓婄殑xml鏂囦欢鍐呭锛岋紙涔熷氨鏄湪鍚敤鐨剎ml鏄犲皠鏂囦欢锛�
+ * @return
+ */
+ @Override
+ public List<GroupMapAttrXML> getGroupMapXMLList() {
+ // 鑾峰彇鍒板凡鍦╪acos涓婇厤缃殑鐨剎ml鏄犲皠鏂囦欢
+ Map<String, String> stringStringMap = attributeMapConfig.getSystem_attrmap();
+ List<GroupMapAttrXML> groupMapAttrXMLList = new ArrayList<>();
+ // 鑾峰彇鍒扮埗璺緞涓嬬殑鏂囦欢淇℃伅
+ File fileDir = new File(ATTRMAP_PARENT_PATH);
+ File[] childDir = fileDir.listFiles();
+ if(Func.isNotEmpty(childDir) && childDir.length > 0){
+ Arrays.stream(childDir).forEach(file->{
+ GroupMapAttrXML groupMapAttrXML = new GroupMapAttrXML();
+ if(!stringStringMap.isEmpty() && stringStringMap.containsKey(file.getName().replace(".xml",""))){
+ groupMapAttrXML.setIsEnable(true);
+ }else {
+ groupMapAttrXML.setIsEnable(false);
+ }
+ groupMapAttrXML.setGroupMapAttrName(file.getName());
+ groupMapAttrXML.setAttrMapPath(file.getPath());
+ try {
+ groupMapAttrXML.setGroupMapAttrContent(getXMLContent(file.getPath()));
+ } catch (ServerException e) {
+ throw new ServiceException(e.getMessage());
+ }
+ groupMapAttrXMLList.add(groupMapAttrXML);
+ });
+ }
+ return groupMapAttrXMLList;
+ }
+
+ /**
+ * 淇敼灞炴�ф槧灏勬枃浠�
+ * @param groupMapAttrXMLVO
+ * @return
+ */
+ public R updateGroupMapXML(GroupMapAttrXMLVO groupMapAttrXMLVO) throws IOException {
+ if(Func.isEmpty(groupMapAttrXMLVO.getAttrMapPath())){
+ throw new ServiceException("灞炴�ф槧灏勬枃浠惰矾寰勪笉鑳戒负绌猴紒");
+ }
+ File file = new File(groupMapAttrXMLVO.getAttrMapPath());
+ // 鏂囦欢鍚嶇浉鍚岋紝灏卞彧闇�瑕佷慨鏀瑰唴瀹�
+ if(groupMapAttrXMLVO.getGroupMapAttrName().equals(groupMapAttrXMLVO.getUpdateXMLName())){
+ if(!file.exists()){
+ return R.fail("琚慨鏀圭殑"+groupMapAttrXMLVO.getGroupMapAttrName()+"鏂囦欢涓嶅瓨鍦紒");
+ }
+ FileWriter writer = null;
+ try{
+ writer = new FileWriter(file);
+ writer.write(groupMapAttrXMLVO.getGroupMapAttrContent());
+ }catch (IOException e) {
+ e.printStackTrace();
+ throw new ServerException("鏂囦欢鍐呭淇敼澶辫触锛屽師鍥狅細"+e.getMessage());
+ }finally {
+ writer.close();
+ }
+ }else{
+ //淇敼浜嗘枃浠跺悕,灏遍渶瑕佸皢鏂囦欢鍚嶅拰鍐呭杩涜淇敼
+ File newFile = new File(groupMapAttrXMLVO.getAttrMapPath().replace(groupMapAttrXMLVO.getGroupMapAttrName(),groupMapAttrXMLVO.getUpdateXMLName()));
+ FileWriter writer = null;
+ try {
+ writer = new FileWriter(newFile);
+ writer.write(groupMapAttrXMLVO.getGroupMapAttrContent());
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new ServerException("灞炴�ф槧灏勬枃浠朵慨鏀瑰け璐ワ紝鍘熷洜锛�"+e.getMessage());
+ }finally {
+ writer.close();
+ }
+ if (!file.delete()) {
+ R.fail("灞炴�ф槧灏勬枃浠跺悕淇敼澶辫触锛岃妫�鏌ユ枃浠跺悕鏄惁閲嶅锛�");
+ }
+ }
+ Map<String, String> stringStringMap = attributeMapConfig.getSystem_attrmap();
+ if (!stringStringMap.containsKey(groupMapAttrXMLVO.getUpdateXMLName().replace(".xml",""))) {
+ return R.success("淇敼鎴愬姛锛屼慨鏀瑰睘鎬ф槧灏勬枃浠跺悕涔嬪悗锛屾湭鍦╪acos涓婃壘鍒扮浉鍏抽厤缃紝璇峰強鏃舵洿鏂皀acos涓婄殑閰嶇疆锛�");
+ }
+ return R.success("灞炴�ф槧灏勬枃浠朵慨鏀规垚鍔燂紒");
+ }
@Override
- public String getGroupMapXMLInfo(String xmlName) throws IOException {
+ public R addGroupMapXML(GroupMapAttrXML groupMapAttrXML) throws IOException {
+ if(Func.isEmpty(groupMapAttrXML.getGroupMapAttrName())){
+ throw new ServiceException("灞炴�ф槧灏勬枃浠跺悕绉颁笉鑳戒负绌猴紒");
+ }
+ // 鍒涘缓涓�涓柊鏂囦欢
+ File file = new File(ATTRMAP_PARENT_PATH);
+ if(!file.exists()){
+ return R.fail("nacos涓妜ml灞炴�ф槧灏勬枃浠讹紝鐖惰矾寰勯厤缃湁璇紝璇锋鏌ワ紒");
+ }
+ File[] files = file.listFiles();
+ if(files.length>0){
+ List<File> repeatNameFile = Arrays.stream(files).filter(item -> {
+ if (item.getName().equals(groupMapAttrXML.getGroupMapAttrName())) {
+ return true;
+ }
+ return false;
+ }).collect(Collectors.toList());
+ if (!repeatNameFile.isEmpty()) {
+ return R.fail("鏂板鐨勫睘鎬ф槧灏剎ml鏂囦欢鍚嶅凡瀛樺湪锛�");
+ }
+ }
+ File addXMLFile = new File(ATTRMAP_PARENT_PATH + separator + groupMapAttrXML.getGroupMapAttrName());
+ FileWriter writer = null;
try {
- File file = new File(XML_FILE_PATH);
+ // 鍚戞枃浠朵腑鍐欏叆鎸囧畾鍐呭
+ writer = new FileWriter(addXMLFile);
+ writer.write(groupMapAttrXML.getGroupMapAttrContent());
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new ServerException("鏂囦欢鍐呭鍐欏叆澶辫触锛屽師鍥狅細"+e.getMessage());
+ }finally {
+ writer.close();
+ }
+ Map<String, String> stringStringMap = attributeMapConfig.getSystem_attrmap();
+ if (!stringStringMap.containsKey(groupMapAttrXML.getGroupMapAttrName().replace(".xml",""))) {
+ groupMapAttrXML.setIsEnable(false);
+ return R.success("鏂板鎴愬姛锛屼絾鏂板鐨勫睘鎬ф槧灏勬枃浠跺悕锛屾湭鍦╪acos涓婃壘鍒扮浉鍏抽厤缃紝璇峰強鏃舵洿鏂皀acos涓婄殑閰嶇疆锛�");
+ }else {
+ groupMapAttrXML.setIsEnable(true);
+ return R.success("鏂板鎴愬姛锛�");
+ }
+ }
+
+ /**
+ * 鑾峰彇xml鏂囦欢涓唴瀹�
+ * @return
+ */
+ private String getXMLContent(String xmlPath) throws ServerException {
+ try {
+ File file = new File(xmlPath);
byte[] bytes = Files.readAllBytes(Paths.get(file.toURI()));
return new String(bytes);
} catch (Exception e) {
- throw new ServerException(StringUtil.format("璇诲彇%s鏂囦欢澶辫触锛屽師鍥狅細%s",xmlName,e.getMessage()));
+ throw new ServerException(StringUtil.format("璇诲彇%s璺緞涓嬬殑xml鏂囦欢澶辫触锛屽師鍥狅細%s",xmlPath,e.getMessage()));
}
}
--
Gitblit v1.9.3