正在显示
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 | +} |
-
请 注册 或 登录 后发表评论