正在显示
29 个修改的文件
包含
3281 行增加
和
0 行删除
.gitignore
0 → 100644
1 | +HELP.md | ||
2 | +target/ | ||
3 | +!.mvn/wrapper/maven-wrapper.jar | ||
4 | +!**/src/main/** | ||
5 | +!**/src/test/** | ||
6 | + | ||
7 | +### STS ### | ||
8 | +.apt_generated | ||
9 | +.classpath | ||
10 | +.factorypath | ||
11 | +.project | ||
12 | +.settings | ||
13 | +.springBeans | ||
14 | +.sts4-cache | ||
15 | + | ||
16 | +### IntelliJ IDEA ### | ||
17 | +.idea | ||
18 | +*.iws | ||
19 | +*.iml | ||
20 | +*.ipr | ||
21 | + | ||
22 | +### NetBeans ### | ||
23 | +/nbproject/private/ | ||
24 | +/nbbuild/ | ||
25 | +/dist/ | ||
26 | +/nbdist/ | ||
27 | +/.nb-gradle/ | ||
28 | +build/ | ||
29 | + | ||
30 | +### VS Code ### | ||
31 | +.vscode/ |
config/logback-dev.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!--参考文档链接:https://blog.csdn.net/qq_34912478/article/details/80877132--> | ||
3 | +<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --> | ||
4 | +<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true --> | ||
5 | +<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --> | ||
6 | +<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --> | ||
7 | +<configuration scan="true" scanPeriod="10 seconds"> | ||
8 | + | ||
9 | + <!--<include resource="org/springframework/boot/logging/logback/base.xml" />--> | ||
10 | + | ||
11 | + <contextName>logback</contextName> | ||
12 | + <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 --> | ||
13 | + <property name="log.path" value="./logs" /> | ||
14 | + | ||
15 | + <!-- 彩色日志 --> | ||
16 | + <!-- 彩色日志依赖的渲染类 --> | ||
17 | + <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> | ||
18 | + <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> | ||
19 | + <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> | ||
20 | + <!-- 彩色日志格式 --> | ||
21 | + <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/> | ||
22 | + | ||
23 | + | ||
24 | + <!--输出到控制台--> | ||
25 | + <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> | ||
26 | + <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息--> | ||
27 | + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> | ||
28 | + <level>trace</level> | ||
29 | + </filter> | ||
30 | + <encoder> | ||
31 | + <Pattern>${CONSOLE_LOG_PATTERN}</Pattern> | ||
32 | + <!-- 设置字符集 windows系统这里设置成GBK--> | ||
33 | + <charset>UTF-8</charset> | ||
34 | + </encoder> | ||
35 | + </appender> | ||
36 | + | ||
37 | + | ||
38 | + <!--输出到文件--> | ||
39 | + | ||
40 | + <!-- 时间滚动输出 level为 DEBUG 日志 --> | ||
41 | + <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
42 | + <!-- 正在记录的日志文件的路径及文件名 --> | ||
43 | + <file>${log.path}/log_debug.log</file> | ||
44 | + <!--日志文件输出格式--> | ||
45 | + <encoder> | ||
46 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> | ||
47 | + <charset>UTF-8</charset> <!-- 设置字符集 --> | ||
48 | + </encoder> | ||
49 | + <!-- 日志记录器的滚动策略,按日期,按大小记录 --> | ||
50 | + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
51 | + <!-- 日志归档 --> | ||
52 | + <fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern> | ||
53 | + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | ||
54 | + <maxFileSize>100MB</maxFileSize> | ||
55 | + </timeBasedFileNamingAndTriggeringPolicy> | ||
56 | + <!--日志文件保留天数--> | ||
57 | + <maxHistory>15</maxHistory> | ||
58 | + </rollingPolicy> | ||
59 | + <!-- 此日志文件只记录debug级别的 --> | ||
60 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> | ||
61 | + <level>debug</level> | ||
62 | + <onMatch>ACCEPT</onMatch> | ||
63 | + <onMismatch>DENY</onMismatch> | ||
64 | + </filter> | ||
65 | + </appender> | ||
66 | + | ||
67 | + <!-- 时间滚动输出 level为 INFO 日志 --> | ||
68 | + <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
69 | + <!-- 正在记录的日志文件的路径及文件名 --> | ||
70 | + <file>${log.path}/log_info.log</file> | ||
71 | + <!--日志文件输出格式--> | ||
72 | + <encoder> | ||
73 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> | ||
74 | + <charset>UTF-8</charset> | ||
75 | + </encoder> | ||
76 | + <!-- 日志记录器的滚动策略,按日期,按大小记录 --> | ||
77 | + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
78 | + <!-- 每天日志归档路径以及格式 --> | ||
79 | + <fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern> | ||
80 | + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | ||
81 | + <maxFileSize>100MB</maxFileSize> | ||
82 | + </timeBasedFileNamingAndTriggeringPolicy> | ||
83 | + <!--日志文件保留天数--> | ||
84 | + <maxHistory>15</maxHistory> | ||
85 | + </rollingPolicy> | ||
86 | + <!-- 此日志文件只记录info级别的 --> | ||
87 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> | ||
88 | + <level>info</level> | ||
89 | + <onMatch>ACCEPT</onMatch> | ||
90 | + <onMismatch>DENY</onMismatch> | ||
91 | + </filter> | ||
92 | + </appender> | ||
93 | + | ||
94 | + <!-- 时间滚动输出 level为 WARN 日志 --> | ||
95 | + <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
96 | + <!-- 正在记录的日志文件的路径及文件名 --> | ||
97 | + <file>${log.path}/log_warn.log</file> | ||
98 | + <!--日志文件输出格式--> | ||
99 | + <encoder> | ||
100 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> | ||
101 | + <charset>UTF-8</charset> <!-- 此处设置字符集 --> | ||
102 | + </encoder> | ||
103 | + <!-- 日志记录器的滚动策略,按日期,按大小记录 --> | ||
104 | + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
105 | + <fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern> | ||
106 | + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | ||
107 | + <maxFileSize>100MB</maxFileSize> | ||
108 | + </timeBasedFileNamingAndTriggeringPolicy> | ||
109 | + <!--日志文件保留天数--> | ||
110 | + <maxHistory>15</maxHistory> | ||
111 | + </rollingPolicy> | ||
112 | + <!-- 此日志文件只记录warn级别的 --> | ||
113 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> | ||
114 | + <level>warn</level> | ||
115 | + <onMatch>ACCEPT</onMatch> | ||
116 | + <onMismatch>DENY</onMismatch> | ||
117 | + </filter> | ||
118 | + </appender> | ||
119 | + | ||
120 | + | ||
121 | + <!-- 时间滚动输出 level为 ERROR 日志 --> | ||
122 | + <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
123 | + <!-- 正在记录的日志文件的路径及文件名 --> | ||
124 | + <file>${log.path}/log_error.log</file> | ||
125 | + <!--日志文件输出格式--> | ||
126 | + <encoder> | ||
127 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> | ||
128 | + <charset>UTF-8</charset> <!-- 此处设置字符集 --> | ||
129 | + </encoder> | ||
130 | + <!-- 日志记录器的滚动策略,按日期,按大小记录 --> | ||
131 | + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
132 | + <fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> | ||
133 | + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | ||
134 | + <maxFileSize>100MB</maxFileSize> | ||
135 | + </timeBasedFileNamingAndTriggeringPolicy> | ||
136 | + <!--日志文件保留天数--> | ||
137 | + <maxHistory>15</maxHistory> | ||
138 | + </rollingPolicy> | ||
139 | + <!-- 此日志文件只记录ERROR级别的 --> | ||
140 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> | ||
141 | + <level>ERROR</level> | ||
142 | + <onMatch>ACCEPT</onMatch> | ||
143 | + <onMismatch>DENY</onMismatch> | ||
144 | + </filter> | ||
145 | + </appender> | ||
146 | + | ||
147 | + <!-- 时间滚动输出 level为 trace 日志 --> | ||
148 | + <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
149 | + <!-- 正在记录的日志文件的路径及文件名 --> | ||
150 | + <file>${log.path}/log_trace.log</file> | ||
151 | + <!--日志文件输出格式--> | ||
152 | + <encoder> | ||
153 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> | ||
154 | + <charset>UTF-8</charset> <!-- 此处设置字符集 --> | ||
155 | + </encoder> | ||
156 | + <!-- 日志记录器的滚动策略,按日期,按大小记录 --> | ||
157 | + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
158 | + <fileNamePattern>${log.path}/trace/log-trace-%d{yyyy-MM-dd}.%i.log</fileNamePattern> | ||
159 | + <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> | ||
160 | + <maxFileSize>100MB</maxFileSize> | ||
161 | + </timeBasedFileNamingAndTriggeringPolicy> | ||
162 | + <!--日志文件保留天数--> | ||
163 | + <maxHistory>15</maxHistory> | ||
164 | + </rollingPolicy> | ||
165 | + <!-- 此日志文件只记录trace级别的 --> | ||
166 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> | ||
167 | + <level>TRACE</level> | ||
168 | + <onMatch>ACCEPT</onMatch> | ||
169 | + <onMismatch>DENY</onMismatch> | ||
170 | + </filter> | ||
171 | + </appender> | ||
172 | + | ||
173 | + | ||
174 | + <!-- | ||
175 | + <logger>用来设置某一个包或者具体的某一个类的日志打印级别、 | ||
176 | + 以及指定<appender>。<logger>仅有一个name属性, | ||
177 | + 一个可选的level和一个可选的addtivity属性。 | ||
178 | + name:用来指定受此logger约束的某一个包或者具体的某一个类。 | ||
179 | + level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF, | ||
180 | + 还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。 | ||
181 | + 如果未设置此属性,那么当前logger将会继承上级的级别。 | ||
182 | + addtivity:是否向上级logger传递打印信息。默认是true。 | ||
183 | + --> | ||
184 | + <!--<logger name="org.springframework.web" level="info"/>--> | ||
185 | + <!--<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>--> | ||
186 | + <!-- | ||
187 | + 使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作: | ||
188 | + 第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息 | ||
189 | + 第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别: | ||
190 | + --> | ||
191 | + | ||
192 | + | ||
193 | + <!-- | ||
194 | + root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性 | ||
195 | + level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF, | ||
196 | + 不能设置为INHERITED或者同义词NULL。默认是DEBUG | ||
197 | + 可以包含零个或多个元素,标识这个appender将会添加到这个logger。 | ||
198 | + --> | ||
199 | + <!--<logger name="com.tianbo.analysis" level="trace">--> | ||
200 | + <!--<appender-ref ref="CONSOLE" />--> | ||
201 | + <!--<appender-ref ref="TRACE_FILE" />--> | ||
202 | + <!--<appender-ref ref="DEBUG_FILE" />--> | ||
203 | + <!--<appender-ref ref="INFO_FILE" />--> | ||
204 | + <!--<appender-ref ref="WARN_FILE" />--> | ||
205 | + <!--<appender-ref ref="ERROR_FILE" />--> | ||
206 | + <!--</logger>--> | ||
207 | + | ||
208 | + <!--开发环境:打印控制台--> | ||
209 | + <springProfile name="dev"> | ||
210 | + <logger name="org.springframework" level="info"/> | ||
211 | + <logger name="org.apache.tomcat" level="info" /> | ||
212 | + <logger name="com.sunyo.customer.order.activity.dao" level="DEBUG" /> | ||
213 | + <root level="info"> | ||
214 | + <appender-ref ref="CONSOLE" /> | ||
215 | + <appender-ref ref="TRACE_FILE" /> | ||
216 | + <appender-ref ref="DEBUG_FILE" /> | ||
217 | + <appender-ref ref="INFO_FILE" /> | ||
218 | + <appender-ref ref="WARN_FILE" /> | ||
219 | + <appender-ref ref="ERROR_FILE" /> | ||
220 | + </root> | ||
221 | + </springProfile> | ||
222 | + | ||
223 | + <!--生产环境:输出到文件--> | ||
224 | + <springProfile name="pro"> | ||
225 | + <logger name="org.springframework.boot" level="INFO"/> | ||
226 | + <logger name="com.sunyo.customer.order.activity.dao" level="DEBUG" /> | ||
227 | + <root level="info"> | ||
228 | + <appender-ref ref="CONSOLE" /> | ||
229 | + <appender-ref ref="DEBUG_FILE" /> | ||
230 | + <appender-ref ref="INFO_FILE" /> | ||
231 | + <appender-ref ref="ERROR_FILE" /> | ||
232 | + <appender-ref ref="WARN_FILE" /> | ||
233 | + <appender-ref ref="TRACE_FILE" /> | ||
234 | + </root> | ||
235 | + </springProfile> | ||
236 | + | ||
237 | +</configuration> |
pom.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
4 | + <modelVersion>4.0.0</modelVersion> | ||
5 | + <parent> | ||
6 | + <groupId>org.springframework.boot</groupId> | ||
7 | + <artifactId>spring-boot-starter-parent</artifactId> | ||
8 | + <version>2.2.0.BUILD-SNAPSHOT</version> | ||
9 | + <relativePath/> <!-- lookup parent from repository --> | ||
10 | + </parent> | ||
11 | + <groupId>com.sunyo.customer</groupId> | ||
12 | + <artifactId>order</artifactId> | ||
13 | + <version>0.0.1-SNAPSHOT</version> | ||
14 | + <name>order</name> | ||
15 | + <description>工单系统</description> | ||
16 | + | ||
17 | + <properties> | ||
18 | + <java.version>1.8</java.version> | ||
19 | + <druid.version>1.1.9</druid.version> | ||
20 | + <spring-cloud.version>Greenwich.BUILD-SNAPSHOT</spring-cloud.version> | ||
21 | + <lombok_sersion>1.18.6</lombok_sersion> | ||
22 | + <fastjson_version>1.2.28</fastjson_version> | ||
23 | + <swagger2_version>2.9.2</swagger2_version> | ||
24 | + </properties> | ||
25 | + | ||
26 | + <dependencies> | ||
27 | + <dependency> | ||
28 | + <groupId>org.springframework.boot</groupId> | ||
29 | + <artifactId>spring-boot-starter-thymeleaf</artifactId> | ||
30 | + </dependency> | ||
31 | + <dependency> | ||
32 | + <groupId>org.springframework.boot</groupId> | ||
33 | + <artifactId>spring-boot-starter-web</artifactId> | ||
34 | + </dependency> | ||
35 | + <dependency> | ||
36 | + <groupId>org.mybatis.spring.boot</groupId> | ||
37 | + <artifactId>mybatis-spring-boot-starter</artifactId> | ||
38 | + <version>2.1.1</version> | ||
39 | + </dependency> | ||
40 | + <!--clound--> | ||
41 | + <dependency> | ||
42 | + <groupId>org.springframework.cloud</groupId> | ||
43 | + <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> | ||
44 | + </dependency> | ||
45 | + <!--数据库--> | ||
46 | + <dependency> | ||
47 | + <groupId>com.alibaba</groupId> | ||
48 | + <artifactId>druid</artifactId> | ||
49 | + <version>${druid.version}</version> | ||
50 | + </dependency> | ||
51 | + <dependency> | ||
52 | + <groupId>com.alibaba</groupId> | ||
53 | + <artifactId>fastjson</artifactId> | ||
54 | + <version>${fastjson_version}</version> | ||
55 | + </dependency> | ||
56 | + <dependency> | ||
57 | + <groupId>mysql</groupId> | ||
58 | + <artifactId>mysql-connector-java</artifactId> | ||
59 | + <scope>runtime</scope> | ||
60 | + </dependency> | ||
61 | + <dependency> | ||
62 | + <groupId>org.mybatis</groupId> | ||
63 | + <artifactId>mybatis</artifactId> | ||
64 | + <version>3.4.6</version> | ||
65 | + </dependency> | ||
66 | + <!--分页插件--> | ||
67 | + <dependency> | ||
68 | + <groupId>com.github.pagehelper</groupId> | ||
69 | + <artifactId>pagehelper-spring-boot-starter</artifactId> | ||
70 | + <version>1.2.5</version> | ||
71 | + </dependency> | ||
72 | + <dependency> | ||
73 | + <groupId>org.projectlombok</groupId> | ||
74 | + <artifactId>lombok</artifactId> | ||
75 | + <optional>true</optional> | ||
76 | + </dependency> | ||
77 | + <dependency> | ||
78 | + <groupId>org.springframework.boot</groupId> | ||
79 | + <artifactId>spring-boot-starter-test</artifactId> | ||
80 | + <scope>test</scope> | ||
81 | + </dependency> | ||
82 | + <dependency> | ||
83 | + <groupId>com.tianbo</groupId> | ||
84 | + <artifactId>util</artifactId> | ||
85 | + <version>1.0-SNAPSHOT</version> | ||
86 | + </dependency> | ||
87 | + <!--<dependency>--> | ||
88 | + <!--<groupId>com.fasterxml.jackson.core</groupId>--> | ||
89 | + <!--<artifactId>jackson-core</artifactId>--> | ||
90 | + <!--<version>2.9.5</version>--> | ||
91 | + <!--</dependency>--> | ||
92 | + <dependency> | ||
93 | + <groupId>org.activiti</groupId> | ||
94 | + <artifactId>activiti-spring-boot-starter-basic</artifactId> | ||
95 | + <version>6.0.0</version> | ||
96 | + </dependency> | ||
97 | + <!--集成swagger2,下面两个spring的配置解决springboot包 与swagger2的包冲突问题,生产部署的时候记得要去掉此swagger2的配置,开发环境开启--> | ||
98 | + <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> | ||
99 | + <dependency> | ||
100 | + <groupId>org.springframework.plugin</groupId> | ||
101 | + <artifactId>spring-plugin-core</artifactId> | ||
102 | + <version>1.2.0.RELEASE</version><!--$NO-MVN-MAN-VER$--> | ||
103 | + </dependency> | ||
104 | + <dependency> | ||
105 | + <groupId>org.springframework.plugin</groupId> | ||
106 | + <artifactId>spring-plugin-metadata</artifactId> | ||
107 | + <version>1.2.0.RELEASE</version><!--$NO-MVN-MAN-VER$--> | ||
108 | + </dependency> | ||
109 | + <dependency> | ||
110 | + <groupId>io.springfox</groupId> | ||
111 | + <artifactId>springfox-swagger-ui</artifactId> | ||
112 | + <version>${swagger2_version}</version> | ||
113 | + <exclusions> | ||
114 | + <exclusion> | ||
115 | + <groupId>org.springframework.plugin</groupId> | ||
116 | + <artifactId>spring-plugin-core</artifactId> | ||
117 | + </exclusion> | ||
118 | + <exclusion> | ||
119 | + <groupId>org.springframework.plugin</groupId> | ||
120 | + <artifactId>spring-plugin-metadata</artifactId> | ||
121 | + </exclusion> | ||
122 | + </exclusions> | ||
123 | + </dependency> | ||
124 | + <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> | ||
125 | + <dependency> | ||
126 | + <groupId>io.springfox</groupId> | ||
127 | + <artifactId>springfox-swagger2</artifactId> | ||
128 | + <version>${swagger2_version}</version> | ||
129 | + <!--2.9.2集成的是M1的这两个包,跟现在用的Greenwich.BUILD-SNAPSHOT的版本的SPRING boot2的版本包有冲突。去掉--> | ||
130 | + <exclusions> | ||
131 | + <exclusion> | ||
132 | + <groupId>org.springframework.plugin</groupId> | ||
133 | + <artifactId>spring-plugin-core</artifactId> | ||
134 | + </exclusion> | ||
135 | + <exclusion> | ||
136 | + <groupId>org.springframework.plugin</groupId> | ||
137 | + <artifactId>spring-plugin-metadata</artifactId> | ||
138 | + </exclusion> | ||
139 | + </exclusions> | ||
140 | + </dependency> | ||
141 | + <!--集成swagger2--> | ||
142 | + </dependencies> | ||
143 | + <dependencyManagement> | ||
144 | + <dependencies> | ||
145 | + <dependency> | ||
146 | + <groupId>org.springframework.cloud</groupId> | ||
147 | + <artifactId>spring-cloud-dependencies</artifactId> | ||
148 | + <version>${spring-cloud.version}</version> | ||
149 | + <type>pom</type> | ||
150 | + <scope>import</scope> | ||
151 | + </dependency> | ||
152 | + </dependencies> | ||
153 | + </dependencyManagement> | ||
154 | + <build> | ||
155 | + <plugins> | ||
156 | + <plugin> | ||
157 | + <groupId>org.springframework.boot</groupId> | ||
158 | + <artifactId>spring-boot-maven-plugin</artifactId> | ||
159 | + </plugin> | ||
160 | + <!-- mybatis generator 自动生成代码插件 --> | ||
161 | + <plugin> | ||
162 | + <groupId>org.mybatis.generator</groupId> | ||
163 | + <artifactId>mybatis-generator-maven-plugin</artifactId> | ||
164 | + <version>1.3.2</version> | ||
165 | + <configuration> | ||
166 | + <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> | ||
167 | + <overwrite>true</overwrite> | ||
168 | + <verbose>true</verbose> | ||
169 | + </configuration> | ||
170 | + </plugin> | ||
171 | + <!--Generate java code by xsd file--> | ||
172 | + <plugin> | ||
173 | + <groupId>org.jvnet.jaxb2.maven2</groupId> | ||
174 | + <artifactId>maven-jaxb2-plugin</artifactId> | ||
175 | + <version>0.14.0</version> | ||
176 | + <configuration> | ||
177 | + <schemaDirectory>src/main/resources/xsd</schemaDirectory> | ||
178 | + <generateDirectory>src/main/java</generateDirectory> | ||
179 | + <packageLevelAnnotations>false</packageLevelAnnotations> | ||
180 | + <noFileHeader>true</noFileHeader> | ||
181 | + <episode>false</episode> | ||
182 | + <locale>en</locale> | ||
183 | + </configuration> | ||
184 | + <executions> | ||
185 | + <execution> | ||
186 | + <id>xsd1-generate</id> | ||
187 | + <goals> | ||
188 | + <goal>generate</goal> | ||
189 | + </goals> | ||
190 | + <configuration> | ||
191 | + <schemaIncludes> | ||
192 | + <include>DecMessage_ImportSave1.xsd</include> | ||
193 | + </schemaIncludes> | ||
194 | + <generatePackage>com.sunyo.customer.order.xsd1</generatePackage> | ||
195 | + </configuration> | ||
196 | + </execution> | ||
197 | + </executions> | ||
198 | + </plugin> | ||
199 | + </plugins> | ||
200 | + </build> | ||
201 | + | ||
202 | +</project> |
1 | +package com.sunyo.customer.order; | ||
2 | + | ||
3 | +import org.activiti.spring.boot.SecurityAutoConfiguration; | ||
4 | +import org.mybatis.spring.annotation.MapperScan; | ||
5 | +import org.springframework.boot.SpringApplication; | ||
6 | +import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
7 | + | ||
8 | +@SpringBootApplication(exclude = SecurityAutoConfiguration.class) | ||
9 | +@MapperScan("com.sunyo.customer.order.activity.dao") | ||
10 | +public class OrderApplication { | ||
11 | + | ||
12 | + public static void main(String[] args) { | ||
13 | + SpringApplication.run(OrderApplication.class, args); | ||
14 | + } | ||
15 | + | ||
16 | +} |
1 | +package com.sunyo.customer.order; | ||
2 | + | ||
3 | +import org.springframework.context.annotation.Bean; | ||
4 | +import org.springframework.context.annotation.Configuration; | ||
5 | +import springfox.documentation.builders.ApiInfoBuilder; | ||
6 | +import springfox.documentation.builders.PathSelectors; | ||
7 | +import springfox.documentation.builders.RequestHandlerSelectors; | ||
8 | +import springfox.documentation.service.ApiInfo; | ||
9 | +import springfox.documentation.service.Contact; | ||
10 | +import springfox.documentation.spi.DocumentationType; | ||
11 | +import springfox.documentation.spring.web.plugins.Docket; | ||
12 | +import springfox.documentation.swagger2.annotations.EnableSwagger2; | ||
13 | + | ||
14 | +@Configuration | ||
15 | +@EnableSwagger2 | ||
16 | +public class Swagger2 { | ||
17 | + //swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等 | ||
18 | + @Bean | ||
19 | + public Docket createRestApi() { | ||
20 | + return new Docket(DocumentationType.SWAGGER_2) | ||
21 | + .apiInfo(apiInfo()) | ||
22 | + .select() | ||
23 | + //为当前包路径 | ||
24 | + .apis(RequestHandlerSelectors.basePackage("com.tianbo.warehouse.controller")) | ||
25 | + .paths(PathSelectors.any()) | ||
26 | + .build(); | ||
27 | + } | ||
28 | + //构建 api文档的详细信息函数,注意这里的注解引用的是哪个 | ||
29 | + private ApiInfo apiInfo() { | ||
30 | + return new ApiInfoBuilder() | ||
31 | + //页面标题 | ||
32 | + .title("Spring Boot 测试使用 Swagger2 构建RESTful API") | ||
33 | + //创建人 | ||
34 | + .contact(new Contact("MarryFeng", "http://www.baidu.com", "")) | ||
35 | + //版本号 | ||
36 | + .version("1.0") | ||
37 | + //描述 | ||
38 | + .description("API 描述") | ||
39 | + .build(); | ||
40 | + } | ||
41 | + | ||
42 | + | ||
43 | +} |
src/main/java/com/sunyo/customer/order/activity/controller/ActivityConsumerController.java
0 → 100644
1 | +package com.sunyo.customer.order.activity.controller; | ||
2 | + | ||
3 | + | ||
4 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
5 | +import org.springframework.web.bind.annotation.RequestMethod; | ||
6 | +import org.springframework.web.bind.annotation.RestController; | ||
7 | + | ||
8 | +@RestController | ||
9 | +@RequestMapping("/activity") | ||
10 | +public interface ActivityConsumerController { | ||
11 | + /** | ||
12 | + * 流程demo | ||
13 | + * @return | ||
14 | + */ | ||
15 | + @RequestMapping(value="/startActivityDemo",method= RequestMethod.GET) | ||
16 | + public boolean startActivityDemo(); | ||
17 | + | ||
18 | +} |
1 | +package com.sunyo.customer.order.activity.controller; | ||
2 | + | ||
3 | +import com.github.pagehelper.Page; | ||
4 | +import com.github.pagehelper.PageHelper; | ||
5 | +import com.github.pagehelper.PageInfo; | ||
6 | +import com.sunyo.customer.order.activity.controller.response.ResultJson; | ||
7 | +import com.sunyo.customer.order.activity.dao.JOBMapper; | ||
8 | +import com.sunyo.customer.order.activity.dao.ProcessFormMapper; | ||
9 | +import com.sunyo.customer.order.activity.model.JOB; | ||
10 | +import com.sunyo.customer.order.activity.model.ProcessForm; | ||
11 | +import org.springframework.beans.factory.annotation.Autowired; | ||
12 | +import org.springframework.web.bind.annotation.*; | ||
13 | + | ||
14 | +import java.util.List; | ||
15 | + | ||
16 | +@RestController | ||
17 | +@RequestMapping("/job") | ||
18 | +public class JobController { | ||
19 | + | ||
20 | + @Autowired | ||
21 | + private JOBMapper jobMapper; | ||
22 | + /** | ||
23 | + * 流程demo | ||
24 | + * @return | ||
25 | + */ | ||
26 | + @RequestMapping(value="/list",method= RequestMethod.GET) | ||
27 | + public ResultJson<PageInfo> startActivityDemo(@RequestParam(value = "pageNum",required = false,defaultValue = "1") | ||
28 | + int pageNum, | ||
29 | + @RequestParam(value = "pageSize",required = false,defaultValue = "5") | ||
30 | + int pageSize, | ||
31 | + @RequestParam(value = "userid",required = false) | ||
32 | + String userid, | ||
33 | + @RequestParam(value = "processid",required = false) | ||
34 | + String processid){ | ||
35 | + Page<JOB> page = PageHelper.startPage(pageNum,pageSize); | ||
36 | + List<JOB> list= jobMapper.selectAllWithUser(userid,processid); | ||
37 | + PageInfo<JOB> result = new PageInfo<JOB>(list); | ||
38 | + return new ResultJson("200","success",result); | ||
39 | + } | ||
40 | + | ||
41 | + @PostMapping(value="/add") | ||
42 | + public ResultJson add(JOB job){ | ||
43 | + int i =jobMapper.insertSelective(job); | ||
44 | + return i==1 ? new ResultJson("200","添加工单成功") :new ResultJson("500","insert faild"); | ||
45 | + | ||
46 | + } | ||
47 | + | ||
48 | + @PutMapping(value="start") | ||
49 | + public ResultJson start(@RequestBody JOB job){ | ||
50 | + job.setComent("由"+job.getUser().getRealname()+"开始任务"); | ||
51 | + job.setAuditresuld(new Integer(1).byteValue()); | ||
52 | + int i =jobMapper.updateByPrimaryKeySelective(job); | ||
53 | + return i==1 ? new ResultJson("200","添加工单成功") :new ResultJson("500","insert faild"); | ||
54 | + | ||
55 | + } | ||
56 | + | ||
57 | + | ||
58 | +} |
1 | +package com.sunyo.customer.order.activity.controller; | ||
2 | + | ||
3 | +import com.github.pagehelper.Page; | ||
4 | +import com.github.pagehelper.PageHelper; | ||
5 | +import com.github.pagehelper.PageInfo; | ||
6 | +import com.sunyo.customer.order.activity.controller.response.ResultJson; | ||
7 | +import com.sunyo.customer.order.activity.dao.JOBMapper; | ||
8 | +import com.sunyo.customer.order.activity.dao.ProcessFormMapper; | ||
9 | +import com.sunyo.customer.order.activity.model.JOB; | ||
10 | +import com.sunyo.customer.order.activity.model.ProcessForm; | ||
11 | +import org.activiti.engine.*; | ||
12 | +import org.activiti.engine.repository.DeploymentBuilder; | ||
13 | +import org.activiti.engine.repository.ProcessDefinition; | ||
14 | +import org.activiti.engine.runtime.ProcessInstance; | ||
15 | +import org.activiti.engine.task.Task; | ||
16 | +import org.springframework.beans.factory.annotation.Autowired; | ||
17 | +import org.springframework.web.bind.annotation.*; | ||
18 | + | ||
19 | +import java.util.HashMap; | ||
20 | +import java.util.List; | ||
21 | +import java.util.Map; | ||
22 | +import java.util.UUID; | ||
23 | + | ||
24 | +@RestController | ||
25 | +@RequestMapping("/process") | ||
26 | +public class ProcessController { | ||
27 | + | ||
28 | + @Autowired | ||
29 | + private ProcessFormMapper processFormMapper; | ||
30 | + | ||
31 | + @Autowired | ||
32 | + private JOBMapper jobMapper; | ||
33 | + | ||
34 | + @Autowired | ||
35 | + private RuntimeService runtimeService; | ||
36 | + | ||
37 | + @Autowired | ||
38 | + private TaskService taskService; | ||
39 | + | ||
40 | + @Autowired | ||
41 | + private IdentityService identityService; | ||
42 | + | ||
43 | + @Autowired | ||
44 | + private RepositoryService repositoryService; | ||
45 | + | ||
46 | + @Autowired | ||
47 | + private ProcessEngine processEngine; | ||
48 | + | ||
49 | + @Autowired | ||
50 | + private HistoryService historyService; | ||
51 | + /** | ||
52 | + * 流程demo | ||
53 | + * @return | ||
54 | + */ | ||
55 | + @RequestMapping(value="/list",method= RequestMethod.GET) | ||
56 | + public ResultJson<PageInfo> startActivityDemo(@RequestParam(value = "pageNum",required = false,defaultValue = "1") | ||
57 | + int pageNum, | ||
58 | + @RequestParam(value = "pageSize",required = false,defaultValue = "5") | ||
59 | + int pageSize){ | ||
60 | + Page<ProcessForm> page = PageHelper.startPage(pageNum,pageSize); | ||
61 | + List<ProcessForm> list= processFormMapper.selectAllWithUser(); | ||
62 | + PageInfo<ProcessForm> result = new PageInfo<ProcessForm>(list); | ||
63 | + return new ResultJson("200","success",result); | ||
64 | + } | ||
65 | + | ||
66 | + @PostMapping(value="/add") | ||
67 | + public ResultJson add(ProcessForm processForm){ | ||
68 | + String uuid = UUID.randomUUID().toString(); | ||
69 | + processForm.setFormid(uuid); | ||
70 | + int i =processFormMapper.insertSelective(processForm); | ||
71 | + if (processForm.getJobuserid()!=0){ | ||
72 | + JOB job = new JOB(); | ||
73 | + job.setAuditid(UUID.randomUUID().toString()); | ||
74 | + job.setTaskid(uuid); | ||
75 | + job.setUserid(processForm.getJobuserid()); | ||
76 | + job.setAuditresuld(new Byte("0")); | ||
77 | + jobMapper.insertSelective(job); | ||
78 | + } | ||
79 | + return i==1 ? new ResultJson("200","添加工单成功") :new ResultJson("500","insert faild"); | ||
80 | + | ||
81 | + } | ||
82 | + | ||
83 | + @GetMapping(value = "activity") | ||
84 | + public void activity(){ | ||
85 | + DeploymentBuilder builder = repositoryService.createDeployment(); | ||
86 | + builder.addClasspathResource("processes/customProcess.bpmn20.xml").name("customProcess"); | ||
87 | + builder.deploy(); | ||
88 | + List<ProcessDefinition> p = repositoryService.createProcessDefinitionQuery().list(); | ||
89 | +// 启动流程实例,字符串"vacation"是BPMN模型文件里process元素的id | ||
90 | + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("customProcess"); | ||
91 | +//流程实例启动后,流程会跳转到请假申请节点 | ||
92 | + Task vacationApply = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); | ||
93 | +//设置请假申请任务的执行人 | ||
94 | + taskService.setAssignee(vacationApply.getId(), "zhangsan"); | ||
95 | + | ||
96 | +//设置流程参数:请假天数和表单ID | ||
97 | +//流程引擎会根据请假天数days>3判断流程走向 | ||
98 | +//formId是用来将流程数据和表单数据关联起来 | ||
99 | + Map<String, Object> args = new HashMap<>(); | ||
100 | + args.put("days", "2"); | ||
101 | + args.put("formId", "4d8746da-f0c2-418d-86b4-e3646dcef6c9"); | ||
102 | + | ||
103 | +//完成请假申请任务 | ||
104 | + taskService.complete(vacationApply.getId(), args); | ||
105 | + } | ||
106 | +} |
1 | +package com.sunyo.customer.order.activity.controller.response; | ||
2 | + | ||
3 | +import com.alibaba.fastjson.JSON; | ||
4 | +import org.springframework.core.MethodParameter; | ||
5 | +import org.springframework.http.MediaType; | ||
6 | +import org.springframework.http.converter.HttpMessageConverter; | ||
7 | +import org.springframework.http.server.ServerHttpRequest; | ||
8 | +import org.springframework.http.server.ServerHttpResponse; | ||
9 | +import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; | ||
10 | + | ||
11 | +/** | ||
12 | + * 统一拦截response接口返回数据 | ||
13 | + */ | ||
14 | +//@ControllerAdvice | ||
15 | +public class RestControllerResponseAdvice implements ResponseBodyAdvice<Object> { | ||
16 | + | ||
17 | + /** | ||
18 | + * //判断支持的类型,因为我们定义的BaseResponseVo 里面的data可能是任何类型,这里就不判断统一放过 | ||
19 | + * 如果你想对执行的返回体进行操作,可将上方的Object换成你自己的类型 | ||
20 | + * @param returnType | ||
21 | + * @param converterType | ||
22 | + * @return | ||
23 | + */ | ||
24 | + @Override | ||
25 | + public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType){ | ||
26 | + return true; | ||
27 | + } | ||
28 | + | ||
29 | + @Override | ||
30 | + public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response){ | ||
31 | + // 对body进行封装处理 | ||
32 | + if (body instanceof String) { | ||
33 | + String msg = (String) body; | ||
34 | + ResultJson resultJson = new ResultJson("-1", msg); | ||
35 | + // 因为在controller层中返回的是String类型,这边如果换成ResultJson的话,会导致StringMessageConverter方法类型转换异常,所以这边将对象转成字符串 | ||
36 | + return JSON.toJSONString(resultJson); | ||
37 | + } else if (body instanceof Object) { | ||
38 | + Object data = (Object) body; | ||
39 | + ResultJson resultJson = new ResultJson(data); | ||
40 | + return resultJson; | ||
41 | + } | ||
42 | + | ||
43 | + return body; | ||
44 | + } | ||
45 | +} |
1 | +package com.sunyo.customer.order.activity.controller.response; | ||
2 | + | ||
3 | +import lombok.Data; | ||
4 | + | ||
5 | +import java.io.Serializable; | ||
6 | + | ||
7 | +@Data | ||
8 | +public class ResultJson<T> implements Serializable{ | ||
9 | + private static final long serialVersionUID = 1L; | ||
10 | + | ||
11 | + // 状态码 正确为200 | ||
12 | + private String code = "200"; | ||
13 | + // 描述 | ||
14 | + private String msg = ""; | ||
15 | + | ||
16 | + private String error; | ||
17 | + // 返回对象 | ||
18 | + private T data; | ||
19 | + //返回的JWT | ||
20 | + private String jwtToken; | ||
21 | + | ||
22 | + public ResultJson() { | ||
23 | + } | ||
24 | + | ||
25 | + public ResultJson(String code) { | ||
26 | + this.code = code; | ||
27 | + } | ||
28 | + | ||
29 | + public ResultJson(String code, String msg) { | ||
30 | + this.code = code; | ||
31 | + this.msg = msg; | ||
32 | + } | ||
33 | + | ||
34 | + public ResultJson(T data) { | ||
35 | + this.data = data; | ||
36 | + } | ||
37 | + | ||
38 | + public ResultJson(String code, String msg, T data) { | ||
39 | + this.code = code; | ||
40 | + this.msg = msg; | ||
41 | + this.data = data; | ||
42 | + } | ||
43 | +} |
1 | +package com.sunyo.customer.order.activity.dao; | ||
2 | + | ||
3 | +import com.sunyo.customer.order.activity.model.JOB; | ||
4 | +import org.apache.ibatis.annotations.Param; | ||
5 | + | ||
6 | +import java.util.List; | ||
7 | + | ||
8 | +public interface JOBMapper { | ||
9 | + int deleteByPrimaryKey(String auditid); | ||
10 | + | ||
11 | + int insert(JOB record); | ||
12 | + | ||
13 | + int insertSelective(JOB record); | ||
14 | + | ||
15 | + JOB selectByPrimaryKey(String auditid); | ||
16 | + | ||
17 | + List<JOB> selectAllWithUser(@Param("userid")String auditid,@Param("processid") String processid); | ||
18 | + | ||
19 | + int updateByPrimaryKeySelective(JOB record); | ||
20 | + | ||
21 | + int updateByPrimaryKey(JOB record); | ||
22 | + | ||
23 | + //开始任务 | ||
24 | + int startJob(JOB record); | ||
25 | + | ||
26 | + | ||
27 | + | ||
28 | +} |
1 | +package com.sunyo.customer.order.activity.dao; | ||
2 | + | ||
3 | +import com.sunyo.customer.order.activity.model.ProcessForm; | ||
4 | + | ||
5 | +import java.util.List; | ||
6 | + | ||
7 | + | ||
8 | +public interface ProcessFormMapper { | ||
9 | + int deleteByPrimaryKey(ProcessForm key); | ||
10 | + | ||
11 | + int insert(ProcessForm record); | ||
12 | + | ||
13 | + int insertSelective(ProcessForm record); | ||
14 | + | ||
15 | + ProcessForm selectByPrimaryKey(ProcessForm key); | ||
16 | + | ||
17 | + List<ProcessForm> selectAllWithUser(); | ||
18 | + | ||
19 | + int updateByPrimaryKeySelective(ProcessForm record); | ||
20 | + | ||
21 | + int updateByPrimaryKey(ProcessForm record); | ||
22 | +} |
1 | +package com.sunyo.customer.order.activity.dao; | ||
2 | + | ||
3 | +import com.sunyo.customer.order.activity.model.USER; | ||
4 | + | ||
5 | +public interface USERMapper { | ||
6 | + int deleteByPrimaryKey(Integer userId); | ||
7 | + | ||
8 | + int insert(USER record); | ||
9 | + | ||
10 | + int insertSelective(USER record); | ||
11 | + | ||
12 | + USER selectByPrimaryKey(Integer userId); | ||
13 | + | ||
14 | + int updateByPrimaryKeySelective(USER record); | ||
15 | + | ||
16 | + int updateByPrimaryKey(USER record); | ||
17 | +} |
1 | +package com.sunyo.customer.order.activity.model; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
4 | +import lombok.Data; | ||
5 | +import org.springframework.format.annotation.DateTimeFormat; | ||
6 | + | ||
7 | +import java.util.Date; | ||
8 | + | ||
9 | +@Data | ||
10 | +public class JOB { | ||
11 | + private String auditid; | ||
12 | + | ||
13 | + private String processinstanceid; | ||
14 | + | ||
15 | + private String processid; | ||
16 | + | ||
17 | + private String taskid; | ||
18 | + | ||
19 | + private Integer userid; | ||
20 | + | ||
21 | + private Byte auditresuld; | ||
22 | + | ||
23 | + private String coment; | ||
24 | + | ||
25 | + @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss") | ||
26 | + @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8") | ||
27 | + private Date audittime; | ||
28 | + | ||
29 | + private USER user; | ||
30 | + | ||
31 | + private ProcessForm process; | ||
32 | + | ||
33 | + //任务执行者ID | ||
34 | + private Integer joduserd; | ||
35 | + | ||
36 | + public String getAuditid() { | ||
37 | + return auditid; | ||
38 | + } | ||
39 | + | ||
40 | + public void setAuditid(String auditid) { | ||
41 | + this.auditid = auditid == null ? null : auditid.trim(); | ||
42 | + } | ||
43 | + | ||
44 | + public String getProcessinstanceid() { | ||
45 | + return processinstanceid; | ||
46 | + } | ||
47 | + | ||
48 | + public void setProcessinstanceid(String processinstanceid) { | ||
49 | + this.processinstanceid = processinstanceid == null ? null : processinstanceid.trim(); | ||
50 | + } | ||
51 | + | ||
52 | + public String getTaskid() { | ||
53 | + return taskid; | ||
54 | + } | ||
55 | + | ||
56 | + public void setTaskid(String taskid) { | ||
57 | + this.taskid = taskid == null ? null : taskid.trim(); | ||
58 | + } | ||
59 | + | ||
60 | + public Integer getUserid() { | ||
61 | + return userid; | ||
62 | + } | ||
63 | + | ||
64 | + public void setUserid(Integer userid) { | ||
65 | + this.userid = userid; | ||
66 | + } | ||
67 | + | ||
68 | + public Byte getAuditresuld() { | ||
69 | + return auditresuld; | ||
70 | + } | ||
71 | + | ||
72 | + public void setAuditresuld(Byte auditresuld) { | ||
73 | + this.auditresuld = auditresuld; | ||
74 | + } | ||
75 | + | ||
76 | + public String getComent() { | ||
77 | + return coment; | ||
78 | + } | ||
79 | + | ||
80 | + public void setComent(String coment) { | ||
81 | + this.coment = coment == null ? null : coment.trim(); | ||
82 | + } | ||
83 | + | ||
84 | + public Date getAudittime() { | ||
85 | + return audittime; | ||
86 | + } | ||
87 | + | ||
88 | + public void setAudittime(Date audittime) { | ||
89 | + this.audittime = audittime; | ||
90 | + } | ||
91 | +} |
1 | +package com.sunyo.customer.order.activity.model; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
4 | +import lombok.Data; | ||
5 | +import org.springframework.format.annotation.DateTimeFormat; | ||
6 | + | ||
7 | +import java.util.Date; | ||
8 | + | ||
9 | +@Data | ||
10 | +public class ProcessForm{ | ||
11 | + private Integer userid; | ||
12 | + | ||
13 | + private String processname; | ||
14 | + | ||
15 | + @DateTimeFormat(pattern = "yyyy-MM-dd") | ||
16 | + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") | ||
17 | + private Date begindate; | ||
18 | + | ||
19 | + @DateTimeFormat(pattern = "yyyy-MM-dd") | ||
20 | + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") | ||
21 | + private Date enddate; | ||
22 | + | ||
23 | + private Byte vacationtype; | ||
24 | + | ||
25 | + private String reason; | ||
26 | + | ||
27 | + private Byte processstatus; | ||
28 | + | ||
29 | + private Date createtime; | ||
30 | + | ||
31 | + private Date updatetime; | ||
32 | + | ||
33 | + private String formid; | ||
34 | + | ||
35 | + private String processinstanceid; | ||
36 | + | ||
37 | + private USER user; | ||
38 | + | ||
39 | + private Integer jobuserid; | ||
40 | + | ||
41 | + public String getFormid() { | ||
42 | + return formid; | ||
43 | + } | ||
44 | + | ||
45 | + public void setFormid(String formid) { | ||
46 | + this.formid = formid == null ? null : formid.trim(); | ||
47 | + } | ||
48 | + | ||
49 | + public String getProcessinstanceid() { | ||
50 | + return processinstanceid; | ||
51 | + } | ||
52 | + | ||
53 | + public void setProcessinstanceid(String processinstanceid) { | ||
54 | + this.processinstanceid = processinstanceid == null ? null : processinstanceid.trim(); | ||
55 | + } | ||
56 | + | ||
57 | + public Integer getUserid() { | ||
58 | + return userid; | ||
59 | + } | ||
60 | + | ||
61 | + public void setUserid(Integer userid) { | ||
62 | + this.userid = userid; | ||
63 | + } | ||
64 | + | ||
65 | + public String getProcessname() { | ||
66 | + return processname; | ||
67 | + } | ||
68 | + | ||
69 | + public void setProcessname(String processname) { | ||
70 | + this.processname = processname == null ? null : processname.trim(); | ||
71 | + } | ||
72 | + | ||
73 | + public Date getBegindate() { | ||
74 | + return begindate; | ||
75 | + } | ||
76 | + | ||
77 | + public void setBegindate(Date begindate) { | ||
78 | + this.begindate = begindate; | ||
79 | + } | ||
80 | + | ||
81 | + public Date getEnddate() { | ||
82 | + return enddate; | ||
83 | + } | ||
84 | + | ||
85 | + public void setEnddate(Date enddate) { | ||
86 | + this.enddate = enddate; | ||
87 | + } | ||
88 | + | ||
89 | + public Byte getVacationtype() { | ||
90 | + return vacationtype; | ||
91 | + } | ||
92 | + | ||
93 | + public void setVacationtype(Byte vacationtype) { | ||
94 | + this.vacationtype = vacationtype; | ||
95 | + } | ||
96 | + | ||
97 | + public String getReason() { | ||
98 | + return reason; | ||
99 | + } | ||
100 | + | ||
101 | + public void setReason(String reason) { | ||
102 | + this.reason = reason == null ? null : reason.trim(); | ||
103 | + } | ||
104 | + | ||
105 | + public Byte getProcessstatus() { | ||
106 | + return processstatus; | ||
107 | + } | ||
108 | + | ||
109 | + public void setProcessstatus(Byte processstatus) { | ||
110 | + this.processstatus = processstatus; | ||
111 | + } | ||
112 | + | ||
113 | + public Date getCreatetime() { | ||
114 | + return createtime; | ||
115 | + } | ||
116 | + | ||
117 | + public void setCreatetime(Date createtime) { | ||
118 | + this.createtime = createtime; | ||
119 | + } | ||
120 | + | ||
121 | + public Date getUpdatetime() { | ||
122 | + return updatetime; | ||
123 | + } | ||
124 | + | ||
125 | + public void setUpdatetime(Date updatetime) { | ||
126 | + this.updatetime = updatetime; | ||
127 | + } | ||
128 | +} |
1 | +package com.sunyo.customer.order.activity.model; | ||
2 | + | ||
3 | +import java.util.Date; | ||
4 | + | ||
5 | +public class USER { | ||
6 | + private Integer userId; | ||
7 | + | ||
8 | + private String username; | ||
9 | + | ||
10 | + private String password; | ||
11 | + | ||
12 | + private Date birthday; | ||
13 | + | ||
14 | + private String sex; | ||
15 | + | ||
16 | + private String address; | ||
17 | + | ||
18 | + private Boolean state; | ||
19 | + | ||
20 | + private String mobilephone; | ||
21 | + | ||
22 | + private Date creattime; | ||
23 | + | ||
24 | + private Date updatetime; | ||
25 | + | ||
26 | + private String userface; | ||
27 | + | ||
28 | + private String realname; | ||
29 | + | ||
30 | + private String email; | ||
31 | + | ||
32 | + private Integer age; | ||
33 | + | ||
34 | + public Integer getUserId() { | ||
35 | + return userId; | ||
36 | + } | ||
37 | + | ||
38 | + public void setUserId(Integer userId) { | ||
39 | + this.userId = userId; | ||
40 | + } | ||
41 | + | ||
42 | + public String getUsername() { | ||
43 | + return username; | ||
44 | + } | ||
45 | + | ||
46 | + public void setUsername(String username) { | ||
47 | + this.username = username == null ? null : username.trim(); | ||
48 | + } | ||
49 | + | ||
50 | + public String getPassword() { | ||
51 | + return password; | ||
52 | + } | ||
53 | + | ||
54 | + public void setPassword(String password) { | ||
55 | + this.password = password == null ? null : password.trim(); | ||
56 | + } | ||
57 | + | ||
58 | + public Date getBirthday() { | ||
59 | + return birthday; | ||
60 | + } | ||
61 | + | ||
62 | + public void setBirthday(Date birthday) { | ||
63 | + this.birthday = birthday; | ||
64 | + } | ||
65 | + | ||
66 | + public String getSex() { | ||
67 | + return sex; | ||
68 | + } | ||
69 | + | ||
70 | + public void setSex(String sex) { | ||
71 | + this.sex = sex == null ? null : sex.trim(); | ||
72 | + } | ||
73 | + | ||
74 | + public String getAddress() { | ||
75 | + return address; | ||
76 | + } | ||
77 | + | ||
78 | + public void setAddress(String address) { | ||
79 | + this.address = address == null ? null : address.trim(); | ||
80 | + } | ||
81 | + | ||
82 | + public Boolean getState() { | ||
83 | + return state; | ||
84 | + } | ||
85 | + | ||
86 | + public void setState(Boolean state) { | ||
87 | + this.state = state; | ||
88 | + } | ||
89 | + | ||
90 | + public String getMobilephone() { | ||
91 | + return mobilephone; | ||
92 | + } | ||
93 | + | ||
94 | + public void setMobilephone(String mobilephone) { | ||
95 | + this.mobilephone = mobilephone == null ? null : mobilephone.trim(); | ||
96 | + } | ||
97 | + | ||
98 | + public Date getCreattime() { | ||
99 | + return creattime; | ||
100 | + } | ||
101 | + | ||
102 | + public void setCreattime(Date creattime) { | ||
103 | + this.creattime = creattime; | ||
104 | + } | ||
105 | + | ||
106 | + public Date getUpdatetime() { | ||
107 | + return updatetime; | ||
108 | + } | ||
109 | + | ||
110 | + public void setUpdatetime(Date updatetime) { | ||
111 | + this.updatetime = updatetime; | ||
112 | + } | ||
113 | + | ||
114 | + public String getUserface() { | ||
115 | + return userface; | ||
116 | + } | ||
117 | + | ||
118 | + public void setUserface(String userface) { | ||
119 | + this.userface = userface == null ? null : userface.trim(); | ||
120 | + } | ||
121 | + | ||
122 | + public String getRealname() { | ||
123 | + return realname; | ||
124 | + } | ||
125 | + | ||
126 | + public void setRealname(String realname) { | ||
127 | + this.realname = realname == null ? null : realname.trim(); | ||
128 | + } | ||
129 | + | ||
130 | + public String getEmail() { | ||
131 | + return email; | ||
132 | + } | ||
133 | + | ||
134 | + public void setEmail(String email) { | ||
135 | + this.email = email == null ? null : email.trim(); | ||
136 | + } | ||
137 | + | ||
138 | + public Integer getAge() { | ||
139 | + return age; | ||
140 | + } | ||
141 | + | ||
142 | + public void setAge(Integer age) { | ||
143 | + this.age = age; | ||
144 | + } | ||
145 | +} |
1 | +package com.sunyo.customer.order.activity.service; | ||
2 | + | ||
3 | +import com.sunyo.customer.order.activity.controller.ActivityConsumerController; | ||
4 | +import com.sunyo.customer.order.activity.util.ActivitiUtil; | ||
5 | +import lombok.extern.slf4j.Slf4j; | ||
6 | +import org.activiti.bpmn.model.BpmnModel; | ||
7 | +import org.activiti.engine.RuntimeService; | ||
8 | +import org.activiti.engine.TaskService; | ||
9 | +import org.activiti.engine.impl.persistence.entity.ExecutionEntity; | ||
10 | +import org.activiti.engine.impl.persistence.entity.TaskEntity; | ||
11 | +import org.activiti.engine.runtime.ProcessInstance; | ||
12 | +import org.activiti.engine.task.Task; | ||
13 | +import org.springframework.beans.factory.annotation.Autowired; | ||
14 | +import org.springframework.stereotype.Service; | ||
15 | + | ||
16 | +import java.util.HashMap; | ||
17 | +import java.util.List; | ||
18 | +import java.util.Map; | ||
19 | + | ||
20 | +@Slf4j | ||
21 | +@Service("activityService") | ||
22 | +public class ActivityConsumerService implements ActivityConsumerController { | ||
23 | + | ||
24 | + @Autowired | ||
25 | + private RuntimeService runtimeService; | ||
26 | + | ||
27 | + @Autowired | ||
28 | + private TaskService taskService; | ||
29 | + | ||
30 | + @Override | ||
31 | + public boolean startActivityDemo(){ | ||
32 | + log.info("任务启动"); | ||
33 | + Map<String,Object> map = new HashMap<>(); | ||
34 | + map.put("buildJob","zhangsan"); | ||
35 | + map.put("excuteJob","lisi"); | ||
36 | + map.put("assignJob","wangwu"); | ||
37 | + ExecutionEntity pi1 = (ExecutionEntity)runtimeService.startProcessInstanceByKey("customProcess",map); | ||
38 | + String processId = pi1.getId(); | ||
39 | + List<TaskEntity> taskEntityList = pi1.getTasks(); | ||
40 | + String taskId = taskService.createTaskQuery().processInstanceId("guestService").singleResult().getId(); | ||
41 | + taskService.complete(taskId,map); | ||
42 | + | ||
43 | + Task task = taskService.createTaskQuery().processInstanceId(processId).singleResult(); | ||
44 | + String taskId2 = taskId; | ||
45 | + map.put("pass",false); | ||
46 | + taskService.complete(taskId2,map); | ||
47 | + log.info("任务结束"); | ||
48 | + | ||
49 | + return false; | ||
50 | + } | ||
51 | + | ||
52 | +} |
1 | +package com.sunyo.customer.order.activity.util; | ||
2 | + | ||
3 | +import org.activiti.bpmn.model.*; | ||
4 | +import org.activiti.bpmn.model.Process; | ||
5 | +import org.activiti.engine.*; | ||
6 | +import org.activiti.engine.history.HistoricProcessInstance; | ||
7 | +import org.activiti.engine.history.HistoricTaskInstance; | ||
8 | +import org.activiti.engine.repository.Deployment; | ||
9 | +import org.activiti.engine.repository.ProcessDefinition; | ||
10 | +import org.activiti.engine.runtime.Execution; | ||
11 | +import org.activiti.engine.runtime.ProcessInstance; | ||
12 | +import org.activiti.engine.task.Task; | ||
13 | + | ||
14 | +import java.util.ArrayList; | ||
15 | +import java.util.Date; | ||
16 | +import java.util.List; | ||
17 | + | ||
18 | +/** | ||
19 | + * Activiti工具类 | ||
20 | + */ | ||
21 | +public class ActivitiUtil { | ||
22 | + private static ProcessEngine getProcessEngine() { | ||
23 | + return ProcessEngines.getDefaultProcessEngine(); | ||
24 | + } | ||
25 | + | ||
26 | + private static RepositoryService getRepositoryService() { | ||
27 | + return getProcessEngine().getRepositoryService(); | ||
28 | + } | ||
29 | + | ||
30 | + private static TaskService getTaskService() { | ||
31 | + return getProcessEngine().getTaskService(); | ||
32 | + } | ||
33 | + | ||
34 | + private static RuntimeService getRuntimeService() { | ||
35 | + return getProcessEngine().getRuntimeService(); | ||
36 | + } | ||
37 | + | ||
38 | + private static HistoryService getHistoryService() { | ||
39 | + return getProcessEngine().getHistoryService(); | ||
40 | + } | ||
41 | + | ||
42 | + private static IdentityService getIdentityService() { | ||
43 | + return getProcessEngine().getIdentityService(); | ||
44 | + } | ||
45 | + | ||
46 | + /** | ||
47 | + * 创建任务节点 | ||
48 | + * 多人审批 | ||
49 | + */ | ||
50 | + public static UserTask createUsersTask(String id, String name, List<String> assignee){ | ||
51 | + UserTask userTask = new UserTask(); | ||
52 | + userTask.setName(name); | ||
53 | + userTask.setId(id); | ||
54 | + userTask.setCandidateUsers(assignee); | ||
55 | + return userTask; | ||
56 | + } | ||
57 | + | ||
58 | + /** | ||
59 | + * 创建任务节点 | ||
60 | + * 单人审批 | ||
61 | + */ | ||
62 | + public static UserTask createUserTask(String id, String name, String assignee) { | ||
63 | + UserTask userTask = new UserTask(); | ||
64 | + userTask.setName(name); | ||
65 | + userTask.setId(id); | ||
66 | + userTask.setAssignee(assignee); | ||
67 | + return userTask; | ||
68 | + } | ||
69 | + | ||
70 | + | ||
71 | + /** | ||
72 | + * 连线 | ||
73 | + * @param from | ||
74 | + * @param to | ||
75 | + * @return | ||
76 | + */ | ||
77 | + public static SequenceFlow createSequenceFlow(String from, String to) { | ||
78 | + SequenceFlow flow = new SequenceFlow(); | ||
79 | + flow.setSourceRef(from); | ||
80 | + flow.setTargetRef(to); | ||
81 | + return flow; | ||
82 | + } | ||
83 | + | ||
84 | + /** | ||
85 | + * 开始节点 | ||
86 | + * @return | ||
87 | + */ | ||
88 | + public static StartEvent createStartEvent() { | ||
89 | + StartEvent startEvent = new StartEvent(); | ||
90 | + startEvent.setId("startEvent"); | ||
91 | + startEvent.setName("start"); | ||
92 | + return startEvent; | ||
93 | + } | ||
94 | + | ||
95 | + /** | ||
96 | + * 结束节点 | ||
97 | + * @return | ||
98 | + */ | ||
99 | + public static EndEvent createEndEvent() { | ||
100 | + EndEvent endEvent = new EndEvent(); | ||
101 | + endEvent.setId("endEvent"); | ||
102 | + endEvent.setName("end"); | ||
103 | + return endEvent; | ||
104 | + } | ||
105 | + | ||
106 | + | ||
107 | + | ||
108 | + /** | ||
109 | + * 申请人已申请任务(完成状态)[学习使用] | ||
110 | + * @return | ||
111 | + */ | ||
112 | + public Object queryApply(String user){ | ||
113 | + String processDefinitionKey= "guestService"; | ||
114 | + List<HistoricProcessInstance> hisProInstance = getHistoryService().createHistoricProcessInstanceQuery() | ||
115 | + .processDefinitionKey(processDefinitionKey).startedBy(user).finished() | ||
116 | + .orderByProcessInstanceEndTime().desc().list(); | ||
117 | + for (HistoricProcessInstance hisInstance : hisProInstance) { | ||
118 | + System.out.println("发起人 :"+hisInstance.getStartUserId()); | ||
119 | + System.out.println("发起时间 :"+hisInstance.getStartTime()); | ||
120 | + } | ||
121 | + return "已申请任务"; | ||
122 | + } | ||
123 | + | ||
124 | + | ||
125 | + | ||
126 | + /** | ||
127 | + * 审批人已办理任务(完成状态)[学习使用] | ||
128 | + * @return | ||
129 | + */ | ||
130 | + public Object queryFinished(String user){ | ||
131 | + String processDefinitionKey= "guestService"; | ||
132 | + List<HistoricProcessInstance> hisProInstance = getHistoryService().createHistoricProcessInstanceQuery() | ||
133 | + .processDefinitionKey(processDefinitionKey).involvedUser(user).finished() | ||
134 | + .orderByProcessInstanceEndTime().desc().list(); | ||
135 | + for (HistoricProcessInstance hisInstance : hisProInstance) { | ||
136 | + List<HistoricTaskInstance> hisTaskInstanceList = getHistoryService().createHistoricTaskInstanceQuery() | ||
137 | + .processInstanceId(hisInstance.getId()).processFinished() | ||
138 | + .taskAssignee(user) | ||
139 | + .orderByHistoricTaskInstanceEndTime().desc().list(); | ||
140 | + boolean isMyAudit = false; | ||
141 | + for (HistoricTaskInstance taskInstance : hisTaskInstanceList) { | ||
142 | + if (taskInstance.getAssignee().equals(user)) { | ||
143 | + isMyAudit = true; | ||
144 | + } | ||
145 | + } | ||
146 | + if (!isMyAudit) { | ||
147 | + continue; | ||
148 | + } | ||
149 | + System.out.println("申请人 :"+hisInstance.getStartUserId()); | ||
150 | + System.out.println("开始时间 :"+hisInstance.getStartTime()); | ||
151 | + System.out.println("结束时间 :"+hisInstance.getEndTime()); | ||
152 | + } | ||
153 | + return "已办理任务"; | ||
154 | + } | ||
155 | + | ||
156 | + | ||
157 | + | ||
158 | + /** | ||
159 | + * 发起人查询执行中的任务[学习使用] | ||
160 | + * @return | ||
161 | + */ | ||
162 | + public static Object queryNow(String user) { | ||
163 | + List<ProcessInstance> instanceList = getRuntimeService().createProcessInstanceQuery().startedBy(user).list(); | ||
164 | + for (ProcessInstance instance : instanceList) { | ||
165 | + System.out.println("申请人 :" + instance.getStartUserId()); | ||
166 | + System.out.println("开始时间 :" + instance.getStartTime()); | ||
167 | + } | ||
168 | + return "查询执行中的任务"; | ||
169 | + } | ||
170 | + | ||
171 | + | ||
172 | + | ||
173 | + /** | ||
174 | + * 根据人员查询待审批任务[学习使用] | ||
175 | + * @return | ||
176 | + */ | ||
177 | + public static Object findUnApprove(String assignee) { | ||
178 | + List<Task> list = getTaskService().createTaskQuery().taskCandidateOrAssigned(assignee).list(); | ||
179 | + if (list != null || list.size() > 0) { | ||
180 | + for (Task task : list) { | ||
181 | + HistoricProcessInstance historicProcessInstance = | ||
182 | + getHistoryService().createHistoricProcessInstanceQuery() | ||
183 | + .processInstanceId(task.getProcessInstanceId()) | ||
184 | + .singleResult(); | ||
185 | + String user = historicProcessInstance.getStartUserId(); | ||
186 | + Date date = (Date) getTaskService().getVariable(task.getId(), "请假日期"); | ||
187 | + Integer day = (Integer) getTaskService().getVariable(task.getId(), "请假天数"); | ||
188 | + String ms = (String) getTaskService().getVariable(task.getId(), "请假原因"); | ||
189 | + System.out.println("申请人" + user + "请假日期" + date + "/" + "请假天数 :" + day + "/" + "请假原因 :" + ms); | ||
190 | + System.out.println("任务名称 :" + task.getName()); | ||
191 | + System.out.println("任务创建时间 :" + task.getCreateTime()); | ||
192 | + } | ||
193 | + } | ||
194 | + return "待审批"; | ||
195 | + } | ||
196 | + | ||
197 | + | ||
198 | + /** | ||
199 | + * 添加任务 | ||
200 | + * @param processFlow | ||
201 | + * @return | ||
202 | + */ | ||
203 | +// public Integer addActiviti(ProcessFlow processFlow) { | ||
204 | +// try { | ||
205 | +// BpmnModel model = new BpmnModel(); | ||
206 | +// Process process = new Process(); | ||
207 | +// model.addProcess(process); | ||
208 | +// | ||
209 | +// /** | ||
210 | +// *process的id不能以数字开头 | ||
211 | +// */ | ||
212 | +// process.setId('A' + processFlow.getId()); | ||
213 | +// List<String> users = null; | ||
214 | +// | ||
215 | +// /** | ||
216 | +// *获取流程的节点数量 | ||
217 | +// */ | ||
218 | +// int size = processFlow.getProcessNodes().size(); | ||
219 | +// process.addFlowElement(ActivitiUtil.createStartEvent()); | ||
220 | +// | ||
221 | +// /** | ||
222 | +// *生成流程 | ||
223 | +// */ | ||
224 | +// for (int i = 0, j = size; i < j; i++) { | ||
225 | +// users = new ArrayList<>(); | ||
226 | +// for (AuditProcessNodeApprover approver : processFlow.getProcessNodes().get(i).getApprovers()) { | ||
227 | +// users.add(approver.getApproved()); | ||
228 | +// } | ||
229 | +// process.addFlowElement(ActivitiUtil.createUsersTask(ProcessIDPrefix + processFlow.getProcessNodes().get(i).getId(), processFlow.getProcessNodes().get(i).getName(), users)); | ||
230 | +// if (i == 0) | ||
231 | +// process.addFlowElement(ActivitiUtil.createSequenceFlow("startEvent", ProcessIDPrefix + processFlow.getProcessNodes().get(i).getId())); | ||
232 | +// else { | ||
233 | +// process.addFlowElement(ActivitiUtil.createSequenceFlow(ProcessIDPrefix + processFlow.getProcessNodes().get(i - 1).getId(), ProcessIDPrefix + processFlow.getProcessNodes().get(i).getId())); | ||
234 | +// } | ||
235 | +// if (i == size - 1) | ||
236 | +// process.addFlowElement(ActivitiUtil.createSequenceFlow(ProcessIDPrefix + processFlow.getProcessNodes().get(i).getId(), "endEvent")); | ||
237 | +// } | ||
238 | +// process.addFlowElement(ActivitiUtil.createEndEvent()); | ||
239 | +// | ||
240 | +// | ||
241 | +// /** | ||
242 | +// * 生成图形信息 | ||
243 | +// */ | ||
244 | +// new BpmnAutoLayout(model).execute(); | ||
245 | +// | ||
246 | +// //将流程部署到引擎 | ||
247 | +// Deployment deployment = getRepositoryService().createDeployment() | ||
248 | +// .addBpmnModel("ABC" + process.getId() + ".bpmn", model).name(processFlow.getName()) | ||
249 | +// .deploy(); | ||
250 | +// | ||
251 | +// } catch (Exception e) { | ||
252 | +// throw new CustomException(e.getLocalizedMessage()); | ||
253 | +// } | ||
254 | +// return 1; | ||
255 | +// } | ||
256 | +// | ||
257 | +// | ||
258 | +// /** | ||
259 | +// * 开始流程 | ||
260 | +// * @param creater | ||
261 | +// * @param processId | ||
262 | +// * @return | ||
263 | +// */ | ||
264 | +// public Object beginActiviti(String creater, String processId) { | ||
265 | +// | ||
266 | +// /** | ||
267 | +// *设置发起人 | ||
268 | +// */ | ||
269 | +// getIdentityService().setAuthenticatedUserId(creater); | ||
270 | +// //启动流程实例 | ||
271 | +// ProcessInstance processInstance = getRuntimeService().startProcessInstanceByKey('A' + processId); | ||
272 | +// | ||
273 | +// Task task = getTaskService().createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); | ||
274 | +// if (task == null) throw new RuntimeException("发起审批失败"); | ||
275 | +// ProcessFlow flow = flowRepository.getOne(processId); | ||
276 | +// if (flow == null) throw new RuntimeException("对应审批流程为空"); | ||
277 | +// List<ProcessNodeApprover> processNodeApprovers= processNodeApproverRepository.findByFlowid(flow.getId()); | ||
278 | +// if (processNodeApprovers==null||processNodeApprovers.size()<1){ | ||
279 | +// throw new RuntimeException("对应审批人为空"); | ||
280 | +// } | ||
281 | +// return task; | ||
282 | +// } | ||
283 | +// | ||
284 | +// | ||
285 | +// /** | ||
286 | +// * 进行审批 | ||
287 | +// * | ||
288 | +// * @param assignee 审批人 | ||
289 | +// * @param msg 审批意见 | ||
290 | +// * @param isAgree 是否同意 1 同意 0 拒绝 | ||
291 | +// * @param taskId 任务id | ||
292 | +// * @param processId 流程id | ||
293 | +// * @return | ||
294 | +// */ | ||
295 | +// public Object approve(String assignee, String msg, Integer isAgree, String taskId, String processId) { | ||
296 | +// Task task = getTaskService().createTaskQuery().taskId(taskId).singleResult(); | ||
297 | +// Employee assigneeEmployee = employeeRepository.getOne(assignee); | ||
298 | +// if (assigneeEmployee == null) | ||
299 | +// throw new RuntimeException("审批人对应得职员信息不存在!"); | ||
300 | +// | ||
301 | +// //拒绝,结束流程 | ||
302 | +// if (isAgree == 0) { | ||
303 | +// BpmnModel bpmnModel = getRepositoryService().getBpmnModel(task.getProcessDefinitionId()); | ||
304 | +// Execution execution = getRuntimeService().createExecutionQuery().executionId(task.getExecutionId()).singleResult(); | ||
305 | +// String activitId = execution.getActivityId(); | ||
306 | +// FlowNode flowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(activitId); | ||
307 | +// //清理流程未执行节点 | ||
308 | +// flowNode.getOutgoingFlows().clear(); | ||
309 | +// //建立新方向 | ||
310 | +// List<SequenceFlow> newSequenceFlowList = new ArrayList<>(); | ||
311 | +// SequenceFlow newSequenceFlow = new SequenceFlow(); | ||
312 | +// newSequenceFlow.setId(CommonUtil.getUUID()); | ||
313 | +// newSequenceFlow.setSourceFlowElement(flowNode); | ||
314 | +// newSequenceFlow.setTargetFlowElement(ActivitiUtil.createEndEvent()); | ||
315 | +// newSequenceFlowList.add(newSequenceFlow); | ||
316 | +// flowNode.setOutgoingFlows(newSequenceFlowList); | ||
317 | +// | ||
318 | +// } | ||
319 | +// | ||
320 | +// //同意,继续下一节点 | ||
321 | +// else if (isAgree == 1) { | ||
322 | +// getTaskService().addComment(task.getId(), task.getProcessInstanceId(), msg); | ||
323 | +// getTaskService().complete(task.getId()); | ||
324 | +// } | ||
325 | +// | ||
326 | +// return ResultUtil.success(); | ||
327 | +// } | ||
328 | + | ||
329 | + /** | ||
330 | + * 删除流程 | ||
331 | + * @param deploymentId | ||
332 | + * @return | ||
333 | + */ | ||
334 | + public void deleteActivity(String deploymentId){ | ||
335 | + getRepositoryService().deleteDeployment(deploymentId, true); | ||
336 | + //true 级联删除 | ||
337 | + } | ||
338 | + | ||
339 | + /** | ||
340 | + * 根据启动key获取最新流程 | ||
341 | + * @param processId | ||
342 | + * @return | ||
343 | + */ | ||
344 | + public List<ProcessDefinition> getNewActivity(String processId){ | ||
345 | + List<ProcessDefinition> list = getRepositoryService() | ||
346 | + .createProcessDefinitionQuery().processDefinitionKey(processId) | ||
347 | + .orderByProcessDefinitionVersion().desc()//使用流程定义的版本降序排列 | ||
348 | + .list(); | ||
349 | + return list; | ||
350 | + } | ||
351 | + | ||
352 | +} |
src/main/resources/application.yml
0 → 100644
1 | +#上传文件的路径,要带斜杠 | ||
2 | +web: | ||
3 | + upload-path: upload/ | ||
4 | +server: | ||
5 | + port: 10002 | ||
6 | + servlet: | ||
7 | + context-path: ${SERVER_CONTEXTPATH:} | ||
8 | +spring: | ||
9 | + profiles: | ||
10 | + active: dev | ||
11 | + mvc: | ||
12 | + #静态资源,设置上传文件的访问, | ||
13 | + static-path-pattern: /** | ||
14 | +# view: | ||
15 | +# suffix: .html | ||
16 | +## prefix: /templates/ | ||
17 | + thymeleaf: | ||
18 | + cache: false | ||
19 | + mode: LEGACYHTML5 | ||
20 | + | ||
21 | + activiti: | ||
22 | +# 检查bpmn文件 | ||
23 | + check-process-definitions: false | ||
24 | + #创建任务流表,创建完成后关闭,每次应用启动不检查Activiti数据表是否存在及版本号是否匹配,提升应用启动速度 | ||
25 | + database-schema-update: true | ||
26 | + #保存历史数据级别设置为full最高级别,便于历史数据的追溯 | ||
27 | + history-level: full | ||
28 | + process-definition-location-prefix: | ||
29 | + | ||
30 | + jpa: | ||
31 | + hibernate: | ||
32 | + ddl-auto: update | ||
33 | + show-sql: true | ||
34 | + resources: | ||
35 | + static-locations: classpath:/META-INF/resources/,classpath:/static,classpath:/resources/,classpath:/public/,file:${web.upload-path} | ||
36 | + | ||
37 | + application: | ||
38 | + name: HQPT-PROCESS | ||
39 | + | ||
40 | + jackson: | ||
41 | + serialization: | ||
42 | + FAIL_ON_EMPTY_BEANS: false | ||
43 | + #springboot2.0之后会把Date类型字段自动给转成UTC字符串 如:1990-11-26T16:00:00.000+0000,如果想转成时间戳在application.properties配置文件增加以下配置 | ||
44 | + date-format: yyyy-MM-dd HH:mm:ss | ||
45 | + #时区必须要设置 | ||
46 | + time-zone: GMT+8 | ||
47 | + #ALWAYS的意思是即时属性为null,仍然也会输出这个key | ||
48 | + default-property-inclusion: always | ||
49 | + | ||
50 | + cloud: | ||
51 | + #eureka主机名,会在控制页面中显示 | ||
52 | + #DEV环境关闭注册。 | ||
53 | + features: | ||
54 | + enabled: true | ||
55 | + discovery: | ||
56 | + enabled: true | ||
57 | + service-registry: | ||
58 | + auto-registration: | ||
59 | + enabled: true | ||
60 | + | ||
61 | + datasource: | ||
62 | + type: com.alibaba.druid.pool.DruidDataSource | ||
63 | + #oracle | ||
64 | +# driver-class-name: oracle.jdbc.OracleDriver | ||
65 | +# url: jdbc:oracle:thin:@192.168.1.253:1522:ORCLL | ||
66 | +# username: CGONMS | ||
67 | +# password: vmvnv1v2 | ||
68 | + #spring datasource mysql,注意编码配置,缺少数据库编码配置容易引起中文入库乱码 | ||
69 | + #url: jdbc:mysql://127.0.0.1:3307/statistics?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true | ||
70 | + url: jdbc:mysql://118.31.66.166:3306/HQPT_USER?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true | ||
71 | + username: 110 | ||
72 | + password: QAHqCJf2kFYCLirM | ||
73 | + driver-class-name: com.mysql.cj.jdbc.Driver | ||
74 | + max-idle: 20 | ||
75 | + max-wait: 10000 | ||
76 | + min-idle: 5 | ||
77 | + initial-size: 5 | ||
78 | + #配置初始化大小/最小/最大 | ||
79 | + druid: | ||
80 | + initial-size: 1 | ||
81 | + min-idle: 1 | ||
82 | + #最大并发连接数 | ||
83 | + max-active: 40 | ||
84 | + #获取连接等待超时时间 | ||
85 | + max-wait: 60000 | ||
86 | + #一个连接在池中最小生存的时间 | ||
87 | + min-evictable-idle-time-millis: 300000 | ||
88 | + #间隔多久进行一次检测,检测需要关闭的空闲连接 | ||
89 | + time-between-eviction-runs-millis: 60000 | ||
90 | + #mysql | ||
91 | + validation-query: SELECT 1 FROM DUAL | ||
92 | + #oracle | ||
93 | +# validation-query: SELECT 'x' FROM DUAL | ||
94 | + test-while-idle: true | ||
95 | + test-on-borrow: false | ||
96 | + test-on-return: false | ||
97 | + default-auto-commit: true | ||
98 | + | ||
99 | +eureka: | ||
100 | + instance: | ||
101 | + #eureka服务器页面中status的请求路径 | ||
102 | + status-page-url: http://${eureka.instance.hostname}:${server.port}/ | ||
103 | + prefer-ip-address: true | ||
104 | + instance-id: ${spring.cloud.client.ip-address}:${server.port} | ||
105 | + hostname: ${spring.cloud.client.ip-address} | ||
106 | + client: | ||
107 | + #eureka注册中心服务器地址 | ||
108 | + service-url: | ||
109 | +# defaultZone: http://127.0.0.1:12345/eureka/ | ||
110 | + defaultZone: http://192.168.1.53:12345/eureka/ | ||
111 | + registry-fetch-interval-seconds: 30 | ||
112 | + lease-renewal-interval-in-seconds: 15 | ||
113 | + lease-expiration-duration-in-seconds: 45 | ||
114 | + | ||
115 | + | ||
116 | + | ||
117 | +mybatis: | ||
118 | + mapper-locations: classpath:mapping/*.xml | ||
119 | + type-aliases-package: com.sunyo.customer.order.activity.model | ||
120 | +pagehelper: | ||
121 | + #auto-dialect: true | ||
122 | + #auto-runtime-dialect: true | ||
123 | + helper-dialect: mysql | ||
124 | + reasonable: true | ||
125 | + support-methods-arguments: true | ||
126 | + params: count=countSql | ||
127 | + | ||
128 | +#debug配置,debug或者为true的时候,logback才会记录和写入日志文件 | ||
129 | +trace: false | ||
130 | +debug: false | ||
131 | + | ||
132 | +logging: | ||
133 | + file: | ||
134 | + path: ./logs/ | ||
135 | + name: system.log | ||
136 | + config: config/logback-dev.xml | ||
137 | + #转移到logback配置文件中 | ||
138 | + #level: | ||
139 | + #org.apache.tomcat: info | ||
140 | + #com.tianbo.warehouse.dao: DEBUG | ||
141 | + #org.springframework.security: trace | ||
142 | + #日志配置,输出到文本, | ||
143 | +#Java Web Token 时效时间,单位秒 | ||
144 | +jwt: | ||
145 | + max-alive: 300 | ||
146 | + | ||
147 | +#自定义配置 | ||
148 | +custom: | ||
149 | + #进港放行回执读取目录 | ||
150 | + receptDirectory: /Users/mrz/Downloads/rdp_temp/logs/回执报文样例/20191104 | ||
151 | + #回执解析成功后的备份目录 | ||
152 | + receptBakDir: /Users/mrz/Downloads/rdp_temp/logs/success | ||
153 | + #解析错误报文的备份目录 | ||
154 | + errBakDir: /Users/mrz/Downloads/rdp_temp/logs/error | ||
155 | + #回执转发目录 | ||
156 | + transmitDir: /Users/mrz/Downloads/rdp_temp/logs/transmit | ||
157 | + #匹配技术回执正则 | ||
158 | + delTechnologyReceptMatch: CN_MT(.*)_1P0_460470678920X_(.*).xml | ||
159 | +devops: | ||
160 | + dir: | ||
161 | + singlewindow-tcs-recept: D:\TCSSingleWindow\recive | ||
162 | + tianbo-tcs-recept: D:\Data\Receive | ||
163 | + cfps-subscribe-dir: D:\系统部署\imf_Warehouse_reader\xmlFromImf | ||
164 | +#10079 |
src/main/resources/customProcess.bpmn
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
2 | +<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" | ||
3 | + xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" | ||
4 | + xmlns:activiti="http://activiti.org/bpmn" | ||
5 | + xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" | ||
6 | + xmlns:tns="http://www.activiti.org/test" | ||
7 | + xmlns:xsd="http://www.w3.org/2001/XMLSchema" | ||
8 | + xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" | ||
9 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
10 | + expressionLanguage="http://www.w3.org/1999/XPath" | ||
11 | + id="m1575793054911" | ||
12 | + name="" | ||
13 | + targetNamespace="http://www.activiti.org/test" | ||
14 | + typeLanguage="http://www.w3.org/2001/XMLSchema"> | ||
15 | + <process xmlns="" id="customProcess" isClosed="false" isExecutable="true" name="工单流程" | ||
16 | + processType="Public"> | ||
17 | + <startEvent id="_2" name="StartEvent"/> | ||
18 | + <endEvent id="_3" name="EndEvent"/> | ||
19 | + <userTask activiti:exclusive="true" id="processForm" name="客服工单"/> | ||
20 | + <userTask activiti:exclusive="true" id="job" name="分配任务"/> | ||
21 | + <sequenceFlow id="_6" sourceRef="_2" targetRef="processForm"/> | ||
22 | + <sequenceFlow id="_7" sourceRef="processForm" targetRef="job"/> | ||
23 | + <sequenceFlow id="_8" sourceRef="job" targetRef="_3"/> | ||
24 | + </process> | ||
25 | + <bpmndi:BPMNDiagram xmlns="" | ||
26 | + documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" | ||
27 | + id="Diagram-_1" | ||
28 | + name="New Diagram"> | ||
29 | + <bpmndi:BPMNPlane bpmnElement="customProcess"> | ||
30 | + <bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2"> | ||
31 | + <omgdc:Bounds height="32.0" width="32.0" x="115.0" y="65.0"/> | ||
32 | + <bpmndi:BPMNLabel> | ||
33 | + <omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/> | ||
34 | + </bpmndi:BPMNLabel> | ||
35 | + </bpmndi:BPMNShape> | ||
36 | + <bpmndi:BPMNShape bpmnElement="_3" id="Shape-_3"> | ||
37 | + <omgdc:Bounds height="32.0" width="32.0" x="285.0" y="295.0"/> | ||
38 | + <bpmndi:BPMNLabel> | ||
39 | + <omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/> | ||
40 | + </bpmndi:BPMNLabel> | ||
41 | + </bpmndi:BPMNShape> | ||
42 | + <bpmndi:BPMNShape bpmnElement="processForm" id="Shape-processForm"> | ||
43 | + <omgdc:Bounds height="55.0" width="85.0" x="260.0" y="65.0"/> | ||
44 | + <bpmndi:BPMNLabel> | ||
45 | + <omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/> | ||
46 | + </bpmndi:BPMNLabel> | ||
47 | + </bpmndi:BPMNShape> | ||
48 | + <bpmndi:BPMNShape bpmnElement="job" id="Shape-job"> | ||
49 | + <omgdc:Bounds height="55.0" width="85.0" x="270.0" y="165.0"/> | ||
50 | + <bpmndi:BPMNLabel> | ||
51 | + <omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/> | ||
52 | + </bpmndi:BPMNLabel> | ||
53 | + </bpmndi:BPMNShape> | ||
54 | + <bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_2" | ||
55 | + targetElement="processForm"> | ||
56 | + <omgdi:waypoint x="147.0" y="81.0"/> | ||
57 | + <omgdi:waypoint x="260.0" y="92.5"/> | ||
58 | + <bpmndi:BPMNLabel> | ||
59 | + <omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/> | ||
60 | + </bpmndi:BPMNLabel> | ||
61 | + </bpmndi:BPMNEdge> | ||
62 | + <bpmndi:BPMNEdge bpmnElement="_7" id="BPMNEdge__7" sourceElement="processForm" | ||
63 | + targetElement="job"> | ||
64 | + <omgdi:waypoint x="307.5" y="120.0"/> | ||
65 | + <omgdi:waypoint x="307.5" y="165.0"/> | ||
66 | + <bpmndi:BPMNLabel> | ||
67 | + <omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/> | ||
68 | + </bpmndi:BPMNLabel> | ||
69 | + </bpmndi:BPMNEdge> | ||
70 | + <bpmndi:BPMNEdge bpmnElement="_8" id="BPMNEdge__8" sourceElement="job" targetElement="_3"> | ||
71 | + <omgdi:waypoint x="301.0" y="220.0"/> | ||
72 | + <omgdi:waypoint x="301.0" y="295.0"/> | ||
73 | + <bpmndi:BPMNLabel> | ||
74 | + <omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/> | ||
75 | + </bpmndi:BPMNLabel> | ||
76 | + </bpmndi:BPMNEdge> | ||
77 | + </bpmndi:BPMNPlane> | ||
78 | + </bpmndi:BPMNDiagram> | ||
79 | +</definitions> |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!DOCTYPE generatorConfiguration | ||
3 | + PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" | ||
4 | + "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> | ||
5 | +<generatorConfiguration> | ||
6 | + <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包--> | ||
7 | + <classPathEntry location="/Users/mrz/Downloads/mybatis-generator-core-1.3.2/lib/mysql-connector-java-5.1.25-bin.jar"/> | ||
8 | + <!--<classPathEntry location="/Users/mrz/Documents/maven/ojdbc6.jar"/>--> | ||
9 | + <context id="DB2Tables" targetRuntime="MyBatis3"> | ||
10 | + <commentGenerator> | ||
11 | + <property name="suppressDate" value="true"/> | ||
12 | + <!-- 是否去除自动生成的注释 true:是 : false:否 --> | ||
13 | + <property name="suppressAllComments" value="true"/> | ||
14 | + </commentGenerator> | ||
15 | + <!--数据库链接URL,用户名、密码 --> | ||
16 | + <jdbcConnection driverClass="com.mysql.jdbc.Driver" | ||
17 | + connectionURL="jdbc:mysql://118.31.66.166:3306/HQPT_USER" | ||
18 | + userId="110" | ||
19 | + password="QAHqCJf2kFYCLirM"> | ||
20 | + </jdbcConnection> | ||
21 | + <!--<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"--> | ||
22 | + <!--connectionURL="jdbc:oracle:thin:@192.168.1.253:1522:ORCLL"--> | ||
23 | + <!--userId="CGOASM"--> | ||
24 | + <!--password="vmvnv1v2">--> | ||
25 | + <!--</jdbcConnection>--> | ||
26 | + <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 | ||
27 | + NUMERIC 类型解析为java.math.BigDecimal --> | ||
28 | + <!--<javaTypeResolver>--> | ||
29 | + <!--<property name="forceBigDecimals" value="true" />--> | ||
30 | + <!--</javaTypeResolver>--> | ||
31 | + <javaTypeResolver> | ||
32 | + <property name="forceBigDecimals" value="false"/> | ||
33 | + </javaTypeResolver> | ||
34 | + <!-- 生成模型的包名和位置--> | ||
35 | + <javaModelGenerator targetPackage="com.sunyo.customer.order.activity.model" targetProject="src/main/java"> | ||
36 | + <property name="enableSubPackages" value="true"/> | ||
37 | + <property name="trimStrings" value="true"/> | ||
38 | + </javaModelGenerator> | ||
39 | + <!-- 生成映射文件的包名和位置--> | ||
40 | + <sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources"> | ||
41 | + <property name="enableSubPackages" value="true"/> | ||
42 | + </sqlMapGenerator> | ||
43 | + <!-- 生成DAO的包名和位置--> | ||
44 | + <javaClientGenerator type="XMLMAPPER" targetPackage="com.sunyo.customer.order.activity.dao" targetProject="src/main/java"> | ||
45 | + <property name="enableSubPackages" value="true"/> | ||
46 | + </javaClientGenerator> | ||
47 | + <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名--> | ||
48 | + <table tableName="job" domainObjectName="JOB" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> | ||
49 | + </context> | ||
50 | +</generatorConfiguration> |
src/main/resources/mapping/JOBMapper.xml
0 → 100644
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.sunyo.customer.order.activity.dao.JOBMapper" > | ||
4 | + <resultMap id="BaseResultMap" type="com.sunyo.customer.order.activity.model.JOB" > | ||
5 | + <id column="auditId" property="auditid" jdbcType="VARCHAR" /> | ||
6 | + <result column="processInstanceId" property="processinstanceid" jdbcType="VARCHAR" /> | ||
7 | + <result column="processId" property="processid" jdbcType="VARCHAR" /> | ||
8 | + <result column="taskId" property="taskid" jdbcType="VARCHAR" /> | ||
9 | + <result column="userId" property="userid" jdbcType="INTEGER" /> | ||
10 | + <result column="auditResuld" property="auditresuld" jdbcType="TINYINT" /> | ||
11 | + <result column="coment" property="coment" jdbcType="VARCHAR" /> | ||
12 | + <result column="auditTime" property="audittime" jdbcType="TIMESTAMP" /> | ||
13 | + <association property="user" javaType="com.sunyo.customer.order.activity.model.USER" > | ||
14 | + <id column="user_id" property="userId"/> | ||
15 | + <result column="realName" property="realname"/> | ||
16 | + </association> | ||
17 | + <association property="process" javaType="com.sunyo.customer.order.activity.model.ProcessForm" > | ||
18 | + <id column="formId" property="formid"/> | ||
19 | + <result column="processName" property="processname"/> | ||
20 | + </association> | ||
21 | + </resultMap> | ||
22 | + <sql id="Base_Column_List" > | ||
23 | + auditId, processInstanceId, taskId, userId, auditResuld, coment, auditTime, processId | ||
24 | + </sql> | ||
25 | + <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" > | ||
26 | + select | ||
27 | + <include refid="Base_Column_List" /> | ||
28 | + from job | ||
29 | + where auditId = #{auditid,jdbcType=VARCHAR} | ||
30 | + </select> | ||
31 | + <select id="selectAllWithUser" resultMap="BaseResultMap" > | ||
32 | + SELECT job.*,process.formId,process.processName,u.realName from job job | ||
33 | + LEFT JOIN processForm process | ||
34 | + on | ||
35 | + job.taskId = process.formId | ||
36 | + LEFT JOIN users u | ||
37 | + on job.userId = u.user_id | ||
38 | + where 1=1 | ||
39 | + <if test="userid != null"> | ||
40 | + AND job.userId = #{userid,jdbcType=VARCHAR} | ||
41 | + </if> | ||
42 | + <if test="processid != null"> | ||
43 | + AND job.processId = #{processid,jdbcType=VARCHAR} | ||
44 | + </if> | ||
45 | + </select> | ||
46 | + <delete id="deleteByPrimaryKey" parameterType="java.lang.String" > | ||
47 | + delete from job | ||
48 | + where auditId = #{auditid,jdbcType=VARCHAR} | ||
49 | + </delete> | ||
50 | + <insert id="insert" parameterType="com.sunyo.customer.order.activity.model.JOB" > | ||
51 | + insert into job (auditId, processInstanceId, taskId, | ||
52 | + userId, auditResuld, coment, | ||
53 | + auditTime) | ||
54 | + values (#{auditid,jdbcType=VARCHAR}, #{processinstanceid,jdbcType=VARCHAR}, #{taskid,jdbcType=VARCHAR}, | ||
55 | + #{userid,jdbcType=INTEGER}, #{auditresuld,jdbcType=TINYINT}, #{coment,jdbcType=VARCHAR}, | ||
56 | + #{audittime,jdbcType=TIMESTAMP}) | ||
57 | + </insert> | ||
58 | + <insert id="insertSelective" parameterType="com.sunyo.customer.order.activity.model.JOB" > | ||
59 | + insert into job | ||
60 | + <trim prefix="(" suffix=")" suffixOverrides="," > | ||
61 | + <if test="auditid != null" > | ||
62 | + auditId, | ||
63 | + </if> | ||
64 | + <if test="processinstanceid != null" > | ||
65 | + processInstanceId, | ||
66 | + </if> | ||
67 | + <if test="processid != null" > | ||
68 | + processId, | ||
69 | + </if> | ||
70 | + <if test="taskid != null" > | ||
71 | + taskId, | ||
72 | + </if> | ||
73 | + <if test="userid != null" > | ||
74 | + userId, | ||
75 | + </if> | ||
76 | + <if test="auditresuld != null" > | ||
77 | + auditResuld, | ||
78 | + </if> | ||
79 | + <if test="coment != null" > | ||
80 | + coment, | ||
81 | + </if> | ||
82 | + <if test="audittime != null" > | ||
83 | + auditTime, | ||
84 | + </if> | ||
85 | + </trim> | ||
86 | + <trim prefix="values (" suffix=")" suffixOverrides="," > | ||
87 | + <if test="auditid != null" > | ||
88 | + #{auditid,jdbcType=VARCHAR}, | ||
89 | + </if> | ||
90 | + <if test="processinstanceid != null" > | ||
91 | + #{processinstanceid,jdbcType=VARCHAR}, | ||
92 | + </if> | ||
93 | + <if test="processid != null" > | ||
94 | + #{processid,jdbcType=VARCHAR}, | ||
95 | + </if> | ||
96 | + <if test="taskid != null" > | ||
97 | + #{taskid,jdbcType=VARCHAR}, | ||
98 | + </if> | ||
99 | + <if test="userid != null" > | ||
100 | + #{userid,jdbcType=INTEGER}, | ||
101 | + </if> | ||
102 | + <if test="auditresuld != null" > | ||
103 | + #{auditresuld,jdbcType=TINYINT}, | ||
104 | + </if> | ||
105 | + <if test="coment != null" > | ||
106 | + #{coment,jdbcType=VARCHAR}, | ||
107 | + </if> | ||
108 | + <if test="audittime != null" > | ||
109 | + #{audittime,jdbcType=TIMESTAMP}, | ||
110 | + </if> | ||
111 | + </trim> | ||
112 | + </insert> | ||
113 | + <update id="updateByPrimaryKeySelective" parameterType="com.sunyo.customer.order.activity.model.JOB" > | ||
114 | + update job | ||
115 | + <set > | ||
116 | + <if test="processinstanceid != null" > | ||
117 | + processInstanceId = #{processinstanceid,jdbcType=VARCHAR}, | ||
118 | + </if> | ||
119 | + <if test="processid != null" > | ||
120 | + processId = #{processinstanceid,jdbcType=VARCHAR}, | ||
121 | + </if> | ||
122 | + <if test="taskid != null" > | ||
123 | + taskId = #{taskid,jdbcType=VARCHAR}, | ||
124 | + </if> | ||
125 | + <if test="userid != null" > | ||
126 | + userId = #{userid,jdbcType=INTEGER}, | ||
127 | + </if> | ||
128 | + <if test="auditresuld != null" > | ||
129 | + auditResuld = #{auditresuld,jdbcType=TINYINT}, | ||
130 | + </if> | ||
131 | + <if test="coment != null" > | ||
132 | + coment = #{coment,jdbcType=VARCHAR}, | ||
133 | + </if> | ||
134 | + <if test="audittime != null" > | ||
135 | + auditTime = #{audittime,jdbcType=TIMESTAMP}, | ||
136 | + </if> | ||
137 | + </set> | ||
138 | + where auditId = #{auditid,jdbcType=VARCHAR} | ||
139 | + </update> | ||
140 | + <update id="updateByPrimaryKey" parameterType="com.sunyo.customer.order.activity.model.JOB" > | ||
141 | + update job | ||
142 | + set processInstanceId = #{processinstanceid,jdbcType=VARCHAR}, | ||
143 | + taskId = #{taskid,jdbcType=VARCHAR}, | ||
144 | + userId = #{userid,jdbcType=INTEGER}, | ||
145 | + auditResuld = #{auditresuld,jdbcType=TINYINT}, | ||
146 | + coment = #{coment,jdbcType=VARCHAR}, | ||
147 | + auditTime = #{audittime,jdbcType=TIMESTAMP} | ||
148 | + where auditId = #{auditid,jdbcType=VARCHAR} | ||
149 | + </update> | ||
150 | + | ||
151 | + <update id="startJob" parameterType="com.sunyo.customer.order.activity.model.JOB" > | ||
152 | + update job | ||
153 | + set | ||
154 | + userId = #{userid,jdbcType=INTEGER}, | ||
155 | + auditResuld = #{auditresuld,jdbcType=TINYINT}, | ||
156 | + coment = #{coment,jdbcType=VARCHAR} | ||
157 | + where auditId = #{auditid,jdbcType=VARCHAR} | ||
158 | + </update> | ||
159 | +</mapper> |
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.sunyo.customer.order.activity.dao.ProcessFormMapper" > | ||
4 | + <resultMap id="BaseResultMap" type="com.sunyo.customer.order.activity.model.ProcessForm" > | ||
5 | + <id column="formId" property="formid" jdbcType="VARCHAR" /> | ||
6 | + <id column="processInstanceId" property="processinstanceid" jdbcType="VARCHAR" /> | ||
7 | + <result column="userId" property="userid" jdbcType="INTEGER" /> | ||
8 | + <result column="processName" property="processname" jdbcType="VARCHAR" /> | ||
9 | + <result column="beginDate" property="begindate" jdbcType="TIMESTAMP" /> | ||
10 | + <result column="endDate" property="enddate" jdbcType="TIMESTAMP" /> | ||
11 | + <result column="vacationType" property="vacationtype" jdbcType="TINYINT" /> | ||
12 | + <result column="reason" property="reason" jdbcType="VARCHAR" /> | ||
13 | + <result column="processStatus" property="processstatus" jdbcType="TINYINT" /> | ||
14 | + <result column="createTime" property="createtime" jdbcType="TIMESTAMP" /> | ||
15 | + <result column="updateTime" property="updatetime" jdbcType="TIMESTAMP" /> | ||
16 | + <association property="user" javaType="com.sunyo.customer.order.activity.model.USER" > | ||
17 | + <id column="user_id" property="userId"/> | ||
18 | + <result column="realName" property="realname"/> | ||
19 | + </association> | ||
20 | + </resultMap> | ||
21 | + <sql id="Base_Column_List" > | ||
22 | + formId, processInstanceId, userId, processName, beginDate, endDate, vacationType, | ||
23 | + reason, processStatus, createTime, updateTime | ||
24 | + </sql> | ||
25 | + <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="com.sunyo.customer.order.activity.model.ProcessForm" > | ||
26 | + select | ||
27 | + <include refid="Base_Column_List" /> | ||
28 | + from processForm | ||
29 | + where formId = #{formid,jdbcType=VARCHAR} | ||
30 | + and processInstanceId = #{processinstanceid,jdbcType=VARCHAR} | ||
31 | + </select> | ||
32 | + <select id="selectAllWithUser" resultMap="BaseResultMap" > | ||
33 | + select | ||
34 | + p.*, | ||
35 | + u.realName | ||
36 | + from processForm p | ||
37 | + LEFT JOIN users u | ||
38 | + ON p.userId = u.user_id | ||
39 | + </select> | ||
40 | + <delete id="deleteByPrimaryKey" parameterType="com.sunyo.customer.order.activity.model.ProcessForm" > | ||
41 | + delete from processForm | ||
42 | + where formId = #{formid,jdbcType=VARCHAR} | ||
43 | + and processInstanceId = #{processinstanceid,jdbcType=VARCHAR} | ||
44 | + </delete> | ||
45 | + <insert id="insert" parameterType="com.sunyo.customer.order.activity.model.ProcessForm" > | ||
46 | + insert into processForm (formId, processInstanceId, userId, | ||
47 | + processName, beginDate, endDate, | ||
48 | + vacationType, reason, processStatus, | ||
49 | + createTime, updateTime) | ||
50 | + values (#{formid,jdbcType=VARCHAR}, #{processinstanceid,jdbcType=VARCHAR}, #{userid,jdbcType=INTEGER}, | ||
51 | + #{processname,jdbcType=VARCHAR}, #{begindate,jdbcType=TIMESTAMP}, #{enddate,jdbcType=TIMESTAMP}, | ||
52 | + #{vacationtype,jdbcType=TINYINT}, #{reason,jdbcType=VARCHAR}, #{processstatus,jdbcType=TINYINT}, | ||
53 | + #{createtime,jdbcType=TIMESTAMP}, #{updatetime,jdbcType=TIMESTAMP}) | ||
54 | + </insert> | ||
55 | + <insert id="insertSelective" parameterType="com.sunyo.customer.order.activity.model.ProcessForm" > | ||
56 | + insert into processForm | ||
57 | + <trim prefix="(" suffix=")" suffixOverrides="," > | ||
58 | + <if test="formid != null" > | ||
59 | + formId, | ||
60 | + </if> | ||
61 | + <if test="processinstanceid != null" > | ||
62 | + processInstanceId, | ||
63 | + </if> | ||
64 | + <if test="userid != null" > | ||
65 | + userId, | ||
66 | + </if> | ||
67 | + <if test="processname != null" > | ||
68 | + processName, | ||
69 | + </if> | ||
70 | + <if test="begindate != null" > | ||
71 | + beginDate, | ||
72 | + </if> | ||
73 | + <if test="enddate != null" > | ||
74 | + endDate, | ||
75 | + </if> | ||
76 | + <if test="vacationtype != null" > | ||
77 | + vacationType, | ||
78 | + </if> | ||
79 | + <if test="reason != null" > | ||
80 | + reason, | ||
81 | + </if> | ||
82 | + <if test="processstatus != null" > | ||
83 | + processStatus, | ||
84 | + </if> | ||
85 | + <if test="createtime != null" > | ||
86 | + createTime, | ||
87 | + </if> | ||
88 | + <if test="updatetime != null" > | ||
89 | + updateTime, | ||
90 | + </if> | ||
91 | + </trim> | ||
92 | + <trim prefix="values (" suffix=")" suffixOverrides="," > | ||
93 | + <if test="formid != null" > | ||
94 | + #{formid,jdbcType=VARCHAR}, | ||
95 | + </if> | ||
96 | + <if test="processinstanceid != null" > | ||
97 | + #{processinstanceid,jdbcType=VARCHAR}, | ||
98 | + </if> | ||
99 | + <if test="userid != null" > | ||
100 | + #{userid,jdbcType=INTEGER}, | ||
101 | + </if> | ||
102 | + <if test="processname != null" > | ||
103 | + #{processname,jdbcType=VARCHAR}, | ||
104 | + </if> | ||
105 | + <if test="begindate != null" > | ||
106 | + #{begindate,jdbcType=TIMESTAMP}, | ||
107 | + </if> | ||
108 | + <if test="enddate != null" > | ||
109 | + #{enddate,jdbcType=TIMESTAMP}, | ||
110 | + </if> | ||
111 | + <if test="vacationtype != null" > | ||
112 | + #{vacationtype,jdbcType=TINYINT}, | ||
113 | + </if> | ||
114 | + <if test="reason != null" > | ||
115 | + #{reason,jdbcType=VARCHAR}, | ||
116 | + </if> | ||
117 | + <if test="processstatus != null" > | ||
118 | + #{processstatus,jdbcType=TINYINT}, | ||
119 | + </if> | ||
120 | + <if test="createtime != null" > | ||
121 | + #{createtime,jdbcType=TIMESTAMP}, | ||
122 | + </if> | ||
123 | + <if test="updatetime != null" > | ||
124 | + #{updatetime,jdbcType=TIMESTAMP}, | ||
125 | + </if> | ||
126 | + </trim> | ||
127 | + </insert> | ||
128 | + <update id="updateByPrimaryKeySelective" parameterType="com.sunyo.customer.order.activity.model.ProcessForm" > | ||
129 | + update processForm | ||
130 | + <set > | ||
131 | + <if test="userid != null" > | ||
132 | + userId = #{userid,jdbcType=INTEGER}, | ||
133 | + </if> | ||
134 | + <if test="processname != null" > | ||
135 | + processName = #{processname,jdbcType=VARCHAR}, | ||
136 | + </if> | ||
137 | + <if test="begindate != null" > | ||
138 | + beginDate = #{begindate,jdbcType=TIMESTAMP}, | ||
139 | + </if> | ||
140 | + <if test="enddate != null" > | ||
141 | + endDate = #{enddate,jdbcType=TIMESTAMP}, | ||
142 | + </if> | ||
143 | + <if test="vacationtype != null" > | ||
144 | + vacationType = #{vacationtype,jdbcType=TINYINT}, | ||
145 | + </if> | ||
146 | + <if test="reason != null" > | ||
147 | + reason = #{reason,jdbcType=VARCHAR}, | ||
148 | + </if> | ||
149 | + <if test="processstatus != null" > | ||
150 | + processStatus = #{processstatus,jdbcType=TINYINT}, | ||
151 | + </if> | ||
152 | + <if test="createtime != null" > | ||
153 | + createTime = #{createtime,jdbcType=TIMESTAMP}, | ||
154 | + </if> | ||
155 | + <if test="updatetime != null" > | ||
156 | + updateTime = #{updatetime,jdbcType=TIMESTAMP}, | ||
157 | + </if> | ||
158 | + </set> | ||
159 | + where formId = #{formid,jdbcType=VARCHAR} | ||
160 | + and processInstanceId = #{processinstanceid,jdbcType=VARCHAR} | ||
161 | + </update> | ||
162 | + <update id="updateByPrimaryKey" parameterType="com.sunyo.customer.order.activity.model.ProcessForm" > | ||
163 | + update processForm | ||
164 | + set userId = #{userid,jdbcType=INTEGER}, | ||
165 | + processName = #{processname,jdbcType=VARCHAR}, | ||
166 | + beginDate = #{begindate,jdbcType=TIMESTAMP}, | ||
167 | + endDate = #{enddate,jdbcType=TIMESTAMP}, | ||
168 | + vacationType = #{vacationtype,jdbcType=TINYINT}, | ||
169 | + reason = #{reason,jdbcType=VARCHAR}, | ||
170 | + processStatus = #{processstatus,jdbcType=TINYINT}, | ||
171 | + createTime = #{createtime,jdbcType=TIMESTAMP}, | ||
172 | + updateTime = #{updatetime,jdbcType=TIMESTAMP} | ||
173 | + where formId = #{formid,jdbcType=VARCHAR} | ||
174 | + and processInstanceId = #{processinstanceid,jdbcType=VARCHAR} | ||
175 | + </update> | ||
176 | +</mapper> |
src/main/resources/mapping/USERMapper.xml
0 → 100644
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.sunyo.customer.order.activity.dao.USERMapper" > | ||
4 | + <resultMap id="BaseResultMap" type="com.sunyo.customer.order.activity.model.USER" > | ||
5 | + <id column="user_id" property="userId" jdbcType="INTEGER" /> | ||
6 | + <result column="username" property="username" jdbcType="VARCHAR" /> | ||
7 | + <result column="password" property="password" jdbcType="VARCHAR" /> | ||
8 | + <result column="birthday" property="birthday" jdbcType="TIMESTAMP" /> | ||
9 | + <result column="sex" property="sex" jdbcType="CHAR" /> | ||
10 | + <result column="address" property="address" jdbcType="VARCHAR" /> | ||
11 | + <result column="state" property="state" jdbcType="BIT" /> | ||
12 | + <result column="mobilePhone" property="mobilephone" jdbcType="VARCHAR" /> | ||
13 | + <result column="creatTime" property="creattime" jdbcType="TIMESTAMP" /> | ||
14 | + <result column="updateTime" property="updatetime" jdbcType="TIMESTAMP" /> | ||
15 | + <result column="userFace" property="userface" jdbcType="VARCHAR" /> | ||
16 | + <result column="realName" property="realname" jdbcType="VARCHAR" /> | ||
17 | + <result column="email" property="email" jdbcType="VARCHAR" /> | ||
18 | + <result column="age" property="age" jdbcType="INTEGER" /> | ||
19 | + </resultMap> | ||
20 | + <sql id="Base_Column_List" > | ||
21 | + user_id, username, password, birthday, sex, address, state, mobilePhone, creatTime, | ||
22 | + updateTime, userFace, realName, email, age | ||
23 | + </sql> | ||
24 | + <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" > | ||
25 | + select | ||
26 | + <include refid="Base_Column_List" /> | ||
27 | + from users | ||
28 | + where user_id = #{userId,jdbcType=INTEGER} | ||
29 | + </select> | ||
30 | + <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" > | ||
31 | + delete from users | ||
32 | + where user_id = #{userId,jdbcType=INTEGER} | ||
33 | + </delete> | ||
34 | + <insert id="insert" parameterType="com.sunyo.customer.order.activity.model.USER" > | ||
35 | + insert into users (user_id, username, password, | ||
36 | + birthday, sex, address, | ||
37 | + state, mobilePhone, creatTime, | ||
38 | + updateTime, userFace, realName, | ||
39 | + email, age) | ||
40 | + values (#{userId,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, | ||
41 | + #{birthday,jdbcType=TIMESTAMP}, #{sex,jdbcType=CHAR}, #{address,jdbcType=VARCHAR}, | ||
42 | + #{state,jdbcType=BIT}, #{mobilephone,jdbcType=VARCHAR}, #{creattime,jdbcType=TIMESTAMP}, | ||
43 | + #{updatetime,jdbcType=TIMESTAMP}, #{userface,jdbcType=VARCHAR}, #{realname,jdbcType=VARCHAR}, | ||
44 | + #{email,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}) | ||
45 | + </insert> | ||
46 | + <insert id="insertSelective" parameterType="com.sunyo.customer.order.activity.model.USER" > | ||
47 | + insert into users | ||
48 | + <trim prefix="(" suffix=")" suffixOverrides="," > | ||
49 | + <if test="userId != null" > | ||
50 | + user_id, | ||
51 | + </if> | ||
52 | + <if test="username != null" > | ||
53 | + username, | ||
54 | + </if> | ||
55 | + <if test="password != null" > | ||
56 | + password, | ||
57 | + </if> | ||
58 | + <if test="birthday != null" > | ||
59 | + birthday, | ||
60 | + </if> | ||
61 | + <if test="sex != null" > | ||
62 | + sex, | ||
63 | + </if> | ||
64 | + <if test="address != null" > | ||
65 | + address, | ||
66 | + </if> | ||
67 | + <if test="state != null" > | ||
68 | + state, | ||
69 | + </if> | ||
70 | + <if test="mobilephone != null" > | ||
71 | + mobilePhone, | ||
72 | + </if> | ||
73 | + <if test="creattime != null" > | ||
74 | + creatTime, | ||
75 | + </if> | ||
76 | + <if test="updatetime != null" > | ||
77 | + updateTime, | ||
78 | + </if> | ||
79 | + <if test="userface != null" > | ||
80 | + userFace, | ||
81 | + </if> | ||
82 | + <if test="realname != null" > | ||
83 | + realName, | ||
84 | + </if> | ||
85 | + <if test="email != null" > | ||
86 | + email, | ||
87 | + </if> | ||
88 | + <if test="age != null" > | ||
89 | + age, | ||
90 | + </if> | ||
91 | + </trim> | ||
92 | + <trim prefix="values (" suffix=")" suffixOverrides="," > | ||
93 | + <if test="userId != null" > | ||
94 | + #{userId,jdbcType=INTEGER}, | ||
95 | + </if> | ||
96 | + <if test="username != null" > | ||
97 | + #{username,jdbcType=VARCHAR}, | ||
98 | + </if> | ||
99 | + <if test="password != null" > | ||
100 | + #{password,jdbcType=VARCHAR}, | ||
101 | + </if> | ||
102 | + <if test="birthday != null" > | ||
103 | + #{birthday,jdbcType=TIMESTAMP}, | ||
104 | + </if> | ||
105 | + <if test="sex != null" > | ||
106 | + #{sex,jdbcType=CHAR}, | ||
107 | + </if> | ||
108 | + <if test="address != null" > | ||
109 | + #{address,jdbcType=VARCHAR}, | ||
110 | + </if> | ||
111 | + <if test="state != null" > | ||
112 | + #{state,jdbcType=BIT}, | ||
113 | + </if> | ||
114 | + <if test="mobilephone != null" > | ||
115 | + #{mobilephone,jdbcType=VARCHAR}, | ||
116 | + </if> | ||
117 | + <if test="creattime != null" > | ||
118 | + #{creattime,jdbcType=TIMESTAMP}, | ||
119 | + </if> | ||
120 | + <if test="updatetime != null" > | ||
121 | + #{updatetime,jdbcType=TIMESTAMP}, | ||
122 | + </if> | ||
123 | + <if test="userface != null" > | ||
124 | + #{userface,jdbcType=VARCHAR}, | ||
125 | + </if> | ||
126 | + <if test="realname != null" > | ||
127 | + #{realname,jdbcType=VARCHAR}, | ||
128 | + </if> | ||
129 | + <if test="email != null" > | ||
130 | + #{email,jdbcType=VARCHAR}, | ||
131 | + </if> | ||
132 | + <if test="age != null" > | ||
133 | + #{age,jdbcType=INTEGER}, | ||
134 | + </if> | ||
135 | + </trim> | ||
136 | + </insert> | ||
137 | + <update id="updateByPrimaryKeySelective" parameterType="com.sunyo.customer.order.activity.model.USER" > | ||
138 | + update users | ||
139 | + <set > | ||
140 | + <if test="username != null" > | ||
141 | + username = #{username,jdbcType=VARCHAR}, | ||
142 | + </if> | ||
143 | + <if test="password != null" > | ||
144 | + password = #{password,jdbcType=VARCHAR}, | ||
145 | + </if> | ||
146 | + <if test="birthday != null" > | ||
147 | + birthday = #{birthday,jdbcType=TIMESTAMP}, | ||
148 | + </if> | ||
149 | + <if test="sex != null" > | ||
150 | + sex = #{sex,jdbcType=CHAR}, | ||
151 | + </if> | ||
152 | + <if test="address != null" > | ||
153 | + address = #{address,jdbcType=VARCHAR}, | ||
154 | + </if> | ||
155 | + <if test="state != null" > | ||
156 | + state = #{state,jdbcType=BIT}, | ||
157 | + </if> | ||
158 | + <if test="mobilephone != null" > | ||
159 | + mobilePhone = #{mobilephone,jdbcType=VARCHAR}, | ||
160 | + </if> | ||
161 | + <if test="creattime != null" > | ||
162 | + creatTime = #{creattime,jdbcType=TIMESTAMP}, | ||
163 | + </if> | ||
164 | + <if test="updatetime != null" > | ||
165 | + updateTime = #{updatetime,jdbcType=TIMESTAMP}, | ||
166 | + </if> | ||
167 | + <if test="userface != null" > | ||
168 | + userFace = #{userface,jdbcType=VARCHAR}, | ||
169 | + </if> | ||
170 | + <if test="realname != null" > | ||
171 | + realName = #{realname,jdbcType=VARCHAR}, | ||
172 | + </if> | ||
173 | + <if test="email != null" > | ||
174 | + email = #{email,jdbcType=VARCHAR}, | ||
175 | + </if> | ||
176 | + <if test="age != null" > | ||
177 | + age = #{age,jdbcType=INTEGER}, | ||
178 | + </if> | ||
179 | + </set> | ||
180 | + where user_id = #{userId,jdbcType=INTEGER} | ||
181 | + </update> | ||
182 | + <update id="updateByPrimaryKey" parameterType="com.sunyo.customer.order.activity.model.USER" > | ||
183 | + update users | ||
184 | + set username = #{username,jdbcType=VARCHAR}, | ||
185 | + password = #{password,jdbcType=VARCHAR}, | ||
186 | + birthday = #{birthday,jdbcType=TIMESTAMP}, | ||
187 | + sex = #{sex,jdbcType=CHAR}, | ||
188 | + address = #{address,jdbcType=VARCHAR}, | ||
189 | + state = #{state,jdbcType=BIT}, | ||
190 | + mobilePhone = #{mobilephone,jdbcType=VARCHAR}, | ||
191 | + creatTime = #{creattime,jdbcType=TIMESTAMP}, | ||
192 | + updateTime = #{updatetime,jdbcType=TIMESTAMP}, | ||
193 | + userFace = #{userface,jdbcType=VARCHAR}, | ||
194 | + realName = #{realname,jdbcType=VARCHAR}, | ||
195 | + email = #{email,jdbcType=VARCHAR}, | ||
196 | + age = #{age,jdbcType=INTEGER} | ||
197 | + where user_id = #{userId,jdbcType=INTEGER} | ||
198 | + </update> | ||
199 | +</mapper> |
1 | +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
2 | +<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" | ||
3 | + xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" | ||
4 | + xmlns:activiti="http://activiti.org/bpmn" | ||
5 | + xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" | ||
6 | + xmlns:tns="http://www.activiti.org/test" | ||
7 | + xmlns:xsd="http://www.w3.org/2001/XMLSchema" | ||
8 | + xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" | ||
9 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
10 | + expressionLanguage="http://www.w3.org/1999/XPath" | ||
11 | + id="m1575793054911" | ||
12 | + name="" | ||
13 | + targetNamespace="http://www.activiti.org/test" | ||
14 | + typeLanguage="http://www.w3.org/2001/XMLSchema"> | ||
15 | + <process id="customProcess" isClosed="false" isExecutable="true" name="工单流程" | ||
16 | + processType="Public"> | ||
17 | + <startEvent id="_2" name="StartEvent"/> | ||
18 | + <endEvent id="_3" name="EndEvent"/> | ||
19 | + <userTask activiti:exclusive="true" id="processForm" name="客服工单"/> | ||
20 | + <userTask activiti:exclusive="true" id="job" name="分配任务"/> | ||
21 | + <sequenceFlow id="_6" sourceRef="_2" targetRef="processForm"/> | ||
22 | + <sequenceFlow id="_7" sourceRef="processForm" targetRef="job"/> | ||
23 | + <sequenceFlow id="_8" sourceRef="job" targetRef="_3"/> | ||
24 | + </process> | ||
25 | + <bpmndi:BPMNDiagram xmlns="" | ||
26 | + documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" | ||
27 | + id="Diagram-_1" | ||
28 | + name="New Diagram"> | ||
29 | + <bpmndi:BPMNPlane bpmnElement="customProcess"> | ||
30 | + <bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2"> | ||
31 | + <omgdc:Bounds height="32.0" width="32.0" x="115.0" y="65.0"/> | ||
32 | + <bpmndi:BPMNLabel> | ||
33 | + <omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/> | ||
34 | + </bpmndi:BPMNLabel> | ||
35 | + </bpmndi:BPMNShape> | ||
36 | + <bpmndi:BPMNShape bpmnElement="_3" id="Shape-_3"> | ||
37 | + <omgdc:Bounds height="32.0" width="32.0" x="285.0" y="295.0"/> | ||
38 | + <bpmndi:BPMNLabel> | ||
39 | + <omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/> | ||
40 | + </bpmndi:BPMNLabel> | ||
41 | + </bpmndi:BPMNShape> | ||
42 | + <bpmndi:BPMNShape bpmnElement="processForm" id="Shape-processForm"> | ||
43 | + <omgdc:Bounds height="55.0" width="85.0" x="260.0" y="65.0"/> | ||
44 | + <bpmndi:BPMNLabel> | ||
45 | + <omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/> | ||
46 | + </bpmndi:BPMNLabel> | ||
47 | + </bpmndi:BPMNShape> | ||
48 | + <bpmndi:BPMNShape bpmnElement="job" id="Shape-job"> | ||
49 | + <omgdc:Bounds height="55.0" width="85.0" x="270.0" y="165.0"/> | ||
50 | + <bpmndi:BPMNLabel> | ||
51 | + <omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/> | ||
52 | + </bpmndi:BPMNLabel> | ||
53 | + </bpmndi:BPMNShape> | ||
54 | + <bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_2" | ||
55 | + targetElement="processForm"> | ||
56 | + <omgdi:waypoint x="147.0" y="81.0"/> | ||
57 | + <omgdi:waypoint x="260.0" y="92.5"/> | ||
58 | + <bpmndi:BPMNLabel> | ||
59 | + <omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/> | ||
60 | + </bpmndi:BPMNLabel> | ||
61 | + </bpmndi:BPMNEdge> | ||
62 | + <bpmndi:BPMNEdge bpmnElement="_7" id="BPMNEdge__7" sourceElement="processForm" | ||
63 | + targetElement="job"> | ||
64 | + <omgdi:waypoint x="307.5" y="120.0"/> | ||
65 | + <omgdi:waypoint x="307.5" y="165.0"/> | ||
66 | + <bpmndi:BPMNLabel> | ||
67 | + <omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/> | ||
68 | + </bpmndi:BPMNLabel> | ||
69 | + </bpmndi:BPMNEdge> | ||
70 | + <bpmndi:BPMNEdge bpmnElement="_8" id="BPMNEdge__8" sourceElement="job" targetElement="_3"> | ||
71 | + <omgdi:waypoint x="301.0" y="220.0"/> | ||
72 | + <omgdi:waypoint x="301.0" y="295.0"/> | ||
73 | + <bpmndi:BPMNLabel> | ||
74 | + <omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/> | ||
75 | + </bpmndi:BPMNLabel> | ||
76 | + </bpmndi:BPMNEdge> | ||
77 | + </bpmndi:BPMNPlane> | ||
78 | + </bpmndi:BPMNDiagram> | ||
79 | +</definitions> |
1 | +<dec:DecMessage Version="3.1" xmlns:dec="http://www.chinaport.gov.cn/dec"> | ||
2 | + <dec:DecHead> | ||
3 | + <!--Optional:--> | ||
4 | + <dec:SeqNo>stringstringstring</dec:SeqNo> | ||
5 | + <dec:IEFlag>string</dec:IEFlag> | ||
6 | + <!--Optional:--> | ||
7 | + <dec:Type>st</dec:Type> | ||
8 | + <dec:AgentCode>string</dec:AgentCode> | ||
9 | + <dec:AgentName>string</dec:AgentName> | ||
10 | + <!--Optional:--> | ||
11 | + <dec:ApprNo>string</dec:ApprNo> | ||
12 | + <!--Optional:--> | ||
13 | + <dec:BillNo>string</dec:BillNo> | ||
14 | + <!--Optional:--> | ||
15 | + <dec:ContrNo>string</dec:ContrNo> | ||
16 | + <dec:CustomMaster>stri</dec:CustomMaster> | ||
17 | + <!--Optional:--> | ||
18 | + <dec:CutMode>str</dec:CutMode> | ||
19 | + <dec:DistinatePort>stri</dec:DistinatePort> | ||
20 | + <!--Optional:--> | ||
21 | + <dec:FeeCurr>str</dec:FeeCurr> | ||
22 | + <!--Optional:--> | ||
23 | + <dec:FeeMark>s</dec:FeeMark> | ||
24 | + <!--Optional:--> | ||
25 | + <dec:FeeRate>string</dec:FeeRate> | ||
26 | + <dec:GrossWet>string</dec:GrossWet> | ||
27 | + <!--Optional:--> | ||
28 | + <dec:IEDate>stringst</dec:IEDate> | ||
29 | + <!--Optional:--> | ||
30 | + <dec:IEPort>stri</dec:IEPort> | ||
31 | + <!--Optional:--> | ||
32 | + <dec:InsurCurr>str</dec:InsurCurr> | ||
33 | + <!--Optional:--> | ||
34 | + <dec:InsurMark>s</dec:InsurMark> | ||
35 | + <!--Optional:--> | ||
36 | + <dec:InsurRate>string</dec:InsurRate> | ||
37 | + <!--Optional:--> | ||
38 | + <dec:LicenseNo>string</dec:LicenseNo> | ||
39 | + <!--Optional:--> | ||
40 | + <dec:ManualNo>string</dec:ManualNo> | ||
41 | + <dec:NetWt>string</dec:NetWt> | ||
42 | + <!--Optional:--> | ||
43 | + <dec:NoteS>string</dec:NoteS> | ||
44 | + <!--Optional:--> | ||
45 | + <dec:OtherCurr>str</dec:OtherCurr> | ||
46 | + <!--Optional:--> | ||
47 | + <dec:OtherMark>s</dec:OtherMark> | ||
48 | + <!--Optional:--> | ||
49 | + <dec:OtherRate>string</dec:OtherRate> | ||
50 | + <!--Optional:--> | ||
51 | + <dec:OwnerCode>string</dec:OwnerCode> | ||
52 | + <dec:OwnerName>string</dec:OwnerName> | ||
53 | + <dec:PackNo>string</dec:PackNo> | ||
54 | + <dec:TradeCode>string</dec:TradeCode> | ||
55 | + <dec:TradeCountry>str</dec:TradeCountry> | ||
56 | + <dec:TradeMode>stri</dec:TradeMode> | ||
57 | + <dec:TradeName>string</dec:TradeName> | ||
58 | + <dec:TrafMode>s</dec:TrafMode> | ||
59 | + <!--Optional:--> | ||
60 | + <dec:TrafName>string</dec:TrafName> | ||
61 | + <!--Optional:--> | ||
62 | + <dec:TransMode>s</dec:TransMode> | ||
63 | + <dec:WrapType>s</dec:WrapType> | ||
64 | + <!--Optional:--> | ||
65 | + <dec:EntryId>stringstringstring</dec:EntryId> | ||
66 | + <!--Optional:--> | ||
67 | + <dec:PreEntryId>stringstr</dec:PreEntryId> | ||
68 | + <dec:EdiId>s</dec:EdiId> | ||
69 | + <!--Optional:--> | ||
70 | + <dec:Risk>string</dec:Risk> | ||
71 | + <dec:CopName>string</dec:CopName> | ||
72 | + <!--Optional:--> | ||
73 | + <dec:CopCode>stringstr</dec:CopCode> | ||
74 | + <dec:EntryType>s</dec:EntryType> | ||
75 | + <!--Optional:--> | ||
76 | + <dec:PDate>string</dec:PDate> | ||
77 | + <!--Optional:--> | ||
78 | + <dec:TypistNo>string</dec:TypistNo> | ||
79 | + <!--Optional:--> | ||
80 | + <dec:InputerName>string</dec:InputerName> | ||
81 | + <!--Optional:--> | ||
82 | + <dec:PartenerID>string</dec:PartenerID> | ||
83 | + <!--Optional:--> | ||
84 | + <dec:TgdNo>stringstringstring</dec:TgdNo> | ||
85 | + <!--Optional:--> | ||
86 | + <dec:DataSource>strin</dec:DataSource> | ||
87 | + <dec:DeclTrnRel>s</dec:DeclTrnRel> | ||
88 | + <!--Optional:--> | ||
89 | + <dec:ChkSurety>s</dec:ChkSurety> | ||
90 | + <!--Optional:--> | ||
91 | + <dec:BillType>s</dec:BillType> | ||
92 | + <!--Optional:--> | ||
93 | + <dec:CopCodeScc>stringstringstring</dec:CopCodeScc> | ||
94 | + <!--Optional:--> | ||
95 | + <dec:OwnerCodeScc>string</dec:OwnerCodeScc> | ||
96 | + <!--Optional:--> | ||
97 | + <dec:AgentCodeScc>string</dec:AgentCodeScc> | ||
98 | + <!--Optional:--> | ||
99 | + <dec:TradeCoScc>string</dec:TradeCoScc> | ||
100 | + <dec:PromiseItmes>string</dec:PromiseItmes> | ||
101 | + <dec:TradeAreaCode>str</dec:TradeAreaCode> | ||
102 | + <!--Optional:--> | ||
103 | + <dec:CheckFlow>s</dec:CheckFlow> | ||
104 | + <!--Optional:--> | ||
105 | + <dec:TaxAaminMark>s</dec:TaxAaminMark> | ||
106 | + <!--Optional:--> | ||
107 | + <dec:MarkNo>string</dec:MarkNo> | ||
108 | + <dec:DespPortCode>string</dec:DespPortCode> | ||
109 | + <dec:EntyPortCode>string</dec:EntyPortCode> | ||
110 | + <dec:GoodsPlace>string</dec:GoodsPlace> | ||
111 | + <!--Optional:--> | ||
112 | + <dec:BLNo>string</dec:BLNo> | ||
113 | + <!--Optional:--> | ||
114 | + <dec:InspOrgCode>string</dec:InspOrgCode> | ||
115 | + <!--Optional:--> | ||
116 | + <dec:SpecDeclFlag>string</dec:SpecDeclFlag> | ||
117 | + <!--Optional:--> | ||
118 | + <dec:PurpOrgCode>string</dec:PurpOrgCode> | ||
119 | + <!--Optional:--> | ||
120 | + <dec:DespDate>string</dec:DespDate> | ||
121 | + <!--Optional:--> | ||
122 | + <dec:CmplDschrgDt>string</dec:CmplDschrgDt> | ||
123 | + <!--Optional:--> | ||
124 | + <dec:CorrelationReasonFlag>st</dec:CorrelationReasonFlag> | ||
125 | + <!--Optional:--> | ||
126 | + <dec:VsaOrgCode>string</dec:VsaOrgCode> | ||
127 | + <!--Optional:--> | ||
128 | + <dec:OrigBoxFlag>s</dec:OrigBoxFlag> | ||
129 | + <dec:DeclareName>string</dec:DeclareName> | ||
130 | + <dec:NoOtherPack>s</dec:NoOtherPack> | ||
131 | + <!--Optional:--> | ||
132 | + <dec:OrgCode>string</dec:OrgCode> | ||
133 | + <!--Optional:--> | ||
134 | + <dec:OverseasConsignorCode>string</dec:OverseasConsignorCode> | ||
135 | + <!--Optional:--> | ||
136 | + <dec:OverseasConsignorCname>string</dec:OverseasConsignorCname> | ||
137 | + <!--Optional:--> | ||
138 | + <dec:OverseasConsignorEname>string</dec:OverseasConsignorEname> | ||
139 | + <!--Optional:--> | ||
140 | + <dec:OverseasConsignorAddr>string</dec:OverseasConsignorAddr> | ||
141 | + <!--Optional:--> | ||
142 | + <dec:OverseasConsigneeCode>string</dec:OverseasConsigneeCode> | ||
143 | + <!--Optional:--> | ||
144 | + <dec:OverseasConsigneeEname>string</dec:OverseasConsigneeEname> | ||
145 | + <!--Optional:--> | ||
146 | + <dec:DomesticConsigneeEname>string</dec:DomesticConsigneeEname> | ||
147 | + <!--Optional:--> | ||
148 | + <dec:CorrelationNo>string</dec:CorrelationNo> | ||
149 | + <!--Optional:--> | ||
150 | + <dec:EdiRemark2>string</dec:EdiRemark2> | ||
151 | + <!--Optional:--> | ||
152 | + <dec:EdiRemark>string</dec:EdiRemark> | ||
153 | + </dec:DecHead> | ||
154 | + <dec:DecLists> | ||
155 | + <!--0 to 50 repetitions:--> | ||
156 | + <dec:DecList> | ||
157 | + <!--Optional:--> | ||
158 | + <dec:ClassMark>s</dec:ClassMark> | ||
159 | + <dec:CodeTS>stringstri</dec:CodeTS> | ||
160 | + <!--Optional:--> | ||
161 | + <dec:ContrItem>string</dec:ContrItem> | ||
162 | + <dec:DeclPrice>string</dec:DeclPrice> | ||
163 | + <!--Optional:--> | ||
164 | + <dec:DutyMode>string</dec:DutyMode> | ||
165 | + <!--Optional:--> | ||
166 | + <dec:Factor>string</dec:Factor> | ||
167 | + <!--Optional:--> | ||
168 | + <dec:GModel>string</dec:GModel> | ||
169 | + <dec:GName>string</dec:GName> | ||
170 | + <dec:GNo>string</dec:GNo> | ||
171 | + <dec:OriginCountry>str</dec:OriginCountry> | ||
172 | + <!--Optional:--> | ||
173 | + <dec:TradeCurr>string</dec:TradeCurr> | ||
174 | + <dec:DeclTotal>string</dec:DeclTotal> | ||
175 | + <dec:GQty>string</dec:GQty> | ||
176 | + <!--Optional:--> | ||
177 | + <dec:FirstQty>string</dec:FirstQty> | ||
178 | + <!--Optional:--> | ||
179 | + <dec:SecondQty>string</dec:SecondQty> | ||
180 | + <!--Optional:--> | ||
181 | + <dec:GUnit>str</dec:GUnit> | ||
182 | + <!--Optional:--> | ||
183 | + <dec:FirstUnit>str</dec:FirstUnit> | ||
184 | + <!--Optional:--> | ||
185 | + <dec:SecondUnit>str</dec:SecondUnit> | ||
186 | + <!--Optional:--> | ||
187 | + <dec:UseTo>st</dec:UseTo> | ||
188 | + <!--Optional:--> | ||
189 | + <dec:WorkUsd>string</dec:WorkUsd> | ||
190 | + <!--Optional:--> | ||
191 | + <dec:ExgNo>string</dec:ExgNo> | ||
192 | + <!--Optional:--> | ||
193 | + <dec:ExgVersion>string</dec:ExgVersion> | ||
194 | + <dec:DestinationCountry>str</dec:DestinationCountry> | ||
195 | + <dec:CiqCode>string</dec:CiqCode> | ||
196 | + <!--Optional:--> | ||
197 | + <dec:DeclGoodsEname>string</dec:DeclGoodsEname> | ||
198 | + <!--Optional:--> | ||
199 | + <dec:OrigPlaceCode>string</dec:OrigPlaceCode> | ||
200 | + <!--Optional:--> | ||
201 | + <dec:Purpose>stri</dec:Purpose> | ||
202 | + <!--Optional:--> | ||
203 | + <dec:ProdValidDt>string</dec:ProdValidDt> | ||
204 | + <!--Optional:--> | ||
205 | + <dec:ProdQgp>string</dec:ProdQgp> | ||
206 | + <!--Optional:--> | ||
207 | + <dec:GoodsAttr>string</dec:GoodsAttr> | ||
208 | + <!--Optional:--> | ||
209 | + <dec:Stuff>string</dec:Stuff> | ||
210 | + <!--Optional:--> | ||
211 | + <dec:Uncode>string</dec:Uncode> | ||
212 | + <!--Optional:--> | ||
213 | + <dec:DangName>string</dec:DangName> | ||
214 | + <!--Optional:--> | ||
215 | + <dec:DangPackType>stri</dec:DangPackType> | ||
216 | + <!--Optional:--> | ||
217 | + <dec:DangPackSpec>string</dec:DangPackSpec> | ||
218 | + <!--Optional:--> | ||
219 | + <dec:EngManEntCnm>string</dec:EngManEntCnm> | ||
220 | + <!--Optional:--> | ||
221 | + <dec:NoDangFlag>s</dec:NoDangFlag> | ||
222 | + <!--Optional:--> | ||
223 | + <dec:DestCode>string</dec:DestCode> | ||
224 | + <!--Optional:--> | ||
225 | + <dec:GoodsSpec>string</dec:GoodsSpec> | ||
226 | + <!--Optional:--> | ||
227 | + <dec:GoodsModel>string</dec:GoodsModel> | ||
228 | + <!--Optional:--> | ||
229 | + <dec:GoodsBrand>string</dec:GoodsBrand> | ||
230 | + <!--Optional:--> | ||
231 | + <dec:ProduceDate>string</dec:ProduceDate> | ||
232 | + <!--Optional:--> | ||
233 | + <dec:ProdBatchNo>string</dec:ProdBatchNo> | ||
234 | + <!--Optional:--> | ||
235 | + <dec:DistrictCode>string</dec:DistrictCode> | ||
236 | + <!--Optional:--> | ||
237 | + <dec:CiqName>string</dec:CiqName> | ||
238 | + <!--Optional:--> | ||
239 | + <dec:DecGoodsLimits> | ||
240 | + <!--Zero or more repetitions:--> | ||
241 | + <dec:DecGoodsLimit> | ||
242 | + <dec:GoodsNo>string</dec:GoodsNo> | ||
243 | + <dec:LicTypeCode>strin</dec:LicTypeCode> | ||
244 | + <!--Optional:--> | ||
245 | + <dec:LicenceNo>string</dec:LicenceNo> | ||
246 | + <!--Optional:--> | ||
247 | + <dec:LicWrtofDetailNo>st</dec:LicWrtofDetailNo> | ||
248 | + <!--Optional:--> | ||
249 | + <dec:LicWrtofQty>string</dec:LicWrtofQty> | ||
250 | + <!--Zero or more repetitions:--> | ||
251 | + <dec:DecGoodsLimitVin> | ||
252 | + <dec:LicenceNo>string</dec:LicenceNo> | ||
253 | + <dec:LicTypeCode>strin</dec:LicTypeCode> | ||
254 | + <dec:VinNo>strin</dec:VinNo> | ||
255 | + <!--Optional:--> | ||
256 | + <dec:BillLadDate>string</dec:BillLadDate> | ||
257 | + <!--Optional:--> | ||
258 | + <dec:QualityQgp>string</dec:QualityQgp> | ||
259 | + <!--Optional:--> | ||
260 | + <dec:MotorNo>string</dec:MotorNo> | ||
261 | + <!--Optional:--> | ||
262 | + <dec:VinCode>string</dec:VinCode> | ||
263 | + <!--Optional:--> | ||
264 | + <dec:ChassisNo>string</dec:ChassisNo> | ||
265 | + <!--Optional:--> | ||
266 | + <dec:InvoiceNum>string</dec:InvoiceNum> | ||
267 | + <!--Optional:--> | ||
268 | + <dec:ProdCnnm>string</dec:ProdCnnm> | ||
269 | + <!--Optional:--> | ||
270 | + <dec:ProdEnnm>string</dec:ProdEnnm> | ||
271 | + <!--Optional:--> | ||
272 | + <dec:ModelEn>string</dec:ModelEn> | ||
273 | + <!--Optional:--> | ||
274 | + <dec:PricePerUnit>string</dec:PricePerUnit> | ||
275 | + </dec:DecGoodsLimitVin> | ||
276 | + </dec:DecGoodsLimit> | ||
277 | + </dec:DecGoodsLimits> | ||
278 | + <!--Optional:--> | ||
279 | + <dec:MnufctrRegNo>string</dec:MnufctrRegNo> | ||
280 | + <!--Optional:--> | ||
281 | + <dec:MnufctrRegName>string</dec:MnufctrRegName> | ||
282 | + </dec:DecList> | ||
283 | + </dec:DecLists> | ||
284 | + <dec:DecContainers> | ||
285 | + <!--0 to 500 repetitions:--> | ||
286 | + <dec:Container> | ||
287 | + <dec:ContainerId>string</dec:ContainerId> | ||
288 | + <dec:ContainerMd>str</dec:ContainerMd> | ||
289 | + <!--Optional:--> | ||
290 | + <dec:GoodsNo>string</dec:GoodsNo> | ||
291 | + <!--Optional:--> | ||
292 | + <dec:LclFlag>s</dec:LclFlag> | ||
293 | + <!--Optional:--> | ||
294 | + <dec:GoodsContaWt>string</dec:GoodsContaWt> | ||
295 | + </dec:Container> | ||
296 | + </dec:DecContainers> | ||
297 | + <dec:DecLicenseDocus> | ||
298 | + <!--0 to 7 repetitions:--> | ||
299 | + <dec:LicenseDocu> | ||
300 | + <dec:DocuCode>s</dec:DocuCode> | ||
301 | + <dec:CertCode>string</dec:CertCode> | ||
302 | + </dec:LicenseDocu> | ||
303 | + </dec:DecLicenseDocus> | ||
304 | + <!--Optional:--> | ||
305 | + <dec:DecRequestCerts> | ||
306 | + <!--Zero or more repetitions:--> | ||
307 | + <dec:DecRequestCert> | ||
308 | + <dec:AppCertCode>string</dec:AppCertCode> | ||
309 | + <dec:ApplOri>string</dec:ApplOri> | ||
310 | + <dec:ApplCopyQuan>string</dec:ApplCopyQuan> | ||
311 | + </dec:DecRequestCert> | ||
312 | + </dec:DecRequestCerts> | ||
313 | + <!--Optional:--> | ||
314 | + <dec:DecOtherPacks> | ||
315 | + <!--Zero or more repetitions:--> | ||
316 | + <dec:DecOtherPack> | ||
317 | + <dec:PackQty>string</dec:PackQty> | ||
318 | + <dec:PackType>string</dec:PackType> | ||
319 | + </dec:DecOtherPack> | ||
320 | + </dec:DecOtherPacks> | ||
321 | + <!--Optional:--> | ||
322 | + <dec:DecCopLimits> | ||
323 | + <!--Zero or more repetitions:--> | ||
324 | + <dec:DecCopLimit> | ||
325 | + <!--Optional:--> | ||
326 | + <dec:EntQualifNo>string</dec:EntQualifNo> | ||
327 | + <dec:EntQualifTypeCode>strin</dec:EntQualifTypeCode> | ||
328 | + </dec:DecCopLimit> | ||
329 | + </dec:DecCopLimits> | ||
330 | + <!--Optional:--> | ||
331 | + <dec:DecUsers> | ||
332 | + <!--Zero or more repetitions:--> | ||
333 | + <dec:DecUser> | ||
334 | + <!--Optional:--> | ||
335 | + <dec:UseOrgPersonCode>string</dec:UseOrgPersonCode> | ||
336 | + <!--Optional:--> | ||
337 | + <dec:UseOrgPersonTel>strin</dec:UseOrgPersonTel> | ||
338 | + </dec:DecUser> | ||
339 | + </dec:DecUsers> | ||
340 | + <!--Optional:--> | ||
341 | + <dec:DecMarkLobs> | ||
342 | + <!--Zero or more repetitions:--> | ||
343 | + <dec:DecMarkLob> | ||
344 | + <dec:AttachName>string</dec:AttachName> | ||
345 | + <!--Optional:--> | ||
346 | + <dec:AttachType>st</dec:AttachType> | ||
347 | + <dec:Attachment>65</dec:Attachment> | ||
348 | + </dec:DecMarkLob> | ||
349 | + </dec:DecMarkLobs> | ||
350 | + <dec:DecFreeTxt> | ||
351 | + <!--Optional:--> | ||
352 | + <dec:RelId>string</dec:RelId> | ||
353 | + <!--Optional:--> | ||
354 | + <dec:RelManNo>stringstring</dec:RelManNo> | ||
355 | + <!--Optional:--> | ||
356 | + <dec:BonNo>string</dec:BonNo> | ||
357 | + <!--Optional:--> | ||
358 | + <dec:VoyNo>string</dec:VoyNo> | ||
359 | + <!--Optional:--> | ||
360 | + <dec:DecBpNo>string</dec:DecBpNo> | ||
361 | + <!--Optional:--> | ||
362 | + <dec:CusFie>string</dec:CusFie> | ||
363 | + <!--Optional:--> | ||
364 | + <dec:DecNo>string</dec:DecNo> | ||
365 | + </dec:DecFreeTxt> | ||
366 | + <dec:DecSign> | ||
367 | + <dec:OperType>s</dec:OperType> | ||
368 | + <!--Optional:--> | ||
369 | + <dec:ICCode>stringstrings</dec:ICCode> | ||
370 | + <!--Optional:--> | ||
371 | + <dec:CopCode>stringstr</dec:CopCode> | ||
372 | + <!--Optional:--> | ||
373 | + <dec:OperName>string</dec:OperName> | ||
374 | + <dec:ClientSeqNo>string</dec:ClientSeqNo> | ||
375 | + <dec:Sign>string</dec:Sign> | ||
376 | + <dec:SignDate>stringstringstri</dec:SignDate> | ||
377 | + <!--Optional:--> | ||
378 | + <dec:Certificate>string</dec:Certificate> | ||
379 | + <dec:HostId>string</dec:HostId> | ||
380 | + <!--Optional:--> | ||
381 | + <dec:BillSeqNo>string</dec:BillSeqNo> | ||
382 | + <!--Optional:--> | ||
383 | + <dec:DomainId>s</dec:DomainId> | ||
384 | + <!--Optional:--> | ||
385 | + <dec:Note>string</dec:Note> | ||
386 | + </dec:DecSign> | ||
387 | + <!--Optional:--> | ||
388 | + <dec:TrnHead> | ||
389 | + <!--Optional:--> | ||
390 | + <dec:TrnPreId>stringstringstring</dec:TrnPreId> | ||
391 | + <!--Optional:--> | ||
392 | + <dec:TransNo>stringstringstri</dec:TransNo> | ||
393 | + <!--Optional:--> | ||
394 | + <dec:TurnNo>stringstringstri</dec:TurnNo> | ||
395 | + <!--Optional:--> | ||
396 | + <dec:NativeTrafMode>s</dec:NativeTrafMode> | ||
397 | + <!--Optional:--> | ||
398 | + <dec:TrafCustomsNo>stringstrings</dec:TrafCustomsNo> | ||
399 | + <!--Optional:--> | ||
400 | + <dec:NativeShipName>string</dec:NativeShipName> | ||
401 | + <!--Optional:--> | ||
402 | + <dec:NativeVoyageNo>stringstringstringstringstringst</dec:NativeVoyageNo> | ||
403 | + <!--Optional:--> | ||
404 | + <dec:ContractorName>string</dec:ContractorName> | ||
405 | + <!--Optional:--> | ||
406 | + <dec:ContractorCode>stringstri</dec:ContractorCode> | ||
407 | + <!--Optional:--> | ||
408 | + <dec:TransFlag>st</dec:TransFlag> | ||
409 | + <!--Optional:--> | ||
410 | + <dec:ValidTime>stringst</dec:ValidTime> | ||
411 | + <!--Optional:--> | ||
412 | + <dec:ESealFlag>s</dec:ESealFlag> | ||
413 | + <!--Optional:--> | ||
414 | + <dec:Notes>string</dec:Notes> | ||
415 | + <!--Optional:--> | ||
416 | + <dec:TrnType>s</dec:TrnType> | ||
417 | + <!--Optional:--> | ||
418 | + <dec:ApplCodeScc>stringstringstring</dec:ApplCodeScc> | ||
419 | + </dec:TrnHead> | ||
420 | + <!--Optional:--> | ||
421 | + <dec:TrnList> | ||
422 | + <!--Optional:--> | ||
423 | + <dec:TrafMode>s</dec:TrafMode> | ||
424 | + <!--Optional:--> | ||
425 | + <dec:ShipId>string</dec:ShipId> | ||
426 | + <!--Optional:--> | ||
427 | + <dec:ShipNameEn>string</dec:ShipNameEn> | ||
428 | + <!--Optional:--> | ||
429 | + <dec:VoyageNo>string</dec:VoyageNo> | ||
430 | + <!--Optional:--> | ||
431 | + <dec:BillNo>string</dec:BillNo> | ||
432 | + <!--Optional:--> | ||
433 | + <dec:IEDate>stringst</dec:IEDate> | ||
434 | + </dec:TrnList> | ||
435 | + <!--Optional:--> | ||
436 | + <dec:TrnContainers> | ||
437 | + <!--0 to 500 repetitions:--> | ||
438 | + <dec:TrnContainer> | ||
439 | + <dec:ContaNo>string</dec:ContaNo> | ||
440 | + <!--Optional:--> | ||
441 | + <dec:ContaSn>string</dec:ContaSn> | ||
442 | + <!--Optional:--> | ||
443 | + <dec:ContaModel>stri</dec:ContaModel> | ||
444 | + <!--Optional:--> | ||
445 | + <dec:SealNo>string</dec:SealNo> | ||
446 | + <!--Optional:--> | ||
447 | + <dec:TransName>string</dec:TransName> | ||
448 | + <!--Optional:--> | ||
449 | + <dec:TransWeight>string</dec:TransWeight> | ||
450 | + </dec:TrnContainer> | ||
451 | + </dec:TrnContainers> | ||
452 | + <!--Optional:--> | ||
453 | + <dec:TrnContaGoodsList> | ||
454 | + <!--Zero or more repetitions:--> | ||
455 | + <dec:TrnContaGoods> | ||
456 | + <dec:ContaNo>string</dec:ContaNo> | ||
457 | + <dec:GNo>string</dec:GNo> | ||
458 | + <dec:ContaGoodsCount>string</dec:ContaGoodsCount> | ||
459 | + <dec:ContaGoodsWeight>string</dec:ContaGoodsWeight> | ||
460 | + </dec:TrnContaGoods> | ||
461 | + </dec:TrnContaGoodsList> | ||
462 | + <!--Optional:--> | ||
463 | + <dec:DecSupplementLists> | ||
464 | + <!--0 to 60 repetitions:--> | ||
465 | + <dec:DecSupplementList> | ||
466 | + <dec:GNo>st</dec:GNo> | ||
467 | + <dec:SupType>s</dec:SupType> | ||
468 | + <dec:BrandCN>string</dec:BrandCN> | ||
469 | + <dec:BrandEN>string</dec:BrandEN> | ||
470 | + <dec:Buyer>string</dec:Buyer> | ||
471 | + <dec:BuyerContact>string</dec:BuyerContact> | ||
472 | + <dec:BuyerAddr>string</dec:BuyerAddr> | ||
473 | + <dec:BuyerTel>string</dec:BuyerTel> | ||
474 | + <dec:Seller>string</dec:Seller> | ||
475 | + <dec:SellerContact>string</dec:SellerContact> | ||
476 | + <dec:SellerAddr>string</dec:SellerAddr> | ||
477 | + <dec:SellerTel>string</dec:SellerTel> | ||
478 | + <dec:Factory>string</dec:Factory> | ||
479 | + <dec:FactoryContact>string</dec:FactoryContact> | ||
480 | + <dec:FactoryAddr>string</dec:FactoryAddr> | ||
481 | + <dec:FactoryTel>string</dec:FactoryTel> | ||
482 | + <dec:ContrNo>string</dec:ContrNo> | ||
483 | + <dec:ContrDate>string</dec:ContrDate> | ||
484 | + <dec:InvoiceNo>string</dec:InvoiceNo> | ||
485 | + <dec:InvoiceDate>string</dec:InvoiceDate> | ||
486 | + <dec:I_BabRel>string</dec:I_BabRel> | ||
487 | + <dec:I_PriceEffect>s</dec:I_PriceEffect> | ||
488 | + <dec:I_PriceClose>string</dec:I_PriceClose> | ||
489 | + <dec:I_OtherLimited>s</dec:I_OtherLimited> | ||
490 | + <dec:I_OtherEffect>s</dec:I_OtherEffect> | ||
491 | + <dec:I_Note1>string</dec:I_Note1> | ||
492 | + <dec:I_IsUsefee>s</dec:I_IsUsefee> | ||
493 | + <dec:I_IsProfit>s</dec:I_IsProfit> | ||
494 | + <dec:I_Note2>string</dec:I_Note2> | ||
495 | + <dec:Curr>str</dec:Curr> | ||
496 | + <dec:InvoicePrice>string</dec:InvoicePrice> | ||
497 | + <dec:InvoiceAmount>string</dec:InvoiceAmount> | ||
498 | + <dec:InvoiceNote>string</dec:InvoiceNote> | ||
499 | + <dec:GoodsPrice>string</dec:GoodsPrice> | ||
500 | + <dec:GoodsAmount>string</dec:GoodsAmount> | ||
501 | + <dec:GoodsNote>string</dec:GoodsNote> | ||
502 | + <dec:I_CommissionPrice>string</dec:I_CommissionPrice> | ||
503 | + <dec:I_CommissionAmount>string</dec:I_CommissionAmount> | ||
504 | + <dec:I_CommissionNote>string</dec:I_CommissionNote> | ||
505 | + <dec:I_ContainerPrice>string</dec:I_ContainerPrice> | ||
506 | + <dec:I_ContainerAmount>string</dec:I_ContainerAmount> | ||
507 | + <dec:I_ContainerNote>string</dec:I_ContainerNote> | ||
508 | + <dec:I_PackPrice>string</dec:I_PackPrice> | ||
509 | + <dec:I_PackAmount>string</dec:I_PackAmount> | ||
510 | + <dec:I_PackNote>string</dec:I_PackNote> | ||
511 | + <dec:I_PartPrice>string</dec:I_PartPrice> | ||
512 | + <dec:I_PartAmount>string</dec:I_PartAmount> | ||
513 | + <dec:I_PartNote>string</dec:I_PartNote> | ||
514 | + <dec:I_ToolPrice>string</dec:I_ToolPrice> | ||
515 | + <dec:I_ToolAmount>string</dec:I_ToolAmount> | ||
516 | + <dec:I_ToolNote>string</dec:I_ToolNote> | ||
517 | + <dec:I_LossPrice>string</dec:I_LossPrice> | ||
518 | + <dec:I_LossAmount>string</dec:I_LossAmount> | ||
519 | + <dec:I_LossNote>string</dec:I_LossNote> | ||
520 | + <dec:I_DesignPrice>string</dec:I_DesignPrice> | ||
521 | + <dec:I_DesignAmount>string</dec:I_DesignAmount> | ||
522 | + <dec:I_DesignNote>string</dec:I_DesignNote> | ||
523 | + <dec:I_UsefeePrice>string</dec:I_UsefeePrice> | ||
524 | + <dec:I_UsefeeAmount>string</dec:I_UsefeeAmount> | ||
525 | + <dec:I_UsefeeNote>string</dec:I_UsefeeNote> | ||
526 | + <dec:I_ProfitPrice>string</dec:I_ProfitPrice> | ||
527 | + <dec:I_ProfitAmount>string</dec:I_ProfitAmount> | ||
528 | + <dec:I_ProfitNote>string</dec:I_ProfitNote> | ||
529 | + <dec:I_FeePrice>string</dec:I_FeePrice> | ||
530 | + <dec:I_FeeAmount>string</dec:I_FeeAmount> | ||
531 | + <dec:I_FeeNote>string</dec:I_FeeNote> | ||
532 | + <dec:I_OtherPrice>string</dec:I_OtherPrice> | ||
533 | + <dec:I_OtherAmount>string</dec:I_OtherAmount> | ||
534 | + <dec:I_OtherNote>string</dec:I_OtherNote> | ||
535 | + <dec:I_InsurPrice>string</dec:I_InsurPrice> | ||
536 | + <dec:I_InsurAmount>string</dec:I_InsurAmount> | ||
537 | + <dec:I_InsurNote>string</dec:I_InsurNote> | ||
538 | + <dec:E_IsDutyDel>s</dec:E_IsDutyDel> | ||
539 | + <dec:GNameOther>string</dec:GNameOther> | ||
540 | + <dec:CodeTsOther>stringstri</dec:CodeTsOther> | ||
541 | + <dec:IsClassDecision>s</dec:IsClassDecision> | ||
542 | + <dec:DecisionNO>string</dec:DecisionNO> | ||
543 | + <dec:CodeTsDecision>stringstri</dec:CodeTsDecision> | ||
544 | + <dec:DecisionCus>stri</dec:DecisionCus> | ||
545 | + <dec:IsSampleTest>s</dec:IsSampleTest> | ||
546 | + <dec:GOptions>string</dec:GOptions> | ||
547 | + <dec:TrafMode>s</dec:TrafMode> | ||
548 | + <dec:IsDirectTraf>s</dec:IsDirectTraf> | ||
549 | + <dec:TransitCountry>string</dec:TransitCountry> | ||
550 | + <dec:DestPort>stri</dec:DestPort> | ||
551 | + <dec:DeclPort>stri</dec:DeclPort> | ||
552 | + <dec:BillNo>string</dec:BillNo> | ||
553 | + <dec:OriginCountry>str</dec:OriginCountry> | ||
554 | + <dec:OriginMark>strin</dec:OriginMark> | ||
555 | + <dec:CertCountry>string</dec:CertCountry> | ||
556 | + <dec:CertNO>string</dec:CertNO> | ||
557 | + <dec:CertStandard>s</dec:CertStandard> | ||
558 | + <dec:OtherNote>string</dec:OtherNote> | ||
559 | + <dec:IsSecret>s</dec:IsSecret> | ||
560 | + <dec:AgentType>s</dec:AgentType> | ||
561 | + <dec:DeclAddr>string</dec:DeclAddr> | ||
562 | + <dec:DeclPost>string</dec:DeclPost> | ||
563 | + <dec:DeclTel>string</dec:DeclTel> | ||
564 | + </dec:DecSupplementList> | ||
565 | + </dec:DecSupplementLists> | ||
566 | + <!--1 to 10 repetitions:--> | ||
567 | + <dec:EdocRealation> | ||
568 | + <dec:EdocID>string</dec:EdocID> | ||
569 | + <dec:EdocCode>stringst</dec:EdocCode> | ||
570 | + <dec:EdocFomatType>st</dec:EdocFomatType> | ||
571 | + <dec:OpNote>string</dec:OpNote> | ||
572 | + <dec:EdocCopId>string</dec:EdocCopId> | ||
573 | + <dec:EdocOwnerCode>stringstri</dec:EdocOwnerCode> | ||
574 | + <dec:SignUnit>string</dec:SignUnit> | ||
575 | + <dec:SignTime>stringstringst</dec:SignTime> | ||
576 | + <!--Optional:--> | ||
577 | + <dec:EdocOwnerName>string</dec:EdocOwnerName> | ||
578 | + <!--Optional:--> | ||
579 | + <dec:EdocSize>string</dec:EdocSize> | ||
580 | + </dec:EdocRealation> | ||
581 | + <!--0 to 20 repetitions:--> | ||
582 | + <dec:EcoRelation> | ||
583 | + <dec:CertType>str</dec:CertType> | ||
584 | + <dec:EcoCertNo>stringstringstringstringstringstringstringstringstringstringstri</dec:EcoCertNo> | ||
585 | + <dec:DecGNo>string</dec:DecGNo> | ||
586 | + <dec:EcoGNo>string</dec:EcoGNo> | ||
587 | + <!--Optional:--> | ||
588 | + <dec:ExtendFiled>string</dec:ExtendFiled> | ||
589 | + </dec:EcoRelation> | ||
590 | + <!--Optional:--> | ||
591 | + <dec:SddTax> | ||
592 | + <dec:SddTaxHead> | ||
593 | + <!--Optional:--> | ||
594 | + <dec:FileName>string</dec:FileName> | ||
595 | + <!--Optional:--> | ||
596 | + <dec:SeqNo>string</dec:SeqNo> | ||
597 | + <!--Optional:--> | ||
598 | + <dec:SddNo>string</dec:SddNo> | ||
599 | + <!--Optional:--> | ||
600 | + <dec:IEFlag>s</dec:IEFlag> | ||
601 | + <!--Optional:--> | ||
602 | + <dec:DeclPort>stri</dec:DeclPort> | ||
603 | + <!--Optional:--> | ||
604 | + <dec:DDate>string</dec:DDate> | ||
605 | + <!--Optional:--> | ||
606 | + <dec:TradeCo>stringstri</dec:TradeCo> | ||
607 | + <!--Optional:--> | ||
608 | + <dec:TradeName>string</dec:TradeName> | ||
609 | + <!--Optional:--> | ||
610 | + <dec:InRatio>string</dec:InRatio> | ||
611 | + <!--Optional:--> | ||
612 | + <dec:TradeMode>stri</dec:TradeMode> | ||
613 | + <!--Optional:--> | ||
614 | + <dec:CutMode>str</dec:CutMode> | ||
615 | + <!--Optional:--> | ||
616 | + <dec:TransMode>s</dec:TransMode> | ||
617 | + <!--Optional:--> | ||
618 | + <dec:FeeMark>s</dec:FeeMark> | ||
619 | + <!--Optional:--> | ||
620 | + <dec:FeeCurr>str</dec:FeeCurr> | ||
621 | + <!--Optional:--> | ||
622 | + <dec:FeeRate>string</dec:FeeRate> | ||
623 | + <!--Optional:--> | ||
624 | + <dec:InsurMark>s</dec:InsurMark> | ||
625 | + <!--Optional:--> | ||
626 | + <dec:InsurCurr>str</dec:InsurCurr> | ||
627 | + <!--Optional:--> | ||
628 | + <dec:InsurRate>string</dec:InsurRate> | ||
629 | + <!--Optional:--> | ||
630 | + <dec:OtherMark>s</dec:OtherMark> | ||
631 | + <!--Optional:--> | ||
632 | + <dec:OtherCurr>str</dec:OtherCurr> | ||
633 | + <!--Optional:--> | ||
634 | + <dec:OtherRate>string</dec:OtherRate> | ||
635 | + <!--Optional:--> | ||
636 | + <dec:ManualNo>string</dec:ManualNo> | ||
637 | + <!--Optional:--> | ||
638 | + <dec:TradeCoScc>stringstringstring</dec:TradeCoScc> | ||
639 | + <!--Optional:--> | ||
640 | + <dec:GrossWt>string</dec:GrossWt> | ||
641 | + <!--Optional:--> | ||
642 | + <dec:NoteS>string</dec:NoteS> | ||
643 | + <dec:LegalLiability>string</dec:LegalLiability> | ||
644 | + <dec:Sign>string</dec:Sign> | ||
645 | + <!--Optional:--> | ||
646 | + <dec:MessId>string</dec:MessId> | ||
647 | + <!--Optional:--> | ||
648 | + <dec:CertSeqNo>string</dec:CertSeqNo> | ||
649 | + <!--Optional:--> | ||
650 | + <dec:Status>string</dec:Status> | ||
651 | + <!--Optional:--> | ||
652 | + <dec:F_DATE>string</dec:F_DATE> | ||
653 | + <dec:TAX_NO>string</dec:TAX_NO> | ||
654 | + </dec:SddTaxHead> | ||
655 | + <dec:SddTaxLists> | ||
656 | + <!--1 to 50 repetitions:--> | ||
657 | + <dec:SddTaxList> | ||
658 | + <dec:GNo>string</dec:GNo> | ||
659 | + <!--Optional:--> | ||
660 | + <dec:CodeTs>string</dec:CodeTs> | ||
661 | + <!--Optional:--> | ||
662 | + <dec:GName>string</dec:GName> | ||
663 | + <!--Optional:--> | ||
664 | + <dec:OriginCountry>str</dec:OriginCountry> | ||
665 | + <!--Optional:--> | ||
666 | + <dec:AgreementId>str</dec:AgreementId> | ||
667 | + <!--Optional:--> | ||
668 | + <dec:Qty1>string</dec:Qty1> | ||
669 | + <!--Optional:--> | ||
670 | + <dec:Unit1>str</dec:Unit1> | ||
671 | + <!--Optional:--> | ||
672 | + <dec:Qty2>string</dec:Qty2> | ||
673 | + <!--Optional:--> | ||
674 | + <dec:Unit2>str</dec:Unit2> | ||
675 | + <!--Optional:--> | ||
676 | + <dec:TradeCurr>str</dec:TradeCurr> | ||
677 | + <!--Optional:--> | ||
678 | + <dec:DeclPrice>string</dec:DeclPrice> | ||
679 | + <!--Optional:--> | ||
680 | + <dec:DeclTotal>string</dec:DeclTotal> | ||
681 | + <!--Optional:--> | ||
682 | + <dec:DutyMode>s</dec:DutyMode> | ||
683 | + <!--Optional:--> | ||
684 | + <dec:Antidumping>s</dec:Antidumping> | ||
685 | + <!--Optional:--> | ||
686 | + <dec:Antisubsidy>s</dec:Antisubsidy> | ||
687 | + <!--Optional:--> | ||
688 | + <dec:DutyValue>string</dec:DutyValue> | ||
689 | + <!--Optional:--> | ||
690 | + <dec:DutyRate>string</dec:DutyRate> | ||
691 | + <!--Optional:--> | ||
692 | + <dec:QtyDutyRate>string</dec:QtyDutyRate> | ||
693 | + <!--Optional:--> | ||
694 | + <dec:RegRate>string</dec:RegRate> | ||
695 | + <!--Optional:--> | ||
696 | + <dec:QtyRegRate>string</dec:QtyRegRate> | ||
697 | + <!--Optional:--> | ||
698 | + <dec:TaxRate>string</dec:TaxRate> | ||
699 | + <!--Optional:--> | ||
700 | + <dec:AntidumpingRate>string</dec:AntidumpingRate> | ||
701 | + <!--Optional:--> | ||
702 | + <dec:AntisubsidyRate>string</dec:AntisubsidyRate> | ||
703 | + <!--Optional:--> | ||
704 | + <dec:TrashfundRate>string</dec:TrashfundRate> | ||
705 | + </dec:SddTaxList> | ||
706 | + </dec:SddTaxLists> | ||
707 | + <dec:SddTaxDetails> | ||
708 | + <!--1 to 500 repetitions:--> | ||
709 | + <dec:SddTaxDetail> | ||
710 | + <dec:GNo>string</dec:GNo> | ||
711 | + <dec:TaxType>s</dec:TaxType> | ||
712 | + <dec:RealTax>string</dec:RealTax> | ||
713 | + </dec:SddTaxDetail> | ||
714 | + </dec:SddTaxDetails> | ||
715 | + </dec:SddTax> | ||
716 | + <!--Optional:--> | ||
717 | + <dec:DecRisk> | ||
718 | + <dec:Risk>string</dec:Risk> | ||
719 | + <dec:Sign>string</dec:Sign> | ||
720 | + <dec:SignDate>string</dec:SignDate> | ||
721 | + <dec:Note>string</dec:Note> | ||
722 | + </dec:DecRisk> | ||
723 | +</dec:DecMessage> |
此 diff 太大无法显示。
1 | +package com.sunyo.customer.order; | ||
2 | + | ||
3 | +import org.junit.Test; | ||
4 | +import org.junit.runner.RunWith; | ||
5 | +import org.springframework.boot.test.context.SpringBootTest; | ||
6 | +import org.springframework.test.context.junit4.SpringRunner; | ||
7 | + | ||
8 | +@RunWith(SpringRunner.class) | ||
9 | +@SpringBootTest | ||
10 | +public class OrderApplicationTests { | ||
11 | + | ||
12 | + @Test | ||
13 | + public void contextLoads() { | ||
14 | + } | ||
15 | + | ||
16 | +} |
-
请 注册 或 登录 后发表评论