617bfc68 by 荆蔚杰

电子证照接口,实体,请求

1 parent f05f15bb
Showing 41 changed files with 3838 additions and 384 deletions
1 <?xml version="1.0" encoding="UTF-8"?>
2 <classpath>
3 <classpathentry kind="src" path=""/>
4 <classpathentry kind="output" path=""/>
5 </classpath>
1 eclipse.preferences.version=1
2 encoding//src/main/java=UTF-8
3 encoding//src/main/java/com/thinkgem/jeesite/modules/reg/service/qjxt/BdcZdxxService.java=UTF-8
4 encoding//src/main/java/com/thinkgem/jeesite/modules/reg/web/updata/CSCDJ3000402Controller.java=UTF-8
5 encoding//src/main/resources=UTF-8
6 encoding//src/main/resources/jeesite.properties=UTF-8
7 encoding//src/main/resources/server.json=UTF-8
8 encoding//src/main/resources/si_code.json=UTF-8
9 encoding//src/main/resources/stencilset.json=UTF-8
10 encoding//src/test/java=UTF-8
11 encoding/<project>=UTF-8
1 eclipse.preferences.version=1
2 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4 org.eclipse.jdt.core.compiler.compliance=1.8
5 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
8 org.eclipse.jdt.core.compiler.release=disabled
9 org.eclipse.jdt.core.compiler.source=1.8
1 <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
2 <wb-module deploy-name="ODM">
3 <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
4 <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
5 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
6 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
7 <property name="context-root" value="ODM"/>
8 <property name="java-output-path" value="/ODM/src/main/webapp/WEB-INF/classes"/>
9 <property name="component.exclusion.patterns" value="static/bootstrap/2.3.1/docs/**,static/ckeditor/_samples/**,static/ckeditor/_source/**,static/ckfinder/_samples/**,static/ckfinder/help/**,static/compressor*/**,static/jquery-jbox/2.3/docs/**,static/jquery-jbox/2.3/Skins2/**,static/jquery-validation/1.11.0/demo/**,static/jquery-ztree/3.5.12/demo/**,static/My97DatePicker/docs/**,static/supcan/doc/**,static/SuperSlide/demo/**,static/treeTable/demo/**,test/**,WEB-INF/classes/org/apache/ibatis/**,WEB-INF/classes/org/mybatis/spring/**"/>
10 </wb-module>
11 </project-modules>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <faceted-project>
3 <fixed facet="wst.jsdt.web"/>
4 <installed facet="java" version="1.7"/>
5 <installed facet="jst.web" version="2.5"/>
6 <installed facet="wst.jsdt.web" version="1.0"/>
7 </faceted-project>
1 disabled=06target
2 eclipse.preferences.version=1
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
48 <mssql.driver.version>1.3.1</mssql.driver.version> 48 <mssql.driver.version>1.3.1</mssql.driver.version>
49 49
50 <!-- environment setting --> 50 <!-- environment setting -->
51 <jdk.version>1.8</jdk.version> 51 <jdk.version>1.7</jdk.version>
52 <tomcat.version>2.2</tomcat.version> 52 <tomcat.version>2.2</tomcat.version>
53 <jetty.version>7.6.14.v20131031</jetty.version> 53 <jetty.version>7.6.14.v20131031</jetty.version>
54 <webserver.port>8080</webserver.port> 54 <webserver.port>8080</webserver.port>
...@@ -67,59 +67,59 @@ ...@@ -67,59 +67,59 @@
67 <url>http://192.168.11.36:8888/nexus/content/groups/public</url> 67 <url>http://192.168.11.36:8888/nexus/content/groups/public</url>
68 </repository> --> 68 </repository> -->
69 69
70 <repository> 70 <!--<repository>-->
71 <id>oschina-repos</id> 71 <!-- <id>oschina-repos</id>-->
72 <name>Oschina Releases</name> 72 <!-- <name>Oschina Releases</name>-->
73 <url>http://maven.oschina.net/content/groups/public</url> 73 <!-- <url>http://maven.oschina.net/content/groups/public</url>-->
74 </repository> 74 <!--</repository>-->
75 75
76 <repository> 76 <!--<repository>-->
77 <id>java-repos</id> 77 <!-- <id>java-repos</id>-->
78 <name>Java Repository</name> 78 <!-- <name>Java Repository</name>-->
79 <url>http://download.java.net/maven/2/</url> 79 <!-- <url>http://download.java.net/maven/2/</url>-->
80 </repository> 80 <!--</repository>-->
81 81
82 <repository> 82 <!--<repository>-->
83 <id>springsource-repos</id> 83 <!-- <id>springsource-repos</id>-->
84 <name>SpringSource Repository</name> 84 <!-- <name>SpringSource Repository</name>-->
85 <url>http://repo.spring.io/release/</url> 85 <!-- <url>http://repo.spring.io/release/</url>-->
86 </repository> 86 <!--</repository>-->
87 87
88 <repository> 88 <!--<repository>-->
89 <id>central-repos</id> 89 <!-- <id>central-repos</id>-->
90 <name>Central Repository</name> 90 <!-- <name>Central Repository</name>-->
91 <url>http://repo.maven.apache.org/maven2</url> 91 <!-- <url>http://repo.maven.apache.org/maven2</url>-->
92 </repository> 92 <!--</repository>-->
93 93
94 <repository> 94 <!--<repository>-->
95 <id>central-repos2</id> 95 <!-- <id>central-repos2</id>-->
96 <name>Central Repository 2</name> 96 <!-- <name>Central Repository 2</name>-->
97 <url>http://repo1.maven.org/maven2/</url> 97 <!-- <url>http://repo1.maven.org/maven2/</url>-->
98 </repository> 98 <!--</repository>-->
99 99
100 <repository> 100 <!--<repository>-->
101 <id>activiti-repos</id> 101 <!-- <id>activiti-repos</id>-->
102 <name>Activiti Repository</name> 102 <!-- <name>Activiti Repository</name>-->
103 <url>https://maven.alfresco.com/nexus/content/groups/public</url> 103 <!-- <url>https://maven.alfresco.com/nexus/content/groups/public</url>-->
104 </repository> 104 <!--</repository>-->
105 105
106 <repository> 106 <!--<repository>-->
107 <id>activiti-repos2</id> 107 <!-- <id>activiti-repos2</id>-->
108 <name>Activiti Repository 2</name> 108 <!-- <name>Activiti Repository 2</name>-->
109 <url>https://app.camunda.com/nexus/content/groups/public</url> 109 <!-- <url>https://app.camunda.com/nexus/content/groups/public</url>-->
110 </repository> 110 <!--</repository>-->
111 111
112 <repository> 112 <!--<repository> -->
113 <id>thinkgem-repos</id> 113 <!-- <id>thinkgem-repos</id> -->
114 <name>ThinkGem Repository</name> 114 <!-- <name>ThinkGem Repository</name>-->
115 <url>http://git.oschina.net/thinkgem/repos/raw/master</url> 115 <!-- <url>http://git.oschina.net/thinkgem/repos/raw/master</url>-->
116 </repository> 116 <!--</repository>-->
117 117
118 <repository> 118 <!--<repository> -->
119 <id>thinkgem-repos2</id> 119 <!-- <id>thinkgem-repos2</id> -->
120 <name>ThinkGem Repository 2</name> 120 <!-- <name>ThinkGem Repository 2</name>-->
121 <url>https://raw.github.com/thinkgem/repository/master</url> 121 <!-- <url>https://raw.github.com/thinkgem/repository/master</url>-->
122 </repository> 122 <!--</repository>-->
123 123
124 </repositories> 124 </repositories>
125 125
...@@ -133,11 +133,11 @@ ...@@ -133,11 +133,11 @@
133 <url>http://192.168.11.36:8888/nexus/content/groups/public</url> 133 <url>http://192.168.11.36:8888/nexus/content/groups/public</url>
134 </pluginRepository> --> 134 </pluginRepository> -->
135 135
136 <pluginRepository> 136 <!--<pluginRepository>-->
137 <id>oschina-repos</id> 137 <!-- <id>oschina-repos</id>-->
138 <name>Oschina Releases</name> 138 <!-- <name>Oschina Releases</name>-->
139 <url>http://maven.oschina.net/content/groups/public</url> 139 <!-- <url>http://maven.oschina.net/content/groups/public</url>-->
140 </pluginRepository> 140 <!--</pluginRepository>-->
141 141
142 </pluginRepositories> 142 </pluginRepositories>
143 143
...@@ -149,11 +149,6 @@ ...@@ -149,11 +149,6 @@
149 <artifactId>spring-data-redis</artifactId> 149 <artifactId>spring-data-redis</artifactId>
150 <version>1.6.0.RELEASE</version> 150 <version>1.6.0.RELEASE</version>
151 </dependency> 151 </dependency>
152 <dependency>
153 <groupId>redis.clients</groupId>
154 <artifactId>jedis</artifactId>
155 <version>2.4.2</version>
156 </dependency>
157 152
158 <!-- SPRING begin --> 153 <!-- SPRING begin -->
159 <dependency> 154 <dependency>
...@@ -686,17 +681,17 @@ ...@@ -686,17 +681,17 @@
686 <type>jar</type> 681 <type>jar</type>
687 </dependency> 682 </dependency>
688 683
689 <dependency> 684 <!--<dependency>-->
690 <groupId>org.apache.httpcomponents</groupId> 685 <!-- <groupId>org.apache.httpcomponents</groupId>-->
691 <artifactId>httpclient</artifactId> 686 <!-- <artifactId>httpclient</artifactId>-->
692 <version>4.2.1</version> 687 <!-- <version>4.2.1</version>-->
693 </dependency> 688 <!--</dependency>-->
694 689
695 <dependency> 690 <!--<dependency>-->
696 <groupId>org.apache.httpcomponents</groupId> 691 <!-- <groupId>org.apache.httpcomponents</groupId>-->
697 <artifactId>httpcore</artifactId> 692 <!-- <artifactId>httpcore</artifactId>-->
698 <version>4.2.2</version> 693 <!-- <version>4.2.2</version>-->
699 </dependency> 694 <!--</dependency>-->
700 <dependency> 695 <dependency>
701 <groupId>org.apache.httpcomponents</groupId> 696 <groupId>org.apache.httpcomponents</groupId>
702 <artifactId>httpcore-nio</artifactId> 697 <artifactId>httpcore-nio</artifactId>
...@@ -708,11 +703,11 @@ ...@@ -708,11 +703,11 @@
708 <artifactId>httpasyncclient</artifactId> 703 <artifactId>httpasyncclient</artifactId>
709 <version>4.0</version> 704 <version>4.0</version>
710 </dependency> 705 </dependency>
711 <dependency> 706 <!--<dependency>-->
712 <groupId>javax.xml.ws</groupId> 707 <!-- <groupId>javax.xml.ws</groupId>-->
713 <artifactId>jaxws-api</artifactId> 708 <!-- <artifactId>jaxws-api</artifactId>-->
714 <version>2.2.11</version> 709 <!-- <version>2.2.11</version>-->
715 </dependency> 710 <!--</dependency>-->
716 711
717 712
718 <!-- 数据上报 --> 713 <!-- 数据上报 -->
...@@ -822,17 +817,46 @@ ...@@ -822,17 +817,46 @@
822 </dependency> 817 </dependency>
823 818
824 <!--生成pdf --> 819 <!--生成pdf -->
825 <!-- <dependency> --> 820 <!-- <dependency> -->
826 <!-- <groupId>com.itextpdf</groupId> --> 821 <!-- <groupId>com.itextpdf</groupId> -->
827 <!-- <artifactId>itextpdf</artifactId> --> 822 <!-- <artifactId>itextpdf</artifactId> -->
828 <!-- <version>5.5.10</version> --> 823 <!-- <version>5.5.10</version> -->
829 <!-- </dependency> --> 824 <!-- </dependency> -->
830 825
831 <!-- <dependency> --> 826 <!-- <dependency> -->
832 <!-- <groupId>com.itextpdf</groupId> --> 827 <!-- <groupId>com.itextpdf</groupId> -->
833 <!-- <artifactId>itext-asian</artifactId> --> 828 <!-- <artifactId>itext-asian</artifactId> -->
834 <!-- <version>5.2.0</version> --> 829 <!-- <version>5.2.0</version> -->
835 <!-- </dependency> --> 830 <!-- </dependency> -->
831
832 <dependency>
833 <groupId>javax.jws</groupId>
834 <artifactId>javax.jws-api</artifactId>
835 <version>1.1</version>
836 </dependency>
837
838 <dependency>
839 <groupId>javax.annotation</groupId>
840 <artifactId>javax.annotation-api</artifactId>
841 <version>1.3.2</version>
842 </dependency>
843
844 <dependency>
845 <groupId>javax.xml.bind</groupId>
846 <artifactId>jaxb-api</artifactId>
847 <version>2.2.11</version>
848 </dependency>
849 <dependency>
850 <groupId>com.sun.xml.bind</groupId>
851 <artifactId>jaxb-core</artifactId>
852 <version>2.2.11</version>
853 </dependency>
854 <dependency>
855 <groupId>com.sun.xml.bind</groupId>
856 <artifactId>jaxb-impl</artifactId>
857 <version>2.2.11</version>
858 </dependency>
859
836 </dependencies> 860 </dependencies>
837 861
838 <build> 862 <build>
...@@ -844,8 +868,8 @@ ...@@ -844,8 +868,8 @@
844 <artifactId>maven-compiler-plugin</artifactId> 868 <artifactId>maven-compiler-plugin</artifactId>
845 <version>2.5.1</version> 869 <version>2.5.1</version>
846 <configuration> 870 <configuration>
847 <source>${jdk.version}</source> 871 <source>8</source>
848 <target>${jdk.version}</target> 872 <target>8</target>
849 <showWarnings>true</showWarnings> 873 <showWarnings>true</showWarnings>
850 </configuration> 874 </configuration>
851 </plugin> 875 </plugin>
...@@ -908,7 +932,8 @@ ...@@ -908,7 +932,8 @@
908 <configuration> 932 <configuration>
909 <classesDirectory>${project.outputDirectory}</classesDirectory> 933 <classesDirectory>${project.outputDirectory}</classesDirectory>
910 <finalName>odm-webservice</finalName> 934 <finalName>odm-webservice</finalName>
911 <outputDirectory>${project.build.directory}/${project.artifactId}/WEB-INF/lib</outputDirectory> 935 <outputDirectory>${project.build.directory}/${project.artifactId}/WEB-INF/lib
936 </outputDirectory>
912 <includes> 937 <includes>
913 <include>com/thinkgem/jeesite/modules/restws/**</include> 938 <include>com/thinkgem/jeesite/modules/restws/**</include>
914 </includes> 939 </includes>
...@@ -1019,16 +1044,16 @@ ...@@ -1019,16 +1044,16 @@
1019 </plugin> 1044 </plugin>
1020 1045
1021 <!-- tomcat6插件 --> 1046 <!-- tomcat6插件 -->
1022 <!-- <plugin>--> 1047 <plugin>
1023 <!-- <groupId>org.apache.tomcat.maven</groupId>--> 1048 <groupId>org.apache.tomcat.maven</groupId>
1024 <!-- <artifactId>tomcat6-maven-plugin</artifactId>--> 1049 <artifactId>tomcat6-maven-plugin</artifactId>
1025 <!-- <version>${tomcat.version}</version> --> 1050 <version>${tomcat.version}</version>
1026 <!-- <configuration>--> 1051 <configuration>
1027 <!-- <port>${webserver.port}</port>--> 1052 <port>${webserver.port}</port>
1028 <!-- <path>/${project.artifactId}</path>--> 1053 <path>/${project.artifactId}</path>
1029 <!-- <uriEncoding>${project.build.sourceEncoding}</uriEncoding>--> 1054 <uriEncoding>${project.build.sourceEncoding}</uriEncoding>
1030 <!-- </configuration>--> 1055 </configuration>
1031 <!-- </plugin> --> 1056 </plugin>
1032 1057
1033 <!-- tomcat7插件 --> 1058 <!-- tomcat7插件 -->
1034 <plugin> 1059 <plugin>
...@@ -1128,7 +1153,7 @@ ...@@ -1128,7 +1153,7 @@
1128 <target> 1153 <target>
1129 1154
1130 <!-- mysql --> 1155 <!-- mysql -->
1131 <property name="dbunit.datatype" value="org.dbunit.ext.mysql.MySqlDataTypeFactory" /> 1156 <property name="dbunit.datatype" value="org.dbunit.ext.mysql.MySqlDataTypeFactory"/>
1132 1157
1133 <!-- mssql 1158 <!-- mssql
1134 <property name="dbunit.datatype" value="org.dbunit.ext.mssql.MsSqlDataTypeFactory" /> --> 1159 <property name="dbunit.datatype" value="org.dbunit.ext.mssql.MsSqlDataTypeFactory" /> -->
...@@ -1136,10 +1161,11 @@ ...@@ -1136,10 +1161,11 @@
1136 <!-- oracle 1161 <!-- oracle
1137 <property name="dbunit.datatype" value="org.dbunit.ext.oracle.Oracle10DataTypeFactory" /> --> 1162 <property name="dbunit.datatype" value="org.dbunit.ext.oracle.Oracle10DataTypeFactory" /> -->
1138 1163
1139 <property file="src/main/resources/jeesite.properties" /> 1164 <property file="src/main/resources/jeesite.properties"/>
1140 <sql driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}" password="${jdbc.password}" 1165 <sql driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}"
1166 password="${jdbc.password}"
1141 onerror="continue" encoding="${project.build.sourceEncoding}"> 1167 onerror="continue" encoding="${project.build.sourceEncoding}">
1142 <classpath refid="maven.test.classpath" /> 1168 <classpath refid="maven.test.classpath"/>
1143 <transaction src="db/sys/jeesite_${jdbc.type}.sql"/> 1169 <transaction src="db/sys/jeesite_${jdbc.type}.sql"/>
1144 <transaction src="db/cms/jeesite_${jdbc.type}.sql"/> 1170 <transaction src="db/cms/jeesite_${jdbc.type}.sql"/>
1145 <transaction src="db/oa/jeesite_${jdbc.type}.sql"/> 1171 <transaction src="db/oa/jeesite_${jdbc.type}.sql"/>
...@@ -1154,7 +1180,8 @@ ...@@ -1154,7 +1180,8 @@
1154 <transaction src="db/act/create/activiti.${jdbc.type}.create.identity.sql"/> 1180 <transaction src="db/act/create/activiti.${jdbc.type}.create.identity.sql"/>
1155 </sql> 1181 </sql>
1156 1182
1157 <taskdef name="dbunit" classname="org.dbunit.ant.DbUnitTask" classpathref="maven.test.classpath" /> 1183 <taskdef name="dbunit" classname="org.dbunit.ant.DbUnitTask"
1184 classpathref="maven.test.classpath"/>
1158 1185
1159 <!-- mysql、mssql --> 1186 <!-- mysql、mssql -->
1160 <dbunit driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}" 1187 <dbunit driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}"
...@@ -1165,11 +1192,13 @@ ...@@ -1165,11 +1192,13 @@
1165 password="${jdbc.password}" schema="${jdbc.username}" > --> 1192 password="${jdbc.password}" schema="${jdbc.username}" > -->
1166 1193
1167 <dbconfig> 1194 <dbconfig>
1168 <property name="datatypeFactory" value="${dbunit.datatype}" /> 1195 <property name="datatypeFactory" value="${dbunit.datatype}"/>
1169 </dbconfig> 1196 </dbconfig>
1170 <classpath refid="maven.test.classpath" /> 1197 <classpath refid="maven.test.classpath"/>
1171 <operation type="INSERT" src="db/sys/jeesite_data.xls" format="xls" transaction="true"/> 1198 <operation type="INSERT" src="db/sys/jeesite_data.xls" format="xls"
1172 <operation type="INSERT" src="db/cms/jeesite_data.xls" format="xls" transaction="true"/> 1199 transaction="true"/>
1200 <operation type="INSERT" src="db/cms/jeesite_data.xls" format="xls"
1201 transaction="true"/>
1173 1202
1174 </dbunit> 1203 </dbunit>
1175 1204
...@@ -1187,7 +1216,9 @@ ...@@ -1187,7 +1216,9 @@
1187 <id>thinkgem</id> 1216 <id>thinkgem</id>
1188 <name>WangZhen</name> 1217 <name>WangZhen</name>
1189 <email>thinkgem at 163.com</email> 1218 <email>thinkgem at 163.com</email>
1190 <roles><role>Project lead</role></roles> 1219 <roles>
1220 <role>Project lead</role>
1221 </roles>
1191 <timezone>+8</timezone> 1222 <timezone>+8</timezone>
1192 </developer> 1223 </developer>
1193 </developers> 1224 </developers>
......
...@@ -479,4 +479,67 @@ public class Global { ...@@ -479,4 +479,67 @@ public class Global {
479 return projectPath; 479 return projectPath;
480 } 480 }
481 481
482 /**
483 * 契约锁URL
484 */
485 public static String ECI_HOST;
486
487 /**
488 * 契约锁appToken
489 */
490 public static String ECI_APP_TOKEN;
491
492 /**
493 * 契约锁appSecret
494 */
495 public static String ECI_APP_SECRET;
496
497 /**
498 * 契约锁不动产登记证明流程ID
499 */
500 public static String ECI_BDCDJZMLC;
501
502 /**
503 * 契约锁不动产权证书流程ID
504 */
505 public static String ECI_BDCQZSLC;
506
507 /**
508 * 不动产查询证明流程ID
509 */
510 public static String ECI_BDCCXZMLC;
511
512 /**
513 * 证照专用章ID
514 */
515 public static String ECI_ZZZYZ;
516
517 /**
518 * 档案查询专用章ID
519 */
520 public static String ECI_DACXZYZ;
521
522 public static void setEciConfig() {
523 String flag = Global.getConfig("eci.flag");
524 if ("false".equals(flag)) {
525 ECI_HOST = Global.getConfig("eci.test.host");
526 ECI_APP_TOKEN = Global.getConfig("eci.test.AppToken");
527 ECI_APP_SECRET = Global.getConfig("eci.test.AppSecret");
528 ECI_BDCDJZMLC = Global.getConfig("eci.test.bdcdjzmlc");
529 ECI_BDCQZSLC = Global.getConfig("eci.test.bdcqzslc");
530 ECI_BDCCXZMLC = Global.getConfig("eci.test.bdccxzmlc");
531 ECI_ZZZYZ = Global.getConfig("eci.test.zzzyz");
532 ECI_DACXZYZ = Global.getConfig("eci.test.dacxzyz");
533 }else {
534 ECI_HOST = Global.getConfig("eci.prod.host");
535 ECI_APP_TOKEN = Global.getConfig("eci.prod.AppToken");
536 ECI_APP_SECRET = Global.getConfig("eci.prod.AppSecret");
537 ECI_BDCDJZMLC = Global.getConfig("eci.prod.bdcdjzmlc");
538 ECI_BDCQZSLC = Global.getConfig("eci.prod.bdcqzslc");
539 ECI_BDCCXZMLC = Global.getConfig("eci.prod.bdccxzmlc");
540 ECI_ZZZYZ = Global.getConfig("eci.prod.zzzyz");
541 ECI_DACXZYZ = Global.getConfig("eci.prod.dacxzyz");
542 }
543 }
544
482 } 545 }
......
1 package com.thinkgem.jeesite.modules.eci.dao;
2
3 import com.thinkgem.jeesite.common.persistence.CrudDao;
4 import com.thinkgem.jeesite.modules.eci.entity.ElecLicenseInfo;
5 import org.apache.ibatis.annotations.Param;
6
7 import java.util.List;
8
9 public interface ElecLicenseInfoDao extends CrudDao<ElecLicenseInfo> {
10
11 /**
12 * 获取需要创建合同contractId为空的集合
13 *
14 * @return
15 */
16 List<ElecLicenseInfo> getContractIdIsNull();
17
18 /**
19 * 更新合同ID和状态
20 * @param waitForCreateContract
21 * @return
22 */
23 Integer updateContractIdAndStatus(@Param("waitForCreateContract") ElecLicenseInfo waitForCreateContract);
24
25 /**
26 * 获取需要更新合同DOUCUMENT_ID为空的集合
27 *
28 * @return
29 */
30 List<ElecLicenseInfo> getDocumentIdIsNull();
31
32 /**
33 * 更新合同文档ID
34 *
35 * @param bizId 主键
36 * @param documentId 文档ID
37 * @return
38 */
39 Integer updateDocumentId(@Param("bizId") String bizId, @Param("documentId") Long documentId);
40
41 /**
42 * 获取合同文档ID已经入库并且还未下载集合
43 *
44 * @return
45 */
46 List<ElecLicenseInfo> getWaitForDownload();
47
48 /**
49 * 更新OFD文件地址和下载状态
50 *
51 * @param bizId
52 * @param ofdPath
53 * @return
54 */
55 Integer updateOfdWjdz(@Param("bizId") String bizId, @Param("ofdPath") String ofdPath);
56
57 /**
58 * 获取已经下载还未转换的集合
59 *
60 * @return
61 */
62 List<ElecLicenseInfo> getWaitForConvert();
63
64
65 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 /**
4 * 签署人
5 */
6 public class ActionOperator {
7
8 private static final long serialVersionUID = 1L;
9
10 /**
11 * 否
12 * 签署人姓名
13 */
14 private String operatorName;
15
16 /**
17 * 联系方式与员工编号不能同时为空
18 * 签署人联系方式
19 */
20 private String operatorContact;
21
22 /**
23 * 联系方式与员工编号不能同时为空
24 * 签署人员工编号(用于企业签署方)
25 */
26 private String operatorNumber;
27
28 public String getOperatorName() {
29 return operatorName;
30 }
31
32 public void setOperatorName(String operatorName) {
33 this.operatorName = operatorName;
34 }
35
36 public String getOperatorContact() {
37 return operatorContact;
38 }
39
40 public void setOperatorContact(String operatorContact) {
41 this.operatorContact = operatorContact;
42 }
43
44 public String getOperatorNumber() {
45 return operatorNumber;
46 }
47
48 public void setOperatorNumber(String operatorNumber) {
49 this.operatorNumber = operatorNumber;
50 }
51
52 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3
4 import java.util.List;
5
6 /**
7 * 签署动作
8 */
9 public class ActionRequest {
10
11 private static final long serialVersionUID = 1L;
12
13 /**
14 * 是
15 * 签署动作类型:CORPORATE(企业签章),PERSONAL(个人签字),LP(法定代表人签字),AUDIT(审批)
16 */
17 private String type;
18
19 /**
20 * 是
21 * 签署动作名称
22 */
23 private String name;
24
25 /**
26 * 是
27 * 签署顺序(从1开始);如果想按顺序签署,则分别设置签署动作的serialNo为1,2,3;如果想无序签署,则设置签署动作的serialNo为1,1,1;设置签署动作顺序为1,2,2时,表示第一个先签署,后两个同时签署。
28 */
29 private Integer serialNo;
30
31 /**
32 * 否
33 * 印章ID,指定企业签章所用印章
34 */
35 private Long sealId;
36
37 /**
38 * 否
39 * 指定印章,格式:[123123123213,123213213213]
40 */
41 private String sealIds;
42
43 /**
44 * 否
45 * 指定多个印章名称,印章不存在或存在多个抛出异常 格式:["印章一","印章二"]
46 */
47 private String sealNames;
48
49 /**
50 * 否
51 * 指定印章的印章类型
52 */
53 private String sealCategoryName;
54
55 /**
56 * 否
57 * 签章所属组织ID,发起方生效,默认为发起方关联的组织
58 */
59 private Long sealOwner;
60
61 /**
62 * 否
63 * 是否自动签署
64 */
65 private boolean autoSign;
66
67 /**
68 * 否
69 * 签署人(法定代表人签字无需填写该项)
70 */
71 private List<ActionOperator> actionOperators;
72
73 /**
74 * 否
75 * 签署位置
76 */
77 private List<SignatoryRect> locations;
78
79 public String getType() {
80 return type;
81 }
82
83 public void setType(String type) {
84 this.type = type;
85 }
86
87 public String getName() {
88 return name;
89 }
90
91 public void setName(String name) {
92 this.name = name;
93 }
94
95 public Integer getSerialNo() {
96 return serialNo;
97 }
98
99 public void setSerialNo(Integer serialNo) {
100 this.serialNo = serialNo;
101 }
102
103 public Long getSealId() {
104 return sealId;
105 }
106
107 public void setSealId(Long sealId) {
108 this.sealId = sealId;
109 }
110
111 public String getSealIds() {
112 return sealIds;
113 }
114
115 public void setSealIds(String sealIds) {
116 this.sealIds = sealIds;
117 }
118
119 public String getSealNames() {
120 return sealNames;
121 }
122
123 public void setSealNames(String sealNames) {
124 this.sealNames = sealNames;
125 }
126
127 public String getSealCategoryName() {
128 return sealCategoryName;
129 }
130
131 public void setSealCategoryName(String sealCategoryName) {
132 this.sealCategoryName = sealCategoryName;
133 }
134
135 public Long getSealOwner() {
136 return sealOwner;
137 }
138
139 public void setSealOwner(Long sealOwner) {
140 this.sealOwner = sealOwner;
141 }
142
143 public boolean isAutoSign() {
144 return autoSign;
145 }
146
147 public void setAutoSign(boolean autoSign) {
148 this.autoSign = autoSign;
149 }
150
151 public List<ActionOperator> getActionOperators() {
152 return actionOperators;
153 }
154
155 public void setActionOperators(List<ActionOperator> actionOperators) {
156 this.actionOperators = actionOperators;
157 }
158
159 public List<SignatoryRect> getLocations() {
160 return locations;
161 }
162
163 public void setLocations(List<SignatoryRect> locations) {
164 this.locations = locations;
165 }
166
167 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.io.Serializable;
4 import java.util.Date;
5 import java.util.List;
6
7 /**
8 * 签署动作相应
9 */
10 public class ActionResponse implements Serializable {
11
12 private static final long serialVersionUID = 6489919156899102962L;
13 /**
14 * 签署动作ID
15 */
16 private Long id;
17
18 /**
19 * 动作类型: OPERATOR("经办人签字"),LP("法定代表人签字"),CORPORATE("企业签章"),PERSONAL("个人签字"),AUDIT("审批"),FILL("合同填参"),TERMINATE_CORPORATE("合同作废"),TERMINATE_PERSONAL("合同作废"),COUNTERSIGN("会签签章")
20 */
21 private String type;
22
23 /**
24 * 名称
25 */
26 private String name;
27
28 /**
29 * 状态:FILLING(填参中),FILLED(完成填参 ),WAITING(等待签署),SIGNING(签署中),SIGNED(完成),DISCARDED(废弃),REJECTED(拒绝),FINISHED(已完成,强制结束)
30 */
31 private String status;
32
33 /**
34 * 创建时间
35 */
36 private Date createTime;
37
38 /**
39 * 完成时间
40 */
41 private Date completeTime;
42
43 /**
44 * 签署动作操作人
45 */
46 private List<OperatorResponse> actionOperators;
47
48 /**
49 * 操作人类型:EMPLOYEE(员工),ROLE(角色),USER(用户),COMPANY(企业),LP_USER(法人)
50 */
51 private String operatorType;
52
53 /**
54 * 操作人ID
55 */
56 private Long operatorId;
57
58 /**
59 * 操作人名称
60 */
61 private String operatorName;
62
63 public Long getId() {
64 return id;
65 }
66
67 public void setId(Long id) {
68 this.id = id;
69 }
70
71 public String getType() {
72 return type;
73 }
74
75 public void setType(String type) {
76 this.type = type;
77 }
78
79 public String getName() {
80 return name;
81 }
82
83 public void setName(String name) {
84 this.name = name;
85 }
86
87 public String getStatus() {
88 return status;
89 }
90
91 public void setStatus(String status) {
92 this.status = status;
93 }
94
95 public Date getCreateTime() {
96 return createTime;
97 }
98
99 public void setCreateTime(Date createTime) {
100 this.createTime = createTime;
101 }
102
103 public Date getCompleteTime() {
104 return completeTime;
105 }
106
107 public void setCompleteTime(Date completeTime) {
108 this.completeTime = completeTime;
109 }
110
111 public List<OperatorResponse> getActionOperators() {
112 return actionOperators;
113 }
114
115 public void setActionOperators(List<OperatorResponse> actionOperators) {
116 this.actionOperators = actionOperators;
117 }
118
119 public String getOperatorType() {
120 return operatorType;
121 }
122
123 public void setOperatorType(String operatorType) {
124 this.operatorType = operatorType;
125 }
126
127 public Long getOperatorId() {
128 return operatorId;
129 }
130
131 public void setOperatorId(Long operatorId) {
132 this.operatorId = operatorId;
133 }
134
135 public String getOperatorName() {
136 return operatorName;
137 }
138
139 public void setOperatorName(String operatorName) {
140 this.operatorName = operatorName;
141 }
142 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.io.Serializable;
4 import java.util.List;
5
6 /**
7 * 合同详情
8 */
9 public class Contract implements Serializable {
10
11 private static final long serialVersionUID = 8444369877748311005L;
12 /**
13 * 合同ID
14 */
15 private Long id;
16
17 /**
18 * 合同的唯一标识,由调用方生成
19 */
20 private String bizId;
21
22 /**
23 * 合同主题
24 */
25 private String subject;
26
27 /**
28 * 合同编号
29 */
30 private String sn;
31
32 /**
33 * 描述
34 */
35 private String description;
36
37 /**
38 * 是否顺序签署
39 */
40 private Boolean ordinal;
41
42 /**
43 * 合同状态:DRAFT(草稿),SIGNING(签署中),COMPLETE(已完成),REJECTED(已退回),RECALLED(已撤回),EXPIRED(已过期),FILLING(拟定中),TERMINATING(作废确认中),TERMINATED(已作废),DELETE(已删除),FINISHED(已完成)
44 */
45 private String status;
46
47 /**
48 * 合同分类
49 */
50 private Long categoryId;
51
52 /**
53 * 合同分类名称
54 */
55 private String categoryName;
56
57 /**
58 * 合同具体发起人ID
59 */
60 private Long creatorId;
61
62 /**
63 * 创建人名称
64 */
65 private String creatorName;
66
67 /**
68 * 合同具体发起人类型:CORPORATE(平台方),INNER_COMPANY(内部企业),PERSONAL(个人)
69 */
70 private String creatorType;
71
72 /**
73 * 创建人在发起方中的员工编号(用于创建人为个人)
74 */
75 private String creatorNumber;
76
77 /**
78 * 合同发起方ID
79 */
80 private Long tenantId;
81
82 /**
83 * 发起方名称
84 */
85 private String tenantName;
86
87 /**
88 * 合同发起方类型:CORPORATE(平台方),COMPANY(外部企业),INNER_COMPANY(内部企业),PERSONAL(个人)
89 */
90 private String tenantType;
91
92 /**
93 * 合同最后更新时间;格式yyyy-MM-dd HH:mm:ss
94 */
95 private String updateTime;
96
97 /**
98 * 合同过期时间;格式yyyy-MM-dd HH:mm:ss
99 */
100 private String expireTime;
101
102 /**
103 * 合同创建时间;格式yyyy-MM-dd HH:mm:ss
104 */
105 private String createTime;
106
107 /**
108 * 合同拒绝/撤回原因
109 */
110 private String comments;
111
112 /**
113 * 是否可退回
114 */
115 private Boolean rejectable;
116
117 /**
118 * 是否可撤回
119 */
120 private Boolean recallable;
121
122 /**
123 * 是否可作废
124 */
125 private Boolean cancelable;
126
127 /**
128 * 是否可面对面签署
129 */
130 private Boolean faceSign;
131
132 /**
133 * 是否可拒绝作废
134 */
135 private Boolean rejectCancel;
136
137 /**
138 * 文档信息集合
139 */
140 private List<DocumentResponse> documents;
141
142 /**
143 * 签署方集合
144 */
145 private List<SignatoryResponse> signatories;
146
147 /**
148 * 用户的业务数据
149 */
150 private String businessData;
151
152 /**
153 * 签署code
154 */
155 private Integer signCode;
156
157 /**
158 * 剩余打印次数,-1表示无限制
159 */
160 private Integer leftPrintCount;
161
162 /**
163 * 合同类型: NORMAL(标准合同)、OFFLINE(线下合同)
164 */
165 private String type;
166
167 public Long getId() {
168 return id;
169 }
170
171 public void setId(Long id) {
172 this.id = id;
173 }
174
175 public String getBizId() {
176 return bizId;
177 }
178
179 public void setBizId(String bizId) {
180 this.bizId = bizId;
181 }
182
183 public String getSubject() {
184 return subject;
185 }
186
187 public void setSubject(String subject) {
188 this.subject = subject;
189 }
190
191 public String getSn() {
192 return sn;
193 }
194
195 public void setSn(String sn) {
196 this.sn = sn;
197 }
198
199 public String getDescription() {
200 return description;
201 }
202
203 public void setDescription(String description) {
204 this.description = description;
205 }
206
207 public Boolean getOrdinal() {
208 return ordinal;
209 }
210
211 public void setOrdinal(Boolean ordinal) {
212 this.ordinal = ordinal;
213 }
214
215 public String getStatus() {
216 return status;
217 }
218
219 public void setStatus(String status) {
220 this.status = status;
221 }
222
223 public Long getCategoryId() {
224 return categoryId;
225 }
226
227 public void setCategoryId(Long categoryId) {
228 this.categoryId = categoryId;
229 }
230
231 public String getCategoryName() {
232 return categoryName;
233 }
234
235 public void setCategoryName(String categoryName) {
236 this.categoryName = categoryName;
237 }
238
239 public Long getCreatorId() {
240 return creatorId;
241 }
242
243 public void setCreatorId(Long creatorId) {
244 this.creatorId = creatorId;
245 }
246
247 public String getCreatorName() {
248 return creatorName;
249 }
250
251 public void setCreatorName(String creatorName) {
252 this.creatorName = creatorName;
253 }
254
255 public String getCreatorType() {
256 return creatorType;
257 }
258
259 public void setCreatorType(String creatorType) {
260 this.creatorType = creatorType;
261 }
262
263 public String getCreatorNumber() {
264 return creatorNumber;
265 }
266
267 public void setCreatorNumber(String creatorNumber) {
268 this.creatorNumber = creatorNumber;
269 }
270
271 public Long getTenantId() {
272 return tenantId;
273 }
274
275 public void setTenantId(Long tenantId) {
276 this.tenantId = tenantId;
277 }
278
279 public String getTenantName() {
280 return tenantName;
281 }
282
283 public void setTenantName(String tenantName) {
284 this.tenantName = tenantName;
285 }
286
287 public String getTenantType() {
288 return tenantType;
289 }
290
291 public void setTenantType(String tenantType) {
292 this.tenantType = tenantType;
293 }
294
295 public String getUpdateTime() {
296 return updateTime;
297 }
298
299 public void setUpdateTime(String updateTime) {
300 this.updateTime = updateTime;
301 }
302
303 public String getExpireTime() {
304 return expireTime;
305 }
306
307 public void setExpireTime(String expireTime) {
308 this.expireTime = expireTime;
309 }
310
311 public String getCreateTime() {
312 return createTime;
313 }
314
315 public void setCreateTime(String createTime) {
316 this.createTime = createTime;
317 }
318
319 public String getComments() {
320 return comments;
321 }
322
323 public void setComments(String comments) {
324 this.comments = comments;
325 }
326
327 public Boolean getRejectable() {
328 return rejectable;
329 }
330
331 public void setRejectable(Boolean rejectable) {
332 this.rejectable = rejectable;
333 }
334
335 public Boolean getRecallable() {
336 return recallable;
337 }
338
339 public void setRecallable(Boolean recallable) {
340 this.recallable = recallable;
341 }
342
343 public Boolean getCancelable() {
344 return cancelable;
345 }
346
347 public void setCancelable(Boolean cancelable) {
348 this.cancelable = cancelable;
349 }
350
351 public Boolean getFaceSign() {
352 return faceSign;
353 }
354
355 public void setFaceSign(Boolean faceSign) {
356 this.faceSign = faceSign;
357 }
358
359 public Boolean getRejectCancel() {
360 return rejectCancel;
361 }
362
363 public void setRejectCancel(Boolean rejectCancel) {
364 this.rejectCancel = rejectCancel;
365 }
366
367 public List<DocumentResponse> getDocuments() {
368 return documents;
369 }
370
371 public void setDocuments(List<DocumentResponse> documents) {
372 this.documents = documents;
373 }
374
375 public List<SignatoryResponse> getSignatories() {
376 return signatories;
377 }
378
379 public void setSignatories(List<SignatoryResponse> signatories) {
380 this.signatories = signatories;
381 }
382
383 public String getBusinessData() {
384 return businessData;
385 }
386
387 public void setBusinessData(String businessData) {
388 this.businessData = businessData;
389 }
390
391 public Integer getSignCode() {
392 return signCode;
393 }
394
395 public void setSignCode(Integer signCode) {
396 this.signCode = signCode;
397 }
398
399 public Integer getLeftPrintCount() {
400 return leftPrintCount;
401 }
402
403 public void setLeftPrintCount(Integer leftPrintCount) {
404 this.leftPrintCount = leftPrintCount;
405 }
406
407 public String getType() {
408 return type;
409 }
410
411 public void setType(String type) {
412 this.type = type;
413 }
414 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.io.Serializable;
4
5 public class ContractDetailsRequest implements Serializable {
6
7 private static final long serialVersionUID = 1L;
8
9 /**
10 * 合同ID 或 bizId必须填写一个
11 * 合同ID
12 */
13 private Long contractId;
14
15 /**
16 * 合同的唯一标识,由调用方生成
17 */
18 private String bizId;
19
20 /**
21 * 否
22 * 是否查询签署方用印记录
23 */
24 private Boolean countSeal;
25
26 public Long getContractId() {
27 return contractId;
28 }
29
30 public void setContractId(Long contractId) {
31 this.contractId = contractId;
32 }
33
34 public String getBizId() {
35 return bizId;
36 }
37
38 public void setBizId(String bizId) {
39 this.bizId = bizId;
40 }
41
42 public Boolean getCountSeal() {
43 return countSeal;
44 }
45
46 public void setCountSeal(Boolean countSeal) {
47 this.countSeal = countSeal;
48 }
49 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.io.Serializable;
4
5 /**
6 * 合同详情接口返回实体
7 */
8 public class ContractDetailsResponse implements Serializable {
9
10 private static final long serialVersionUID = -3548126503391957301L;
11 /**
12 * 错误码,0为成功,1000000未知错误,1000001参数错误
13 */
14 private Integer code;
15
16 /**
17 * 错误信息
18 */
19 private String message;
20
21 /**
22 * 合同详情
23 */
24 private Contract contract;
25
26 public Integer getCode() {
27 return code;
28 }
29
30 public void setCode(Integer code) {
31 this.code = code;
32 }
33
34 public String getMessage() {
35 return message;
36 }
37
38 public void setMessage(String message) {
39 this.message = message;
40 }
41
42 public Contract getContract() {
43 return contract;
44 }
45
46 public void setContract(Contract contract) {
47 this.contract = contract;
48 }
49 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 /**
4 * 抄送人配置
5 */
6 public class ContractTransmitItem {
7
8
9 private static final long serialVersionUID = 1L;
10
11 /**
12 * 是
13 * 抄送人联系方式
14 */
15 private String receiverMobile;
16
17 /**
18 * 是
19 * 抄送人名称
20 */
21 private String receiverName;
22
23 public String getReceiverMobile() {
24 return receiverMobile;
25 }
26
27 public void setReceiverMobile(String receiverMobile) {
28 this.receiverMobile = receiverMobile;
29 }
30
31 public String getReceiverName() {
32 return receiverName;
33 }
34
35 public void setReceiverName(String receiverName) {
36 this.receiverName = receiverName;
37 }
38 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import org.apache.poi.ss.formula.functions.T;
4
5 import java.util.List;
6
7 /**
8 * 创建合同请求实体
9 */
10 public class CreateContractRequest {
11
12 private static final long serialVersionUID = 1L;
13 /**
14 * 是
15 * 合同名称
16 */
17 private String subject;
18
19 /**
20 * 否
21 * 合同编号,对接方系统中的业务编号
22 */
23 private String sn;
24
25 /**
26 * 否
27 * 合同描述
28 */
29 private String description;
30
31 /**
32 * 否
33 * 用印流程ID
34 */
35 private String categoryId;
36
37 /**
38 * 否
39 * 用印流程名称,如果分类ID为空,则用此参数确定用印流程
40 */
41 private String categoryName;
42
43 /**
44 * 否
45 * 是否发起合同,默认true。(true:立即发起;false:保存为草稿)
46 */
47 private boolean send;
48
49 /**
50 * 否
51 * 合同文档ID的集合(一个文档只能属于一个合同)
52 */
53 private List<Long> documents;
54
55 /**
56 * 否
57 * 合同过期时间;格式:yyyy-MM-dd HH:mm:ss,过期未结束签署,则作废,不传该参数则默认使用控制台配置的过期时间
58 */
59 private String expireTime;
60
61 /**
62 * 否
63 * 合同终止时间;格式:yyyy-MM-dd ,系统将时间调至传入时间的23时59分59秒。
64 */
65 private String endTime;
66
67 /**
68 * 否
69 * 合同创建人姓名
70 */
71 private String creatorName;
72
73 /**
74 * 否
75 * 合同创建人手机号码
76 */
77 private String creatorContact;
78
79 /**
80 * 否
81 * 合同创建人邮箱
82 */
83 private String creatorEmail;
84
85 /**
86 * 否
87 * 合同创建人在发起方中的员工编号
88 */
89 private String creatorNumber;
90
91 /**
92 * 否
93 * 发起方名称
94 */
95 private String tenantName;
96
97 /**
98 * 否
99 * 签署方,为空时在合同签署完成后需要调用接口“封存合同”主动结束合同
100 */
101 private List<SignatoryRequest> signatories;
102
103 /**
104 * 否
105 * 模板参数
106 */
107 private List<T> documentParams;
108
109 /**
110 * 否
111 * 用户的业务数据
112 */
113 private String businessData;
114
115 /**
116 * 否
117 * 合同的唯一标识,由调用方生成
118 */
119 private String bizId;
120
121 /**
122 * 否
123 * 水印配置(需在用印流程配置水印并勾选通过接口设置),参考WaterMarkContent
124 */
125 private List<WaterMarkContent> waterMarkConfigs;
126
127 /**
128 * 否
129 * 指定位置外签署,默认使用业务分类中的「签署位置规则」配置
130 */
131 private boolean extraSign;
132
133 /**
134 * 否
135 * 允许指定位置签署,默认使用业务分类中的「签署位置规则」配置
136 */
137 private boolean mustSign;
138
139 /**
140 * 否
141 * 是否自动生成会签节点(用于签署动作中传入多个印章并且未指定签署人)默认false
142 */
143 private boolean autoCreateCounterSign;
144
145 /**
146 * 否
147 * 是否所有文档均需签署:1. DEFAULT, 默认,无需签署所有文档2. ALL, 所有签署方每个签署节点必须签署所有文档3. SENDER, 发起方每个签署节点必须签署所有文档4. RECEIVER 接受方每个节点必须签署所有文档
148 */
149 private String signAll;
150
151 /**
152 * 否
153 * 抄送人配置,参考ContractTransmit
154 */
155 private List<ContractTransmitItem> transmitters;
156
157 /**
158 * 否
159 * 0 发送全部通知;1 仅发送短信通知;2 仅发送邮件通知
160 */
161 private Integer msgCode;
162
163 public String getSubject() {
164 return subject;
165 }
166
167 public void setSubject(String subject) {
168 this.subject = subject;
169 }
170
171 public String getSn() {
172 return sn;
173 }
174
175 public void setSn(String sn) {
176 this.sn = sn;
177 }
178
179 public String getDescription() {
180 return description;
181 }
182
183 public void setDescription(String description) {
184 this.description = description;
185 }
186
187 public String getCategoryId() {
188 return categoryId;
189 }
190
191 public void setCategoryId(String categoryId) {
192 this.categoryId = categoryId;
193 }
194
195 public String getCategoryName() {
196 return categoryName;
197 }
198
199 public void setCategoryName(String categoryName) {
200 this.categoryName = categoryName;
201 }
202
203 public boolean isSend() {
204 return send;
205 }
206
207 public void setSend(boolean send) {
208 this.send = send;
209 }
210
211 public List<Long> getDocuments() {
212 return documents;
213 }
214
215 public void setDocuments(List<Long> documents) {
216 this.documents = documents;
217 }
218
219 public String getExpireTime() {
220 return expireTime;
221 }
222
223 public void setExpireTime(String expireTime) {
224 this.expireTime = expireTime;
225 }
226
227 public String getEndTime() {
228 return endTime;
229 }
230
231 public void setEndTime(String endTime) {
232 this.endTime = endTime;
233 }
234
235 public String getCreatorName() {
236 return creatorName;
237 }
238
239 public void setCreatorName(String creatorName) {
240 this.creatorName = creatorName;
241 }
242
243 public String getCreatorContact() {
244 return creatorContact;
245 }
246
247 public void setCreatorContact(String creatorContact) {
248 this.creatorContact = creatorContact;
249 }
250
251 public String getCreatorEmail() {
252 return creatorEmail;
253 }
254
255 public void setCreatorEmail(String creatorEmail) {
256 this.creatorEmail = creatorEmail;
257 }
258
259 public String getCreatorNumber() {
260 return creatorNumber;
261 }
262
263 public void setCreatorNumber(String creatorNumber) {
264 this.creatorNumber = creatorNumber;
265 }
266
267 public String getTenantName() {
268 return tenantName;
269 }
270
271 public void setTenantName(String tenantName) {
272 this.tenantName = tenantName;
273 }
274
275 public List<SignatoryRequest> getSignatories() {
276 return signatories;
277 }
278
279 public void setSignatories(List<SignatoryRequest> signatories) {
280 this.signatories = signatories;
281 }
282
283 public List<T> getDocumentParams() {
284 return documentParams;
285 }
286
287 public void setDocumentParams(List<T> documentParams) {
288 this.documentParams = documentParams;
289 }
290
291 public String getBusinessData() {
292 return businessData;
293 }
294
295 public void setBusinessData(String businessData) {
296 this.businessData = businessData;
297 }
298
299 public String getBizId() {
300 return bizId;
301 }
302
303 public void setBizId(String bizId) {
304 this.bizId = bizId;
305 }
306
307 public List<WaterMarkContent> getWaterMarkConfigs() {
308 return waterMarkConfigs;
309 }
310
311 public void setWaterMarkConfigs(List<WaterMarkContent> waterMarkConfigs) {
312 this.waterMarkConfigs = waterMarkConfigs;
313 }
314
315 public boolean isExtraSign() {
316 return extraSign;
317 }
318
319 public void setExtraSign(boolean extraSign) {
320 this.extraSign = extraSign;
321 }
322
323 public boolean isMustSign() {
324 return mustSign;
325 }
326
327 public void setMustSign(boolean mustSign) {
328 this.mustSign = mustSign;
329 }
330
331 public boolean isAutoCreateCounterSign() {
332 return autoCreateCounterSign;
333 }
334
335 public void setAutoCreateCounterSign(boolean autoCreateCounterSign) {
336 this.autoCreateCounterSign = autoCreateCounterSign;
337 }
338
339 public String getSignAll() {
340 return signAll;
341 }
342
343 public void setSignAll(String signAll) {
344 this.signAll = signAll;
345 }
346
347 public List<ContractTransmitItem> getTransmitters() {
348 return transmitters;
349 }
350
351 public void setTransmitters(List<ContractTransmitItem> transmitters) {
352 this.transmitters = transmitters;
353 }
354
355 public Integer getMsgCode() {
356 return msgCode;
357 }
358
359 public void setMsgCode(Integer msgCode) {
360 this.msgCode = msgCode;
361 }
362
363 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 /**
4 * 创建合同接口返回实体
5 */
6 public class CreateContractResponse {
7
8 /**
9 * 响应码
10 * 0:请求成功.
11 * 1000000:未知错误.
12 * 1000001:参数错误.
13 */
14 private Integer code;
15
16 /**
17 * 响应消息
18 */
19 private String message;
20
21 /**
22 * 合同ID
23 */
24 private Long contractId;
25
26 public Integer getCode() {
27 return code;
28 }
29
30 public void setCode(Integer code) {
31 this.code = code;
32 }
33
34 public String getMessage() {
35 return message;
36 }
37
38 public void setMessage(String message) {
39 this.message = message;
40 }
41
42 public Long getContractId() {
43 return contractId;
44 }
45
46 public void setContractId(Long contractId) {
47 this.contractId = contractId;
48 }
49 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 /**
4 * 模板参数
5 */
6 public class DocumentParam {
7
8 private static final long serialVersionUID = 1L;
9
10 /**
11 * 是
12 * 模板参数名称
13 */
14 private String name;
15
16 /**
17 * 是
18 * 模板参数值
19 */
20 private String value;
21
22 public String getName() {
23 return name;
24 }
25
26 public void setName(String name) {
27 this.name = name;
28 }
29
30 public String getValue() {
31 return value;
32 }
33
34 public void setValue(String value) {
35 this.value = value;
36 }
37 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.io.Serializable;
4
5 /**
6 * 合同文档模板参数响应
7 */
8 public class DocumentParamResponse implements Serializable {
9
10 private static final long serialVersionUID = -3418534324086360899L;
11 /**
12 * 文档参数名称
13 */
14 private String name;
15
16 /**
17 * 文档参数值
18 */
19 private String value;
20
21 /**
22 * 是否必填
23 */
24 private Boolean required;
25
26 /**
27 * 参数所在页码
28 */
29 private Integer page;
30
31 /**
32 * 参数X坐标(占页宽比)
33 */
34 private Double offsetX;
35
36 private Double offsetY;
37
38 /**
39 * 参数由哪方填写,小于等于0:发起方,1~10000:接收方,长整型为对应签署方
40 */
41 private Long signatory;
42
43 /**
44 * 印章类型,只在合同完成时使用
45 */
46 private String signType;
47
48 /**
49 * 对应印章类型的数量,与signType一起使用
50 */
51 private Integer signCountByType;
52
53 public String getName() {
54 return name;
55 }
56
57 public void setName(String name) {
58 this.name = name;
59 }
60
61 public String getValue() {
62 return value;
63 }
64
65 public void setValue(String value) {
66 this.value = value;
67 }
68
69 public Boolean getRequired() {
70 return required;
71 }
72
73 public void setRequired(Boolean required) {
74 this.required = required;
75 }
76
77 public Integer getPage() {
78 return page;
79 }
80
81 public void setPage(Integer page) {
82 this.page = page;
83 }
84
85 public Double getOffsetX() {
86 return offsetX;
87 }
88
89 public void setOffsetX(Double offsetX) {
90 this.offsetX = offsetX;
91 }
92
93 public Double getOffsetY() {
94 return offsetY;
95 }
96
97 public void setOffsetY(Double offsetY) {
98 this.offsetY = offsetY;
99 }
100
101 public Long getSignatory() {
102 return signatory;
103 }
104
105 public void setSignatory(Long signatory) {
106 this.signatory = signatory;
107 }
108
109 public String getSignType() {
110 return signType;
111 }
112
113 public void setSignType(String signType) {
114 this.signType = signType;
115 }
116
117 public Integer getSignCountByType() {
118 return signCountByType;
119 }
120
121 public void setSignCountByType(Integer signCountByType) {
122 this.signCountByType = signCountByType;
123 }
124 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.io.Serializable;
4 import java.util.Date;
5 import java.util.List;
6
7 /**
8 * 文档信息响应实体
9 */
10 public class DocumentResponse implements Serializable {
11
12 private static final long serialVersionUID = 9073285508191776029L;
13 /**
14 * 合同文档ID
15 */
16 private Long id;
17
18 /**
19 * 文档名称
20 */
21 private String title;
22
23 /**
24 * 文档页数
25 */
26 private Integer pages;
27
28 /**
29 * 文档大小
30 */
31 private Long size;
32
33 /**
34 * 创建时间;格式yyyy-MM-dd HH:mm:ss
35 */
36 private Date createTime;
37
38 /**
39 * 防伪码
40 */
41 private String antifakeCode;
42
43 /**
44 * 合同文档模板参数
45 */
46 private List<DocumentParamResponse> params;
47
48 /**
49 * 文件用途:NORMAL(合同正文)、TERMINATION(作废声明)、OFFLINE(线下签署文件)
50 */
51 private String usage;
52
53 public Long getId() {
54 return id;
55 }
56
57 public void setId(Long id) {
58 this.id = id;
59 }
60
61 public String getTitle() {
62 return title;
63 }
64
65 public void setTitle(String title) {
66 this.title = title;
67 }
68
69 public Integer getPages() {
70 return pages;
71 }
72
73 public void setPages(Integer pages) {
74 this.pages = pages;
75 }
76
77 public Long getSize() {
78 return size;
79 }
80
81 public void setSize(Long size) {
82 this.size = size;
83 }
84
85 public Date getCreateTime() {
86 return createTime;
87 }
88
89 public void setCreateTime(Date createTime) {
90 this.createTime = createTime;
91 }
92
93 public String getAntifakeCode() {
94 return antifakeCode;
95 }
96
97 public void setAntifakeCode(String antifakeCode) {
98 this.antifakeCode = antifakeCode;
99 }
100
101 public List<DocumentParamResponse> getParams() {
102 return params;
103 }
104
105 public void setParams(List<DocumentParamResponse> params) {
106 this.params = params;
107 }
108
109 public String getUsage() {
110 return usage;
111 }
112
113 public void setUsage(String usage) {
114 this.usage = usage;
115 }
116 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.util.Date;
4
5 /**
6 * 电子证照表实体
7 */
8 public class ElecLicenseInfo {
9
10 /**
11 * 合同标识,主键,自己生成
12 */
13 private String bizId;
14
15 /**
16 * 合同ID
17 */
18 private Long contractId;
19
20 /**
21 * 模板参数
22 */
23 private String documentParam;
24
25 /**
26 * 合同文档ID
27 */
28 private Long documentId;
29
30 /**
31 * 合同类型.1:不动产登记证明.2:不动产权证书.3:不动产查询证明
32 */
33 private String htlx;
34
35 /**
36 * 业务号
37 */
38 private String ywh;
39
40 /**
41 * 证书标识
42 */
43 private String zsbs;
44
45 /**
46 * 提交参数
47 */
48 private String tjcs;
49
50 /**
51 * 返回结果
52 */
53 private String fhjg;
54
55 /**
56 * 推送状态
57 */
58 private String tszt;
59
60 /**
61 * 合同状态(DRAFT:草稿,FILLING:拟定中,SIGNING:签署中,COMPLETE:已完成,REJECTED:已退回,RECALLED:已撤回,EXPIRED:已过期,TERMINATING:作废中,TERMINATED:已作废,DELETE:已删除,FINISHED:强制完成)
62 */
63 private String htzt;
64
65 /**
66 * 推送时间
67 */
68 private Date tssj;
69
70 /**
71 * 是否下载 1是2否
72 */
73 private String sfxz;
74
75 /**
76 * ofd文件地址
77 */
78 private String ofdWjdz;
79
80 /**
81 * 是否转换1是2否
82 */
83 private String sfzh;
84
85 /**
86 * jpg文件地址
87 */
88 private String jpgWjdz;
89
90 /**
91 * 备注
92 */
93 private String bz;
94
95 public String getBizId() {
96 return bizId;
97 }
98
99 public void setBizId(String bizId) {
100 this.bizId = bizId;
101 }
102
103 public Long getContractId() {
104 return contractId;
105 }
106
107 public void setContractId(Long contractId) {
108 this.contractId = contractId;
109 }
110
111 public String getDocumentParam() {
112 return documentParam;
113 }
114
115 public void setDocumentParam(String documentParam) {
116 this.documentParam = documentParam;
117 }
118
119 public Long getDocumentId() {
120 return documentId;
121 }
122
123 public void setDocumentId(Long documentId) {
124 this.documentId = documentId;
125 }
126
127 public String getHtlx() {
128 return htlx;
129 }
130
131 public void setHtlx(String htlx) {
132 this.htlx = htlx;
133 }
134
135 public String getYwh() {
136 return ywh;
137 }
138
139 public void setYwh(String ywh) {
140 this.ywh = ywh;
141 }
142
143 public String getZsbs() {
144 return zsbs;
145 }
146
147 public void setZsbs(String zsbs) {
148 this.zsbs = zsbs;
149 }
150
151 public String getTjcs() {
152 return tjcs;
153 }
154
155 public void setTjcs(String tjcs) {
156 this.tjcs = tjcs;
157 }
158
159 public String getFhjg() {
160 return fhjg;
161 }
162
163 public void setFhjg(String fhjg) {
164 this.fhjg = fhjg;
165 }
166
167 public String getTszt() {
168 return tszt;
169 }
170
171 public void setTszt(String tszt) {
172 this.tszt = tszt;
173 }
174
175 public String getHtzt() {
176 return htzt;
177 }
178
179 public void setHtzt(String htzt) {
180 this.htzt = htzt;
181 }
182
183 public Date getTssj() {
184 return tssj;
185 }
186
187 public void setTssj(Date tssj) {
188 this.tssj = tssj;
189 }
190
191 public String getSfxz() {
192 return sfxz;
193 }
194
195 public void setSfxz(String sfxz) {
196 this.sfxz = sfxz;
197 }
198
199 public String getOfdWjdz() {
200 return ofdWjdz;
201 }
202
203 public void setOfdWjdz(String ofdWjdz) {
204 this.ofdWjdz = ofdWjdz;
205 }
206
207 public String getSfzh() {
208 return sfzh;
209 }
210
211 public void setSfzh(String sfzh) {
212 this.sfzh = sfzh;
213 }
214
215 public String getJpgWjdz() {
216 return jpgWjdz;
217 }
218
219 public void setJpgWjdz(String jpgWjdz) {
220 this.jpgWjdz = jpgWjdz;
221 }
222
223 public String getBz() {
224 return bz;
225 }
226
227 public void setBz(String bz) {
228 this.bz = bz;
229 }
230 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.io.Serializable;
4
5 /**
6 * 签署动作操作人
7 */
8 public class OperatorResponse implements Serializable {
9
10 private static final long serialVersionUID = -2918875188564078227L;
11 /**
12 * 操作人类型:EMPLOYEE(员工),ROLE(角色),USER(用户),COMPANY(企业),LP_USER(法人)
13 */
14 private String operatorType;
15
16 /**
17 * 操作人ID
18 */
19 private Long operatorId;
20
21 /**
22 * 操作人名称
23 */
24 private String operatorName;
25
26 public String getOperatorType() {
27 return operatorType;
28 }
29
30 public void setOperatorType(String operatorType) {
31 this.operatorType = operatorType;
32 }
33
34 public Long getOperatorId() {
35 return operatorId;
36 }
37
38 public void setOperatorId(Long operatorId) {
39 this.operatorId = operatorId;
40 }
41
42 public String getOperatorName() {
43 return operatorName;
44 }
45
46 public void setOperatorName(String operatorName) {
47 this.operatorName = operatorName;
48 }
49 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.io.Serializable;
4
5 public class SealStatsBean implements Serializable {
6
7 private static final long serialVersionUID = -1458258324552835005L;
8 private String signType;
9
10 private String signCountByType;
11
12 public String getSignType() {
13 return signType;
14 }
15
16 public void setSignType(String signType) {
17 this.signType = signType;
18 }
19
20 public String getSignCountByType() {
21 return signCountByType;
22 }
23
24 public void setSignCountByType(String signCountByType) {
25 this.signCountByType = signCountByType;
26 }
27 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.io.Serializable;
4
5 /**
6 * 该签约主体签署统计信息
7 */
8 public class SealStatsInfo implements Serializable {
9
10 private static final long serialVersionUID = 3699877748342667560L;
11 /**
12 * 印章ID
13 */
14 private Long sealId;
15
16 /**
17 * 印章名称
18 */
19 private String sealName;
20
21 /**
22 * 用印次数
23 */
24 private Integer count;
25
26 public Long getSealId() {
27 return sealId;
28 }
29
30 public void setSealId(Long sealId) {
31 this.sealId = sealId;
32 }
33
34 public String getSealName() {
35 return sealName;
36 }
37
38 public void setSealName(String sealName) {
39 this.sealName = sealName;
40 }
41
42 public Integer getCount() {
43 return count;
44 }
45
46 public void setCount(Integer count) {
47 this.count = count;
48 }
49 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 /**
4 * 签署位置
5 */
6 public class SignatoryRect{
7
8 private static final long serialVersionUID = 1L;
9 /**
10 * 是
11 * 合同文档ID
12 */
13 private Long documentId;
14
15 /**
16 * 是
17 * 签章类型: SEAL_PERSONAL(个人签名), SEAL_CORPORATE(公司公章),TIMESTAMP(时间戳),ACROSS_PAGE_ODD(奇数页骑缝章),ACROSS_PAGE(骑缝章);骑缝章类型时只需要指定合同文档ID和Y轴坐标。
18 */
19 private String rectType;
20
21 /**
22 * 否 按坐标指定位置时:必传
23 * 签署页码,坐标指定位置时必须,0:全部页,-1:最后一页,其他:第page页
24 */
25 private Integer page;
26
27 /**
28 * 否 按关键字指定位置时:必传
29 * 关键字,关键字指定位置时必须
30 */
31 private String keyword;
32
33 /**
34 * 否
35 * 第几个关键字,0:全部,-1:最后一个,其他:第keyIndex个,默认为1
36 */
37 private Integer keywordIndex;
38
39 /**
40 * 否 按坐标时:必传按关键字时:选传
41 * X轴坐标,坐标定位时必传,关键字定位时选传
42 */
43 private Double offsetX;
44
45 /**
46 * 否 按坐标时:必传按关键字时:选传
47 * Y轴坐标,坐标定位时必传,关键字定位时选传
48 */
49 private Double offsetY;
50
51 public Long getDocumentId() {
52 return documentId;
53 }
54
55 public void setDocumentId(Long documentId) {
56 this.documentId = documentId;
57 }
58
59 public String getRectType() {
60 return rectType;
61 }
62
63 public void setRectType(String rectType) {
64 this.rectType = rectType;
65 }
66
67 public Integer getPage() {
68 return page;
69 }
70
71 public void setPage(Integer page) {
72 this.page = page;
73 }
74
75 public String getKeyword() {
76 return keyword;
77 }
78
79 public void setKeyword(String keyword) {
80 this.keyword = keyword;
81 }
82
83 public Integer getKeywordIndex() {
84 return keywordIndex;
85 }
86
87 public void setKeywordIndex(Integer keywordIndex) {
88 this.keywordIndex = keywordIndex;
89 }
90
91 public Double getOffsetX() {
92 return offsetX;
93 }
94
95 public void setOffsetX(Double offsetX) {
96 this.offsetX = offsetX;
97 }
98
99 public Double getOffsetY() {
100 return offsetY;
101 }
102
103 public void setOffsetY(Double offsetY) {
104 this.offsetY = offsetY;
105 }
106 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.util.List;
4
5 /**
6 * 签署方
7 */
8 public class SignatoryRequest {
9
10 private static final long serialVersionUID = 1L;
11
12 /**
13 * 是
14 * 签约主体类型:COMPANY(外部企业),PERSONAL(个人)
15 */
16 private String tenantType;
17
18 /**
19 * 是
20 * 签约主体名称
21 */
22 private String tenantName;
23
24 /**
25 * 否
26 * 接收人姓名
27 */
28 private String receiverName;
29
30 /**
31 * 否
32 * 接收人联系方式:手机号、电子邮箱号(签署方为个人时联系方式(contact)或编号(receiverNumber)至少传递一个)
33 */
34 private String contact;
35
36 /**
37 * 否
38 * 接收人的员工编号(个人为内部员工时生效)
39 */
40 private String receiverNumber;
41
42 /**
43 * 否
44 * 接收人邮箱
45 */
46 private String email;
47
48 /**
49 * 否
50 * 接收人第三方用户id(用于修改接收人联系方式)
51 */
52 private String thirdUserId;
53
54 /**
55 * 否
56 * 是否人脸识别签署,默认不需要人脸识别(仅签署方类型为个人时有效)
57 */
58 private boolean faceAuthSign;
59
60 /**
61 * 是
62 * 签署顺序(从1开始);如果想按顺序签署,则分别设置签署方的serialNo为1,2,3;如果想无序签署,则设置签署方的serialNo为1,1,1;设置签署方顺序为1,2,2时,表示第一个先签署,后两个同时签署。
63 */
64 private Integer serialNo;
65
66 /**
67 * 否
68 * 签署动作,用印流程非预设且签署方为发起方时,使用用户传入的签署动作,其余情况使用用印流程的配置
69 */
70 private List<ActionRequest> actionRequests;
71
72 /**
73 * 否
74 * 用印流程ID,接收方是内部企业时,可指定用印流程
75 */
76 private String categoryId;
77
78 /**
79 * 否
80 * 用印流程名称,接收方是内部企业时,可指定用印流程
81 */
82 private String categoryName;
83
84 /**
85 * 否
86 * 是否发送消息提醒,默认为true
87 */
88 private boolean remind;
89
90 /**
91 * 否
92 * 身份证号,用于指定个人用户认证时的身份证号
93 */
94 private String cardNo;
95
96 /**
97 * 否
98 * 个人认证方式:NONEED(无需认证),DEFAULT(默认配置),FACE(人脸识别认证),BANK(银行卡认证)
99 */
100 private String authMode;
101
102 /**
103 * 否
104 * 签署方语言:zh_CN(中文),en_US(英文)
105 */
106 private String language;
107
108
109 public String getTenantType() {
110 return tenantType;
111 }
112
113 public void setTenantType(String tenantType) {
114 this.tenantType = tenantType;
115 }
116
117 public String getTenantName() {
118 return tenantName;
119 }
120
121 public void setTenantName(String tenantName) {
122 this.tenantName = tenantName;
123 }
124
125 public String getReceiverName() {
126 return receiverName;
127 }
128
129 public void setReceiverName(String receiverName) {
130 this.receiverName = receiverName;
131 }
132
133 public String getContact() {
134 return contact;
135 }
136
137 public void setContact(String contact) {
138 this.contact = contact;
139 }
140
141 public String getReceiverNumber() {
142 return receiverNumber;
143 }
144
145 public void setReceiverNumber(String receiverNumber) {
146 this.receiverNumber = receiverNumber;
147 }
148
149 public String getEmail() {
150 return email;
151 }
152
153 public void setEmail(String email) {
154 this.email = email;
155 }
156
157 public String getThirdUserId() {
158 return thirdUserId;
159 }
160
161 public void setThirdUserId(String thirdUserId) {
162 this.thirdUserId = thirdUserId;
163 }
164
165 public boolean isFaceAuthSign() {
166 return faceAuthSign;
167 }
168
169 public void setFaceAuthSign(boolean faceAuthSign) {
170 this.faceAuthSign = faceAuthSign;
171 }
172
173 public Integer getSerialNo() {
174 return serialNo;
175 }
176
177 public void setSerialNo(Integer serialNo) {
178 this.serialNo = serialNo;
179 }
180
181 public String getCategoryId() {
182 return categoryId;
183 }
184
185 public void setCategoryId(String categoryId) {
186 this.categoryId = categoryId;
187 }
188
189 public String getCategoryName() {
190 return categoryName;
191 }
192
193 public void setCategoryName(String categoryName) {
194 this.categoryName = categoryName;
195 }
196
197 public boolean isRemind() {
198 return remind;
199 }
200
201 public void setRemind(boolean remind) {
202 this.remind = remind;
203 }
204
205 public String getCardNo() {
206 return cardNo;
207 }
208
209 public void setCardNo(String cardNo) {
210 this.cardNo = cardNo;
211 }
212
213 public String getAuthMode() {
214 return authMode;
215 }
216
217 public void setAuthMode(String authMode) {
218 this.authMode = authMode;
219 }
220
221 public String getLanguage() {
222 return language;
223 }
224
225 public void setLanguage(String language) {
226 this.language = language;
227 }
228
229 public List<ActionRequest> getActions() {
230 return actionRequests;
231 }
232
233 public void setActions(List<ActionRequest> actionRequests) {
234 this.actionRequests = actionRequests;
235 }
236 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 import java.io.Serializable;
4 import java.util.List;
5
6 /**
7 * 签署方
8 */
9 public class SignatoryResponse implements Serializable {
10
11 private static final long serialVersionUID = -7830145977708166582L;
12 /**
13 * 签署方ID
14 */
15 private Long id;
16
17 /**
18 * 签署方公司ID或个人ID
19 */
20 private Long tenantId;
21
22 /**
23 * 签署方类型:CORPORATE(平台企业),INNER_COMPANY(内部企业),(外部企业),PERSONAL(个人)
24 */
25 private String tenantType;
26
27 /**
28 * 签署方名称
29 */
30 private String tenantName;
31
32 /**
33 * 接收人类型:CORPORATE(平台方),COMPANY(外部企业),INNER_COMPANY(内部企业),PERSONAL(个人)
34 */
35 private String receiverType;
36
37 /**
38 * 接收人ID,即可以转发合同的人
39 */
40 private Long receiverId;
41
42 /**
43 * 接收人名称
44 */
45 private String receiverName;
46
47 /**
48 * 接收人联系方式
49 */
50 private String contact;
51
52 /**
53 * 签署顺序
54 */
55 private Integer serialNo;
56
57 /**
58 * 签署状态;DRAFT(草稿),SIGNING(签署中),COMPLETE(已完成)
59 */
60 private Boolean status;
61
62 /**
63 * 是否是发起方
64 */
65 private Boolean sponsor;
66
67 /**
68 * 是否发送信息提醒
69 */
70 private Boolean remind;
71
72 /**
73 * 是否从业务配置中得到
74 */
75 private Boolean configured;
76
77 /**
78 * 创建时间;格式yyyy-MM-dd HH:mm:ss
79 */
80 private String createTime;
81
82 /**
83 * 更新时间;格式yyyy-MM-dd HH:mm:ss
84 */
85 private String updateTime;
86
87 /**
88 * 接收时间;格式yyyy-MM-dd HH:mm:ss
89 */
90 private String receiveTime;
91
92 /**
93 * 是否当面签
94 */
95 private Boolean faceSign;
96
97 /**
98 * 用印流程中,配置的个人认证方式:NONEED("无需认证"),DEFAULT("默认配置"),FACE("人脸识别认证"),BANK("银行卡认证")
99 */
100 private String authMode;
101
102 /**
103 * 签署动作
104 */
105 private List<ActionResponse> actionRequests;
106
107 /**
108 * 是否人脸识别签署
109 */
110 private Boolean faceAuthSign;
111
112 /**
113 * 是否降级
114 */
115 private Boolean demotion;
116
117 /**
118 * 该签约主体签署统计信息
119 */
120 private List<SealStatsBean> sealStats;
121
122 /**
123 * 该签约主体签署统计信息
124 */
125 private List<SealStatsInfo> sealStatsInfos;
126
127 public Long getId() {
128 return id;
129 }
130
131 public void setId(Long id) {
132 this.id = id;
133 }
134
135 public Long getTenantId() {
136 return tenantId;
137 }
138
139 public void setTenantId(Long tenantId) {
140 this.tenantId = tenantId;
141 }
142
143 public String getTenantType() {
144 return tenantType;
145 }
146
147 public void setTenantType(String tenantType) {
148 this.tenantType = tenantType;
149 }
150
151 public String getTenantName() {
152 return tenantName;
153 }
154
155 public void setTenantName(String tenantName) {
156 this.tenantName = tenantName;
157 }
158
159 public String getReceiverType() {
160 return receiverType;
161 }
162
163 public void setReceiverType(String receiverType) {
164 this.receiverType = receiverType;
165 }
166
167 public Long getReceiverId() {
168 return receiverId;
169 }
170
171 public void setReceiverId(Long receiverId) {
172 this.receiverId = receiverId;
173 }
174
175 public String getReceiverName() {
176 return receiverName;
177 }
178
179 public void setReceiverName(String receiverName) {
180 this.receiverName = receiverName;
181 }
182
183 public String getContact() {
184 return contact;
185 }
186
187 public void setContact(String contact) {
188 this.contact = contact;
189 }
190
191 public Integer getSerialNo() {
192 return serialNo;
193 }
194
195 public void setSerialNo(Integer serialNo) {
196 this.serialNo = serialNo;
197 }
198
199 public Boolean getStatus() {
200 return status;
201 }
202
203 public void setStatus(Boolean status) {
204 this.status = status;
205 }
206
207 public Boolean getSponsor() {
208 return sponsor;
209 }
210
211 public void setSponsor(Boolean sponsor) {
212 this.sponsor = sponsor;
213 }
214
215 public Boolean getRemind() {
216 return remind;
217 }
218
219 public void setRemind(Boolean remind) {
220 this.remind = remind;
221 }
222
223 public Boolean getConfigured() {
224 return configured;
225 }
226
227 public void setConfigured(Boolean configured) {
228 this.configured = configured;
229 }
230
231 public String getCreateTime() {
232 return createTime;
233 }
234
235 public void setCreateTime(String createTime) {
236 this.createTime = createTime;
237 }
238
239 public String getUpdateTime() {
240 return updateTime;
241 }
242
243 public void setUpdateTime(String updateTime) {
244 this.updateTime = updateTime;
245 }
246
247 public String getReceiveTime() {
248 return receiveTime;
249 }
250
251 public void setReceiveTime(String receiveTime) {
252 this.receiveTime = receiveTime;
253 }
254
255 public Boolean getFaceSign() {
256 return faceSign;
257 }
258
259 public void setFaceSign(Boolean faceSign) {
260 this.faceSign = faceSign;
261 }
262
263 public String getAuthMode() {
264 return authMode;
265 }
266
267 public void setAuthMode(String authMode) {
268 this.authMode = authMode;
269 }
270
271 public List<ActionResponse> getActionRequests() {
272 return actionRequests;
273 }
274
275 public void setActionRequests(List<ActionResponse> actionRequests) {
276 this.actionRequests = actionRequests;
277 }
278
279 public Boolean getFaceAuthSign() {
280 return faceAuthSign;
281 }
282
283 public void setFaceAuthSign(Boolean faceAuthSign) {
284 this.faceAuthSign = faceAuthSign;
285 }
286
287 public Boolean getDemotion() {
288 return demotion;
289 }
290
291 public void setDemotion(Boolean demotion) {
292 this.demotion = demotion;
293 }
294
295 public List<SealStatsBean> getSealStats() {
296 return sealStats;
297 }
298
299 public void setSealStats(List<SealStatsBean> sealStats) {
300 this.sealStats = sealStats;
301 }
302
303 public List<SealStatsInfo> getSealStatsInfos() {
304 return sealStatsInfos;
305 }
306
307 public void setSealStatsInfos(List<SealStatsInfo> sealStatsInfos) {
308 this.sealStatsInfos = sealStatsInfos;
309 }
310 }
1 package com.thinkgem.jeesite.modules.eci.entity;
2
3 /**
4 * 水印配置
5 */
6 public class WaterMarkContent {
7
8 private static final long serialVersionUID = 1L;
9
10 /**
11 * 是
12 * 水印类型:TEXT(文本),IMAGE(图片)
13 */
14 private String type;
15
16 /**
17 * 水印类型为文本时必填
18 * 文字内容
19 */
20 private String content;
21
22 /**
23 * 水印类型为图片时必填
24 * 图片水印。只支持png格式
25 */
26 private String imageBase64;
27
28 public String getType() {
29 return type;
30 }
31
32 public void setType(String type) {
33 this.type = type;
34 }
35
36 public String getContent() {
37 return content;
38 }
39
40 public void setContent(String content) {
41 this.content = content;
42 }
43
44 public String getImageBase64() {
45 return imageBase64;
46 }
47
48 public void setImageBase64(String imageBase64) {
49 this.imageBase64 = imageBase64;
50 }
51 }
1 package com.thinkgem.jeesite.modules.eci.method;
2
3 import com.thinkgem.jeesite.common.config.Global;
4 import com.thinkgem.jeesite.common.utils.JsonUtil;
5 import com.thinkgem.jeesite.modules.eci.dao.ElecLicenseInfoDao;
6 import com.thinkgem.jeesite.modules.eci.entity.ContractDetailsResponse;
7 import com.thinkgem.jeesite.modules.eci.entity.ElecLicenseInfo;
8 import com.thinkgem.jeesite.modules.eci.utils.EciHttpUtil;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Component;
13 import org.springframework.transaction.annotation.Transactional;
14
15 import java.util.List;
16
17 /**
18 * 请求合同详情方法
19 */
20 @Component
21 public class ContractDetailsRest {
22
23 private static final String DETAILS = "/contract/detail";
24
25 private Logger logger = LoggerFactory.getLogger(ContractDetailsRest.class);
26
27 @Autowired
28 ElecLicenseInfoDao licenseInfoDao;
29
30 @Transactional(rollbackFor = Exception.class)
31 public void accessDetails() {
32
33 List<ElecLicenseInfo> waitForDetails = licenseInfoDao.getDocumentIdIsNull();
34
35 for (ElecLicenseInfo waitForDetail : waitForDetails) {
36 Long contractId = waitForDetail.getContractId();
37 String bizId = waitForDetail.getBizId();
38 String url = Global.ECI_HOST + DETAILS + "?contractId=" + contractId;
39 logger.info("请求合同详情接口url:" + url);
40 try {
41 String result = null;
42 result = EciHttpUtil.doGet(url);
43 logger.info("合同详情接口请求结果:" + result);
44 ContractDetailsResponse response = JsonUtil.fromJson(result, ContractDetailsResponse.class);
45
46 if (response != null && response.getCode() == 0) {
47 // TODO: 2022/2/15/0015 目前先取文档详情集合第一个
48 Long documentId = response.getContract().getDocuments().get(0).getId();
49 //文档ID入库
50 licenseInfoDao.updateDocumentId(bizId, documentId);
51 }
52
53 } catch (Exception e) {
54 e.printStackTrace();
55 }
56 }
57 }
58
59 }
1 package com.thinkgem.jeesite.modules.eci.method;
2
3 import com.thinkgem.jeesite.common.config.Global;
4 import com.thinkgem.jeesite.common.utils.JsonUtil;
5 import com.thinkgem.jeesite.modules.eci.dao.ElecLicenseInfoDao;
6 import com.thinkgem.jeesite.modules.eci.entity.CreateContractRequest;
7 import com.thinkgem.jeesite.modules.eci.entity.CreateContractResponse;
8 import com.thinkgem.jeesite.modules.eci.entity.ElecLicenseInfo;
9 import com.thinkgem.jeesite.modules.eci.utils.EciHttpUtil;
10 import org.apache.commons.beanutils.BeanUtils;
11 import org.slf4j.Logger;
12 import org.slf4j.LoggerFactory;
13 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.stereotype.Component;
15 import org.springframework.transaction.annotation.Transactional;
16
17 import java.util.HashMap;
18 import java.util.List;
19 import java.util.Map;
20
21 /**
22 * 请求创建合同方法
23 */
24 @Component
25 public class CreateContractRest {
26
27 private Logger logger = LoggerFactory.getLogger(CreateContractRest.class);
28
29 private static final String CREATE_BY_CATEGORY = "/contract/createbycategory";
30
31 @Autowired
32 ElecLicenseInfoDao licenseInfoDao;
33
34
35 /**
36 * 批量创建
37 *
38 * @return
39 */
40 @Transactional(rollbackFor = Exception.class)
41 public void accessCreateContract() {
42
43 String url = Global.ECI_HOST + CREATE_BY_CATEGORY;
44 logger.info("http request url:" + url);
45
46 // List<CreateContractRequest> requests = new ArrayList<>();
47
48 List<ElecLicenseInfo> waitForCreateContracts = licenseInfoDao.getContractIdIsNull();
49 for (ElecLicenseInfo waitForCreateContract : waitForCreateContracts) {
50 String result = null;
51 CreateContractRequest request = new CreateContractRequest();
52 request.setSubject("不动产合同");
53 request.setSn(waitForCreateContract.getYwh());
54 String htlx = waitForCreateContract.getHtlx();
55 if ("1".equals(htlx) || "2".equals(htlx)) {
56 //不动产登记证明和不动产权证书类型使用证照专用章
57 request.setCategoryId(Global.ECI_ZZZYZ);
58 } else if ("3".equals(htlx)) {
59 //不动产查询证明使用档案查询专用章
60 request.setCategoryId(Global.ECI_DACXZYZ);
61 }
62 request.setBizId(waitForCreateContract.getBizId());
63
64 // TODO: 2022/2/14/0014 获取模板参数json字符串,处理方式待定
65 // request.setDocumentParams(waitForCreateContract.getDocumentParam());
66
67 //提交参数入库
68 String tjcs = JsonUtil.toJsonString(request);
69 logger.info("提交参数:" + tjcs);
70 waitForCreateContract.setTjcs(tjcs);
71 // licenseInfoDao.updateTjcs(waitForCreateContract);
72
73 try {
74 Map map = new HashMap();
75 BeanUtils.populate(request, map);
76 result = EciHttpUtil.doPost(url, map);
77 logger.info("创建合同接口返回结果:" + result);
78 CreateContractResponse response = JsonUtil.fromJson(result, CreateContractResponse.class);
79 if (response != null) {
80 if (0 == (response.getCode())) {
81 Long contractId = response.getContractId();
82 //合同ID入库
83 waitForCreateContract.setContractId(contractId);
84 //返回结果入库
85 waitForCreateContract.setFhjg(result);
86 //未下载
87 waitForCreateContract.setSfxz("2");
88 //未转换
89 waitForCreateContract.setSfzh("2");
90 licenseInfoDao.updateContractIdAndStatus(waitForCreateContract);
91 }
92 }
93 } catch (Exception e) {
94 e.printStackTrace();
95 }
96
97 }
98
99 }
100 }
1 package com.thinkgem.jeesite.modules.eci.method;
2
3 import com.thinkgem.jeesite.common.config.Global;
4 import com.thinkgem.jeesite.modules.eci.dao.ElecLicenseInfoDao;
5 import com.thinkgem.jeesite.modules.eci.entity.ElecLicenseInfo;
6 import com.thinkgem.jeesite.modules.eci.utils.EciHttpUtil;
7 import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.stereotype.Component;
9
10 import java.util.List;
11
12 /**
13 * 合同下载
14 */
15 @Component
16 public class DownloadContractRest {
17
18 private static final String DOCUMENT_DOWNLOAD = "/document/download";
19
20 @Autowired
21 ElecLicenseInfoDao licenseInfoDao;
22
23 /**
24 * 下载合同方法
25 * @return
26 */
27 public void accessDownload() {
28
29 List<ElecLicenseInfo> waitForDownloads = licenseInfoDao.getWaitForDownload();
30
31 for (ElecLicenseInfo waitForDownload : waitForDownloads) {
32 String bizId = waitForDownload.getBizId();
33 Long documentId = waitForDownload.getDocumentId();
34 String url = Global.ECI_HOST + DOCUMENT_DOWNLOAD + "?documentId=" + documentId;
35
36 String ofdPath = EciHttpUtil.download(url);
37 if (ofdPath != null) {
38 //入库ofd文件地址
39 licenseInfoDao.updateOfdWjdz(bizId, ofdPath);
40 }
41 }
42
43 }
44 }
1 package com.thinkgem.jeesite.modules.eci.method;
2
3 import com.thinkgem.jeesite.modules.eci.dao.ElecLicenseInfoDao;
4 import com.thinkgem.jeesite.modules.eci.entity.ElecLicenseInfo;
5 import org.slf4j.Logger;
6 import org.slf4j.LoggerFactory;
7 import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.stereotype.Component;
9
10 import java.util.List;
11
12 /**
13 * ofd文件转换
14 */
15 @Component
16 public class OfdConvertRest {
17
18 private Logger logger = LoggerFactory.getLogger(OfdConvertRest.class);
19
20 @Autowired
21 ElecLicenseInfoDao licenseInfoDao;
22
23 public void convert() {
24
25 List<ElecLicenseInfo> waitForConverts = licenseInfoDao.getWaitForConvert();
26
27 for (ElecLicenseInfo waitForConvert : waitForConverts) {
28 String ofdPath = waitForConvert.getOfdWjdz();
29 // TODO: 2022/2/16/0016 ofd文件转换
30
31 }
32 }
33 }
1 package com.thinkgem.jeesite.modules.eci.utils;
2
3 import com.google.common.collect.Lists;
4 import com.thinkgem.jeesite.common.config.Global;
5 import com.thinkgem.jeesite.common.exception.BussException;
6 import com.thinkgem.jeesite.common.utils.JsonUtil;
7 import org.apache.http.HttpEntity;
8 import org.apache.http.NameValuePair;
9 import org.apache.http.client.entity.UrlEncodedFormEntity;
10 import org.apache.http.client.methods.CloseableHttpResponse;
11 import org.apache.http.client.methods.HttpGet;
12 import org.apache.http.client.methods.HttpPost;
13 import org.apache.http.impl.client.CloseableHttpClient;
14 import org.apache.http.impl.client.HttpClientBuilder;
15 import org.apache.http.message.BasicNameValuePair;
16 import org.apache.http.util.EntityUtils;
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
19
20 import java.io.File;
21 import java.io.FileOutputStream;
22 import java.io.InputStream;
23 import java.io.OutputStream;
24 import java.text.SimpleDateFormat;
25 import java.util.Date;
26 import java.util.Iterator;
27 import java.util.List;
28 import java.util.Map;
29
30 public class EciHttpUtil {
31
32 private static Logger logger = LoggerFactory.getLogger(EciHttpUtil.class);
33
34 /**
35 * post请求接口地址
36 *
37 * @param url
38 * @param params
39 * @return
40 * @throws Exception
41 */
42 public static String doPost(String url, Map params) {
43
44 logger.info("http request url:" + url);
45 logger.info("http request data:" + JsonUtil.toJsonString(params));
46
47 HttpPost httpPost = new HttpPost(url);
48 List<NameValuePair> urlParameters = Lists.newArrayList();
49 String result = null;
50 //创建通道
51 CloseableHttpClient client = HttpClientBuilder.create().build();
52 CloseableHttpResponse response = null;
53 try {
54 if (params != null && params.size() > 0) {
55 Iterator<String> it = params.keySet().iterator();
56 while (it.hasNext()) {
57 String key = it.next();
58 urlParameters.add(new BasicNameValuePair(key, params.get(key).toString()));
59 }
60 httpPost.setEntity(new UrlEncodedFormEntity(urlParameters, "utf-8"));
61 }
62 httpPost.setHeader("Content-Type", "application/json;charset=utf-8");
63 //x-qys-signature生成方式:Md5(AppToken + AppSecret + timestamp),获取32位小写值
64 String unSignature = Global.ECI_APP_TOKEN + Global.ECI_APP_SECRET + System.currentTimeMillis();
65 String signature = MD5Util.getMD5(unSignature);
66
67 httpPost.setHeader("x-qys-signature", signature);
68
69 response = client.execute(httpPost);
70 HttpEntity entity = response.getEntity();
71 int code = response.getStatusLine().getStatusCode();
72 if (code == 200) {
73 result = EntityUtils.toString(entity, "utf-8");
74 } else {
75 throw new BussException("返回状态码:" + code);
76 }
77 } catch (Exception e) {
78 e.printStackTrace();
79 } finally {
80 httpPost.releaseConnection();
81 try {
82 response.close();
83 client.close();
84 } catch (Exception e) {
85 e.printStackTrace();
86 }
87 }
88
89 return result;
90 }
91
92 /**
93 * get请求接口地址
94 *
95 * @param url
96 * @param
97 * @return
98 * @throws Exception
99 */
100 public static String doGet(String url) {
101 HttpGet httpGet = new HttpGet(url);
102 String result = null;
103 CloseableHttpClient client = HttpClientBuilder.create().build();
104 CloseableHttpResponse response = null;
105 try {
106 httpGet.setHeader("Content-Type", "application/json;charset=utf-8");
107 //x-qys-signature生成方式:Md5(AppToken + AppSecret + timestamp),获取32位小写值
108 String unSignature = Global.ECI_APP_TOKEN + Global.ECI_APP_SECRET + System.currentTimeMillis();
109 String signature = MD5Util.getMD5(unSignature);
110 httpGet.setHeader("x-qys-signature", signature);
111 response = client.execute(httpGet);
112 HttpEntity entity = response.getEntity();
113 int code = response.getStatusLine().getStatusCode();
114 if (code == 200) {
115 result = EntityUtils.toString(entity, "utf-8");
116 }
117 } catch (Exception e) {
118 e.printStackTrace();
119 } finally {
120 httpGet.releaseConnection();
121 try {
122 response.close();
123 client.close();
124 } catch (Exception e) {
125 e.printStackTrace();
126 }
127 }
128
129 return result;
130 }
131
132 /**
133 * 文件下载
134 *
135 * @param documentId 合同文档ID
136 * @return
137 */
138 public static String download(String documentId) {
139
140 String url = Global.ECI_HOST + "/document/download" + "?documentId=" + documentId;
141 HttpGet httpGet = new HttpGet(url);
142 CloseableHttpClient client = HttpClientBuilder.create().build();
143 CloseableHttpResponse response = null;
144 OutputStream out = null;
145 InputStream in = null;
146 String path = null;
147 try {
148 httpGet.setHeader("Content-Type", "application/json;charset=utf-8");
149 //x-qys-signature生成方式:Md5(AppToken + AppSecret + timestamp),获取32位小写值
150 String unSignature = Global.ECI_APP_TOKEN + Global.ECI_APP_SECRET + System.currentTimeMillis();
151 String signature = MD5Util.getMD5(unSignature);
152 httpGet.setHeader("x-qys-signature", signature);
153 response = client.execute(httpGet);
154 HttpEntity entity = response.getEntity();
155 in = entity.getContent();
156 int code = response.getStatusLine().getStatusCode();
157 if (code == 200) {
158 long length = entity.getContentLength();
159 if (length > 0) {
160 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dddd");
161 String dateDir = simpleDateFormat.format(new Date());
162 File file = new File("E:\\ECI\\" + dateDir + "\\" + documentId + ".ofd");
163 if (!file.exists()) {
164 file.createNewFile();
165 }
166
167 out = new FileOutputStream(file);
168 byte[] buffer = new byte[4096];
169 int readLength = 0;
170 while ((readLength = in.read(buffer)) != -1) {
171 // byte[] bytes = new byte[readLength];
172 // System.arraycopy(buffer, 0, bytes, 0, readLength);
173 out.write(buffer, 0, readLength);
174 }
175 path = file.getAbsolutePath();
176 out.flush();
177 }
178
179 }
180 } catch (Exception e) {
181 e.printStackTrace();
182 } finally {
183 httpGet.releaseConnection();
184 try {
185 response.close();
186 client.close();
187 } catch (Exception e) {
188 e.printStackTrace();
189 }
190 }
191 return path;
192 }
193
194 }
1 package com.thinkgem.jeesite.modules.eci.utils;
2
3 import java.security.MessageDigest;
4
5 public class MD5Util {
6
7 public static String getMD5(String unEncryption) {
8 char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
9
10 try {
11 byte[] btInput = unEncryption.getBytes();
12 // 获得MD5摘要算法的 MessageDigest 对象
13 MessageDigest mdInst = MessageDigest.getInstance("MD5");
14 // 使用指定的字节更新摘要
15 mdInst.update(btInput);
16 // 获得密文
17 byte[] md = mdInst.digest();
18 // 把密文转换成十六进制的字符串形式
19 char[] str = new char[md.length * 2];
20 int k = 0;
21 for (byte byte0 : md) {
22 str[k++] = hexDigits[byte0 >>> 4 & 0xf];
23 str[k++] = hexDigits[byte0 & 0xf];
24 }
25 return new String(str).toLowerCase();
26 } catch (Exception e) {
27 e.printStackTrace();
28 return null;
29 }
30 }
31 }
1 package com.thinkgem.jeesite.modules.reg.utils; 1 // package com.thinkgem.jeesite.modules.reg.utils;
2 2 //
3 import java.io.File; 3 // import java.io.File;
4 import java.io.FileNotFoundException; 4 // import java.io.FileNotFoundException;
5 import java.io.FileOutputStream; 5 // import java.io.FileOutputStream;
6 import java.io.IOException; 6 // import java.io.IOException;
7 7 //
8 import sun.misc.BASE64Decoder; 8 // import sun.misc.BASE64Decoder;
9 import sun.misc.BASE64Encoder; 9 // import sun.misc.BASE64Encoder;
10 10 //
11 11 //
12 public class Base64 { 12 // public class Base64 {
13 13 //
14 /** 14 // /**
15 * BASE64加密 15 // * BASE64加密
16 * 16 // *
17 * @param key 17 // * @param key
18 * @return 18 // * @return
19 * @throws Exception 19 // * @throws Exception
20 */ 20 // */
21 public static String encryptBASE64(String key) { 21 // public static String encryptBASE64(String key) {
22 byte[] bt = key.getBytes(); 22 // byte[] bt = key.getBytes();
23 return (new BASE64Encoder()).encodeBuffer(bt); 23 // return (new BASE64Encoder()).encodeBuffer(bt);
24 } 24 // }
25 25 //
26 /** 26 // /**
27 * 对字符串进行Base64解码 27 // * 对字符串进行Base64解码
28 * 28 // *
29 * @param s 29 // * @param s
30 * 要解码的字符串 30 // * 要解码的字符串
31 * @return 返回解码后的字符串 31 // * @return 返回解码后的字符串
32 */ 32 // */
33 public static byte[] decode(String s) { 33 // public static byte[] decode(String s) {
34 34 //
35 BASE64Decoder decoder=new BASE64Decoder(); 35 // BASE64Decoder decoder=new BASE64Decoder();
36 byte[] bytes=null; 36 // byte[] bytes=null;
37 try { 37 // try {
38 bytes=decoder.decodeBuffer(s); 38 // bytes=decoder.decodeBuffer(s);
39 } catch (IOException e) { 39 // } catch (IOException e) {
40 e.printStackTrace(); 40 // e.printStackTrace();
41 } 41 // }
42 return bytes; 42 // return bytes;
43 } 43 // }
44 44 //
45 /** 45 // /**
46 * 得到经过Base64解码的图像二进制数据 46 // * 得到经过Base64解码的图像二进制数据
47 */ 47 // */
48 public static byte[] getImgData(String fileUrl) { 48 // public static byte[] getImgData(String fileUrl) {
49 /* 49 // /*
50 * 利用canvas元素的toDataURL("image/jpeg")方法生成的图像地址格式为: 50 // * 利用canvas元素的toDataURL("image/jpeg")方法生成的图像地址格式为:
51 * 第一部分:data:image/jpeg;base64 中间一个逗号 51 // * 第一部分:data:image/jpeg;base64 中间一个逗号
52 * 第二部分:一个经过base64编码的字符串,通过Base64解码后即可得到该图像原始二进制数据 52 // * 第二部分:一个经过base64编码的字符串,通过Base64解码后即可得到该图像原始二进制数据
53 */ 53 // */
54 //String[] data = fileUrl.split(",");// 这里fileUrl就是前台toDataURL()方法传过来的数据 54 // //String[] data = fileUrl.split(",");// 这里fileUrl就是前台toDataURL()方法传过来的数据
55 return Base64.decode(fileUrl); 55 // return Base64.decode(fileUrl);
56 } 56 // }
57 57 //
58 /** 58 // /**
59 * 保存Base64解码后的二进制数据到文件 59 // * 保存Base64解码后的二进制数据到文件
60 * 60 // *
61 * @param base64Str 61 // * @param base64Str
62 * 经Base64解码后的图片原始二进制数据 62 // * 经Base64解码后的图片原始二进制数据
63 * @param path 63 // * @param path
64 * 文件路径 64 // * 文件路径
65 */ 65 // */
66 public static void saveImage(byte[] imageBytes, String path) { 66 // public static void saveImage(byte[] imageBytes, String path) {
67 File file = new File(path); 67 // File file = new File(path);
68 FileOutputStream outputStream = null; 68 // FileOutputStream outputStream = null;
69 try { 69 // try {
70 outputStream = new FileOutputStream(file); 70 // outputStream = new FileOutputStream(file);
71 outputStream.write(imageBytes); 71 // outputStream.write(imageBytes);
72 } catch (FileNotFoundException e) { 72 // } catch (FileNotFoundException e) {
73 e.printStackTrace(); 73 // e.printStackTrace();
74 } catch (IOException e) { 74 // } catch (IOException e) {
75 e.printStackTrace(); 75 // e.printStackTrace();
76 } finally { 76 // } finally {
77 closeSteam(outputStream); 77 // closeSteam(outputStream);
78 } 78 // }
79 } 79 // }
80 80 //
81 /** 81 // /**
82 * 关闭文件输出流 82 // * 关闭文件输出流
83 * 83 // *
84 * @param outputStream 84 // * @param outputStream
85 */ 85 // */
86 public static void closeSteam(FileOutputStream outputStream) { 86 // public static void closeSteam(FileOutputStream outputStream) {
87 if (outputStream != null) { 87 // if (outputStream != null) {
88 try { 88 // try {
89 outputStream.close(); 89 // outputStream.close();
90 } catch (IOException e) { 90 // } catch (IOException e) {
91 e.printStackTrace(); 91 // e.printStackTrace();
92 } 92 // }
93 } 93 // }
94 } 94 // }
95 95 //
96 /** 96 // /**
97 * 对字符串进行Base64解码 97 // * 对字符串进行Base64解码
98 * @param s 要解码的字符串 98 // * @param s 要解码的字符串
99 * @return 返回解码后的字符串 99 // * @return 返回解码后的字符串
100 */ 100 // */
101 public static String decodeStr(String s,String bm){ 101 // public static String decodeStr(String s,String bm){
102 BASE64Decoder decoder=new BASE64Decoder(); 102 // BASE64Decoder decoder=new BASE64Decoder();
103 String decoded_str=null; 103 // String decoded_str=null;
104 try { 104 // try {
105 decoded_str = new String(decoder.decodeBuffer(s),bm); 105 // decoded_str = new String(decoder.decodeBuffer(s),bm);
106 } catch (IOException e) { 106 // } catch (IOException e) {
107 e.printStackTrace(); 107 // e.printStackTrace();
108 } 108 // }
109 return decoded_str; 109 // return decoded_str;
110 } 110 // }
111 public static String decodeStr(String s){ 111 // public static String decodeStr(String s){
112 BASE64Decoder decoder=new BASE64Decoder(); 112 // BASE64Decoder decoder=new BASE64Decoder();
113 String decoded_str=null; 113 // String decoded_str=null;
114 try { 114 // try {
115 decoded_str = new String(decoder.decodeBuffer(s)); 115 // decoded_str = new String(decoder.decodeBuffer(s));
116 } catch (IOException e) { 116 // } catch (IOException e) {
117 e.printStackTrace(); 117 // e.printStackTrace();
118 } 118 // }
119 return decoded_str; 119 // return decoded_str;
120 } 120 // }
121 121 //
122 /** 122 // /**
123 * 得到经过Base64解码的图像二进制数据 123 // * 得到经过Base64解码的图像二进制数据
124 */ 124 // */
125 public static String getImgDataStr(String fileUrl){ 125 // public static String getImgDataStr(String fileUrl){
126 /* 126 // /*
127 * 利用canvas元素的toDataURL("image/jpeg")方法生成的图像地址格式为: 127 // * 利用canvas元素的toDataURL("image/jpeg")方法生成的图像地址格式为:
128 * 第一部分:data:image/jpeg;base64 128 // * 第一部分:data:image/jpeg;base64
129 * 中间一个逗号 129 // * 中间一个逗号
130 * 第二部分:一个经过base64编码的字符串,通过Base64解码后即可得到该图像原始二进制数据 130 // * 第二部分:一个经过base64编码的字符串,通过Base64解码后即可得到该图像原始二进制数据
131 */ 131 // */
132 String[] data=fileUrl.split(",");//这里fileUrl就是前台toDataURL()方法传过来的数据 132 // String[] data=fileUrl.split(",");//这里fileUrl就是前台toDataURL()方法传过来的数据
133 return Base64.decodeStr(data[1]); 133 // return Base64.decodeStr(data[1]);
134 } 134 // }
135 135 //
136 /** 136 // /**
137 * 保存Base64解码后的二进制数据到文件 137 // * 保存Base64解码后的二进制数据到文件
138 * @param base64Str 经Base64解码后的图片原始二进制数据 138 // * @param base64Str 经Base64解码后的图片原始二进制数据
139 * @param path 文件路径 139 // * @param path 文件路径
140 */ 140 // */
141 public static void saveImageStr(String base64Str,String path){ 141 // public static void saveImageStr(String base64Str,String path){
142 File file=new File(path); 142 // File file=new File(path);
143 FileOutputStream outputStream=null; 143 // FileOutputStream outputStream=null;
144 try { 144 // try {
145 outputStream=new FileOutputStream(file); 145 // outputStream=new FileOutputStream(file);
146 outputStream.write(base64Str.getBytes()); 146 // outputStream.write(base64Str.getBytes());
147 } catch (FileNotFoundException e) { 147 // } catch (FileNotFoundException e) {
148 e.printStackTrace(); 148 // e.printStackTrace();
149 } catch (IOException e) { 149 // } catch (IOException e) {
150 e.printStackTrace(); 150 // e.printStackTrace();
151 } finally{ 151 // } finally{
152 closeSteam(outputStream); 152 // closeSteam(outputStream);
153 } 153 // }
154 } 154 // }
155 155 //
156 156 //
157 157 //
158 } 158 // }
......
1 package com.thinkgem.jeesite.modules.reg.utils;
2
3 import java.io.File;
4 import java.io.FileNotFoundException;
5 import java.io.FileOutputStream;
6 import java.io.IOException;
7 import java.util.Base64;
8
9
10 public class Base64Util {
11
12 /**
13 * BASE64加密
14 *
15 * @param key
16 * @return
17 * @throws Exception
18 */
19 public static String encryptBASE64(String key) {
20 byte[] bt = key.getBytes();
21 Base64.Encoder encoder = Base64.getEncoder();
22 byte[] encode = encoder.encode(bt);
23 return String.valueOf(encode);
24
25 // return (new BASE64Encoder()).encodeBuffer(bt);
26 }
27
28 /**
29 * 对字符串进行Base64解码
30 *
31 * @param s 要解码的字符串
32 * @return 返回解码后的字符串
33 */
34 public static byte[] decode(String s) {
35
36 Base64.Decoder decoder = Base64.getDecoder();
37 byte[] bytes = null;
38 // bytes = decoder.decodeBuffer(s);
39 bytes = decoder.decode(s);
40 return bytes;
41 }
42
43 /**
44 * 得到经过Base64解码的图像二进制数据
45 */
46 public static byte[] getImgData(String fileUrl) {
47 /*
48 * 利用canvas元素的toDataURL("image/jpeg")方法生成的图像地址格式为:
49 * 第一部分:data:image/jpeg;base64 中间一个逗号
50 * 第二部分:一个经过base64编码的字符串,通过Base64解码后即可得到该图像原始二进制数据
51 */
52 //String[] data = fileUrl.split(",");// 这里fileUrl就是前台toDataURL()方法传过来的数据
53 return Base64Util.decode(fileUrl);
54 }
55
56 /**
57 * 保存Base64解码后的二进制数据到文件
58 *
59 * @param base64Str 经Base64解码后的图片原始二进制数据
60 * @param path 文件路径
61 */
62 public static void saveImage(byte[] imageBytes, String path) {
63 File file = new File(path);
64 FileOutputStream outputStream = null;
65 try {
66 outputStream = new FileOutputStream(file);
67 outputStream.write(imageBytes);
68 } catch (FileNotFoundException e) {
69 e.printStackTrace();
70 } catch (IOException e) {
71 e.printStackTrace();
72 } finally {
73 closeSteam(outputStream);
74 }
75 }
76
77 /**
78 * 关闭文件输出流
79 *
80 * @param outputStream
81 */
82 public static void closeSteam(FileOutputStream outputStream) {
83 if (outputStream != null) {
84 try {
85 outputStream.close();
86 } catch (IOException e) {
87 e.printStackTrace();
88 }
89 }
90 }
91
92 /**
93 * 对字符串进行Base64解码
94 *
95 * @param s 要解码的字符串
96 * @return 返回解码后的字符串
97 */
98 public static String decodeStr(String s, String bm) {
99 Base64.Decoder decoder = Base64.getDecoder();
100 String decoded_str = null;
101 try {
102 decoded_str = new String(decoder.decode(s), bm);
103 } catch (IOException e) {
104 e.printStackTrace();
105 }
106 return decoded_str;
107 }
108
109 public static String decodeStr(String s) {
110 Base64.Decoder decoder = Base64.getDecoder();
111 String decoded_str = null;
112 decoded_str = new String(decoder.decode(s));
113 return decoded_str;
114 }
115
116 /**
117 * 得到经过Base64解码的图像二进制数据
118 */
119 public static String getImgDataStr(String fileUrl) {
120 /*
121 * 利用canvas元素的toDataURL("image/jpeg")方法生成的图像地址格式为:
122 * 第一部分:data:image/jpeg;base64
123 * 中间一个逗号
124 * 第二部分:一个经过base64编码的字符串,通过Base64解码后即可得到该图像原始二进制数据
125 */
126 String[] data = fileUrl.split(",");//这里fileUrl就是前台toDataURL()方法传过来的数据
127 return Base64Util.decodeStr(data[1]);
128 }
129
130 /**
131 * 保存Base64解码后的二进制数据到文件
132 *
133 * @param base64Str 经Base64解码后的图片原始二进制数据
134 * @param path 文件路径
135 */
136 public static void saveImageStr(String base64Str, String path) {
137 File file = new File(path);
138 FileOutputStream outputStream = null;
139 try {
140 outputStream = new FileOutputStream(file);
141 outputStream.write(base64Str.getBytes());
142 } catch (FileNotFoundException e) {
143 e.printStackTrace();
144 } catch (IOException e) {
145 e.printStackTrace();
146 } finally {
147 closeSteam(outputStream);
148 }
149 }
150
151
152 }
...@@ -8,7 +8,6 @@ import java.util.ArrayList; ...@@ -8,7 +8,6 @@ import java.util.ArrayList;
8 import java.util.Date; 8 import java.util.Date;
9 import java.util.HashMap; 9 import java.util.HashMap;
10 import java.util.List; 10 import java.util.List;
11 import java.util.Map;
12 11
13 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletRequest;
14 import javax.servlet.http.HttpServletResponse; 13 import javax.servlet.http.HttpServletResponse;
...@@ -19,20 +18,16 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -19,20 +18,16 @@ import org.springframework.beans.factory.annotation.Autowired;
19 import org.springframework.stereotype.Controller; 18 import org.springframework.stereotype.Controller;
20 import org.springframework.transaction.annotation.Transactional; 19 import org.springframework.transaction.annotation.Transactional;
21 import org.springframework.ui.Model; 20 import org.springframework.ui.Model;
22 import org.springframework.ui.ModelMap;
23 import org.springframework.web.bind.annotation.ModelAttribute; 21 import org.springframework.web.bind.annotation.ModelAttribute;
24 import org.springframework.web.bind.annotation.RequestMapping; 22 import org.springframework.web.bind.annotation.RequestMapping;
25 import org.springframework.web.bind.annotation.RequestParam; 23 import org.springframework.web.bind.annotation.RequestParam;
26 import org.springframework.web.bind.annotation.ResponseBody;
27 import org.springframework.web.servlet.mvc.support.RedirectAttributes; 24 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
28 25
29 import com.sun.org.apache.bcel.internal.generic.NEW;
30 import com.thinkgem.jeesite.common.config.Global; 26 import com.thinkgem.jeesite.common.config.Global;
31 import com.thinkgem.jeesite.common.persistence.Page; 27 import com.thinkgem.jeesite.common.persistence.Page;
32 import com.thinkgem.jeesite.common.web.BaseController; 28 import com.thinkgem.jeesite.common.web.BaseController;
33 import com.thinkgem.jeesite.common.utils.DateUtils; 29 import com.thinkgem.jeesite.common.utils.DateUtils;
34 import com.thinkgem.jeesite.common.utils.StringUtils; 30 import com.thinkgem.jeesite.common.utils.StringUtils;
35 import com.thinkgem.jeesite.modules.reg.bus.entity.RegBusBtqlr;
36 import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseC; 31 import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseC;
37 import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseFdcqxm; 32 import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseFdcqxm;
38 import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseH; 33 import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseH;
...@@ -42,12 +37,10 @@ import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseZdjbxx; ...@@ -42,12 +37,10 @@ import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseZdjbxx;
42 import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseZrz; 37 import com.thinkgem.jeesite.modules.reg.entity.base.RegBaseZrz;
43 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusBdcqzsdjxx; 38 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusBdcqzsdjxx;
44 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusFdcq1; 39 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusFdcq1;
45 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusGd;
46 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusJsydsyq; 40 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusJsydsyq;
47 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusQlr; 41 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusQlr;
48 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusRights; 42 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusRights;
49 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusSlsq; 43 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusSlsq;
50 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusYgdj;
51 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusYwr; 44 import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusYwr;
52 import com.thinkgem.jeesite.modules.reg.service.base.RegBaseCService; 45 import com.thinkgem.jeesite.modules.reg.service.base.RegBaseCService;
53 import com.thinkgem.jeesite.modules.reg.service.base.RegBaseFdcqxmService; 46 import com.thinkgem.jeesite.modules.reg.service.base.RegBaseFdcqxmService;
...@@ -63,7 +56,6 @@ import com.thinkgem.jeesite.modules.reg.service.bus.RegBusQlrService; ...@@ -63,7 +56,6 @@ import com.thinkgem.jeesite.modules.reg.service.bus.RegBusQlrService;
63 import com.thinkgem.jeesite.modules.reg.service.bus.RegBusRightsService; 56 import com.thinkgem.jeesite.modules.reg.service.bus.RegBusRightsService;
64 import com.thinkgem.jeesite.modules.reg.service.bus.RegBusSlsqService; 57 import com.thinkgem.jeesite.modules.reg.service.bus.RegBusSlsqService;
65 import com.thinkgem.jeesite.modules.reg.service.bus.RegBusYwrService; 58 import com.thinkgem.jeesite.modules.reg.service.bus.RegBusYwrService;
66 import com.thinkgem.jeesite.modules.reg.utils.RegUtils;
67 import com.thinkgem.jeesite.modules.sys.entity.User; 59 import com.thinkgem.jeesite.modules.sys.entity.User;
68 import com.thinkgem.jeesite.modules.sys.utils.DictUtils; 60 import com.thinkgem.jeesite.modules.sys.utils.DictUtils;
69 import com.thinkgem.jeesite.modules.sys.utils.UserUtils; 61 import com.thinkgem.jeesite.modules.sys.utils.UserUtils;
......
...@@ -6,6 +6,7 @@ import java.io.FileOutputStream; ...@@ -6,6 +6,7 @@ import java.io.FileOutputStream;
6 import java.io.IOException; 6 import java.io.IOException;
7 import java.io.OutputStream; 7 import java.io.OutputStream;
8 import java.util.ArrayList; 8 import java.util.ArrayList;
9 import java.util.Base64;
9 import java.util.List; 10 import java.util.List;
10 11
11 import javax.imageio.ImageIO; 12 import javax.imageio.ImageIO;
...@@ -27,30 +28,28 @@ import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusSlsq; ...@@ -27,30 +28,28 @@ import com.thinkgem.jeesite.modules.reg.entity.bus.RegBusSlsq;
27 import com.thinkgem.jeesite.modules.reg.service.bus.RegBusQlrService; 28 import com.thinkgem.jeesite.modules.reg.service.bus.RegBusQlrService;
28 import com.thinkgem.jeesite.modules.reg.service.bus.RegBusSlsqService; 29 import com.thinkgem.jeesite.modules.reg.service.bus.RegBusSlsqService;
29 30
30 import sun.misc.BASE64Decoder;
31
32 31
33 @Controller 32 @Controller
34 @RequestMapping(value = "${adminPath}/reg/bus/uploadExamPic") 33 @RequestMapping(value = "${adminPath}/reg/bus/uploadExamPic")
35 public class uploadExamPicController extends BaseController{ 34 public class uploadExamPicController extends BaseController {
36 @Autowired 35 @Autowired
37 private RegBusSlsqService regBusSlsqService; 36 private RegBusSlsqService regBusSlsqService;
38 @Autowired 37 @Autowired
39 private RegBusQlrService regBusQlrService; 38 private RegBusQlrService regBusQlrService;
40 39
41 @RequestMapping(value = "scanss") 40 @RequestMapping(value = "scanss")
42 public String scanss(RegBusSlsq regBusSlsq,HttpServletRequest request, HttpServletResponse response, Model model) { 41 public String scanss(RegBusSlsq regBusSlsq, HttpServletRequest request, HttpServletResponse response, Model model) {
43 String picywh = request.getParameter("ywh"); 42 String picywh = request.getParameter("ywh");
44 List<String> listpic = new ArrayList<String>(); 43 List<String> listpic = new ArrayList<String>();
45 if(StringUtils.isNotBlank(picywh)){ 44 if (StringUtils.isNotBlank(picywh)) {
46 String Path = Global.getPictures()+ picywh + "/"; 45 String Path = Global.getPictures() + picywh + "/";
47 File file = new File(Path); 46 File file = new File(Path);
48 if(file.exists()){ 47 if (file.exists()) {
49 File[] files = file.listFiles(); 48 File[] files = file.listFiles();
50 if(files.length > 0){ 49 if (files.length > 0) {
51 for (File file2 : files) { 50 for (File file2 : files) {
52 String absoltpath = (file2.getAbsolutePath()).replaceAll("\\\\", "/"); 51 String absoltpath = (file2.getAbsolutePath()).replaceAll("\\\\", "/");
53 listpic.add(picywh+"/"+file2.getName()); 52 listpic.add(picywh + "/" + file2.getName());
54 logger.info(file2.getName()); 53 logger.info(file2.getName());
55 } 54 }
56 } 55 }
...@@ -58,9 +57,9 @@ public class uploadExamPicController extends BaseController{ ...@@ -58,9 +57,9 @@ public class uploadExamPicController extends BaseController{
58 } 57 }
59 Double data = Math.random(); 58 Double data = Math.random();
60 model.addAttribute("math", data); 59 model.addAttribute("math", data);
61 model.addAttribute("taskkey",request.getParameter("picid")); 60 model.addAttribute("taskkey", request.getParameter("picid"));
62 model.addAttribute("ywh", picywh); 61 model.addAttribute("ywh", picywh);
63 model.addAttribute("listpic",listpic); 62 model.addAttribute("listpic", listpic);
64 return "modules/reg/bus/dialog/scanss"; 63 return "modules/reg/bus/dialog/scanss";
65 } 64 }
66 65
...@@ -70,54 +69,55 @@ public class uploadExamPicController extends BaseController{ ...@@ -70,54 +69,55 @@ public class uploadExamPicController extends BaseController{
70 model.addAttribute("ywh", ywh); 69 model.addAttribute("ywh", ywh);
71 return "modules/reg/bus/dialog/scan"; 70 return "modules/reg/bus/dialog/scan";
72 } 71 }
72
73 @RequestMapping(value = "uploadPic") 73 @RequestMapping(value = "uploadPic")
74 public void uploadPic(HttpServletRequest request,Model model,HttpServletResponse response) throws IOException{ 74 public void uploadPic(HttpServletRequest request, Model model, HttpServletResponse response) throws IOException {
75 String ywh = request.getParameter("ywh"); 75 String ywh = request.getParameter("ywh");
76 String sxh = request.getParameter("sxh"); 76 String sxh = request.getParameter("sxh");
77 String dirpic = Global.getPictures()+ywh; 77 String dirpic = Global.getPictures() + ywh;
78 //String savePath = "F:/images/"; 78 //String savePath = "F:/images/";
79 File filedir = new File(dirpic); 79 File filedir = new File(dirpic);
80 String savePath = ""; 80 String savePath = "";
81 if(filedir.isDirectory()){ 81 if (filedir.isDirectory()) {
82 savePath = dirpic + "/"; 82 savePath = dirpic + "/";
83 }else{ 83 } else {
84 filedir.mkdir(); 84 filedir.mkdir();
85 savePath = dirpic +"/"; 85 savePath = dirpic + "/";
86 } 86 }
87 File tmp_path = new File(savePath); 87 File tmp_path = new File(savePath);
88 tmp_path.mkdirs(); 88 tmp_path.mkdirs();
89 System.out.println("照片数据保存路径:" + savePath); 89 System.out.println("照片数据保存路径:" + savePath);
90 int num = 100; 90 int num = 100;
91 //权利人人像比对是传递顺序号 91 //权利人人像比对是传递顺序号
92 if(StringUtils.isNotBlank(sxh)) { 92 if (StringUtils.isNotBlank(sxh)) {
93 num = Integer.parseInt(sxh); 93 num = Integer.parseInt(sxh);
94 } 94 }
95 String picname= Integer.toString(num); 95 String picname = Integer.toString(num);
96 picname = ywh + "-"+picname+".jpg"; 96 picname = ywh + "-" + picname + ".jpg";
97 File file_txt = new File(savePath+picname); 97 File file_txt = new File(savePath + picname);
98 if(StringUtils.isBlank(sxh)) { 98 if (StringUtils.isBlank(sxh)) {
99 do{//业务拍照 99 do {//业务拍照
100 num = num+1; 100 num = num + 1;
101 picname= Integer.toString(num); 101 picname = Integer.toString(num);
102 picname = ywh + "-"+ picname+".jpg"; 102 picname = ywh + "-" + picname + ".jpg";
103 file_txt = new File(savePath+picname); 103 file_txt = new File(savePath + picname);
104 }while(file_txt.exists()); 104 } while (file_txt.exists());
105 }else {//人像比对拍照 105 } else {//人像比对拍照
106 picname= Integer.toString(num); 106 picname = Integer.toString(num);
107 picname = ywh + "-"+ picname+".jpg"; 107 picname = ywh + "-" + picname + ".jpg";
108 file_txt = new File(savePath+picname); 108 file_txt = new File(savePath + picname);
109 } 109 }
110 110
111 model.addAttribute("pic",picname); 111 model.addAttribute("pic", picname);
112 String image = request.getParameter("image");//240 112 String image = request.getParameter("image");//240
113 String type = request.getParameter("val");//240 113 String type = request.getParameter("val");//240
114 if(null!=image && !"".equals(image)){//防止没有拍照直接保存产生的空指针的错误 114 if (null != image && !"".equals(image)) {//防止没有拍照直接保存产生的空指针的错误
115 String width = request.getParameter("w");//320 115 String width = request.getParameter("w");//320
116 String height = request.getParameter("h");//240 116 String height = request.getParameter("h");//240
117 int w = Integer.parseInt(width); 117 int w = Integer.parseInt(width);
118 int h = Integer.parseInt(height); 118 int h = Integer.parseInt(height);
119 OutputStream out = null; 119 OutputStream out = null;
120 if (null!=type &&"pixel".equals(type)) {//Trident 120 if (null != type && "pixel".equals(type)) {//Trident
121 try { 121 try {
122 BufferedImage bf = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); 122 BufferedImage bf = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
123 String[] rows = image.split("\\|"); 123 String[] rows = image.split("\\|");
...@@ -147,7 +147,8 @@ public class uploadExamPicController extends BaseController{ ...@@ -147,7 +147,8 @@ public class uploadExamPicController extends BaseController{
147 image = image.substring(image.indexOf(",") + 1); 147 image = image.substring(image.indexOf(",") + 1);
148 }*/ 148 }*/
149 // Base64解码 149 // Base64解码
150 bytes = new BASE64Decoder().decodeBuffer(imageStr); 150 // bytes = new BASE64Decoder().decodeBuffer(imageStr);
151 bytes = Base64.getDecoder().decode(imageStr);
151 for (int i = 0; i < bytes.length; ++i) { 152 for (int i = 0; i < bytes.length; ++i) {
152 if (bytes[i] < 0) {// 调整异常数据 153 if (bytes[i] < 0) {// 调整异常数据
153 bytes[i] += 256; 154 bytes[i] += 256;
...@@ -155,7 +156,7 @@ public class uploadExamPicController extends BaseController{ ...@@ -155,7 +156,7 @@ public class uploadExamPicController extends BaseController{
155 } 156 }
156 if (!file_txt.exists()) { 157 if (!file_txt.exists()) {
157 file_txt.createNewFile(); 158 file_txt.createNewFile();
158 }else{ 159 } else {
159 file_txt.delete(); 160 file_txt.delete();
160 file_txt.createNewFile(); 161 file_txt.createNewFile();
161 } 162 }
...@@ -164,68 +165,66 @@ public class uploadExamPicController extends BaseController{ ...@@ -164,68 +165,66 @@ public class uploadExamPicController extends BaseController{
164 out.write(bytes); 165 out.write(bytes);
165 } catch (Exception e) { 166 } catch (Exception e) {
166 e.printStackTrace(); 167 e.printStackTrace();
167 }finally{ 168 } finally {
168 if(null!=out){ 169 if (null != out) {
169 out.flush(); 170 out.flush();
170 out.close(); 171 out.close();
171 } 172 }
172 } 173 }
173 } 174 }
174 }else{ 175 } else {
175 System.out.println("图像为空"); 176 System.out.println("图像为空");
176 } 177 }
177 178
178 //人像比对附件保存后直接更新权利人字段 179 //人像比对附件保存后直接更新权利人字段
179 if(StringUtils.isNotBlank(sxh)) { 180 if (StringUtils.isNotBlank(sxh)) {
180 String tpbm = image.replace("data:image/png;base64,", "").trim(); 181 String tpbm = image.replace("data:image/png;base64,", "").trim();
181 RegBusQlr regBusQlr = regBusQlrService.findByPic(ywh,sxh); 182 RegBusQlr regBusQlr = regBusQlrService.findByPic(ywh, sxh);
182 regBusQlr.setTpbm(tpbm); 183 regBusQlr.setTpbm(tpbm);
183 regBusQlr.setPic(ywh+"/"+picname); 184 regBusQlr.setPic(ywh + "/" + picname);
184 regBusQlrService.save(regBusQlr); 185 regBusQlrService.save(regBusQlr);
185 } 186 }
186 } 187 }
187 188
188 @RequestMapping(value = "delpho") 189 @RequestMapping(value = "delpho")
189 public String delpho(HttpServletRequest request,Model model,HttpServletResponse response) throws IOException{ 190 public String delpho(HttpServletRequest request, Model model, HttpServletResponse response) throws IOException {
190 String picpath = Global.getPictures(); 191 String picpath = Global.getPictures();
191 String realpath = picpath + request.getParameter("picname"); 192 String realpath = picpath + request.getParameter("picname");
192 File file =new File(realpath); 193 File file = new File(realpath);
193 if(file.exists()){ 194 if (file.exists()) {
194 file.delete(); 195 file.delete();
195 } 196 }
196 String sxh = request.getParameter("sxh"); 197 String sxh = request.getParameter("sxh");
197 String ywh = request.getParameter("ywh"); 198 String ywh = request.getParameter("ywh");
198 if(StringUtils.isBlank(sxh)) { 199 if (StringUtils.isBlank(sxh)) {
199 200
200 return "redirect:"+Global.getAdminPath()+"/reg/bus/uploadExamPic/scanss?ywh="+ request.getParameter("ywh")+"&picid="+request.getParameter("picid"); 201 return "redirect:" + Global.getAdminPath() + "/reg/bus/uploadExamPic/scanss?ywh=" + request.getParameter("ywh") + "&picid=" + request.getParameter("picid");
201 }else { 202 } else {
202 RegBusQlr regBusQlr = regBusQlrService.findByPic(ywh,sxh); 203 RegBusQlr regBusQlr = regBusQlrService.findByPic(ywh, sxh);
203 regBusQlr.setTpbm(null); 204 regBusQlr.setTpbm(null);
204 regBusQlr.setPic(null); 205 regBusQlr.setPic(null);
205 regBusQlrService.save(regBusQlr); 206 regBusQlrService.save(regBusQlr);
206 return "redirect:"+Global.getAdminPath()+"/reg/bus/regBusQlr/rxbdForm?ywh="+ request.getParameter("ywh"); 207 return "redirect:" + Global.getAdminPath() + "/reg/bus/regBusQlr/rxbdForm?ywh=" + request.getParameter("ywh");
207 208
208 } 209 }
209 } 210 }
210 211
211 @RequestMapping(value = "delphodir") 212 @RequestMapping(value = "delphodir")
212 public String delphodir(HttpServletRequest request,Model model,HttpServletResponse response) throws IOException{ 213 public String delphodir(HttpServletRequest request, Model model, HttpServletResponse response) throws IOException {
213 //删除照片 214 //删除照片
214 String picpath = Global.getPictures(); 215 String picpath = Global.getPictures();
215 String dirpath = picpath + request.getParameter("ywh"); 216 String dirpath = picpath + request.getParameter("ywh");
216 System.out.println(dirpath); 217 System.out.println(dirpath);
217 File filedir = new File(dirpath); 218 File filedir = new File(dirpath);
218 if(filedir.isDirectory()){ 219 if (filedir.isDirectory()) {
219 File[] filelist = filedir.listFiles(); 220 File[] filelist = filedir.listFiles();
220 for(int i = 0;i<filelist.length;i++){ 221 for (int i = 0; i < filelist.length; i++) {
221 filelist[i].delete(); 222 filelist[i].delete();
222 } 223 }
223 filedir.delete(); 224 filedir.delete();
224 } 225 }
225 return "redirect:"+ adminPath + "/act/task/todo/"; 226 return "redirect:" + adminPath + "/act/task/todo/";
226 } 227 }
227
228
229 228
230 229
231 //-----------------------------------------人像比对--------------------------------------------------- 230 //-----------------------------------------人像比对---------------------------------------------------
......
...@@ -167,3 +167,29 @@ secretKey=d85a9de7a3d440589e3c2a5d838f0e30 ...@@ -167,3 +167,29 @@ secretKey=d85a9de7a3d440589e3c2a5d838f0e30
167 appId=8fc79f05fc3442f8949a86c3ea379404 167 appId=8fc79f05fc3442f8949a86c3ea379404
168 taxUrl=http://172.16.56.10:8020/dfdc/api/wsqk.bs 168 taxUrl=http://172.16.56.10:8020/dfdc/api/wsqk.bs
169 169
170 #契约锁是否正式环境
171 eci.flag=false
172
173 #契约锁开发环境
174 eci.test.host=http://172.16.56.41:9182
175 eci.test.AppToken=QMaR2FKZM9
176 eci.test.AppSecret=LzbLwgdIAq75avbsfXTRDQBizCl8cN
177 #测试环境用印流程ID
178 eci.test.bdcdjzmlc=2890537670326468622
179 eci.test.bdcqzslc=2890537800123400234
180 eci.test.bdccxzmlc=2890869716009730280
181 #测试环境电子印章ID
182 eci.test.zzzyz=2890537558074310661
183 eci.test.dacxzyz=2890870038996304134
184
185 #契约锁正式环境
186 eci.prod.host=http://172.16.56.6:9182
187 eci.prod.AppToken=lv2M681jcM
188 eci.prod.AppSecret=mZWAKA2p7vvnTZMNuUKRHaCL3LTgHA
189 #正式环境用印流程ID
190 eci.prod.bdcdjzmlc=2905681381004489569
191 eci.prod.bdcqzslc=2905684509636506505
192 eci.prod.bdccxzmlc=2905680925373051715
193 #正式环境电子印章ID
194 eci.prod.zzzyz=2905705558864376593
195 eci.prod.dacxzyz=2905708166068908859
......
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
3 <mapper namespace="com.thinkgem.jeesite.modules.eci.dao.ElecLicenseInfoDao">
4 <select id="getContractIdIsNull" resultType="com.thinkgem.jeesite.modules.eci.entity.ElecLicenseInfo">
5 select *
6 from ELEC_LICENSE_INFO
7 where CONTRACT_ID is null
8 </select>
9
10 <select id="getDocumentIdIsNull" resultType="com.thinkgem.jeesite.modules.eci.entity.ElecLicenseInfo">
11 select *
12 from ELEC_LICENSE_INFO
13 where DOCUMENT_ID is null
14 </select>
15
16 <update id="updateDocumentId">
17 update ELEC_LICENSE_INFO
18 set DOCUMENT_ID = #{documentId,jdbcType=BIGINT}
19 where BIZ_ID = #{bizId,jdbcType=VARCHAR}
20 </update>
21
22 <select id="getWaitForDownload" resultType="com.thinkgem.jeesite.modules.eci.entity.ElecLicenseInfo">
23 select *
24 from ELEC_LICENSE_INFO
25 where DOCUMENT_ID is not null
26 and SFXZ = '2'
27 </select>
28
29 <update id="updateOfdWjdz">
30 update ELEC_LICENSE_INFO
31 set OFD_WJDZ = #{ofdPath,jdbcType=VARCHAR},
32 SFXZ = '1'
33 where BIZ_ID = #{bizId,jdbcType=VARCHAR}
34 </update>
35
36 <select id="getWaitForConvert" resultType="com.thinkgem.jeesite.modules.eci.entity.ElecLicenseInfo">
37 select *
38 from ELEC_LICENSE_INFO
39 where SFXZ = '1'
40 and SFZH = '2'
41 </select>
42
43 <update id="updateContractIdAndStatus">
44 update ELEC_LICENSE_INFO
45 set TJCS = #{waitForCreateContract.tjcs,jdbcType=VARCHAR},
46 CONTRACT_ID = #{waitForCreateContract.contractId,jdbcType=BIGINT},
47 FHJG = #{waitForCreateContract.fhjg,jdbcType=VARCHAR},
48 SFXZ = #{waitForCreateContract.sfxz,jdbcType=VARCHAR},
49 SFZH=#{waitForCreateContract.sfzh,jdbcType=VARCHAR}
50 where BIZ_ID = #{waitForCreateContract.bizId,jdbcType=VARCHAR}
51 </update>
52 </mapper>