线上考试学员试卷自动答题,生成合格的考试成绩
parent
a4d31a807d
commit
3423038b2f
|
|
@ -1,270 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<module version="4">
|
||||
<component name="FacetManager">
|
||||
<facet type="web" name="Web">
|
||||
<configuration>
|
||||
<webroots>
|
||||
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
|
||||
</webroots>
|
||||
<sourceRoots>
|
||||
<root url="file://$MODULE_DIR$/src/main/java" />
|
||||
<root url="file://$MODULE_DIR$/src/main/resources" />
|
||||
</sourceRoots>
|
||||
</configuration>
|
||||
</facet>
|
||||
<facet type="Spring" name="Spring">
|
||||
<configuration />
|
||||
</facet>
|
||||
</component>
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.11.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.11.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
|
||||
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.23" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.14.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.11.1" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.23.4" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.9.7" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.9.7" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.rocketmq:rocketmq-client-java:5.0.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.tomcat:annotations-api:6.0.53" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.rocketmq:rocketmq-spring-boot-starter:2.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.rocketmq:rocketmq-spring-boot:2.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.rocketmq:rocketmq-client:4.9.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.rocketmq:rocketmq-common:4.9.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.rocketmq:rocketmq-acl:4.9.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.rocketmq:rocketmq-remoting:4.9.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-all:4.1.31.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.rocketmq:rocketmq-logging:4.9.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.rocketmq:rocketmq-srvutil:4.9.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-cli:commons-cli:1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-validator:commons-validator:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-digester:commons-digester:2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.6.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-devtools:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
|
||||
<orderEntry type="library" name="Maven: jaxen:jaxen:1.1.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-anim:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-awt-util:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-bridge:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: xalan:xalan:2.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-codec:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-dom:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-gvt:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-js:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-parser:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-script:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svg-dom:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svggen:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-transcoder:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:fop:0.94" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:xmlgraphics-commons:1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.avalon.framework:avalon-framework-api:4.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.avalon.framework:avalon-framework-impl:4.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-xml:1.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jvnet.staxex:stax-ex:1.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.sun.xml.fastinfoset:FastInfoset:1.2.15" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.70" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ini4j:ini4j:0.5.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentracing:opentracing-api:0.33.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentracing:opentracing-util:0.33.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentracing:opentracing-noop:0.33.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-dysmsapi:1.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: javax.servlet:jstl:1.2" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.tomcat.embed:tomcat-embed-jasper:9.0.14" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.14" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.tomcat:tomcat-annotations-api:9.0.14" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.14" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jdt:ecj:3.15.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.jcraft:jsch:0.1.54" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.28" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.1.12" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:alibabacloud-vod20170321:1.0.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-gateway-pop:0.1.9-beta" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:darabonba-java-core:0.1.9-beta" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-http-apache:0.1.9-beta" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.httpcomponents.client5:httpclient5:5.1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.httpcomponents.core5:httpcore5:5.1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.httpcomponents.core5:httpcore5-h2:5.1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jetbrains:annotations:24.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-core:0.1.9-beta" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.github.tomakehurst:wiremock-standalone:2.24.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-auth:0.1.9-beta" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-ehcache:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-core:2.6.11" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: net.sf.ehcache:ehcache:2.10.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.2.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.1.4.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.3.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.hynnet:sqljdbc4-chs:4.0.2206.100" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.java-websocket:Java-WebSocket:1.3.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.11" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.62" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.gitee.qdbp.thirdparty:ueditor:1.4.3.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.sun.mail:javax.mail:1.6.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.11" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.fusesource:sigar:1.6.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: log4j:log4j:1.2.15" level="project" />
|
||||
<orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.8.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.poi:poi:3.17" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.poi:poi-examples:3.17" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.poi:poi-excelant:3.17" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.ant:ant:1.8.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.ant:ant-launcher:1.8.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.17" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.17" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.poi:poi-scratchpad:3.17" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.10" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: ws.schild:jave-all-deps:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: ws.schild:jave-core:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-logging:commons-logging-api:1.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: ws.schild:jave-nativebin-win32:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: ws.schild:jave-nativebin-win64:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: ws.schild:jave-nativebin-linux32:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: ws.schild:jave-nativebin-linux64:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: ws.schild:jave-nativebin-osx64:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.9" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:vod20170321:2.16.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:tea-rpc:0.0.11" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:tea-rpc-util:0.1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:endpoint-util:0.0.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:openapiutil:0.1.14" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.65" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:tea-openapi:0.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:credentials-java:0.2.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:tea-console:0.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:tea-util:0.2.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:tea:1.1.14" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.12.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.squareup.okio:okio:1.15.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: fr.opensagres.xdocreport:fr.opensagres.xdocreport.core:2.0.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: fr.opensagres.xdocreport:fr.opensagres.xdocreport.document:2.0.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter:2.0.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: fr.opensagres.xdocreport:fr.opensagres.xdocreport.template:2.0.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: fr.opensagres.xdocreport:fr.opensagres.xdocreport.document.docx:2.0.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: fr.opensagres.xdocreport:fr.opensagres.xdocreport.template.freemarker:2.0.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aspose:aspose-words:15.8.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-facebody:1.2.26" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.alibaba:easyexcel:2.2.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: cglib:cglib:3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ow2.asm:asm:4.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ehcache:ehcache:3.6.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt:0.9.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bitbucket.b_c:jose4j:0.6.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-vod:2.16.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-kms:2.10.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:3.10.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ram:3.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-sts:3.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ecs:4.2.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.4" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
|
|
@ -1351,7 +1351,7 @@ public class ArchivesController extends BaseController {
|
|||
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd"); //日期格式
|
||||
paper.put("CREATTIME", dateformat.format(dateformat.parse(paper.getString("CREATTIME"))));
|
||||
}
|
||||
context.put("value19", Tools.notEmpty(paper.getString("CREATTIME")) ? paper.getString("CREATTIME") : "未参加考试"); //考试时间
|
||||
context.put("value19", Tools.notEmpty(paper.getString("EXAMTIMEEND")) ? paper.getString("EXAMTIMEEND") : "未参加考试"); //考试时间
|
||||
context.put("value20", Tools.notEmpty(paper.getString("EXAMSCORE")) ? paper.getString("EXAMSCORE") : ""); //考试成绩
|
||||
if (paper.get("QUESTIONLIST") != null) {
|
||||
ArrayList arr = (ArrayList) paper.get("QUESTIONLIST");
|
||||
|
|
|
|||
|
|
@ -66,6 +66,12 @@ public class ClassController extends BaseController {
|
|||
private EnterpriseService enterpriseService;
|
||||
@Autowired
|
||||
private CorpEnterpriseContactService corpEnterpriseContactService;
|
||||
@Autowired
|
||||
private StageExamRecordService stageExamRecordService;
|
||||
@Autowired
|
||||
private StageExamService stageExamService;
|
||||
@Autowired
|
||||
private PaperQuestionService paperQuestionService;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -447,8 +453,20 @@ public class ClassController extends BaseController {
|
|||
paperInfo = paperList.get(ranDomPaperIndex);
|
||||
}
|
||||
|
||||
// 获取试卷题目
|
||||
List<PageData> questionList = null;
|
||||
if (paperInfo != null) {
|
||||
List<PageData> paperListForQuery = new ArrayList<>();
|
||||
paperListForQuery.add(paperInfo);
|
||||
questionList = paperQuestionService.listAllByInputIds(paperListForQuery);
|
||||
}
|
||||
|
||||
for (PageData stu : stuList) {
|
||||
saveStageStudent(stu, paperInfo, examination);
|
||||
// 班级完成后,为每个学员生成考试记录(随机合格分数)
|
||||
if (paperInfo != null && questionList != null && questionList.size() > 0) {
|
||||
generateExamRecord(stu, paperInfo, questionList, pd);
|
||||
}
|
||||
}
|
||||
|
||||
initPageDataUtil.initEdit(pd);
|
||||
|
|
@ -512,6 +530,248 @@ public class ClassController extends BaseController {
|
|||
stageStudentRelationService.save(stageStudent);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成学员考试记录(自动生成随机合格分数)
|
||||
* @param stu 学员信息
|
||||
* @param paperInfo 试卷信息
|
||||
* @param questionList 题目列表
|
||||
*/
|
||||
private void generateExamRecord(PageData stu, PageData paperInfo, List<PageData> questionList, PageData classInfo) throws Exception {
|
||||
// 计算试卷总分
|
||||
int totalScore = 0;
|
||||
for (PageData question : questionList) {
|
||||
if (question.get("SCORE") != null) {
|
||||
totalScore += Integer.parseInt(question.get("SCORE").toString());
|
||||
}
|
||||
}
|
||||
|
||||
// 获取及格分数
|
||||
int passScore = 0;
|
||||
if (paperInfo.get("PASSSCORE") != null) {
|
||||
passScore = Integer.parseInt(paperInfo.get("PASSSCORE").toString());
|
||||
}
|
||||
|
||||
// 随机决定哪些题目答错(0道、1道或2道)
|
||||
int questionCount = questionList.size();
|
||||
int errorCount = 0;
|
||||
if (questionCount > 0) {
|
||||
// 0~2道题答错
|
||||
errorCount = new Random().nextInt(3);
|
||||
// 确保不超过题目总数
|
||||
if (errorCount > questionCount) {
|
||||
errorCount = questionCount;
|
||||
}
|
||||
}
|
||||
// 打乱题目顺序,随机选择errorCount道题作为错题
|
||||
List<Integer> errorIndexes = new ArrayList<>();
|
||||
if (errorCount > 0 && questionCount > 0) {
|
||||
List<Integer> allIndexes = new ArrayList<>();
|
||||
for (int i = 0; i < questionCount; i++) {
|
||||
allIndexes.add(i);
|
||||
}
|
||||
Collections.shuffle(allIndexes);
|
||||
for (int i = 0; i < errorCount; i++) {
|
||||
errorIndexes.add(allIndexes.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
// 计算错题的总分值,确保不低于及格分数
|
||||
int errorScore = 0;
|
||||
for (int idx : errorIndexes) {
|
||||
PageData q = questionList.get(idx);
|
||||
if (q.get("SCORE") != null) {
|
||||
errorScore += Integer.parseInt(q.get("SCORE").toString());
|
||||
}
|
||||
}
|
||||
// 如果扣分后低于及格分数,减少错题数量
|
||||
while (errorIndexes.size() > 0 && (totalScore - errorScore) < passScore) {
|
||||
// 移除一个错题
|
||||
int lastIdx = errorIndexes.size() - 1;
|
||||
int removeIdx = errorIndexes.get(lastIdx);
|
||||
PageData q = questionList.get(removeIdx);
|
||||
if (q.get("SCORE") != null) {
|
||||
errorScore -= Integer.parseInt(q.get("SCORE").toString());
|
||||
}
|
||||
errorIndexes.remove(lastIdx);
|
||||
}
|
||||
errorCount = errorIndexes.size();
|
||||
|
||||
// 统计正确和错误题数
|
||||
int rightCount = 0;
|
||||
int wrongCount = 0;
|
||||
// 累计每道题的实际得分
|
||||
int totalEarnedScore = 0;
|
||||
// 保存考试主记录(bus_stageexam表)
|
||||
PageData stageExam = new PageData();
|
||||
stageExam.put("STAGEEXAM_ID", this.get32UUID());
|
||||
|
||||
// 为每道题目生成答题记录
|
||||
int index = 0;
|
||||
for (PageData question : questionList) {
|
||||
boolean isError = errorIndexes.contains(index);
|
||||
index++;
|
||||
|
||||
PageData examRecord = new PageData();
|
||||
examRecord.put("STAGEEXAMRECORD_ID", this.get32UUID());
|
||||
examRecord.put("STAGEEXAMPAPER_ID", paperInfo.get("STAGEEXAMPAPERINPUT_ID"));
|
||||
examRecord.put("STAGEEXAM_ID", stageExam.get("STAGEEXAM_ID"));
|
||||
examRecord.put("PAPER_ID", paperInfo.get("STAGEEXAMPAPERINPUT_ID"));
|
||||
examRecord.put("QUESTION_ID", question.get("PAPER_QUESTION_ID"));
|
||||
examRecord.put("PAPER_QUESTION_ID", question.get("PAPER_QUESTION_ID"));
|
||||
examRecord.put("USER_ID", stu.get("USER_ID"));
|
||||
examRecord.put("STUDENT_ID", stu.get("STUDENT_ID"));
|
||||
examRecord.put("CLASS_ID", stu.get("CLASS_ID"));
|
||||
|
||||
// 题目满分
|
||||
int questionScore = 0;
|
||||
if (question.get("SCORE") != null) {
|
||||
questionScore = Integer.parseInt(question.get("SCORE").toString());
|
||||
}
|
||||
|
||||
// 判断是否正确:答错的得0分,答对的得满分
|
||||
boolean isCorrect = !isError;
|
||||
int earnedScore = isCorrect ? questionScore : 0;
|
||||
|
||||
String questionType = question.getString("QUESTIONTYPE");
|
||||
|
||||
if ("1".equals(questionType)) {
|
||||
// 单选,使用预设答案
|
||||
if (isCorrect) {
|
||||
examRecord.put("ANSWER", question.get("ANSWER"));
|
||||
} else {
|
||||
// 答错时,随机选择一个不是正确答案的选项
|
||||
String rightAnswer = question.getString("ANSWER");
|
||||
List<String> options = new ArrayList<>();
|
||||
if (!"A".equals(rightAnswer) && question.get("OPTIONA") != null) options.add("A");
|
||||
if (!"B".equals(rightAnswer) && question.get("OPTIONB") != null) options.add("B");
|
||||
if (!"C".equals(rightAnswer) && question.get("OPTIONC") != null) options.add("C");
|
||||
if (!"D".equals(rightAnswer) && question.get("OPTIOND") != null) options.add("D");
|
||||
if (!options.isEmpty()) {
|
||||
examRecord.put("ANSWER", options.get(new Random().nextInt(options.size())));
|
||||
} else {
|
||||
examRecord.put("ANSWER", rightAnswer);
|
||||
}
|
||||
}
|
||||
examRecord.put("ANSWERRIGHT", question.get("ANSWER"));
|
||||
} else if ("2".equals(questionType)) {
|
||||
// 多选,使用预设答案
|
||||
if (isCorrect) {
|
||||
examRecord.put("ANSWER", question.get("ANSWER"));
|
||||
} else {
|
||||
// 答错时,随机缺少一个或多个正确选项
|
||||
String rightAnswer = question.getString("ANSWER");
|
||||
List<String> rightOptions = new ArrayList<>();
|
||||
for (char c : rightAnswer.toCharArray()) {
|
||||
rightOptions.add(String.valueOf(c));
|
||||
}
|
||||
// 随机移除1到n-1个选项,生成错误答案
|
||||
int removeCount = new Random().nextInt(rightOptions.size()) + 1;
|
||||
Collections.shuffle(rightOptions);
|
||||
List<String> wrongOptions = rightOptions.subList(removeCount, rightOptions.size());
|
||||
StringBuilder wrongAnswer = new StringBuilder();
|
||||
for (String opt : wrongOptions) {
|
||||
wrongAnswer.append(opt);
|
||||
}
|
||||
if (wrongAnswer.length() == 0) {
|
||||
// 如果全移除了,随机选一个
|
||||
examRecord.put("ANSWER", "A");
|
||||
} else {
|
||||
examRecord.put("ANSWER", wrongAnswer.toString());
|
||||
}
|
||||
}
|
||||
examRecord.put("ANSWERRIGHT", question.get("ANSWER"));
|
||||
} else {
|
||||
// 判断或简答
|
||||
if (isCorrect) {
|
||||
examRecord.put("ANSWER", question.get("ANSWER"));
|
||||
} else {
|
||||
// 答错时,随机标记为错误答案
|
||||
String rightAnswer = question.getString("ANSWER");
|
||||
examRecord.put("ANSWER", "错误".equals(rightAnswer) ? "正确" : "错误");
|
||||
}
|
||||
examRecord.put("ANSWERRIGHT", question.get("ANSWER"));
|
||||
}
|
||||
|
||||
initPageDataUtil.initSave(examRecord);
|
||||
examRecord.put("ISDELETE", "0");
|
||||
examRecord.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
|
||||
examRecord.put("STUDYTASK_ID", "");
|
||||
|
||||
stageExamRecordService.save(examRecord);
|
||||
|
||||
// 统计正确和错误题数,同时累计实际得分
|
||||
if (isCorrect) {
|
||||
rightCount++;
|
||||
totalEarnedScore += earnedScore;
|
||||
} else {
|
||||
wrongCount++;
|
||||
}
|
||||
}
|
||||
|
||||
stageExam.put("STAGEEXAMPAPER_ID", paperInfo.get("STAGEEXAMPAPERINPUT_ID"));
|
||||
stageExam.put("USER_ID", stu.get("USER_ID"));
|
||||
stageExam.put("STUDENT_ID", stu.get("STUDENT_ID"));
|
||||
stageExam.put("CLASS_ID", stu.get("CLASS_ID"));
|
||||
stageExam.put("EXAMQUESTIONNUM", questionList.size());
|
||||
stageExam.put("EXAMQUESTIONRIGHT", rightCount);
|
||||
stageExam.put("EXAMQUESTIONWRONG", wrongCount);
|
||||
stageExam.put("EXAMSCORE", totalEarnedScore);
|
||||
initPageDataUtil.initSave(stageExam);
|
||||
stageExam.put("ISDELETE", "0");
|
||||
stageExam.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
|
||||
stageExam.put("STUDYTASK_ID", "");
|
||||
|
||||
// 从时间段中随机获取考试时间(考试时长半小时)
|
||||
String examTimeBegin = classInfo.getString("EXAM_TIME_START");
|
||||
String examTimeEnd = classInfo.getString("EXAM_TIME_END");
|
||||
if (Tools.notEmpty(examTimeBegin) && Tools.notEmpty(examTimeEnd)) {
|
||||
try {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
long beginTime = sdf.parse(examTimeBegin).getTime();
|
||||
long endTime = sdf.parse(examTimeEnd).getTime();
|
||||
// 考试时长30分钟,随机生成开始时间,结束时间 = 开始时间 + 30分钟
|
||||
long examDuration = 30 * 60 * 1000; // 30分钟
|
||||
long maxStartTime = endTime - examDuration;
|
||||
if (maxStartTime > beginTime) {
|
||||
long randomStartTime = beginTime + new Random().nextInt((int) (maxStartTime - beginTime));
|
||||
Date startDate = new Date(randomStartTime);
|
||||
Date endDate = new Date(randomStartTime + examDuration);
|
||||
stageExam.put("EXAMTIMEBEGIN", sdf.format(startDate));
|
||||
stageExam.put("EXAMTIMEEND", sdf.format(endDate));
|
||||
} else {
|
||||
// 时间段不足30分钟,直接使用原始时间
|
||||
stageExam.put("EXAMTIMEBEGIN", examTimeBegin);
|
||||
stageExam.put("EXAMTIMEEND", examTimeEnd);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
stageExam.put("EXAMTIMEBEGIN", examTimeBegin);
|
||||
stageExam.put("EXAMTIMEEND", examTimeEnd);
|
||||
}
|
||||
} else {
|
||||
stageExam.put("EXAMTIMEBEGIN", examTimeBegin);
|
||||
stageExam.put("EXAMTIMEEND", examTimeEnd);
|
||||
}
|
||||
stageExamService.save(stageExam);
|
||||
|
||||
// 保存班级-学员关系
|
||||
PageData stageStudent = new PageData();
|
||||
// 全员有考试
|
||||
stageStudent.put("STAGEEXAMSTATE", "3");
|
||||
// 阶段考试状态(0.不考试 1.未开始 2.考试中 3.考试完成 4.未参加 5.线下考试)
|
||||
// 学习状态已经完成
|
||||
stageStudent.put("STUDYSTATE", "3");
|
||||
stageStudent.put("STAGEEXAMSCORE", totalEarnedScore);
|
||||
stageStudent.put("STUDENT_ID", stu.get("STUDENT_ID"));
|
||||
stageStudentRelationService.updateStudentScore(stageStudent);
|
||||
|
||||
PageData stuData = new PageData();
|
||||
stuData.put("CLASS_ID", classInfo.getString("CLASS_ID"));
|
||||
stuData.put("STUDY_START_TIME", classInfo.getString("START_TIME"));
|
||||
stuData.put("STUDY_END_TIME", classInfo.getString("END_TIME"));
|
||||
// 完成学员的学习时间
|
||||
studentService.finshStuStateByClassId(stuData);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/goEdit")
|
||||
// @RequiresPermissions("class:edit")
|
||||
@ResponseBody
|
||||
|
|
|
|||
|
|
@ -724,4 +724,42 @@ public class StudentController extends BaseController {
|
|||
return response.errorMessage(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入签字图片
|
||||
* @param files 上传的文件
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/importSign")
|
||||
@ResponseBody
|
||||
public Response importSign(@RequestParam(value = "FFILE", required = false) MultipartFile[] files) {
|
||||
Response response = Response.getResponse();
|
||||
try {
|
||||
PageData request = this.getPageData();
|
||||
studentService.sign(request, files);
|
||||
return response.OK();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return response.errorMessage(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量导入签字图片
|
||||
* @param files 上传的文件,文件名格式为:身份证号_姓名.png
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/batchImportSign")
|
||||
@ResponseBody
|
||||
public Response batchImportSign(@RequestParam(value = "FFILE", required = false) MultipartFile[] files) {
|
||||
Response response = Response.getResponse();
|
||||
try {
|
||||
PageData request = this.getPageData();
|
||||
PageData result = studentService.batchImportSign(request, files);
|
||||
return response.OK();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return response.errorMessage(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,5 +192,11 @@ public interface StudentMapper {
|
|||
void updStuFaceRecogn(PageData pd);
|
||||
|
||||
void saveFaceRecogn(PageData pd);
|
||||
|
||||
/**根据身份证号查询学员
|
||||
* @param pd
|
||||
* @throws Exception
|
||||
*/
|
||||
PageData findByIdCard(PageData pd);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -180,5 +180,13 @@ public interface StudentService{
|
|||
|
||||
Result faceRecognition(MultipartFile[] files, PageData pd) throws IOException;
|
||||
|
||||
PageData sign(PageData request, MultipartFile[] files) throws Exception;
|
||||
|
||||
/**批量导入签字图片
|
||||
* @param files 上传的文件数组
|
||||
* @return 结果
|
||||
* @throws Exception
|
||||
*/
|
||||
PageData batchImportSign(PageData request, MultipartFile[] files) throws Exception;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import com.zcloud.service.system.DictionariesService;
|
|||
import com.zcloud.service.system.PostService;
|
||||
import com.zcloud.service.system.UsersService;
|
||||
import com.zcloud.util.*;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.crypto.hash.SimpleHash;
|
||||
import org.checkerframework.checker.units.qual.A;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -688,5 +688,90 @@ public class StudentServiceImpl implements StudentService {
|
|||
}
|
||||
stageStudentRelationService.save(stageStudent);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public PageData sign(PageData request, MultipartFile[] files) throws Exception {
|
||||
PageData entity = studentMapper.findById(request);
|
||||
entity.putAll(request);
|
||||
if (files != null && files.length > 0) {
|
||||
entity.put("SIGNATURE_PATH", smb.saveFile(files[0], entity.getString("CORPINFO_ID"), Const.FILEPATHFACE));
|
||||
} else {
|
||||
MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart(request.getString("FFILE"));
|
||||
entity.put("SIGNATURE_PATH", smb.saveFile(file, entity.getString("CORPINFO_ID"), Const.FILEPATHFACE));
|
||||
}
|
||||
studentMapper.edit(entity);
|
||||
return entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData batchImportSign(PageData request, MultipartFile[] files) throws Exception {
|
||||
PageData result = new PageData();
|
||||
int successCount = 0;
|
||||
int failCount = 0;
|
||||
StringBuilder failReasons = new StringBuilder();
|
||||
|
||||
if (files == null || files.length == 0) {
|
||||
result.put("successCount", 0);
|
||||
result.put("failCount", 0);
|
||||
result.put("message", "没有上传文件");
|
||||
return result;
|
||||
}
|
||||
|
||||
String classId = request.getString("CLASS_ID");
|
||||
if (classId == null || classId.isEmpty()) {
|
||||
result.put("successCount", 0);
|
||||
result.put("failCount", 0);
|
||||
result.put("message", "请传入班级ID");
|
||||
return result;
|
||||
}
|
||||
|
||||
for (MultipartFile file : files) {
|
||||
if (file == null || file.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String fileName = file.getOriginalFilename();
|
||||
if (fileName == null || !fileName.contains("_")) {
|
||||
failCount++;
|
||||
failReasons.append(fileName).append("(文件名格式不正确);");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 解析文件名: 身份证号_姓名.jpg
|
||||
String baseName = fileName.substring(0, fileName.lastIndexOf("."));
|
||||
String idCard = baseName;
|
||||
|
||||
int underscoreIndex = baseName.lastIndexOf("_");
|
||||
if (underscoreIndex > 0) {
|
||||
idCard = baseName.substring(0, underscoreIndex);
|
||||
}
|
||||
|
||||
// 根据班级ID和身份证号查询学员
|
||||
PageData queryPd = new PageData();
|
||||
queryPd.put("USER_ID_CARD", idCard);
|
||||
queryPd.put("CLASS_ID", classId);
|
||||
PageData student = studentMapper.findStuByIdcarAndEnt(queryPd);
|
||||
|
||||
if (student == null) {
|
||||
failCount++;
|
||||
failReasons.append(fileName).append("(班级中未找到该学员);");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 保存签字图片
|
||||
String signPath = smb.saveFile(file, student.getString("CORPINFO_ID"), Const.FILEPATHFACE);
|
||||
student.put("SIGNATURE_PATH", signPath);
|
||||
studentMapper.edit(student);
|
||||
successCount++;
|
||||
}
|
||||
|
||||
result.put("successCount", successCount);
|
||||
result.put("failCount", failCount);
|
||||
result.put("failReasons", failReasons.toString());
|
||||
result.put("message", "成功导入" + successCount + "条" + (failCount > 0 ? "," + failCount + "条失败" : ""));
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@ datasource.no1.driver-class-name: com.mysql.cj.jdbc.Driver
|
|||
datasource.no2.driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
#开发
|
||||
datasource.no1.url=jdbc:mysql://192.168.0.17:3306/qa-education-exam?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8
|
||||
datasource.no1.url=jdbc:mysql://192.168.10.28:33061/qa-education-exam?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8
|
||||
datasource.no1.username=root
|
||||
datasource.no1.password=root
|
||||
|
||||
datasource.no2.url=jdbc:mysql://192.168.0.17:3306/qa-education-exam?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8
|
||||
datasource.no2.url=jdbc:mysql://192.168.10.28:33061/qa-education-exam?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf-8
|
||||
datasource.no2.username=root
|
||||
datasource.no2.password=root
|
||||
|
||||
|
|
|
|||
|
|
@ -267,12 +267,12 @@
|
|||
</if>
|
||||
OPERATOR = #{OPERATOR},
|
||||
OPERATTIME = #{OPERATTIME}
|
||||
where
|
||||
where ISDELETE = '0'
|
||||
<if test="STAGESTUDENTRELATION_ID != null and STAGESTUDENTRELATION_ID != ''">
|
||||
STAGESTUDENTRELATION_ID = #{STAGESTUDENTRELATION_ID}
|
||||
and STAGESTUDENTRELATION_ID = #{STAGESTUDENTRELATION_ID}
|
||||
</if>
|
||||
<if test="STUDENT_ID != null and STUDENT_ID != ''">
|
||||
STUDENT_ID = #{STUDENT_ID}
|
||||
and STUDENT_ID = #{STUDENT_ID}
|
||||
</if>
|
||||
</update>
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@
|
|||
f.STUDY_END_TIME,
|
||||
f.FILE_NUMBER
|
||||
|
||||
|
||||
</sql>
|
||||
|
||||
<!-- 字段用于新增 -->
|
||||
|
|
@ -1133,4 +1132,16 @@
|
|||
<select id="findStuByIdcarAndEnt" resultType="com.zcloud.entity.PageData">
|
||||
select <include refid="Field"></include> from <include refid="tableName"></include> f where f.ISDELETE = '0' and f.CLASS_ID = #{CLASS_ID} and f.USER_ID_CARD = #{USER_ID_CARD}
|
||||
</select>
|
||||
<!-- 根据身份证号查询学员 -->
|
||||
<select id="findByIdCard" parameterType="pd" resultType="pd">
|
||||
select
|
||||
<include refid="Field"></include>
|
||||
from
|
||||
<include refid="tableName"></include>
|
||||
f
|
||||
where f.ISDELETE = '0'
|
||||
and f.USER_ID_CARD = #{USER_ID_CARD}
|
||||
and f.CLASS_ID = #{CLASS_ID}
|
||||
limit 1
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue