Merge remote-tracking branch 'origin/develop_master' into develop_1
This commit is contained in:
@@ -121,7 +121,7 @@ public class ActSarItemsEOService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* @Description: 标准解读流程入库"
|
* @Description: 国内外标准流程入库"
|
||||||
* @Author: yangxuenan
|
* @Author: yangxuenan
|
||||||
* @Date: 2020/12/7 13:48
|
* @Date: 2020/12/7 13:48
|
||||||
* @Param: [standJson]
|
* @Param: [standJson]
|
||||||
|
|||||||
@@ -0,0 +1,243 @@
|
|||||||
|
<?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>foton-slrs-system-rest</artifactId>
|
||||||
|
<groupId>com.adc</groupId>
|
||||||
|
<version>3.0.0</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>adc-da-convert</artifactId>
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
|
<java.version>1.7</java.version>
|
||||||
|
<java_source_version>1.7</java_source_version>
|
||||||
|
<java_target_version>1.7</java_target_version>
|
||||||
|
<spring.version>4.3.9.RELEASE</spring.version>
|
||||||
|
<mybatis.version>3.4.0</mybatis.version>
|
||||||
|
<shiro.version>1.4.0-RC2</shiro.version>
|
||||||
|
<poi.version>4.1.2</poi.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>adc</id>
|
||||||
|
<url>http://60.247.58.121:8182/nexus/content/groups/public</url>
|
||||||
|
<releases>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</releases>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</snapshots>
|
||||||
|
</repository>
|
||||||
|
|
||||||
|
</repositories>
|
||||||
|
|
||||||
|
<distributionManagement>
|
||||||
|
<repository>
|
||||||
|
<id>thirdparty</id>
|
||||||
|
<name>Nexus Thirdparty Repository</name>
|
||||||
|
<url>http://60.247.58.121:8182/nexus/content/repositories/thirdparty/</url>
|
||||||
|
</repository>
|
||||||
|
</distributionManagement>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.adc</groupId>
|
||||||
|
<artifactId>adc-da-base</artifactId>
|
||||||
|
<version>2.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.adc</groupId>
|
||||||
|
<artifactId>adc-da-sys</artifactId>
|
||||||
|
<version>3.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.adc</groupId>
|
||||||
|
<artifactId>adc-da-util</artifactId>
|
||||||
|
<version>2.2.4</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>org.bouncycastle</groupId>
|
||||||
|
<artifactId>bcprov-jdk14</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-tx</artifactId>
|
||||||
|
<version>${spring.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-web</artifactId>
|
||||||
|
<version>${spring.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mybatis</groupId>
|
||||||
|
<artifactId>mybatis</artifactId>
|
||||||
|
<version>${mybatis.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.validation</groupId>
|
||||||
|
<artifactId>validation-api</artifactId>
|
||||||
|
<version>2.0.1.Final</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- SECURITY begin -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.shiro</groupId>
|
||||||
|
<artifactId>shiro-core</artifactId>
|
||||||
|
<version>${shiro.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- SECURITY end -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.adc</groupId>
|
||||||
|
<artifactId>adc-da-excel</artifactId>
|
||||||
|
<version>2.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- poi begin -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi</artifactId>
|
||||||
|
<version>${poi.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-ooxml</artifactId>
|
||||||
|
<version>${poi.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-ooxml-schemas</artifactId>
|
||||||
|
<version>${poi.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-scratchpad</artifactId>
|
||||||
|
<version>${poi.version}</version>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
<!-- poi end -->
|
||||||
|
|
||||||
|
<!--上传文件-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.adc</groupId>
|
||||||
|
<artifactId>adc-da-file</artifactId>
|
||||||
|
<version>RELEASE</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.adc</groupId>
|
||||||
|
<artifactId>adc-da-file</artifactId>
|
||||||
|
<version>2.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--OFFICE CONVERTER BEGIN-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.servlets</groupId>
|
||||||
|
<artifactId>cos</artifactId>
|
||||||
|
<version>05Nov2002</version>
|
||||||
|
</dependency>
|
||||||
|
<!--<dependency>
|
||||||
|
<groupId>com.artofsolving</groupId>
|
||||||
|
<artifactId>jodconverter</artifactId>
|
||||||
|
<version>2.2.1</version>
|
||||||
|
</dependency>-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.artofsolving</groupId>
|
||||||
|
<artifactId>jodconverter</artifactId>
|
||||||
|
<scope>system</scope>
|
||||||
|
<version>2.2.2</version>
|
||||||
|
<systemPath>${basedir}/src/main/lib/jodconverter-2.2.2.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openoffice</groupId>
|
||||||
|
<artifactId>juh</artifactId>
|
||||||
|
<version>3.0.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openoffice</groupId>
|
||||||
|
<artifactId>jurt</artifactId>
|
||||||
|
<version>3.0.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openoffice</groupId>
|
||||||
|
<artifactId>ridl</artifactId>
|
||||||
|
<version>3.0.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-jdk14</artifactId>
|
||||||
|
<version>1.7.21</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openoffice</groupId>
|
||||||
|
<artifactId>unoil</artifactId>
|
||||||
|
<version>3.0.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.thoughtworks.xstream</groupId>
|
||||||
|
<artifactId>xstream</artifactId>
|
||||||
|
<version>1.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
<!--OFFICE CONVERTER END-->
|
||||||
|
|
||||||
|
<!--ITEXT7 PDF文档编辑-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.itextpdf</groupId>
|
||||||
|
<artifactId>kernel</artifactId>
|
||||||
|
<version>7.0.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.itextpdf</groupId>
|
||||||
|
<artifactId>io</artifactId>
|
||||||
|
<version>7.0.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.itextpdf</groupId>
|
||||||
|
<artifactId>layout</artifactId>
|
||||||
|
<version>7.0.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.itextpdf</groupId>
|
||||||
|
<artifactId>forms</artifactId>
|
||||||
|
<version>7.0.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.itextpdf</groupId>
|
||||||
|
<artifactId>pdfa</artifactId>
|
||||||
|
<version>7.0.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.itextpdf</groupId>
|
||||||
|
<artifactId>pdftest</artifactId>
|
||||||
|
<version>7.0.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
|
<version>1.7.18</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>${java.version}</source>
|
||||||
|
<target>${java.version}</target>
|
||||||
|
<compilerVersion>${java.version}</compilerVersion>
|
||||||
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.adc.da.convert.common;
|
||||||
|
|
||||||
|
public enum ConvertStateEnum {
|
||||||
|
NO_CONVERT(0,"未转换"),CONVERING(1,"转换中"),CONVERT_SUCCESS(2,"转换成功"),CONVERT_ERROR(3,"转换失败");
|
||||||
|
|
||||||
|
private int value;
|
||||||
|
private String lable;
|
||||||
|
|
||||||
|
private ConvertStateEnum(int value, String lable) {
|
||||||
|
this.value = value;
|
||||||
|
this.lable = lable;
|
||||||
|
}
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
public String getLable() {
|
||||||
|
return lable;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,265 @@
|
|||||||
|
package com.adc.da.convert.common;
|
||||||
|
|
||||||
|
import com.artofsolving.jodconverter.DocumentConverter;
|
||||||
|
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
|
||||||
|
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
|
||||||
|
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
|
||||||
|
import com.itextpdf.kernel.pdf.PdfReader;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author yangxuenan
|
||||||
|
* @Description 文档转换
|
||||||
|
* Date 2018/8/24 13:44
|
||||||
|
* @Param
|
||||||
|
* @return
|
||||||
|
**/
|
||||||
|
public class DocConverter {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(DocConverter.class);
|
||||||
|
// 环境 1:windows 2:linux
|
||||||
|
private static final int ENVIRONMENT = 1;
|
||||||
|
// (只涉及pdf2swf路径问题)
|
||||||
|
private String fileString;
|
||||||
|
// 输入路径 ,如果不设置就输出在默认的位置
|
||||||
|
private String outputPath = "";
|
||||||
|
//转化文件名称
|
||||||
|
private String fileName;
|
||||||
|
//转换pdf文件
|
||||||
|
private File pdfFile;
|
||||||
|
//转换成swf文件
|
||||||
|
private File swfFile;
|
||||||
|
//待转换doc文件
|
||||||
|
private File docFile;
|
||||||
|
//为文件加水印后文件路径
|
||||||
|
String waterPdfPath;
|
||||||
|
|
||||||
|
@Value("${convert.host}")
|
||||||
|
private String convertHost;
|
||||||
|
|
||||||
|
public DocConverter(String fileString,String fileType) {
|
||||||
|
ini(fileString,fileType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author yangxuenan
|
||||||
|
* @Description 重新设置file
|
||||||
|
* Date 2018/8/24 13:50
|
||||||
|
* @Param [fileString, fileType]
|
||||||
|
* @return void
|
||||||
|
**/
|
||||||
|
public void setFile(String fileString,String fileType) {
|
||||||
|
ini(fileString,fileType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author yangxuenan
|
||||||
|
* @Description 初始化
|
||||||
|
* Date 2018/8/24 13:50
|
||||||
|
* @Param [fileString, fileType]
|
||||||
|
* @return void
|
||||||
|
**/
|
||||||
|
private void ini(String fileString,String fileType) {
|
||||||
|
this.fileString = fileString;
|
||||||
|
fileName = fileString.substring(0, fileString.lastIndexOf("."));
|
||||||
|
//判断文件类型,进行不同操作
|
||||||
|
if(".doc".equals(fileType) || ".docx".equals(fileType)){
|
||||||
|
docFile = new File(fileString);
|
||||||
|
pdfFile = new File(fileName + ".pdf");
|
||||||
|
swfFile = new File(fileName + ".swf");
|
||||||
|
} else if (".pdf".equals(fileType)){
|
||||||
|
pdfFile = new File(fileName + ".pdf");
|
||||||
|
swfFile = new File(fileName + ".swf");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author yangxuenan
|
||||||
|
* @Description 转为PDF
|
||||||
|
* Date 2018/8/24 13:50
|
||||||
|
* @Param []
|
||||||
|
* @return void
|
||||||
|
**/
|
||||||
|
private void doc2pdf() throws Exception {
|
||||||
|
if (docFile.exists()) {
|
||||||
|
if (!pdfFile.exists()) {
|
||||||
|
logger.info("转换服务地址接口:"+convertHost);
|
||||||
|
//连接openOffice
|
||||||
|
OpenOfficeConnection connection = new SocketOpenOfficeConnection(convertHost,8100);
|
||||||
|
try {
|
||||||
|
connection.connect();
|
||||||
|
//使用openOffice将doc文件转换问pdf文件
|
||||||
|
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
|
||||||
|
converter.convert(docFile, pdfFile);
|
||||||
|
// 关闭连接
|
||||||
|
connection.disconnect();
|
||||||
|
logger.info("****pdf转换成功,PDF输出:" + pdfFile.getPath()+ "****");
|
||||||
|
} catch (java.net.ConnectException e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
logger.info("****swf转换器异常,openoffice服务未启动!****");
|
||||||
|
throw e;
|
||||||
|
} catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
logger.info("****swf转换器异常,读取转换文件失败****");
|
||||||
|
throw e;
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("****已经转换为pdf,不需要再进行转化****");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("****swf转换器异常,需要转换的文档不存在,无法转换****");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author yangxuenan
|
||||||
|
* @Description 转换成 swf
|
||||||
|
* Date 2018/8/24 13:51
|
||||||
|
* @Param [fileType]
|
||||||
|
* @return void
|
||||||
|
**/
|
||||||
|
/*private void pdf2swf(String fileType) throws Exception {
|
||||||
|
Runtime r = Runtime.getRuntime();
|
||||||
|
if (!swfFile.exists()) {
|
||||||
|
if (pdfFile.exists()) {
|
||||||
|
// windows环境处理
|
||||||
|
if (ENVIRONMENT == 1) {
|
||||||
|
try {
|
||||||
|
//使用swfTools工具将pdf文件转换为swf文件
|
||||||
|
//String paperSwfFile = swfFile.getPath().replace(".swf","%.swf");
|
||||||
|
Process p = r.exec("G:/swftTools/pdf2swf.exe "+ waterPdfPath + " -o "+ swfFile.getPath() + " -f -T 9 -t -s languagedir=G:/xpdf/xpdf-chinese-simplified");
|
||||||
|
logger.info("****swf转换成功,文件输出:" + swfFile.getPath() + "****");
|
||||||
|
//如果源文件为doc类文件,将过渡的pdf文件删除
|
||||||
|
if(".doc".equals(fileType) || ".docx".equals(fileType)){
|
||||||
|
if (pdfFile.exists()) {
|
||||||
|
if(!pdfFile.delete()){
|
||||||
|
logger.error("文件删除失败!!!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
} else if (ENVIRONMENT == 2) {// linux环境处理
|
||||||
|
try {
|
||||||
|
Process p = r.exec("pdf2swf " + pdfFile.getPath()
|
||||||
|
+ " -o " + swfFile.getPath() + " -f -T 9 -t -s storeallcharacters");
|
||||||
|
logger.info("****swf转换成功,文件输出:" + swfFile.getPath() + "****");
|
||||||
|
if (pdfFile.exists()) {
|
||||||
|
if(!pdfFile.delete()){
|
||||||
|
logger.error("文件删除失败!!!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("****pdf不存在,无法转换****");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("****swf已经存在不需要转换****");
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
static String loadStream(InputStream in) throws IOException {
|
||||||
|
|
||||||
|
int ptr = 0;
|
||||||
|
in = new BufferedInputStream(in);
|
||||||
|
StringBuilder buffer = new StringBuilder();
|
||||||
|
|
||||||
|
while ((ptr = in.read()) != -1) {
|
||||||
|
buffer.append((char) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return buffer.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author yangxuenan
|
||||||
|
* @Description 转换主方法
|
||||||
|
* Date 2018/8/24 13:51
|
||||||
|
* @Param [fileType]
|
||||||
|
* @return boolean
|
||||||
|
**/
|
||||||
|
public boolean conver(String fileType) {
|
||||||
|
|
||||||
|
if (swfFile.exists()) {
|
||||||
|
logger.info("****swf转换器开始工作,该文件已经转换为swf****");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ENVIRONMENT == 1) {
|
||||||
|
logger.info("****swf转换器开始工作,当前设置运行环境windows****");
|
||||||
|
} else {
|
||||||
|
logger.info("****swf转换器开始工作,当前设置运行环境linux****");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
//判断待转换文件类型,如果为doc文件需要先转为pdf类型文件
|
||||||
|
if(".doc".equals(fileType) || ".docx".equals(fileType)){
|
||||||
|
doc2pdf();
|
||||||
|
// pdf2swf(fileType);
|
||||||
|
} else if (".pdf".equals(fileType)){
|
||||||
|
// pdf2swf(fileType);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (swfFile.exists()) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author yangxuenan
|
||||||
|
* @Description 返回文件路径
|
||||||
|
* Date 2018/8/24 13:52
|
||||||
|
* @Param []
|
||||||
|
* @return java.lang.String
|
||||||
|
**/
|
||||||
|
public String getswfPath() {
|
||||||
|
if (swfFile.exists()) {
|
||||||
|
//获取转换后的swf文件路径
|
||||||
|
String tempString = swfFile.getPath();
|
||||||
|
tempString = tempString.replaceAll("\\\\", "/");
|
||||||
|
return tempString;
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author yangxuenan
|
||||||
|
* @Description 设置输出路径
|
||||||
|
* Date 2018/8/24 13:52
|
||||||
|
* @Param [outputPath]
|
||||||
|
* @return void
|
||||||
|
**/
|
||||||
|
public void setOutputPath(String outputPath) {
|
||||||
|
this.outputPath = outputPath;
|
||||||
|
if (!outputPath.equals("")) {
|
||||||
|
String realName = fileName.substring(fileName.lastIndexOf("/"),
|
||||||
|
fileName.lastIndexOf("."));
|
||||||
|
if (outputPath.charAt(outputPath.length()) == '/') {
|
||||||
|
swfFile = new File(outputPath + realName + ".swf");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,261 @@
|
|||||||
|
package com.adc.da.convert.common;
|
||||||
|
|
||||||
|
import com.artofsolving.jodconverter.DocumentConverter;
|
||||||
|
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
|
||||||
|
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
|
||||||
|
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
|
||||||
|
import com.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import java.io.*;
|
||||||
|
|
||||||
|
public class DocConverterPdf {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(DocConverterPdf.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 在所需的类里 添加下面配置
|
||||||
|
* // 文档转换远程服务IP地址
|
||||||
|
* @Value("${convert.host}")
|
||||||
|
* private String convertHost;
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* fileString : 新替换的文件名
|
||||||
|
* fileType : 文件后缀类型
|
||||||
|
* 调用方法如下
|
||||||
|
* DocConverterPdf d = new DocConverterPdf(fileString,fileType);
|
||||||
|
* d.setConvertHost(convertHost);
|
||||||
|
* //调用conver方法开始转换
|
||||||
|
* File getPdf = d.conver(fileType);
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
private static final int ENVIRONMENT = 1;// 环境 1:windows 2:linux
|
||||||
|
private String fileString;// (只涉及pdf2swf路径问题)
|
||||||
|
private String outputPath = "";// 输入路径 ,如果不设置就输出在默认的位置
|
||||||
|
private String fileName;
|
||||||
|
private File pdfFile;
|
||||||
|
private File convertPdfFile;
|
||||||
|
private File swfFile;
|
||||||
|
private File docFile;
|
||||||
|
String waterPdfPath;
|
||||||
|
|
||||||
|
private String convertHost;
|
||||||
|
|
||||||
|
public DocConverterPdf(String fileString, String fileType) {
|
||||||
|
ini(fileString,fileType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重新设置file
|
||||||
|
*
|
||||||
|
* @param fileString
|
||||||
|
*/
|
||||||
|
public void setFile(String fileString,String fileType) {
|
||||||
|
ini(fileString,fileType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化
|
||||||
|
*
|
||||||
|
* @param fileString
|
||||||
|
*/
|
||||||
|
private void ini(String fileString,String fileType) {
|
||||||
|
this.fileString = fileString;
|
||||||
|
fileName = fileString.substring(0, fileString.lastIndexOf("."));
|
||||||
|
if(".doc".equals(fileType.toLowerCase()) || ".docx".equals(fileType.toLowerCase()) || ".xlsx".equals(fileType.toLowerCase()) || ".xls".equals(fileType.toLowerCase()) || ".ppt".equals(fileType.toLowerCase()) || ".pptx".equals(fileType.toLowerCase())){
|
||||||
|
docFile = new File(fileString);
|
||||||
|
convertPdfFile=new File(fileName+"_C"+ ".pdf");
|
||||||
|
pdfFile = new File(fileName + ".pdf");
|
||||||
|
swfFile = new File(fileName + ".swf");
|
||||||
|
} else if (".pdf".equals(fileType)){
|
||||||
|
pdfFile = new File(fileName + ".pdf");
|
||||||
|
swfFile = new File(fileName + ".swf");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转为PDF
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
*/
|
||||||
|
private void doc2pdf() throws Exception {
|
||||||
|
if (!pdfFile.exists()) {
|
||||||
|
OpenOfficeConnection connection = null;
|
||||||
|
logger.info("转换服务地址接口:"+convertHost);
|
||||||
|
try {
|
||||||
|
if(StringUtils.isNotBlank(convertHost)){
|
||||||
|
connection = new SocketOpenOfficeConnection(convertHost,8100);
|
||||||
|
}else{
|
||||||
|
connection = new SocketOpenOfficeConnection(8100);
|
||||||
|
}
|
||||||
|
connection.connect();
|
||||||
|
DocumentConverter converter = new StreamOpenOfficeDocumentConverter(connection);
|
||||||
|
converter.convert(docFile, convertPdfFile);
|
||||||
|
|
||||||
|
//addWaterToPdf(pdfFile,userId);
|
||||||
|
|
||||||
|
// close the connection
|
||||||
|
connection.disconnect();
|
||||||
|
// 开始设置PDF文档相关属性保证其安全性
|
||||||
|
logger.info("开始设置转换后的PDF文件安全性相关设置");
|
||||||
|
PDFEditUtils.setPDFFileSecurity(pdfFile.getAbsolutePath(),convertPdfFile.getAbsolutePath());
|
||||||
|
logger.info("****pdf转换成功,PDF输出:" + pdfFile.getPath()+ "****");
|
||||||
|
} catch (java.net.ConnectException e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
logger.info("****pdf转换器异常,openoffice服务未启动!****");
|
||||||
|
throw e;
|
||||||
|
} catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
logger.info("****pdf转换器异常,读取转换文件失败****");
|
||||||
|
throw e;
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("****已经转换为pdf,不需要再进行转化****");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换成 swf
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
/*private void pdf2swf(String fileType) throws Exception {
|
||||||
|
Runtime r = Runtime.getRuntime();
|
||||||
|
if (!swfFile.exists()) {
|
||||||
|
if (pdfFile.exists()) {
|
||||||
|
if (ENVIRONMENT == 1) {// windows环境处理
|
||||||
|
try {
|
||||||
|
//String paperSwfFile = swfFile.getPath().replace(".swf","%.swf");
|
||||||
|
Process p = r.exec("G:/swftTools/pdf2swf.exe "+ waterPdfPath + " -o "+ swfFile.getPath() + " -f -T 9 -t -s languagedir=G:/xpdf/xpdf-chinese-simplified");
|
||||||
|
logger.info("****swf转换成功,文件输出:" + swfFile.getPath() + "****");
|
||||||
|
if(".doc".equals(fileType) || ".docx".equals(fileType)){
|
||||||
|
*//*if (pdfFile.exists()) {
|
||||||
|
pdfFile.delete();
|
||||||
|
}*//*
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
} else if (ENVIRONMENT == 2) {// linux环境处理
|
||||||
|
try {
|
||||||
|
Process p = r.exec("pdf2swf " + pdfFile.getPath()
|
||||||
|
+ " -o " + swfFile.getPath() + " -f -T 9 -t -s storeallcharacters");
|
||||||
|
logger.info("****swf转换成功,文件输出:" + swfFile.getPath() + "****");
|
||||||
|
if (pdfFile.exists()) {
|
||||||
|
if(!pdfFile.delete()){
|
||||||
|
logger.error("文件删除失败!!!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("****pdf不存在,无法转换****");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("****swf已经存在不需要转换****");
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
static String loadStream(InputStream in) throws IOException {
|
||||||
|
|
||||||
|
int ptr = 0;
|
||||||
|
in = new BufferedInputStream(in);
|
||||||
|
StringBuilder buffer = new StringBuilder();
|
||||||
|
while ((ptr = in.read()) != -1) {
|
||||||
|
buffer.append((char) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return buffer.toString();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 转换主方法
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public File conver(String fileType) {
|
||||||
|
if (ENVIRONMENT == 1) {
|
||||||
|
logger.info("****swf转换器开始工作,当前设置运行环境windows****");
|
||||||
|
} else {
|
||||||
|
logger.info("****swf转换器开始工作,当前设置运行环境linux****");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if(StringUtils.isNotBlank(fileType)){
|
||||||
|
fileType = fileType.toUpperCase();
|
||||||
|
if(".DOC".equals(fileType) || ".DOCX".equals(fileType) || ".XLSX".equals(fileType) || ".XLS".equals(fileType) || ".PPT".equals(fileType) || ".PPTX".equals(fileType)){
|
||||||
|
doc2pdf();
|
||||||
|
/*pdf2swf(fileType);*/
|
||||||
|
} else if (".PDF".equals(fileType)){
|
||||||
|
/*pdf2swf(fileType);*/
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
logger.error("文件类型后缀获取失败,请检查文件名称格式是否正确");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
return new File("");
|
||||||
|
}
|
||||||
|
|
||||||
|
return pdfFile;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回文件路径
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
*/
|
||||||
|
public String getswfPath() {
|
||||||
|
if (swfFile.exists()) {
|
||||||
|
String tempString = swfFile.getPath();
|
||||||
|
tempString = tempString.replaceAll("\\\\", "/");
|
||||||
|
return tempString;
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getpdfPath() {
|
||||||
|
if (pdfFile!= null && !pdfFile.getPath().isEmpty()) {
|
||||||
|
String tempString = pdfFile.getPath();
|
||||||
|
tempString = tempString.replaceAll("\\\\", "/");
|
||||||
|
return tempString;
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置输出路径
|
||||||
|
*/
|
||||||
|
public void setOutputPath(String outputPath) {
|
||||||
|
this.outputPath = outputPath;
|
||||||
|
if (!outputPath.equals("")) {
|
||||||
|
String realName = fileName.substring(fileName.lastIndexOf("/"), fileName.lastIndexOf("."));
|
||||||
|
//TODO 此处的if判断执行的代码逻辑完全一样, 因此将其判断注释掉,直接执行
|
||||||
|
/* if (outputPath.charAt(outputPath.length()) == '/') {
|
||||||
|
swfFile = new File(outputPath + realName + ".swf");
|
||||||
|
} else {
|
||||||
|
swfFile = new File(outputPath + realName + ".swf");
|
||||||
|
}*/
|
||||||
|
swfFile = new File(outputPath + realName + ".swf");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getConvertHost() {
|
||||||
|
return convertHost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConvertHost(String convertHost) {
|
||||||
|
this.convertHost = convertHost;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,225 @@
|
|||||||
|
package com.adc.da.convert.common;
|
||||||
|
|
||||||
|
import com.artofsolving.jodconverter.DocumentConverter;
|
||||||
|
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
|
||||||
|
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
|
||||||
|
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
public class DocConverterPdfOld {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(DocConverterPdf.class);
|
||||||
|
|
||||||
|
private static final int ENVIRONMENT = 1;// 环境 1:windows 2:linux
|
||||||
|
private String fileString;// (只涉及pdf2swf路径问题)
|
||||||
|
private String outputPath = "";// 输入路径 ,如果不设置就输出在默认的位置
|
||||||
|
private String fileName;
|
||||||
|
private File pdfFile;
|
||||||
|
private File convertPdfFile;
|
||||||
|
private File swfFile;
|
||||||
|
private File docFile;
|
||||||
|
String waterPdfPath;
|
||||||
|
|
||||||
|
public DocConverterPdfOld(String fileString, String fileType) {
|
||||||
|
ini(fileString,fileType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重新设置file
|
||||||
|
*
|
||||||
|
* @param fileString
|
||||||
|
*/
|
||||||
|
public void setFile(String fileString,String fileType) {
|
||||||
|
ini(fileString,fileType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化
|
||||||
|
*
|
||||||
|
* @param fileString
|
||||||
|
*/
|
||||||
|
private void ini(String fileString,String fileType) {
|
||||||
|
this.fileString = fileString;
|
||||||
|
fileName = fileString.substring(0, fileString.lastIndexOf("."));
|
||||||
|
if(".doc".equals(fileType) || ".docx".equals(fileType) || ".xlsx".equals(fileType) || ".xls".equals(fileType) || ".ppt".equals(fileType) || ".pptx".equals(fileType)){
|
||||||
|
docFile = new File(fileString);
|
||||||
|
convertPdfFile=new File(fileName+"_C"+ ".pdf");
|
||||||
|
pdfFile = new File(fileName + ".pdf");
|
||||||
|
swfFile = new File(fileName + ".swf");
|
||||||
|
} else if (".pdf".equals(fileType)){
|
||||||
|
pdfFile = new File(fileName + ".pdf");
|
||||||
|
swfFile = new File(fileName + ".swf");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转为PDF
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
*/
|
||||||
|
private void doc2pdf() throws Exception {
|
||||||
|
if (!pdfFile.exists()) {
|
||||||
|
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
|
||||||
|
try {
|
||||||
|
connection.connect();
|
||||||
|
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
|
||||||
|
converter.convert(docFile, convertPdfFile);
|
||||||
|
|
||||||
|
//addWaterToPdf(pdfFile,userId);
|
||||||
|
|
||||||
|
// close the connection
|
||||||
|
connection.disconnect();
|
||||||
|
// 开始设置PDF文档相关属性保证其安全性
|
||||||
|
logger.info("开始设置转换后的PDF文件安全性相关设置");
|
||||||
|
logger.info("****pdf转换成功,PDF输出:" + pdfFile.getPath()+ "****");
|
||||||
|
} catch (java.net.ConnectException e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
logger.info("****pdf转换器异常,openoffice服务未启动!****");
|
||||||
|
throw e;
|
||||||
|
} catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
logger.info("****pdf转换器异常,读取转换文件失败****");
|
||||||
|
throw e;
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("****已经转换为pdf,不需要再进行转化****");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换成 swf
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
/*private void pdf2swf(String fileType) throws Exception {
|
||||||
|
Runtime r = Runtime.getRuntime();
|
||||||
|
if (!swfFile.exists()) {
|
||||||
|
if (pdfFile.exists()) {
|
||||||
|
if (ENVIRONMENT == 1) {// windows环境处理
|
||||||
|
try {
|
||||||
|
//String paperSwfFile = swfFile.getPath().replace(".swf","%.swf");
|
||||||
|
Process p = r.exec("G:/swftTools/pdf2swf.exe "+ waterPdfPath + " -o "+ swfFile.getPath() + " -f -T 9 -t -s languagedir=G:/xpdf/xpdf-chinese-simplified");
|
||||||
|
logger.info("****swf转换成功,文件输出:" + swfFile.getPath() + "****");
|
||||||
|
if(".doc".equals(fileType) || ".docx".equals(fileType)){
|
||||||
|
*//*if (pdfFile.exists()) {
|
||||||
|
pdfFile.delete();
|
||||||
|
}*//*
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
} else if (ENVIRONMENT == 2) {// linux环境处理
|
||||||
|
try {
|
||||||
|
Process p = r.exec("pdf2swf " + pdfFile.getPath()
|
||||||
|
+ " -o " + swfFile.getPath() + " -f -T 9 -t -s storeallcharacters");
|
||||||
|
logger.info("****swf转换成功,文件输出:" + swfFile.getPath() + "****");
|
||||||
|
if (pdfFile.exists()) {
|
||||||
|
if(!pdfFile.delete()){
|
||||||
|
logger.error("文件删除失败!!!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("****pdf不存在,无法转换****");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.info("****swf已经存在不需要转换****");
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
static String loadStream(InputStream in) throws IOException {
|
||||||
|
|
||||||
|
int ptr = 0;
|
||||||
|
in = new BufferedInputStream(in);
|
||||||
|
StringBuilder buffer = new StringBuilder();
|
||||||
|
while ((ptr = in.read()) != -1) {
|
||||||
|
buffer.append((char) ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return buffer.toString();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 转换主方法
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public File conver(String fileType) {
|
||||||
|
if (ENVIRONMENT == 1) {
|
||||||
|
logger.info("****swf转换器开始工作,当前设置运行环境windows****");
|
||||||
|
} else {
|
||||||
|
logger.info("****swf转换器开始工作,当前设置运行环境linux****");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if(".doc".equals(fileType) || ".docx".equals(fileType) || ".xlsx".equals(fileType) || ".xls".equals(fileType) || ".ppt".equals(fileType) || ".pptx".equals(fileType)){
|
||||||
|
doc2pdf();
|
||||||
|
/*pdf2swf(fileType);*/
|
||||||
|
} else if (".pdf".equals(fileType)){
|
||||||
|
/*pdf2swf(fileType);*/
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
return new File("");
|
||||||
|
}
|
||||||
|
|
||||||
|
return pdfFile;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回文件路径
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
*/
|
||||||
|
public String getswfPath() {
|
||||||
|
if (swfFile.exists()) {
|
||||||
|
String tempString = swfFile.getPath();
|
||||||
|
tempString = tempString.replaceAll("\\\\", "/");
|
||||||
|
return tempString;
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getpdfPath() {
|
||||||
|
if (!pdfFile.getPath().isEmpty()) {
|
||||||
|
String tempString = pdfFile.getPath();
|
||||||
|
tempString = tempString.replaceAll("\\\\", "/");
|
||||||
|
return tempString;
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置输出路径
|
||||||
|
*/
|
||||||
|
public void setOutputPath(String outputPath) {
|
||||||
|
this.outputPath = outputPath;
|
||||||
|
if (!outputPath.equals("")) {
|
||||||
|
String realName = fileName.substring(fileName.lastIndexOf("/"), fileName.lastIndexOf("."));
|
||||||
|
//TODO 此处的if判断执行的代码逻辑完全一样, 因此将其判断注释掉,直接执行
|
||||||
|
/* if (outputPath.charAt(outputPath.length()) == '/') {
|
||||||
|
swfFile = new File(outputPath + realName + ".swf");
|
||||||
|
} else {
|
||||||
|
swfFile = new File(outputPath + realName + ".swf");
|
||||||
|
}*/
|
||||||
|
swfFile = new File(outputPath + realName + ".swf");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.adc.da.convert.common;
|
||||||
|
|
||||||
|
|
||||||
|
import com.itextpdf.kernel.pdf.*;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/***
|
||||||
|
*
|
||||||
|
* @MethodName:PDF编辑工具类
|
||||||
|
* @author: zhangyanduan
|
||||||
|
* @param:
|
||||||
|
* @return:
|
||||||
|
* date: 2019/3/6 18:36
|
||||||
|
*/
|
||||||
|
public class PDFEditUtils {
|
||||||
|
|
||||||
|
//设置安全性
|
||||||
|
public static void setPDFFileSecurity(String descFilePath,String srcFilePath) throws IOException {
|
||||||
|
checkOutFile(descFilePath);
|
||||||
|
PdfReader reader = new PdfReader(srcFilePath, new ReaderProperties());
|
||||||
|
PdfWriter writer = new PdfWriter(descFilePath, new WriterProperties()
|
||||||
|
.setStandardEncryption(null, "1234qwer".getBytes(), EncryptionConstants.ALLOW_SCREENREADERS,
|
||||||
|
EncryptionConstants.ENCRYPTION_AES_128 | EncryptionConstants.DO_NOT_ENCRYPT_METADATA));
|
||||||
|
PdfDocument pdfDoc = new PdfDocument(reader, writer);
|
||||||
|
pdfDoc.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkOutFile(String descFilePath){
|
||||||
|
File desc=new File(descFilePath);
|
||||||
|
desc.getParentFile().mkdirs();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,169 @@
|
|||||||
|
package com.adc.da.convert.common;
|
||||||
|
|
||||||
|
import com.adc.da.util.utils.UUID;
|
||||||
|
import com.itextpdf.text.*;
|
||||||
|
import com.itextpdf.text.log.Logger;
|
||||||
|
import com.itextpdf.text.log.LoggerFactory;
|
||||||
|
import com.itextpdf.text.pdf.*;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import sun.misc.BASE64Encoder;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class SplitPdf {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(SplitPdf.class);
|
||||||
|
|
||||||
|
public static String splitPDFFile(String inputPath,
|
||||||
|
String outputPath, int fromPage, int toPage) {
|
||||||
|
Document document = new Document();
|
||||||
|
InputStream inputStream = null;
|
||||||
|
OutputStream outputStream = null;
|
||||||
|
String allPassword = "";
|
||||||
|
try {
|
||||||
|
logger.info("*********开始拆分pdf**********");
|
||||||
|
inputStream = new FileInputStream(inputPath);
|
||||||
|
outputStream = new FileOutputStream(outputPath);
|
||||||
|
PdfReader inputPDF = new PdfReader(inputStream);
|
||||||
|
int totalPages = inputPDF.getNumberOfPages();
|
||||||
|
//make fromPage equals to toPage if it is greater
|
||||||
|
if(fromPage > toPage ) {
|
||||||
|
fromPage = toPage;
|
||||||
|
}
|
||||||
|
if(toPage > totalPages) {
|
||||||
|
toPage = totalPages;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a writer for the outputstream
|
||||||
|
PdfWriter writer = PdfWriter.getInstance(document, outputStream);
|
||||||
|
Map<String,String> pwdMap = setFilePassword();
|
||||||
|
allPassword = pwdMap.get("allPwd");
|
||||||
|
String filepassword = pwdMap.get("filePwd");
|
||||||
|
writer.setEncryption(filepassword.getBytes(), "1234qwer".getBytes(),
|
||||||
|
PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);
|
||||||
|
document.open();
|
||||||
|
//构造文件,防止初始化文件为空
|
||||||
|
//document.add(new Chunk(""));
|
||||||
|
PdfContentByte cb = writer.getDirectContent(); // Holds the PDF data
|
||||||
|
PdfImportedPage page;
|
||||||
|
|
||||||
|
while(fromPage <= toPage) {
|
||||||
|
Rectangle pageSize = inputPDF.getPageSize(fromPage);
|
||||||
|
document.setPageSize(new Rectangle(pageSize.getWidth(),pageSize.getHeight()));
|
||||||
|
document.newPage();
|
||||||
|
page = writer.getImportedPage(inputPDF, fromPage);
|
||||||
|
// 此处将文档的旋转参数写入新的文档中
|
||||||
|
/* PdfDictionary pageN = inputPDF.getPageN(fromPage);
|
||||||
|
PdfNumber asNumber = pageN.getAsNumber(PdfName.ROTATE);
|
||||||
|
PdfDictionary additional = new PdfDictionary();
|
||||||
|
additional.put(PdfName.ROTATE,asNumber);
|
||||||
|
page.setAdditional(additional);*/
|
||||||
|
cb.addTemplate(page, 0, 0);
|
||||||
|
fromPage++;
|
||||||
|
}
|
||||||
|
outputStream.flush();
|
||||||
|
document.close();
|
||||||
|
inputStream.close();
|
||||||
|
outputStream.close();
|
||||||
|
//加密码
|
||||||
|
/*String path = outputPath.replace("测试文件拆分\\","测试文件拆分\\加密码\\");
|
||||||
|
PDFEditUtils.setPDFFileSecurity(outputPath,outputPath);*/
|
||||||
|
}catch (IllegalArgumentException ie){
|
||||||
|
logger.error("拆分过程中,读取文件失败");
|
||||||
|
logger.error(ie.getMessage(),ie);
|
||||||
|
logger.error(ie.getMessage());
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
logger.error("拆分过程中,读取文件IO失败");
|
||||||
|
logger.error(ioe.getMessage(),ioe);
|
||||||
|
logger.error(ioe.getMessage());
|
||||||
|
}catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(),e);
|
||||||
|
logger.error(e.getMessage());
|
||||||
|
} finally {
|
||||||
|
if(document.isOpen()){
|
||||||
|
document.close();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (inputStream != null){
|
||||||
|
inputStream.close();
|
||||||
|
}
|
||||||
|
if (outputStream != null){
|
||||||
|
outputStream.close();
|
||||||
|
}
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
ioe.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return allPassword;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 利用libreOffice将office文档转换成pdf
|
||||||
|
* @param inputFile 目标文件地址
|
||||||
|
* @param pdfFile 输出文件夹
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean convertOffice2PDF(String inputFile, String pdfFile){
|
||||||
|
long start = System.currentTimeMillis();
|
||||||
|
String command;
|
||||||
|
boolean flag;
|
||||||
|
String osName = System.getProperty("os.name");
|
||||||
|
if (osName.contains("Windows")) {
|
||||||
|
command = "cmd /c soffice --headless --invisible --convert-to pdf:writer_pdf_Export " + inputFile + " --outdir " + pdfFile;
|
||||||
|
}else {
|
||||||
|
command = "libreoffice --headless --invisible --convert-to pdf:writer_pdf_Export " + inputFile + " --outdir " + pdfFile;
|
||||||
|
}
|
||||||
|
flag = executeLibreOfficeCommand(command);
|
||||||
|
long end = System.currentTimeMillis();
|
||||||
|
logger.debug("用时:{} ms"+(end - start));
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行command指令
|
||||||
|
* @param command
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean executeLibreOfficeCommand(String command) {
|
||||||
|
logger.info("开始进行转化.......");
|
||||||
|
Process process;// Process可以控制该子进程的执行或获取该子进程的信息
|
||||||
|
try {
|
||||||
|
logger.info("convertOffice2PDF cmd : {}"+ command);
|
||||||
|
process = Runtime.getRuntime().exec(command);// exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。
|
||||||
|
// 下面两个可以获取输入输出流
|
||||||
|
// InputStream errorStream = process.getErrorStream();
|
||||||
|
// InputStream inputStream = process.getInputStream();
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.error(" convertOffice2PDF {} error"+command, e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int exitStatus = 0;
|
||||||
|
try {
|
||||||
|
exitStatus = process.waitFor();// 等待子进程完成再往下执行,返回值是子线程执行完毕的返回值,返回0表示正常结束
|
||||||
|
// 第二种接受返回值的方法
|
||||||
|
int i = process.exitValue(); // 接收执行完毕的返回值
|
||||||
|
logger.debug("返回值:"+i);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
logger.info("InterruptedException convertOffice2PDF {}"+ command);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
logger.info("convertOffice2PDF cmd exitStatus {}"+ exitStatus);
|
||||||
|
process.destroy(); // 销毁子进程
|
||||||
|
logger.info("转化结束.......");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
//设置文件密码
|
||||||
|
public static Map<String,String> setFilePassword(){
|
||||||
|
String allPwd = UUID.randomUUID(20);
|
||||||
|
String filePwd = allPwd.substring(0,5) + allPwd.substring(15,20);
|
||||||
|
Map<String,String> map = new HashMap<>();
|
||||||
|
map.put("allPwd",allPwd);
|
||||||
|
map.put("filePwd",filePwd);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -147,3 +147,7 @@ elasticsearch.ip=172.17.0.1
|
|||||||
elasticsearch.port=9300
|
elasticsearch.port=9300
|
||||||
elasticsearch.poolSize=5
|
elasticsearch.poolSize=5
|
||||||
elas.flag=true
|
elas.flag=true
|
||||||
|
|
||||||
|
# 文档转换TCP通讯地址
|
||||||
|
convert.host=127.0.0.1
|
||||||
|
#convert.host=0.0.0.0
|
||||||
|
|||||||
+7
@@ -102,6 +102,13 @@ public class SarBussionessStand extends BaseEntity {
|
|||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date modifyTime;
|
private Date modifyTime;
|
||||||
|
|
||||||
|
// 新添加字段
|
||||||
|
@ApiModelProperty(value = "文本状态")
|
||||||
|
@TableField("TEXT_STATUS_BUSS")
|
||||||
|
private String textStatusBuss;
|
||||||
|
|
||||||
|
|
||||||
|
// 非表字段
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private String firstPutTime;
|
private String firstPutTime;
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ public class SarItemVO extends BaseEntity {
|
|||||||
@ApiModelProperty(value = "主键")
|
@ApiModelProperty(value = "主键")
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "标准ID")
|
@ApiModelProperty(value = "标准ID")
|
||||||
private String standId;
|
private String standId;
|
||||||
|
|
||||||
@@ -28,10 +27,10 @@ public class SarItemVO extends BaseEntity {
|
|||||||
@ApiModelProperty(value = "条款名称")
|
@ApiModelProperty(value = "条款名称")
|
||||||
private String itemsName;
|
private String itemsName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "条款内容")
|
@ApiModelProperty(value = "条款内容(未使用)")
|
||||||
private String itemsTitle;
|
private String itemsTitle;
|
||||||
|
|
||||||
@ApiModelProperty(value = "解读内容--条款要求")
|
@ApiModelProperty(value = "条款内容--条款要求")
|
||||||
private String termsConditions;
|
private String termsConditions;
|
||||||
|
|
||||||
@ApiModelProperty(value = "新车实施日期")
|
@ApiModelProperty(value = "新车实施日期")
|
||||||
@@ -64,4 +63,7 @@ public class SarItemVO extends BaseEntity {
|
|||||||
|
|
||||||
@ApiModelProperty(value = "文件类型")
|
@ApiModelProperty(value = "文件类型")
|
||||||
private String fileType;
|
private String fileType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "解读内容--核心技术要点")
|
||||||
|
private String interpretationContent;
|
||||||
}
|
}
|
||||||
|
|||||||
+8
@@ -196,4 +196,12 @@ public class SarStandProjectLibraryController extends BaseController<SarStandPro
|
|||||||
response.getWriter().println(JSON.toJSONString(Result.error()));
|
response.getWriter().println(JSON.toJSONString(Result.error()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/save")
|
||||||
|
@ApiOperation("同步车型项目数据")
|
||||||
|
public ResponseMessage save(@RequestBody List<SarStandProjectLibrary> list){
|
||||||
|
sarStandProjectLibraryService.saveBatch(list);
|
||||||
|
return Result.success("200","新增成功",list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -106,8 +106,8 @@ public class SarStandProjectLibraryServiceImpl extends ServiceImpl<SarStandProje
|
|||||||
@Override
|
@Override
|
||||||
public IPage<SarStandProjectLibrary> queryProjectManager(int current, int pageSize) {
|
public IPage<SarStandProjectLibrary> queryProjectManager(int current, int pageSize) {
|
||||||
QueryWrapper<SarStandProjectLibrary> wrapper = new QueryWrapper<>();
|
QueryWrapper<SarStandProjectLibrary> wrapper = new QueryWrapper<>();
|
||||||
wrapper.select("distinct product_line","sar_stand_project_library.project_manager as projectManager","ts_user.uName");
|
wrapper.select("distinct product_line","sar_stand_project_library.project_manager as projectManager","s.uName");
|
||||||
wrapper.last("inner join sar_stand_project_library s on ts_user.USID = s.project_manager");
|
wrapper.last("inner join ts_user s on s.USID = sar_stand_project_library.project_manager");
|
||||||
Page<SarStandProjectLibrary> page = new Page<>(current, pageSize);
|
Page<SarStandProjectLibrary> page = new Page<>(current, pageSize);
|
||||||
IPage<SarStandProjectLibrary> userIPage = sarStandProjectLibraryDao.selectPage(page, wrapper);
|
IPage<SarStandProjectLibrary> userIPage = sarStandProjectLibraryDao.selectPage(page, wrapper);
|
||||||
System.out.println("总条数"+userIPage.getTotal());
|
System.out.println("总条数"+userIPage.getTotal());
|
||||||
|
|||||||
+43
@@ -0,0 +1,43 @@
|
|||||||
|
package com.adc.da.slrs.sarStandProjectTeam.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.adc.da.http.ResponseMessage;
|
||||||
|
import com.adc.da.http.Result;
|
||||||
|
import com.adc.da.slrs.sarStandProjectLibrary.entity.SarStandProjectLibrary;
|
||||||
|
import com.adc.da.slrs.sarStandProjectTeam.service.ISarStandProjectTeamService;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import com.adc.da.slrs.sarStandProjectTeam.entity.SarStandProjectTeam;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import com.adc.da.base.web.BaseController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author wangxiahui
|
||||||
|
* @since 2021-08-10
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@Api(description = "|SarStandProjectTeam|")
|
||||||
|
@RequestMapping("/slrs/sar-stand-project-team")
|
||||||
|
public class SarStandProjectTeamController extends BaseController<SarStandProjectTeam> {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISarStandProjectTeamService sarStandProjectTeamService;
|
||||||
|
|
||||||
|
@PostMapping("/save")
|
||||||
|
@ApiOperation("同步PCMS组织信息")
|
||||||
|
public ResponseMessage save(@RequestBody List<SarStandProjectTeam> list){
|
||||||
|
sarStandProjectTeamService.saveBatch(list);
|
||||||
|
return Result.success("200","新增成功",list);
|
||||||
|
}
|
||||||
|
}
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
package com.adc.da.slrs.sarStandProjectTeam.dao;
|
||||||
|
|
||||||
|
import com.adc.da.slrs.sarStandProjectTeam.entity.SarStandProjectTeam;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author wangxiahui
|
||||||
|
* @since 2021-08-10
|
||||||
|
*/
|
||||||
|
public interface SarStandProjectTeamDao extends BaseMapper<SarStandProjectTeam> {
|
||||||
|
|
||||||
|
}
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
package com.adc.da.slrs.sarStandProjectTeam.entity;
|
||||||
|
|
||||||
|
import com.adc.da.base.entity.BaseEntity;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel(value="SarStandProjectTeam对象", description="")
|
||||||
|
public class SarStandProjectTeam extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String person;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
package com.adc.da.slrs.sarStandProjectTeam.service;
|
||||||
|
|
||||||
|
import com.adc.da.slrs.sarStandProjectTeam.entity.SarStandProjectTeam;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author wangxiahui
|
||||||
|
* @since 2021-08-10
|
||||||
|
*/
|
||||||
|
public interface ISarStandProjectTeamService extends IService<SarStandProjectTeam> {
|
||||||
|
|
||||||
|
}
|
||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
package com.adc.da.slrs.sarStandProjectTeam.service.impl;
|
||||||
|
|
||||||
|
import com.adc.da.slrs.sarStandProjectTeam.entity.SarStandProjectTeam;
|
||||||
|
import com.adc.da.slrs.sarStandProjectTeam.dao.SarStandProjectTeamDao;
|
||||||
|
import com.adc.da.slrs.sarStandProjectTeam.service.ISarStandProjectTeamService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author wangxiahui
|
||||||
|
* @since 2021-08-10
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SarStandProjectTeamServiceImpl extends ServiceImpl<SarStandProjectTeamDao, SarStandProjectTeam> implements ISarStandProjectTeamService {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -67,6 +67,7 @@
|
|||||||
<result column="compliance_state" property="complianceState"/>
|
<result column="compliance_state" property="complianceState"/>
|
||||||
<result column="COMPLIANCE_REQUIR" property="complianceRequire"/>
|
<result column="COMPLIANCE_REQUIR" property="complianceRequire"/>
|
||||||
<result column="FILE_TYPE" property="fileType"/>
|
<result column="FILE_TYPE" property="fileType"/>
|
||||||
|
<result column="core_technical_requirement" property="interpretationContent"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
@@ -404,7 +405,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 查询SAR_STAND_ITEMS列表 -->
|
<!-- 查询SAR_STAND_ITEMS列表 -->
|
||||||
<select id="queryByPage" resuCOMPLIANCE_REQUIRltMap="BaseResultMap" parameterType="com.adc.da.base.page.BasePage">
|
<select id="queryByPage" resultMap="BaseResultMap" parameterType="com.adc.da.base.page.BasePage">
|
||||||
select
|
select
|
||||||
<include refid="Base_Column_List"/>
|
<include refid="Base_Column_List"/>
|
||||||
from
|
from
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.adc.da.slrs.sarStandProjectTeam.dao.SarStandProjectTeamDao">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -39,7 +39,8 @@
|
|||||||
<module>adc-da-search</module>
|
<module>adc-da-search</module>
|
||||||
<module>adc-da-slrs</module>
|
<module>adc-da-slrs</module>
|
||||||
<module>adc-da-activiti</module>
|
<module>adc-da-activiti</module>
|
||||||
<!-- <module>adc-da-search</module>-->
|
<module>adc-da-convert</module>
|
||||||
|
<!-- <module>adc-da-search</module>-->
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
|
|||||||
Reference in New Issue
Block a user