Source/UBCS/ubcs-service-api/pom.xml
@@ -27,6 +27,7 @@ <module>ubcs-ddl-api</module> <module>ubcs-webservice-api</module> <module>ubcs-workflow-api</module> <module>ubcs-file-api</module> </modules> <dependencies> Source/UBCS/ubcs-service-api/ubcs-file-api/pom.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>ubcs-service-api</artifactId> <groupId>com.vci.ubcs</groupId> <version>3.0.1.RELEASE</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ubcs-file-api</artifactId> <dependencies> <dependency> <groupId>com.vci.ubcs</groupId> <artifactId>ubcs-util-api</artifactId> <version>3.0.1.RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.8.2</version> <scope>compile</scope> </dependency> </dependencies> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> </project> Source/UBCS/ubcs-service-api/ubcs-file-api/src/main/java/com/vci/ubcs/file/constant/VciFileEnumConstant.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.vci.ubcs.file.constant; /** * æä»¶æå¡ä¸æä¸¾çéæå¼ * @author weidy * @date 2020/3/12 */ public class VciFileEnumConstant { /** * æä»¶ä¼ è¾åè®® */ public static final String FILE_TRANS_PROTOCOL = "fileTransProtocol"; /** * æä»æä½ç³»ç»çç±»å */ public static final String FILE_SERVICE_OS_TYPE = "fileServiceOsType"; } Source/UBCS/ubcs-service-api/ubcs-file-api/src/main/java/com/vci/ubcs/file/constant/VciFileLangCodeConstant.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,88 @@ package com.vci.ubcs.file.constant; /** * æä»¶æå¡çå¤è¯ä»£å· * @author weidy * @date 2020/8/4 13:37 */ public class VciFileLangCodeConstant { /** * æä»¶æªæ¾å° */ public static final String FILE_NOT_FOUND = "fileNotFound"; /** * å缩æä»¶é误 */ public static final String ZIP_FILE_ERROR = "zipFileError"; /** * å缩å çå称为空 */ public static final String ZIP_FILE_NAME_NULL = "zipFileNameNull"; /** * æä»¶ä¸ºç©º */ public static final String FILES_NULL = "fileNull"; /** * æä»¶ä»ä¸åå¨ */ public static final String FILE_VOLUME_NOT_EXIST ="fileVolumeNotExist"; /** * ææ¡£ç±»åä¸åå¨ */ public static final String FILE_DOC_CLASSIFY_NOT_EXIST = "fileDocClassifyNotExist"; /** * æä»¶çæ */ public static final String FILE_RELEASED = "fileReleased"; /** * æä»¶ä¿¡æ¯ä¸åå¨ */ public static final String FILE_INFO_NOT_EXIST = "fileInfoNotExist"; /** * æä»¶ä¿¡æ¯åå§å失败 */ public static final String FILE_INFO_INIT_FAIL = "fileInfoInitFail"; /** * æä»¶ä¿¡æ¯åå§åæå */ public static final String FILE_INFO_INIT_SUCCESS = "fileInfoInitSuccess"; /** * 读åæä»¶å¤±è´¥ */ public static final String FILE_READ_FAIL = "fileReadFail"; /** * ç®å½ä¸åå¨ */ public static final String FOLDER_NOT_EXIST = "folderNotExist"; /** * 䏿¯æä»¶å¤¹ */ public static final String IS_NOT_FOLDER = "isNotFolder"; /** * 读åå缩å 失败 */ public static final String ZIP_FILE_READ_ERROR = "zipFileReadError"; /** * æä»¶ä¸åå¨ï¼æ æ³å ±äº« */ public static final String FILE_NOT_EXIST_CANNOT_SHARED = "fileNotExistCannotShared"; /** * æä»¶å ±äº«å¤±è´¥ */ public static final String FILE_SHARED_FAIL = "fileSharedFail"; } Source/UBCS/ubcs-service-api/ubcs-file-api/src/main/java/com/vci/ubcs/file/enumpck/VciFileTransProtocolEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,145 @@ package com.vci.ubcs.file.enumpck; import com.vci.ubcs.file.constant.VciFileEnumConstant; import com.vci.ubcs.starter.annotation.VciEnum; import com.vci.ubcs.starter.web.enumpck.BaseEnum; /** * æä»¶ä¼ è¾çåè®®æ¹å¼ * @author weidy * @date 2020/3/11 */ @VciEnum(name = VciFileEnumConstant.FILE_TRANS_PROTOCOL,text = "æä»¶ä¼ è¾çåè®®") public enum VciFileTransProtocolEnum implements BaseEnum { /** * å¹³å°åæçCORBAæå¡ */ CORBA("corba","å¹³å°åæçCORBAæå¡"), /** * minioè½»éåæä»¶æå¡ */ MINIO("minio","è½»éåæä»¶æå¡"), /** * mongoDBåå¸å¼æä»¶æå¡ */ MONGO("mongo","mongoDBåå¸å¼æä»¶æå¡"), /** * åå¨å°FTPæå¡ä¸ */ FTP("ftp","åå¨å°FTPæå¡ä¸"), /** * ä¸è½½æå */ LOCAL("local","æ¬å°åå¨"), /** * HTTPæ¥ç */ HTTP("http","ä» ä½¿ç¨HTTPæ¥ç"), /** * NASæå¡ä¸åå¨ */ NAS("nas","NASæå¡ä¸åå¨"), /** * Thriftè¿ç¨è°ç¨ */ THRIFT("thrift","Thriftè¿ç¨è°ç¨"); /** * æä¸¾å¼ */ private String value; /** * æä¸¾æ¾ç¤ºå¼ */ private String text; /** * è·åæä¸¾å¼ * @return æä¸¾å¼ */ @Override public String getValue() { return value; } /** * 设置æä¸¾å¼ * @param value æä¸¾å¼ */ public void setValue(String value) { this.value = value; } /** * è·åæ¾ç¤ºææ¬ * @return æ¾ç¤ºææ¬ */ @Override public String getText() { return text; } /** * 设置æ¾ç¤ºææ¬ * @param text æ¾ç¤ºææ¬ */ public void setText(String text) { this.text = text; } /** * å 鍿é 彿° * @param value æä¸¾çå¼ */ private VciFileTransProtocolEnum(String value, String text){ this.value = value; this.text = text; } /** * æ ¹æ®åç§°è·å对åºçæä¸¾å¼ * @param text åç§° * @return æä¸¾å¼ */ public static String getValueByText(String text){ for(VciFileTransProtocolEnum wenum : VciFileTransProtocolEnum.values()){ if(wenum.getText().equalsIgnoreCase(text)){ return wenum.getValue(); } } return ""; } /** * æ ¹æ®æä¸¾å¼è·ååç§° * @param value æä¸¾å¼ * @return åç§° */ public static String getTextByValue(String value){ for(VciFileTransProtocolEnum wenum : VciFileTransProtocolEnum.values()){ if(wenum.getValue().equalsIgnoreCase(value)){ return wenum.getText(); } } return ""; } /** * æ ¹æ®æä¸¾å¼è·åæä¸¾å¯¹è±¡ * @param value æä¸¾å¼ * @return æä¸¾å¯¹è±¡ */ public static VciFileTransProtocolEnum forValue(String value){ for(VciFileTransProtocolEnum wenum : VciFileTransProtocolEnum.values()){ if(wenum.getValue().equalsIgnoreCase(value)){ return wenum; } } return null; } } Source/UBCS/ubcs-service-api/ubcs-file-api/src/main/java/com/vci/ubcs/file/properties/VciFileTransProperties.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,63 @@ package com.vci.ubcs.file.properties; import com.vci.ubcs.file.enumpck.VciFileTransProtocolEnum; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; /** * ä¸ä¼ ä¸è½½ * @author weidy * @date 2020/3/11 */ @Configuration @ConfigurationProperties(prefix = "vci.file") public class VciFileTransProperties { /** * ä¼ è¾åè®® */ private VciFileTransProtocolEnum transProtocal; /** * æ¯å¦æ£æ¥æ°æ®åºè¡¨ */ private String checkTableExist; /** * å缩å çæ ¼å¼ */ private String zipCharset = "GBK"; public VciFileTransProtocolEnum getTransProtocal() { return transProtocal; } public void setTransProtocal(VciFileTransProtocolEnum transProtocal) { this.transProtocal = transProtocal; } public String getCheckTableExist() { return checkTableExist; } public void setCheckTableExist(String checkTableExist) { this.checkTableExist = checkTableExist; } public String getZipCharset() { return zipCharset; } public void setZipCharset(String zipCharset) { this.zipCharset = zipCharset; } @Override public String toString() { return "VciFileTransProperties{" + "transProtocal=" + transProtocal + ", checkTableExist='" + checkTableExist + '\'' + ", zipCharset='" + zipCharset + '\'' + '}'; } } Source/UBCS/ubcs-service-api/ubcs-file-api/src/main/java/com/vci/ubcs/file/util/VciZipUtil.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,195 @@ package com.vci.ubcs.file.util; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.vci.ubcs.file.constant.VciFileLangCodeConstant; import com.vci.ubcs.file.properties.VciFileTransProperties; import com.vci.ubcs.starter.exception.VciBaseException; import com.vci.ubcs.starter.web.util.LangBaseUtil; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream; /** * zipç¸å ³çå·¥å ·ç±» * @author weidy * @date 2020/3/12 */ @Component public class VciZipUtil { /** * æä»¶ä¼ è¾é ç½® */ @Autowired(required = false) private VciFileTransProperties transProperties; /** * è·åzipçå符é * @return é»è®¤ä¸ºGBKï¼å¦åéè¦é ç½® */ private String getZipCharset(){ return (transProperties == null || StringUtils.isBlank(transProperties.getZipCharset()))?"GBK":transProperties.getZipCharset(); } /** * 尿件夹å缩æå缩å * @param folder æä»¶å¤¹è·¯å¾ * @param zipFileName zipæä»¶å * @throws VciBaseException åæ°ä¸ºç©ºæè æ·»å åºéç伿åºå¼å¸¸ */ public void folderToZipFile(String folder, String zipFileName) throws VciBaseException { folderToZipFile(folder,zipFileName,getZipCharset()); } /** * 尿件夹å缩æå缩å * @param folder æä»¶å¤¹è·¯å¾ * @param zipFileName zipæä»¶å * @param zipEncode zipçå符éï¼windowsåºè¯¥ä¸ºGBK * @throws VciBaseException åæ°ä¸ºç©ºæè æ·»å åºéç伿åºå¼å¸¸ */ public void folderToZipFile(String folder, String zipFileName,String zipEncode) throws VciBaseException{ File sourceFile = new File(folder); if(!sourceFile.exists()){ throw new VciBaseException(VciFileLangCodeConstant.FILE_NOT_FOUND,new String[]{folder}); } ZipOutputStream zos = null; try { zos = new ZipOutputStream(new FileOutputStream(zipFileName)); zos.setEncoding(zipEncode); //é»è®¤æ¯UTF-8æ ¼å¼ç addFileToZip(zos, new File(folder).listFiles(),folder + File.separator); }catch (Throwable e){ throw new VciBaseException(LangBaseUtil.getErrorMsg(e),new String[]{}); }finally { try{ if(zos!=null){ zos.close(); } }catch (Exception e){ } } } /** * 尿件夹å缩æå缩å * @param zos zipè¾åºæµ * @param files è¦å缩çæä»¶ * @param rootPath å缩çæä»¶ä¸çé¡¶å±ç®å½ * @throws VciBaseException æä»¶ä¸åå¨ï¼æè å 容åºç°éè¯¯ä¼æåºå¼å¸¸ */ private void addFileToZip(ZipOutputStream zos,File[] files,String rootPath) throws VciBaseException{ if(files!=null && files.length>0) { for (File file : files) { if(StringUtils.isBlank(rootPath)){ try { rootPath = file.getParent(); if (rootPath == null) { rootPath = file.getPath(); } }catch (Throwable e){ rootPath = file.getPath(); } } if (!file.exists()) { throw new VciBaseException(VciFileLangCodeConstant.FILE_NOT_FOUND,new String[]{file.getAbsolutePath()}); } if (file.isDirectory()) { addFileToZip(zos, file.listFiles(),rootPath); }else{ InputStream is = null; try { is = new FileInputStream(file); String entryName = file.getAbsolutePath().replace(rootPath,""); if(entryName.startsWith("\\")) { entryName = entryName.substring(1); } ZipEntry zipEntry = new ZipEntry(entryName); zos.putNextEntry(zipEntry); byte[] b = new byte[100]; int length = 0; while ((length = is.read(b)) != -1) { zos.write(b, 0, length); } } catch (Exception e) { throw new VciBaseException(VciFileLangCodeConstant.ZIP_FILE_ERROR,new String[]{file.getAbsolutePath()},e); } finally { try { IOUtils.closeQuietly(is); } catch (Exception e) { } } } } } } /** * å°å个æä»¶æ·»å å°zipä¸ * @param file æä»¶ * @param zipFile zipæä»¶ * @throws VciBaseException åæ°ä¸ºç©ºæè æ·»å åºéç伿åºå¼å¸¸ */ public void addFileToZip(File file, String zipFile) throws VciBaseException{ if(file == null || !file.exists() ){ throw new VciBaseException(VciFileLangCodeConstant.FILE_NOT_FOUND ,new String[]{file.getAbsolutePath()}); } if(StringUtils.isBlank(zipFile)){ throw new VciBaseException(VciFileLangCodeConstant.ZIP_FILE_NAME_NULL,new String[0]); } addFileToZip(new File[]{file},zipFile); } /** * å°å¤ä¸ªä¸ªæä»¶æ·»å å°zipä¸ * @param files æä»¶ * @param zipFile zipæä»¶ * @throws VciBaseException åæ°ä¸ºç©ºæè æ·»å åºéç伿åºå¼å¸¸ */ public void addFileToZip(File[] files, String zipFile) throws VciBaseException{ addFileToZip(files, zipFile,getZipCharset()); } /** * å°å¤ä¸ªä¸ªæä»¶æ·»å å°zipä¸ * @param files æä»¶ * @param zipFile zipæä»¶ * @param zipEncode zipçå符é * @throws VciBaseException åæ°ä¸ºç©ºæè æ·»å åºéç伿åºå¼å¸¸ */ public void addFileToZip(File[] files, String zipFile,String zipEncode) throws VciBaseException{ if(files == null || files.length == 0){ throw new VciBaseException(VciFileLangCodeConstant.FILES_NULL,new String[0]); } if(StringUtils.isBlank(zipFile)){ throw new VciBaseException(VciFileLangCodeConstant.ZIP_FILE_NAME_NULL,new String[0]); } ZipOutputStream zos = null; try { zos = new ZipOutputStream(new FileOutputStream(zipFile)); zos.setEncoding(zipEncode); addFileToZip(zos, files,""); }catch (Throwable e){ throw new VciBaseException(LangBaseUtil.getErrorMsg(e),new String[]{},e); }finally { try{ if(zos!=null){ zos.close(); } }catch (Exception e){ } } } } Source/UBCS/ubcs-service/ubcs-code/pom.xml
@@ -145,51 +145,9 @@ <!--axis2 end --> <dependency> <groupId>com.vci</groupId> <artifactId>vci-file-api</artifactId> <version>1.0-SNAPSHOT</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </exclusion> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> </exclusion> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> </exclusion> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jul</artifactId> </exclusion> <exclusion> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form</artifactId> </exclusion> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </exclusion> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </exclusion> <exclusion> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> </exclusion> <exclusion> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form-spring</artifactId> </exclusion> </exclusions> <groupId>com.vci.ubcs</groupId> <artifactId>ubcs-file-api</artifactId> <version>3.0.1.RELEASE</version> </dependency> </dependencies> Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -3,7 +3,6 @@ import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.vci.file.util.VciZipUtil; import com.vci.ubcs.code.bo.AttributeValue; import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO; @@ -21,6 +20,7 @@ import com.vci.ubcs.code.vo.webserviceModel.attrmap.DataObjectVO; import com.vci.ubcs.code.vo.webserviceModel.attrmap.RowDatas; import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO; import com.vci.ubcs.file.util.VciZipUtil; import com.vci.ubcs.omd.feign.IBtmTypeClient; import com.vci.ubcs.omd.feign.IWebSecretClient; import com.vci.ubcs.omd.vo.BtmTypeVO;