This commit is contained in:
esacpe
2024-07-17 21:04:17 +08:00
commit 1fa3303972
1291 changed files with 92328 additions and 0 deletions

View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
</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" />
<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.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.3.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.13.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.1" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.1" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.1" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.37" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.37" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.5.0" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:4.0.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.7" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.7" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.2.0" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.7" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.1.5.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.3.4" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.83" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:29.0-jre" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:2.11.1" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.4" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="module" module-name="common-base-starter" />
<orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.3" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.8.0" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.14" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.14" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.8.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.8.0" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.9" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.8.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.8.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.8.0" level="project" />
<orderEntry type="library" name="Maven: org.reflections:reflections:0.9.11" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.8.0" level="project" />
<orderEntry type="library" name="Maven: com.github.caspar-chen:swagger-ui-layer:1.1.3" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.7.20" level="project" />
<orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:transmittable-thread-local:2.11.5" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.3.0" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.2" level="project" />
<orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.3" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.3" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.3" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.3" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.2" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.13" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
<orderEntry type="module" module-name="common-core-starter" />
<orderEntry type="module" module-name="common-config-starter" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-ehcache:1.8.0" level="project" />
<orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-core:2.6.11" level="project" />
<orderEntry type="library" name="Maven: com.github.penggle:kaptcha:2.3.2" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
<orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235-1" level="project" />
<orderEntry type="library" name="Maven: com.auth0:java-jwt:3.8.1" level="project" />
<orderEntry type="library" name="Maven: io.minio:minio:8.0.3" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch.thirdparty:simple-xml-safe:2.7.1" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:4.8.1" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okio:okio:2.7.0" level="project" />
<orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-common:1.3.70" level="project" />
<orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib:1.3.72" level="project" />
<orderEntry type="library" name="Maven: org.jetbrains:annotations:13.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="module" module-name="common-redis-starter" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.3.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.3.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.3.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.3.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.2.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.lettuce:lettuce-core:5.3.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.49.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.49.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.49.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.49.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.49.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.49.Final" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.3.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
<orderEntry type="module" module-name="common-token-starter" />
<orderEntry type="library" name="Maven: com.vividsolutions:jts:1.13" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.16.18" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.8.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.8.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.8.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.8.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.8.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.8.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.8.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.8.0" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.8.0" level="project" />
</component>
</module>

116
common-task-starter/pom.xml Normal file
View File

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>mosty-common</artifactId>
<groupId>com.mosty</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>common-task-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot-dependencies.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>${spring-boot-dependencies.version}</version>
<optional>true</optional>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>${spring-boot-dependencies.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>29.0-jre</version>
</dependency>
<dependency>
<groupId>com.mosty</groupId>
<artifactId>common-base-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.mosty</groupId>
<artifactId>common-core-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.mosty</groupId>
<artifactId>common-redis-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.mosty</groupId>
<artifactId>common-token-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>${shiro.version}</version>
</dependency>
</dependencies>
<distributionManagement>
<repository>
<id>mosty-nexus-releases</id>
<name>release version</name>
<url>http://47.108.232.77:8181/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>mosty-nexus-snapshots</id>
<name>snapshots version</name>
<url>http://47.108.232.77:8181/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,16 @@
package com.mosty.common.task;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Configuration;
/**
*
* @author kevin
* @date 2022/2/3 7:28 PM
* @since 1.0.0
*/
@Configuration
@MapperScan("com.mosty.common.task.mapper")
public class TaskAutoConfiguration {
}

View File

@ -0,0 +1,26 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行状态
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum ExecuteStatusEnum {
/** 1。未完成 */
UNFINISH(1, "未完成"),
/** 2。已执行 */
FINISH(2, "已完成");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,26 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行类型
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum ExecuteTypeEnum {
/** 1用户 */
USER(1, "用户"),
/** 2。部门 */
DEPT(2, "部门");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,32 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行类型
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum GroupCountTypeEnum {
/** 1。今天 */
TODAY(1, "今天"),
/** 2。七天 */
WEEK(2, "七天"),
/** 3。30天 */
MONTH(3, "30天"),
/** 4。全部 */
ALL(4, "全部");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,26 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 折线图类型
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum LineChartTypeEnum {
/** 1 日 */
DAY(1, ""),
/** 2 月 */
MONTH(2, "");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,26 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行类型
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum RuleTypeEnum {
/** 1 单人 */
ONE(1, "单人"),
/** 2 多人 */
MORE(2, "多人");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,28 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行类型
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum TaskItemStatusEnum {
/** 0未查看 */
NOTVIEWED(0, "未查看"),
/** 1。已查看 */
VIEWED(1, "已查看"),
/** 2。完成 */
FINISH(2, "完成");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,43 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行状态
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum TaskLogStatusEnum {
/** 0未查看 */
NOTVIEWED(0, "下发"),
/** 1。已查看 */
VIEWED(1, "查看"),
/** 2。完成 */
FINISH(2, "完成");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
/**
* 根据编码匹配菜单类型
* @param code 编码
* @return 菜单类型枚举
*/
public static TaskLogStatusEnum valueOf(Integer code) {
if (code == null) {
return null;
}
for (TaskLogStatusEnum taskTypeEnum : TaskLogStatusEnum.values()) {
if (taskTypeEnum.code.equals(code)) {
return taskTypeEnum;
}
}
return null;
}
}

View File

@ -0,0 +1,42 @@
package com.mosty.common.task.constant.enums;
import com.mosty.common.base.constant.enums.MenuTypeEnum;
import lombok.AllArgsConstructor;
import org.jetbrains.annotations.Contract;
/**
* 执行状态
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum TaskTypeEnum {
/** 1。核实任务 */
VERIFY("1", "核实任务"),
/** 2。预警指令 */
EARLY("2", "预警指令"),
OTHER("3", "其他")
;
/** 编码 */
public final String code;
/** 描述 */
public final String desc;
/**
* 根据编码匹配菜单类型
* @param code 编码
* @return 菜单类型枚举
*/
public static TaskTypeEnum getEnum(String code) {
for (TaskTypeEnum taskTypeEnum : TaskTypeEnum.values()) {
if (taskTypeEnum.code.equals(code)) {
return taskTypeEnum;
}
}
return TaskTypeEnum.OTHER;
}
}

View File

@ -0,0 +1,110 @@
package com.mosty.common.task.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.common.base.domain.ResponseResult;
import com.mosty.common.base.entity.log.BusinessType;
import com.mosty.common.base.entity.log.Log;
import com.mosty.common.base.util.IpUtil;
import com.mosty.common.task.entity.SysTask;
import com.mosty.common.task.entity.vo.*;
import com.mosty.common.task.service.SysTaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.List;
@Slf4j
@SuppressWarnings("unused")
@RestController
@CrossOrigin
@AllArgsConstructor
@RequestMapping("/sysTask")
@Api(tags = "任务接口")
public class SysTaskController {
@Resource
private SysTaskService sysTaskService;
/**
* 添加任务并下发
* @param addSysTaskVO 添加任务并下发
* @return 添加结果
*/
@PostMapping("addSysTask")
@ApiOperation(value = "添加任务并下发", httpMethod = "POST", response = Boolean.class)
@Log(title = "添加任务并下发",businessType = BusinessType.INSERT)
public ResponseResult<Boolean> addSysTask(@RequestBody @Valid AddSysTaskVO addSysTaskVO, HttpServletRequest servletRequest) {
String ipAddress = IpUtil.getIpAddress(servletRequest);
sysTaskService.saveInfo(addSysTaskVO,ipAddress);
return ResponseResult.success(Boolean.TRUE);
}
/**
* 查看回调
* @return 添加结果
*/
@PostMapping("detail")
@ApiOperation(value = "查看回调", httpMethod = "POST", response = SysTask.class)
@Log(title = "查看回调",businessType = BusinessType.UPDATE)
public ResponseResult<SysTask> detail(@RequestBody DetailSysTaskVO detailSysTaskVO, HttpServletRequest servletRequest) {
String ipAddress = IpUtil.getIpAddress(servletRequest);
SysTask task= sysTaskService.detail(detailSysTaskVO,ipAddress);
return ResponseResult.success(task);
}
/**
* 完成回调
* @return 添加结果
*/
@PostMapping("finish")
@ApiOperation(value = "完成回调", httpMethod = "POST", response = Boolean.class)
@Log(title = "完成回调",businessType = BusinessType.UPDATE)
public ResponseResult<Boolean> finish(@RequestBody FinishSysTaskVO finishSysTaskVO, HttpServletRequest servletRequest) {
String ipAddress = IpUtil.getIpAddress(servletRequest);
sysTaskService.finish(finishSysTaskVO,ipAddress);
return ResponseResult.success(true);
}
/**
* 查询当前登陆用户的任务
* @return 当前登陆用户的任务
*/
@PostMapping("findByList")
@ApiOperation(value = "查询当前登陆用户的任务", httpMethod = "POST", response = SysTaskItemVO.class)
public ResponseResult<IPage<SysTaskItemVO>> findByList(@RequestBody QueryTaskVO queryTaskVO, HttpServletRequest servletRequest) {
IPage<SysTaskItemVO> page = sysTaskService.findByList(queryTaskVO);
return ResponseResult.success(page);
}
/**
* 查询当前登陆用户的任务日志
* @return 当前登陆用户的任务
*/
@PostMapping("findLogByList")
@ApiOperation(value = "查询当前登陆用户的任务日志", httpMethod = "POST", response = SysTaskLogVO.class)
public ResponseResult<List<SysTaskLogVO>> findLogByList(@RequestBody QueryTaskLogVO queryTaskLogVO, HttpServletRequest servletRequest) {
List<SysTaskLogVO> page = sysTaskService.findLogByList(queryTaskLogVO);
return ResponseResult.success(page);
}
/**
* 查询任务数量
* @return 查询任务数量
*/
@PostMapping("countByQuery")
@ApiOperation(value = "查询任务数量", httpMethod = "POST", response = Long.class)
public ResponseResult<Long> countByQuery(@RequestBody QueryTaskVO queryTaskVO, HttpServletRequest servletRequest) {
Long count = sysTaskService.countByQuery(queryTaskVO);
return ResponseResult.success(count);
}
}

View File

@ -0,0 +1,84 @@
package com.mosty.common.task.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.common.base.domain.ResponseResult;
import com.mosty.common.base.entity.log.BusinessType;
import com.mosty.common.base.entity.log.Log;
import com.mosty.common.base.util.IpUtil;
import com.mosty.common.task.entity.SysTask;
import com.mosty.common.task.entity.vo.*;
import com.mosty.common.task.service.SysTaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.List;
@Slf4j
@SuppressWarnings("unused")
@RestController
@AllArgsConstructor
@CrossOrigin
@RequestMapping("/sysTaskReport")
@Api(tags = "任务数量报表接口")
public class SysTaskReportController {
@Resource
private SysTaskService sysTaskService;
/**
* 查询今日数据
* @param
* @return 添加结果
*/
@PostMapping("todayCount")
@ApiOperation(value = "查询今日统计数据", httpMethod = "POST", response = SysTaskCountToday.class)
public ResponseResult<SysTaskCountToday> todayCount() {
SysTaskCountToday today= sysTaskService.todayCount();
return ResponseResult.success(today);
}
/**
* 查询全部统计数据
* @param
* @return 添加结果
*/
@PostMapping("allCount")
@ApiOperation(value = "查询全部统计数据", httpMethod = "POST", response = SysTaskCountToday.class)
public ResponseResult<SysTaskCountToday> allCount() {
SysTaskCountToday today= sysTaskService.allCount();
return ResponseResult.success(today);
}
/**
* 查询分类条数
* @param
* @return 添加结果
*/
@PostMapping("groupCount/{countType}")
@ApiOperation(value = "查询全部统计数据 1.今日 2.七日 3。 30天 4。 全部。", httpMethod = "POST", response = SysTaskCountGroup.class)
public ResponseResult<List<SysTaskCountGroup>> groupCount(@PathVariable("countType") Integer countType) {
List<SysTaskCountGroup> groups = sysTaskService.groupCount(countType);
return ResponseResult.success(groups);
}
/**
* 查询折线图数据
* @param
* @return 添加结果
*/
@PostMapping("lineChart/{lineChartType}")
@ApiOperation(value = "查询折线图数据 1 按日统计 2 按月统计", httpMethod = "POST", response = SysTaskLineChartVO.class)
public ResponseResult<List<SysTaskLineChartVO>> lineChart(@PathVariable("lineChartType") Integer lineChartType) {
List<SysTaskLineChartVO> lineCharts= sysTaskService.lineChart(lineChartType);
return ResponseResult.success(lineCharts);
}
}

View File

@ -0,0 +1,261 @@
package com.mosty.common.task.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 任务表
* @TableName sys_task
*/
@TableName(value ="sys_task")
@Data
public class SysTask implements Serializable {
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 任务类型
*/
@TableField(value = "rwlx")
private String rwlx;
/**
* 执行类型
*/
@TableField(value = "zxlx")
private Integer zxlx;
/**
* 任务紧急程度
*/
@TableField(value = "rwjjcd")
private String rwjjcd;
/**
* 任务名称
*/
@TableField(value = "rwmc")
private String rwmc;
/**
* 任务内容
*/
@TableField(value = "rwnr")
private String rwnr;
/**
* 任务制定时间
*/
@TableField(value = "rwzdsj")
private LocalDateTime rwzdsj;
/**
* 任务完成时间
*/
@TableField(value = "rwwcsj")
private LocalDateTime rwwcsj;
/**
* 任务要求完成时间
*/
@TableField(value = "rwyqwcsj")
private LocalDateTime rwyqwcsj;
/**
* 任务创建人身份证号
*/
@TableField(value = "rwcjrsfzh")
private String rwcjrsfzh;
/**
* 任务创建人姓名
*/
@TableField(value = "rwcjrxm")
private String rwcjrxm;
/**
* 任务创建人单位
*/
@TableField(value = "rwcjrdw")
private String rwcjrdw;
/**
* 任务创建人部门id
*/
@TableField(value = "rwcjrbm_id")
private Long rwcjrbmId;
/**
* 任务创建人部门名称
*/
@TableField(value = "rwcjrbmmc")
private String rwcjrbmmc;
/**
* 任务创建人单位id
*/
@TableField(value = "rwcjrdw_id")
private Long rwcjrdwId;
/**
* 任务创建人电话
*/
@TableField(value = "rwcjrdh")
private String rwcjrdh;
/**
* 任务创建规则 1.单人任务 2.多人任务
*/
@TableField(value = "rwcjrgz")
private Integer rwcjrgz;
/**
* 任务执行状态 1未完成 2.已完成
*/
@TableField(value = "rwzxzt")
private Integer rwzxzt;
/**
* 任务来源系统
*/
@TableField(value = "rwlyxt")
private String rwlyxt;
/**
* 任务来源id
*/
@TableField(value = "rwly_id")
private String rwlyId;
/**
* 任务url
*/
@TableField(value = "rw_url")
private String rwUrl;
/**
* 任务终端
*/
@TableField(value = "rwzd")
private String rwzd;
/**
* 应用id
*/
@TableField(value = "yy_id")
private Long yyId;
/**
* 备注
*/
@TableField(value = "bz")
private String bz;
/**
* 注销标志0正常 1.注销
*/
@TableField(value = "xt_zxbz")
private Integer xtZxbz;
/**
* 注销原因
*/
@TableField(value = "xt_zxyy")
private String xtZxyy;
/**
* 采集时间
*/
@TableField(value = "xt_cjsj")
private LocalDateTime xtCjsj;
/**
* 录入时间
*/
@TableField(value = "xt_lrsj")
private LocalDateTime xtLrsj;
/**
* 录入人姓名
*/
@TableField(value = "xt_lrrxm")
private String xtLrrxm;
/**
* 录入人id
*/
@TableField(value = "xt_lrrid")
private Long xtLrrid;
/**
* 录入人部门
*/
@TableField(value = "xt_lrrbm")
private String xtLrrbm;
/**
* 录入人部门id
*/
@TableField(value = "xt_lrrbmid")
private Long xtLrrbmid;
/**
* 录入人部门id
*/
@TableField(value = "xt_lrip")
private String xtLrip;
/**
* 最后修改时间
*/
@TableField(value = "xt_zhxgsj")
private LocalDateTime xtZhxgsj;
/**
* 最后修改人姓名
*/
@TableField(value = "xt_zhxgrxm")
private String xtZhxgrxm;
/**
* 最后修改人id
*/
@TableField(value = "xt_zhxgid")
private Long xtZhxgid;
/**
* 最后修改人部门
*/
@TableField(value = "xt_zhxgrbm")
private String xtZhxgrbm;
/**
* 最后修改人部门id
*/
@TableField(value = "xt_zhxgrbmid")
private Long xtZhxgrbmid;
/**
* 最后修改人ip
*/
@TableField(value = "xt_zhxgrip")
private String xtZhxgrip;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,200 @@
package com.mosty.common.task.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
* 任务下发表
* @TableName sys_task_item
*/
@TableName(value ="sys_task_item")
@Data
public class SysTaskItem implements Serializable {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 任务id
*/
@TableField(value = "rw_id")
private Long rwId;
/**
* 任务接受人id
*/
@TableField(value = "rwjsr_id")
private Long rwjsrId;
/**
* 任务接受人身份证号
*/
@TableField(value = "rwjsrsfzh")
private String rwjsrsfzh;
/**
* 任务接受人姓名
*/
@TableField(value = "rwjsrxm")
private String rwjsrxm;
/**
* 任务接受人单位id
*/
@TableField(value = "rwjsrdw_id")
private Long rwjsrdwId;
/**
* 任务接受人单位
*/
@TableField(value = "rwjsrdw")
private String rwjsrdw;
/**
* 任务接受人部门id
*/
@TableField(value = "rwjsrbm_id")
private Long rwjsrbmId;
/**
* 任务接受人部门名称
*/
@TableField(value = "rwjsrbmmc")
private String rwjsrbmmc;
/**
* 任务状态 0.未查看 1.已查看 2.已完成
*/
@TableField(value = "rwzt")
private Integer rwzt;
/**
* 任务制定时间
*/
@TableField(value = "rwzdsj")
private LocalDateTime rwzdsj;
/**
* 任务查看时间
*/
@TableField(value = "rwcksj")
private LocalDateTime rwcksj;
/**
* 任务完成时间
*/
@TableField(value = "rwwcsj")
private LocalDateTime rwwcsj;
/**
* 备注
*/
@TableField(value = "bz")
private String bz;
/**
* 注销标志0正常 1.注销
*/
@TableField(value = "xt_zxbz")
private Integer xtZxbz;
/**
* 注销原因
*/
@TableField(value = "xt_zxyy")
private String xtZxyy;
/**
* 采集时间
*/
@TableField(value = "xt_cjsj")
private LocalDateTime xtCjsj;
/**
* 录入时间
*/
@TableField(value = "xt_lrsj")
private LocalDateTime xtLrsj;
/**
* 录入人姓名
*/
@TableField(value = "xt_lrrxm")
private String xtLrrxm;
/**
* 录入人id
*/
@TableField(value = "xt_lrrid")
private Long xt_lrrid;
/**
* 录入人部门
*/
@TableField(value = "xt_lrrbm")
private String xtLrrbm;
/**
* 录入人部门id
*/
@TableField(value = "xt_lrrbmid")
private String xtLrrbmid;
/**
* 录入人部门id
*/
@TableField(value = "xt_lrip")
private String xtLrip;
/**
* 最后修改时间
*/
@TableField(value = "xt_zhxgsj")
private LocalDateTime xtZhxgsj;
/**
* 最后修改人姓名
*/
@TableField(value = "xt_zhxgrxm")
private String xtZhxgrxm;
/**
* 最后修改人id
*/
@TableField(value = "xt_zhxgid")
private Long xtZhxgid;
/**
* 最后修改人部门
*/
@TableField(value = "xt_zhxgrbm")
private String xtZhxgrbm;
/**
* 最后修改人部门id
*/
@TableField(value = "xt_zhxgrbmid")
private Long xtZhxgrbmid;
/**
* 最后修改人ip
*/
@TableField(value = "xt_zhxgrip")
private String xtZhxgrip;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,58 @@
package com.mosty.common.task.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
* 任务日志表
* @TableName sys_task_log
*/
@TableName(value ="sys_task_log")
@Data
public class SysTaskLog implements Serializable {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 任务下发处置表id
*/
@TableField(value = "task_item_id")
private Long taskItemId;
/**
* 任务id
*/
@TableField(value = "rw_id")
private Long rwId;
/**
* 任务接受人id
*/
@TableField(value = "rwjsr_id")
private Long rwjsrId;
/**
* 任务处置时间
*/
@TableField(value = "rwczsj")
private LocalDateTime rwczsj;
/**
* 任务处置状态
*/
@TableField(value = "rwczzt")
private Integer rwczzt;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,30 @@
package com.mosty.common.task.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
@Accessors(chain = true)
public class AddSysTaskDeptVO implements Serializable {
@ApiModelProperty("任务接受部门编码, 执行类型为部门时 必传" )
private Long deptCode;
/**
* 任务接受部门单位id
*/
@ApiModelProperty("任务接受人单位id 执行类型为部门时 必传")
private Long companyId;
/**
* 任务接受部门单位名称
*/
@ApiModelProperty("任务接受人单位名称 执行类型为部门时 必传")
private String companyName;
}

View File

@ -0,0 +1,41 @@
package com.mosty.common.task.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@Accessors(chain = true)
public class AddSysTaskUserInfoVO implements Serializable {
/**
* 身份证号
*/
@ApiModelProperty("身份证号")
@NotNull(message = "身份证号")
private String idCardNo;
/**
* 任务接受人单位id
*/
@ApiModelProperty("任务接受人单位id")
@NotNull(message = "任务接受人单位id")
private Long companyId;
/**
* 任务接受人单位名称
*/
@ApiModelProperty("任务接受人单位名称")
private String companyName;
}

View File

@ -0,0 +1,166 @@
package com.mosty.common.task.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Accessors(chain = true)
public class AddSysTaskVO implements Serializable {
/**
* 应用id
*/
@ApiModelProperty("应用id")
@NotNull(message = "应用id不能为空")
private Long appId;
/**
* 任务类型
*/
@ApiModelProperty("任务类型 1 核实任务 2。预警指令")
@NotNull(message = "任务类型不能为空")
private String rwlx;
/**
* 执行类型
*/
@ApiModelProperty("执行类型 1用户 2部门")
@NotNull(message = "执行类型不能为空")
private Integer zxlx;
/**
* 任务紧急程度
*/
@ApiModelProperty("任务紧急程度")
@NotNull(message = "任务紧急程度不能为空")
private String rwjjcd;
/**
* 任务名称
*/
@ApiModelProperty("任务名称")
@NotBlank(message = "任务名称不能为空")
private String rwmc;
/**
* 任务内容
*/
@ApiModelProperty("任务内容")
@NotBlank(message = "任务内容不能为空")
private String rwnr;
/**
* 任务制定时间
*/
@ApiModelProperty("任务制定时间")
private LocalDateTime rwzdsj;
/**
* 任务要求完成时间
*/
@ApiModelProperty("任务要求完成时间")
private LocalDateTime rwyqwcsj;
/**
* 任务创建人ID
*/
@ApiModelProperty("任务创建人ID")
private Long rwcjrId;
/**
* 任务创建人身份证号
*/
@ApiModelProperty("任务创建人身份证号")
private String rwcjrsfzh;
/**
* 任务创建人姓名
*/
@ApiModelProperty("任务创建人姓名")
private String rwcjrxm;
/**
* 任务创建人单位
*/
@ApiModelProperty("任务创建人单位")
private String rwcjrdw;
/**
* 任务创建人部门id
*/
@ApiModelProperty("任务创建人部门id")
private Long rwcjrbmId;
/**
* 任务创建人部门名称
*/
@ApiModelProperty("任务创建人部门名称")
private String rwcjrbmmc;
/**
* 任务创建人单位id
*/
@ApiModelProperty("任务创建人单位id")
private Long rwcjrdwId;
/**
* 任务创建人电话
*/
@ApiModelProperty("任务创建人电话")
private String rwcjrdh;
/**
* 任务创建规则 1.单人任务 2.多人任务
*/
@ApiModelProperty("任务创建规则 1.单人任务 2.多人任务")
private Integer rwcjrgz;
/**
* 任务来源系统
*/
@ApiModelProperty("任务来源系统 1 智能安防2。公共安全监管 3。三级指挥")
@NotNull(message = "任务来源系统不能为空 1 智能安防2。公共安全监管 3。三级指挥" )
private String rwlyxt;
/**
* 任务来源id
*/
@ApiModelProperty("任务来源id ")
private String rwlyId;
/**
* 任务url
*/
@ApiModelProperty("任务url")
private String rwUrl;
/**
* 任务终端
*/
@ApiModelProperty("任务终端 1,安卓 2 H5 ")
@NotNull(message = "任务终端不能为空 1")
private String rwzd;
/**
* 备注
*/
private String bz;
/**
* 执行类型为用户时 必穿
*/
@ApiModelProperty("执行类型为用户时 必传 任务接受人信息")
private List<AddSysTaskUserInfoVO> UserInfos;
/**
* 执行类型为用户时 必穿
*/
@ApiModelProperty("执行类型为部门时 必传 任务接受部门信息")
private List<AddSysTaskDeptVO> deptVOS;
}

View File

@ -0,0 +1,15 @@
package com.mosty.common.task.entity.vo;
import com.mosty.common.token.UserInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class DetailSysTaskVO implements Serializable {
@ApiModelProperty(value = "下发任务id",required = true)
private Long taskItemId;
@ApiModelProperty(value ="操作人身份证",required = true)
private String idCardNo;
}

View File

@ -0,0 +1,25 @@
package com.mosty.common.task.entity.vo;
import com.mosty.common.token.UserInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class FinishSysTaskVO implements Serializable {
@ApiModelProperty(value = "下发任务id")
private Long taskItemId;
@ApiModelProperty(value ="操作人身份证",required = true)
@NotBlank(message="操作人身份证不能为空")
private String idCardNo;
@ApiModelProperty(value = "来源任务id",required = true)
@NotBlank(message = "来源系统id不能为空")
private String lyxtId;
@ApiModelProperty(value ="部门编码")
private String deptCode;
}

View File

@ -0,0 +1,28 @@
package com.mosty.common.task.entity.vo;
import cn.hutool.db.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@Accessors(chain = true)
public class QueryTaskLogVO implements Serializable {
/**
* 身份证号
*/
@ApiModelProperty(value = "用户id",required = true)
private Long userId;
/**
* 任务id
*/
@ApiModelProperty("任务id")
private Long rwId;
/**
* 下发任务id
*/
@ApiModelProperty("下发任务id")
private Long taskItemId;
}

View File

@ -0,0 +1,69 @@
package com.mosty.common.task.entity.vo;
import cn.hutool.db.Page;
import com.mosty.common.token.UserInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@Accessors(chain = true)
public class QueryTaskVO extends Page implements Serializable {
/**
* 身份证号
*/
@ApiModelProperty(value = "身份证号",required = true)
@NotBlank(message = "身份证号不能为空")
private String idCardNo;
/**
* 部门编码
*/
@ApiModelProperty(value = "部门编码获取不到部门id传编码",required = true)
private Long deptCode;
/**
* 部门id
*/
@ApiModelProperty(value = "部门编码",required = true)
private Long deptId;
/**
* 任务名称
*/
@ApiModelProperty("任务名称")
private String taskName;
/**
* 任务状态 0 未查看 1已查看 2已完成
*/
@ApiModelProperty("任务状态 0 未查看 1已查看 2已完成")
private Integer taskStatus;
/**
* 任务来源
*/
@ApiModelProperty("任务来源 01_智能安防社区 02_公共安全监管 03_三级指挥")
private Integer source;
/**
* 任务类型
*/
@ApiModelProperty("任务类型 01 核实任务 02 预警指令")
private Integer taskType;
/**
* 任务开始时间
*/
@ApiModelProperty("任务开始时间")
private LocalDateTime startTime;
/**
* 任务结束时间
*/
@ApiModelProperty("任务结束时间")
private LocalDateTime endTime;
}

View File

@ -0,0 +1,14 @@
package com.mosty.common.task.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class SysTaskCountGroup implements Serializable {
@ApiModelProperty("任务类型")
private String rwlx;
@ApiModelProperty("数量")
private Long count;
}

View File

@ -0,0 +1,14 @@
package com.mosty.common.task.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class SysTaskCountToday implements Serializable {
@ApiModelProperty("完成数量")
private Long finishCount;
@ApiModelProperty("未完成数量")
private Long unFinishCount;
}

View File

@ -0,0 +1,78 @@
package com.mosty.common.task.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Transient;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Accessors(chain = true)
public class SysTaskItemVO implements Serializable {
private Long id;
/**
* 任务来源id
*/
@ApiModelProperty("任务来源id")
private String rwlyId;
/**
* 任务类型
*/
@ApiModelProperty("任务类型")
private String rwlx;
/**
* 任务类型描述
*/
@ApiModelProperty("任务类型描述")
private String rwlxDesc;
/**
* 任务名称
*/
@ApiModelProperty("任务名称")
private String rwmc;
/**
* 任务内容
*/
@ApiModelProperty("任务内容")
private String rwnr;
/**
* 任务Url
*/
@ApiModelProperty("任务Url")
private String rwurl;
/**
* 身份证号
*/
@ApiModelProperty("身份证号")
private String idCardNo;
/**
* 任务内容
*/
@ApiModelProperty("任务来源系统")
private String rwlyxt;
/**
* 任务要求完成时间
*/
@ApiModelProperty(value = "任务要求完成时间")
private LocalDateTime rwyqwcsj;
/**
* 任务日志
*/
@ApiModelProperty("任务日志")
private List<SysTaskLogVO> logs;
}

View File

@ -0,0 +1,16 @@
package com.mosty.common.task.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class SysTaskLineChartVO implements Serializable {
@ApiModelProperty("序号:月 1 -12 日期 近七天 例子4-11")
private String no;
@ApiModelProperty("数量")
private Long count;
}

View File

@ -0,0 +1,29 @@
package com.mosty.common.task.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class SysTaskLogVO implements Serializable {
/**
* 任务处置时间
*/
@ApiModelProperty(value = "任务处置时间")
private LocalDateTime rwczsj;
/**
* 任务处置状态
*/
@ApiModelProperty(value = "rwczzt")
private Integer rwczzt;
/**
* 任务处置状态
*/
@ApiModelProperty(value = "任务处置状态")
private String rwczztDesc;
}

View File

@ -0,0 +1,17 @@
package com.mosty.common.task.mapper;
import com.mosty.common.task.entity.SysTaskItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author liyan
* @description 针对表【sys_task_item(任务下发表)】的数据库操作Mapper
* @createDate 2022-04-21 21:34:04
*/
public interface SysTaskItemMapper extends BaseMapper<SysTaskItem> {
}

View File

@ -0,0 +1,17 @@
package com.mosty.common.task.mapper;
import com.mosty.common.task.entity.SysTaskLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author liyan
* @description 针对表【sys_task_log(任务日志表)】的数据库操作Mapper
* @createDate 2022-04-21 21:34:09
*/
public interface SysTaskLogMapper extends BaseMapper<SysTaskLog> {
}

View File

@ -0,0 +1,40 @@
package com.mosty.common.task.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.common.task.entity.SysTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mosty.common.task.entity.vo.QueryTaskVO;
import com.mosty.common.task.entity.vo.SysTaskItemVO;
import org.apache.ibatis.annotations.Param;
/**
* @author liyan
* @description 针对表【sys_task(任务表)】的数据库操作Mapper
* @createDate 2022-04-21 21:31:14
*/
public interface SysTaskMapper extends BaseMapper<SysTask> {
/**
* 分页查询
* @param queryTaskVO
* @return
*/
IPage<SysTaskItemVO> findByList(IPage<SysTaskItemVO> page,@Param("param") QueryTaskVO queryTaskVO);
/**
* 根据条件查询 执行类型为用户的任务数量
* @param queryTaskVO
* @return
*/
Long countByUser(@Param("param") QueryTaskVO queryTaskVO);
/**
* 执行类型为部门 查询对应条件的数量
* @param queryTaskVO
* @return
*/
Long countByDept(@Param("param") QueryTaskVO queryTaskVO);
}

View File

@ -0,0 +1,13 @@
package com.mosty.common.task.service;
import com.mosty.common.task.entity.SysTaskItem;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author liyan
* @description 针对表【sys_task_item(任务下发表)】的数据库操作Service
* @createDate 2022-04-21 21:34:04
*/
public interface SysTaskItemService extends IService<SysTaskItem> {
}

View File

@ -0,0 +1,13 @@
package com.mosty.common.task.service;
import com.mosty.common.task.entity.SysTaskLog;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author liyan
* @description 针对表【sys_task_log(任务日志表)】的数据库操作Service
* @createDate 2022-04-21 21:34:09
*/
public interface SysTaskLogService extends IService<SysTaskLog> {
}

View File

@ -0,0 +1,84 @@
package com.mosty.common.task.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.common.task.entity.SysTask;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mosty.common.task.entity.vo.*;
import java.util.List;
/**
* @author liyan
* @description 针对表【sys_task(任务表)】的数据库操作Service
* @createDate 2022-04-21 21:31:14
*/
public interface SysTaskService extends IService<SysTask> {
/**
* 保存下发任务
* @param addSysTaskVO
* @param ipAddress
*/
void saveInfo(AddSysTaskVO addSysTaskVO, String ipAddress);
/**
* 查看任务详情
* @param detailSysTaskVO
* @param ipAddress
* @return
*/
SysTask detail(DetailSysTaskVO detailSysTaskVO, String ipAddress);
/**
* 完成回调
* @param finishSysTaskVO
* @param ipAddress
*/
void finish(FinishSysTaskVO finishSysTaskVO, String ipAddress);
/**
* 分页查询
* @param queryTaskVO
* @return
*/
IPage<SysTaskItemVO> findByList(QueryTaskVO queryTaskVO);
/**
* 查询对应的日志
* @param queryTaskLogVO
* @return
*/
List<SysTaskLogVO> findLogByList(QueryTaskLogVO queryTaskLogVO);
/**
* 查询任务数量根据条件
* @param queryTaskVO
* @return
*/
Long countByQuery(QueryTaskVO queryTaskVO);
/**
* 查询当天的任务数据
* @return
*/
SysTaskCountToday todayCount();
/**
* 查询全部统计数据
* @return
*/
SysTaskCountToday allCount();
/**
* 根据类型统计数据
* @param countType
* @return
*/
List<SysTaskCountGroup> groupCount(Integer countType);
/**
* 获取折线图数据
* @param lineChartType
* @return
*/
List<SysTaskLineChartVO> lineChart(Integer lineChartType);
}

View File

@ -0,0 +1,22 @@
package com.mosty.common.task.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mosty.common.task.entity.SysTaskItem;
import com.mosty.common.task.service.SysTaskItemService;
import com.mosty.common.task.mapper.SysTaskItemMapper;
import org.springframework.stereotype.Service;
/**
* @author liyan
* @description 针对表【sys_task_item(任务下发表)】的数据库操作Service实现
* @createDate 2022-04-21 21:34:04
*/
@Service
public class SysTaskItemServiceImpl extends ServiceImpl<SysTaskItemMapper, SysTaskItem>
implements SysTaskItemService{
}

View File

@ -0,0 +1,22 @@
package com.mosty.common.task.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mosty.common.task.entity.SysTaskLog;
import com.mosty.common.task.service.SysTaskLogService;
import com.mosty.common.task.mapper.SysTaskLogMapper;
import org.springframework.stereotype.Service;
/**
* @author liyan
* @description 针对表【sys_task_log(任务日志表)】的数据库操作Service实现
* @createDate 2022-04-21 21:34:09
*/
@Service
public class SysTaskLogServiceImpl extends ServiceImpl<SysTaskLogMapper, SysTaskLog>
implements SysTaskLogService{
}

View File

@ -0,0 +1,515 @@
package com.mosty.common.task.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.mosty.common.base.constant.enums.DeletedEnum;
import com.mosty.common.base.exception.Asserts;
import com.mosty.common.base.util.DateUtils;
import com.mosty.common.base.util.LocalDateTimeUtils;
import com.mosty.common.base.util.StringUtils;
import com.mosty.common.core.business.entity.SysDept;
import com.mosty.common.core.business.entity.SysUser;
import com.mosty.common.core.business.service.SysDeptService;
import com.mosty.common.core.business.service.SysUserService;
import com.mosty.common.core.login.dto.DeptDTO;
import com.mosty.common.task.constant.enums.*;
import com.mosty.common.task.entity.SysTask;
import com.mosty.common.task.entity.SysTaskItem;
import com.mosty.common.task.entity.SysTaskLog;
import com.mosty.common.task.entity.vo.*;
import com.mosty.common.task.service.SysTaskItemService;
import com.mosty.common.task.service.SysTaskLogService;
import com.mosty.common.task.service.SysTaskService;
import com.mosty.common.task.mapper.SysTaskMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author liyan
* @description 针对表【sys_task(任务表)】的数据库操作Service实现
* @createDate 2022-04-21 21:31:14
*/
@Service
public class SysTaskServiceImpl extends ServiceImpl<SysTaskMapper, SysTask>
implements SysTaskService {
@Resource
private SysTaskMapper sysTaskMapper;
@Resource
private SysTaskItemService sysTaskItemService;
@Resource
private SysTaskLogService sysTaskLogService;
@Resource
private SysUserService userService;
@Resource
private SysDeptService sysDeptService;
@Override
public IPage<SysTaskItemVO> findByList(QueryTaskVO queryTaskVO) {
String idCardNo = queryTaskVO.getIdCardNo();
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id_entity_card", idCardNo);
SysUser sysUser = userService.getBaseMapper().selectOne(queryWrapper);
Asserts.check(sysUser == null, "身份证 %s 对应的用户不存在!", idCardNo);
List<DeptDTO> deptList = sysDeptService.selectUserDeptList(sysUser.getId());
Asserts.check(CollectionUtils.isEmpty(deptList), "身份证 %s 没有绑定部门!", idCardNo);
DeptDTO deptDTO = deptList.get(0);
if (Objects.nonNull(deptDTO)) {
queryTaskVO.setDeptId(deptDTO.getDeptId());
}
IPage<SysTaskItemVO> page = new Page<>(queryTaskVO.getPageNumber(), queryTaskVO.getPageSize());
IPage<SysTaskItemVO> result = sysTaskMapper.findByList(page, queryTaskVO);
if (CollectionUtils.isNotEmpty(result.getRecords())) {
List<SysTaskItemVO> records = result.getRecords();
records.forEach(sysTaskItemVO -> {
sysTaskItemVO.setRwlxDesc(TaskTypeEnum.getEnum(sysTaskItemVO.getRwlx()).desc);
});
getLogs(records);
result.setRecords(records);
}
return result;
}
@Override
public List<SysTaskLogVO> findLogByList(QueryTaskLogVO queryTaskLogVO) {
LambdaQueryWrapper<SysTaskLog> logQueryWrapper = new LambdaQueryWrapper<>();
if (Objects.nonNull(queryTaskLogVO.getTaskItemId())) {
logQueryWrapper.eq(SysTaskLog::getTaskItemId, queryTaskLogVO.getTaskItemId());
}
if (Objects.nonNull(queryTaskLogVO.getRwId())) {
logQueryWrapper.eq(SysTaskLog::getRwId, queryTaskLogVO.getRwId());
}
if (Objects.nonNull(queryTaskLogVO.getUserId())) {
logQueryWrapper.eq(SysTaskLog::getRwjsrId, queryTaskLogVO.getUserId());
}
List<SysTaskLog> list = sysTaskLogService.list(logQueryWrapper);
List<SysTaskLogVO> sysTaskLogVOS = BeanUtil.copyToList(list, SysTaskLogVO.class);
return sysTaskLogVOS;
}
@Override
public Long countByQuery(QueryTaskVO queryTaskVO) {
String idCardNo = queryTaskVO.getIdCardNo();
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id_entity_card", idCardNo);
queryWrapper.eq("xt_zxbz",DeletedEnum.NATURE.code);
SysUser sysUser = userService.getBaseMapper().selectOne(queryWrapper);
Asserts.check(sysUser == null, "身份证 %s 对应的用户不存在!", idCardNo);
List<DeptDTO> deptList = sysDeptService.selectUserDeptList(sysUser.getId());
Asserts.check(CollectionUtils.isEmpty(deptList), "身份证 %s 没有绑定部门!", idCardNo);
DeptDTO deptDTO = deptList.get(0);
if (Objects.nonNull(deptDTO)) {
queryTaskVO.setDeptId(deptDTO.getDeptId());
}
//查询
Long count = sysTaskMapper.countByUser(queryTaskVO);
Long deptCount = sysTaskMapper.countByDept(queryTaskVO);
return deptCount + count;
}
@Override
public SysTaskCountToday todayCount() {
long unFinish = this.count(new LambdaQueryWrapper<SysTask>()
.eq(SysTask::getRwzxzt, ExecuteStatusEnum.UNFINISH.code).between(SysTask::getRwzdsj,
LocalDateTimeUtils.todayStart(), LocalDateTimeUtils.todayEnd()));
long finish = this.count(new LambdaQueryWrapper<SysTask>()
.eq(SysTask::getRwzxzt, ExecuteStatusEnum.FINISH.code).between(SysTask::getRwzdsj,
LocalDateTimeUtils.todayStart(), LocalDateTimeUtils.todayEnd()));
SysTaskCountToday today = new SysTaskCountToday();
today.setFinishCount(finish);
today.setUnFinishCount(unFinish);
return today;
}
@Override
public SysTaskCountToday allCount() {
long unFinish = this.count(new LambdaQueryWrapper<SysTask>()
.eq(SysTask::getRwzxzt, ExecuteStatusEnum.UNFINISH.code));
long finish = this.count(new LambdaQueryWrapper<SysTask>()
.eq(SysTask::getRwzxzt, ExecuteStatusEnum.FINISH.code));
SysTaskCountToday today = new SysTaskCountToday();
today.setFinishCount(finish);
today.setUnFinishCount(unFinish);
return today;
}
@Override
public List<SysTaskCountGroup> groupCount(Integer countType) {
List<SysTaskCountGroup> groupList = new ArrayList<>();
initGroupList(groupList);
if (GroupCountTypeEnum.ALL.code.equals(countType)) {
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>());
Map<String, List<SysTask>> typeMap = list.stream().collect(Collectors.groupingBy(SysTask::getRwlx));
groupList.forEach(item -> {
if (typeMap.containsKey(item.getRwlx())){
item.setCount( Long.valueOf(typeMap.get(item.getRwlx()).size()));
}
});
}
if (GroupCountTypeEnum.TODAY.code.equals(countType)) {
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().between(SysTask::getRwzdsj,
LocalDateTimeUtils.todayStart(), LocalDateTimeUtils.todayEnd()));
Map<String, List<SysTask>> typeMap = list.stream().collect(Collectors.groupingBy(SysTask::getRwlx));
groupList.forEach(item -> {
if (typeMap.containsKey(item.getRwlx())){
item.setCount( Long.valueOf(typeMap.get(item.getRwlx()).size()));
}
});
}
if (GroupCountTypeEnum.WEEK.code.equals(countType)) {
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().between(SysTask::getRwzdsj,
LocalDateTimeUtils.daysStart(7), LocalDateTime.now()));
Map<String, List<SysTask>> typeMap = list.stream().collect(Collectors.groupingBy(SysTask::getRwlx));
groupList.forEach(item -> {
if (typeMap.containsKey(item.getRwlx())){
item.setCount( Long.valueOf(typeMap.get(item.getRwlx()).size()));
}
});
}
if (GroupCountTypeEnum.MONTH.code.equals(countType)) {
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().between(SysTask::getRwzdsj,
LocalDateTimeUtils.daysStart(30), LocalDateTime.now()));
Map<String, List<SysTask>> typeMap = list.stream().collect(Collectors.groupingBy(SysTask::getRwlx));
groupList.forEach(item -> {
if (typeMap.containsKey(item.getRwlx())){
item.setCount( Long.valueOf(typeMap.get(item.getRwlx()).size()));
}
});
}
return groupList;
}
private void initGroupList(List<SysTaskCountGroup> groupList) {
TaskTypeEnum[] values = TaskTypeEnum.values();
for (TaskTypeEnum value : values) {
SysTaskCountGroup group = new SysTaskCountGroup();
group.setCount(0L);
group.setRwlx(value.code);
groupList.add(group);
}
}
@Override
public List<SysTaskLineChartVO> lineChart(Integer lineChartType) {
if (LineChartTypeEnum.DAY.code.equals(lineChartType)) {
List<SysTaskLineChartVO> sysTaskLineChartVOS = getDay();
sysTaskLineChartVOS.sort(Comparator.comparing(SysTaskLineChartVO::getNo));
return sysTaskLineChartVOS;
} else {
List<SysTaskLineChartVO> sysTaskLineChartVOS = getMonth();
sysTaskLineChartVOS.sort(Comparator.comparing(SysTaskLineChartVO::getNo));
return sysTaskLineChartVOS;
}
}
private List<SysTaskLineChartVO> getMonth() {
List<SysTaskLineChartVO> sysTaskLineChartVOS = new ArrayList<>();
Map<String, Long> monthGroup = getMonthGroup(12);
//获取最近七天的数据
LocalDateTime begin = LocalDateTimeUtils.todayStart().minusYears(1);
LocalDateTime after = LocalDateTimeUtils.todayEnd();
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().between(SysTask::getRwzdsj, begin, after));
Map<String, List<SysTask>> taskMap = list.stream().collect(Collectors.groupingBy(item -> DateUtils.parseDateToStr(DateUtils.YY_MM, DateUtils.LocalDateTimeToDate(item.getRwzdsj()))));
monthGroup.entrySet().forEach(item -> {
SysTaskLineChartVO chartVO = new SysTaskLineChartVO();
if (taskMap.containsKey(item.getKey())) {
List<SysTask> sysTasks = taskMap.get(item.getKey());
chartVO.setNo(item.getKey());
chartVO.setCount(Long.valueOf(sysTasks.size()));
} else {
chartVO.setNo(item.getKey());
chartVO.setCount(0L);
}
sysTaskLineChartVOS.add(chartVO);
});
return sysTaskLineChartVOS;
}
private List<SysTaskLineChartVO> getDay() {
List<SysTaskLineChartVO> sysTaskLineChartVOS = new ArrayList<>();
//获取最近七天的数据
Map<String, Long> dayMap = getDayGroup(7);
LocalDateTime begin = LocalDateTimeUtils.todayStart().minusDays(7);
LocalDateTime after = LocalDateTimeUtils.todayEnd();
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().between(SysTask::getRwzdsj, begin, after));
Map<String, List<SysTask>> taskMap = list.stream().collect(Collectors.groupingBy(item -> DateUtils.parseDateToStr(DateUtils.MM_DD, DateUtils.LocalDateTimeToDate(item.getRwzdsj()))));
dayMap.entrySet().forEach(item -> {
SysTaskLineChartVO chartVO = new SysTaskLineChartVO();
if (taskMap.containsKey(item.getKey())) {
List<SysTask> sysTasks = taskMap.get(item.getKey());
chartVO.setNo(item.getKey());
chartVO.setCount(Long.valueOf(sysTasks.size()));
} else {
chartVO.setNo(item.getKey());
chartVO.setCount(0L);
}
sysTaskLineChartVOS.add(chartVO);
});
return sysTaskLineChartVOS;
}
private Map<String, Long> getDayGroup(Integer dayNum) {
Map<String, Long> map = new HashMap<>();
for (int i = 1; i <= dayNum; i++) {
map.put(DateUtils.parseDateToStr(DateUtils.MM_DD, DateUtils.LocalDateTimeToDate(LocalDateTime.now().minusDays(i))), 0L);
}
return map;
}
private Map<String, Long> getMonthGroup(Integer monthNum) {
Map<String, Long> map = new HashMap<>();
for (int i = 1; i <= monthNum; i++) {
map.put(DateUtils.parseDateToStr(DateUtils.YY_MM, DateUtils.LocalDateTimeToDate(LocalDateTime.now().minusMonths(i))), 0L);
}
return map;
}
/**
* 获取对应任务的日志
*
* @param records
*/
private void getLogs(List<SysTaskItemVO> records) {
List<Long> taskItemIds = records.stream().map(SysTaskItemVO::getId).collect(Collectors.toList());
List<SysTaskLog> list = sysTaskLogService.list(new LambdaQueryWrapper<SysTaskLog>()
.in(SysTaskLog::getTaskItemId, taskItemIds).orderByDesc(SysTaskLog::getRwczsj));
if (CollectionUtils.isNotEmpty(list)) {
Map<Long, List<SysTaskLog>> itemMap =
list.stream().collect(Collectors.groupingBy(SysTaskLog::getTaskItemId));
records.forEach(item -> {
List<SysTaskLog> sysTaskLogs = itemMap.get(item.getId());
List<SysTaskLogVO> sysTaskLogVOS = BeanUtil.copyToList(sysTaskLogs, SysTaskLogVO.class);
sysTaskLogVOS.forEach(log -> {
log.setRwczztDesc(TaskLogStatusEnum.valueOf(log.getRwczzt()).desc);
});
item.setLogs(sysTaskLogVOS);
});
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveInfo(AddSysTaskVO addSysTaskVO, String ipAddress) {
//1.记录任务 如果是执行类型部门,
// 判断规则为单人且下发部门id 不能为空
//如果是执行类型为 人 那么下发用户List不能为空
validInfo(addSysTaskVO);
SysTask sysTask = BeanUtil.copyProperties(addSysTaskVO, SysTask.class);
sysTask.setXtZhxgsj(LocalDateTime.now());
sysTask.setXtCjsj(LocalDateTime.now());
sysTask.setXtLrip(ipAddress);
sysTask.setXtZhxgid(addSysTaskVO.getRwcjrId());
sysTask.setXtZhxgrxm(addSysTaskVO.getRwcjrxm());
sysTask.setXtZhxgrbmid(addSysTaskVO.getRwcjrbmId());
sysTask.setXtZhxgrbm(addSysTaskVO.getRwcjrbmmc());
sysTask.setXtLrsj(LocalDateTime.now());
sysTask.setXtLrrid(addSysTaskVO.getRwcjrId());
sysTask.setXtLrrxm(addSysTaskVO.getRwcjrxm());
sysTask.setXtLrrbmid(addSysTaskVO.getRwcjrbmId());
sysTask.setXtLrrbm(addSysTaskVO.getRwcjrbmmc());
sysTask.setYyId(addSysTaskVO.getAppId());
this.save(sysTask);
//2。下发相关任务
saveItems(addSysTaskVO, sysTask);
}
@Override
@Transactional
public SysTask detail(DetailSysTaskVO detailSysTaskVO, String ipAddress) {
String idCardNo = detailSysTaskVO.getIdCardNo();
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id_entity_card", idCardNo);
SysUser sysUser = userService.getBaseMapper().selectOne(queryWrapper);
Asserts.check(sysUser == null, "身份证 %s 对应的用户不存在!", idCardNo);
List<DeptDTO> deptList = sysDeptService.selectUserDeptList(sysUser.getId());
DeptDTO deptDTO = deptList.get(0);
//1。更新对应任务下发表为已查看
SysTaskItem taskItem = sysTaskItemService.getById(detailSysTaskVO.getTaskItemId());
if (TaskItemStatusEnum.NOTVIEWED.code.equals(taskItem.getRwzt())) {
taskItem.setRwcksj(LocalDateTime.now());
taskItem.setRwzt(TaskItemStatusEnum.VIEWED.code);
taskItem.setXtZxbz(DeletedEnum.NATURE.code);
taskItem.setXtZhxgsj(LocalDateTime.now());
taskItem.setXtLrip(ipAddress);
taskItem.setXtZhxgid(sysUser.getId());
taskItem.setXtZhxgrxm(sysUser.getUserName());
taskItem.setXtZhxgrbmid(deptDTO.getDeptId());
taskItem.setXtZhxgrbm(deptDTO.getDeptName());
sysTaskItemService.updateById(taskItem);
}
//2。插入日志
SysTaskLog log = new SysTaskLog();
log.setRwId(taskItem.getRwId());
log.setRwjsrId(sysUser.getId());
log.setTaskItemId(taskItem.getId());
log.setRwczsj(LocalDateTime.now());
log.setRwczzt(TaskItemStatusEnum.VIEWED.code);
sysTaskLogService.save(log);
//返回任务详情
SysTask task = this.getById(taskItem.getRwId());
task.setId(detailSysTaskVO.getTaskItemId());
return task;
}
@Override
@Transactional
public void finish(FinishSysTaskVO finishSysTaskVO, String ipAddress) {
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().eq(SysTask::getRwlyId, finishSysTaskVO.getLyxtId()));
if (CollectionUtils.isEmpty(list)){
Asserts.check(true, "没有查到对应任务", finishSysTaskVO.getLyxtId());
}
SysTask sourceTask = list.get(0);
//1。更新对应任务下发表为完成
String idCardNo = finishSysTaskVO.getIdCardNo();
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id_entity_card", idCardNo);
SysUser sysUser = userService.getBaseMapper().selectOne(queryWrapper);
Asserts.check(sysUser == null, "身份证 %s 对应的用户不存在!", idCardNo);
List<DeptDTO> deptList = sysDeptService.selectUserDeptList(sysUser.getId());
DeptDTO deptDTO = deptList.get(0);
SysTaskItem taskItem =null;
if (ExecuteTypeEnum.USER.code.equals(sourceTask.getZxlx())){
taskItem = sysTaskItemService.getOne(new LambdaQueryWrapper<SysTaskItem>()
.eq(SysTaskItem::getRwId, sourceTask.getId()).eq(SysTaskItem::getRwjsrsfzh, idCardNo));
}else{
Asserts.check(StringUtils.isBlank(finishSysTaskVO.getDeptCode()), "任务类型为部门时部门编码不能为空", finishSysTaskVO.getDeptCode());
SysDept sysDept = sysDeptService.getOne(new LambdaQueryWrapper<SysDept>()
.eq(SysDept::getOrgCode, finishSysTaskVO.getDeptCode())
.eq(SysDept::getXtZxbz, DeletedEnum.NATURE.code));
Asserts.check(sysDept == null, "部门编码 %s 对应的部门不存在!", finishSysTaskVO.getDeptCode());
taskItem = sysTaskItemService.getOne(new LambdaQueryWrapper<SysTaskItem>()
.eq(SysTaskItem::getRwId, sourceTask.getId()).eq(SysTaskItem::getRwjsrbmId,sysDept.getId()));
}
Asserts.check(TaskItemStatusEnum.FINISH.code.equals(taskItem.getRwzt()), "该任务已经完成,请勿重复完成");
taskItem.setRwwcsj(LocalDateTime.now());
taskItem.setRwzt(TaskItemStatusEnum.FINISH.code);
taskItem.setXtZhxgsj(LocalDateTime.now());
taskItem.setXtLrip(ipAddress);
taskItem.setXtZhxgid(sysUser.getId());
taskItem.setXtZhxgrxm(sysUser.getUserName());
taskItem.setXtZhxgrbmid(deptDTO.getDeptId());
taskItem.setXtZhxgrbm(deptDTO.getDeptName());
sysTaskItemService.updateById(taskItem);
//2。插入日志
SysTaskLog log = new SysTaskLog();
log.setRwId(taskItem.getRwId());
log.setRwjsrId(sysUser.getId());
log.setTaskItemId(taskItem.getId());
log.setRwczsj(LocalDateTime.now());
log.setRwczzt(TaskItemStatusEnum.FINISH.code);
sysTaskLogService.save(log);
//3 判断任务是否执行完成
SysTask task = this.getById(taskItem.getRwId());
if (ExecuteTypeEnum.DEPT.code.equals(task.getZxlx()) || RuleTypeEnum.ONE.code.equals(task.getRwcjrgz())) {
task.setRwzxzt(2);
task.setXtZhxgsj(LocalDateTime.now());
task.setXtLrip(ipAddress);
task.setXtZhxgid(sysUser.getId());
task.setXtZhxgrxm(sysUser.getUserName());
task.setXtZhxgrbmid(deptDTO.getDeptId());
task.setXtZhxgrbm(deptDTO.getDeptName());
this.updateById(task);
} else {
int count = sysTaskItemService.count(new LambdaQueryWrapper<SysTaskItem>()
.ne(SysTaskItem::getId, finishSysTaskVO.getTaskItemId()).ne(SysTaskItem::getRwzt, TaskItemStatusEnum.FINISH.code));
if (count == 0) {
task.setRwzxzt(2);
task.setXtZhxgsj(LocalDateTime.now());
task.setXtLrip(ipAddress);
task.setXtZhxgid(sysUser.getId());
task.setXtZhxgrxm(sysUser.getUserName());
task.setXtZhxgrbmid(deptDTO.getDeptId());
task.setXtZhxgrbm(deptDTO.getDeptName());
this.updateById(task);
}
}
}
private void saveItems(AddSysTaskVO addSysTaskVO, SysTask sysTask) {
List<SysTaskLog> logs = new ArrayList<>();
if (ExecuteTypeEnum.USER.code.equals(addSysTaskVO.getZxlx())) {
List<AddSysTaskUserInfoVO> userInfos = addSysTaskVO.getUserInfos();
userInfos.forEach(item -> {
SysTaskItem taskItem = new SysTaskItem();
taskItem.setRwId(sysTask.getId());
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id_entity_card", item.getIdCardNo());
SysUser sysUser = userService.getBaseMapper().selectOne(queryWrapper);
Asserts.check(sysUser == null, "身份证 %s 对应的用户不存在!", item.getIdCardNo());
taskItem.setRwjsrId(sysUser.getId());
List<DeptDTO> deptList = sysDeptService.selectUserDeptList(sysUser.getId());
DeptDTO deptDTO = deptList.get(0);
taskItem.setRwjsrbmId(deptDTO.getDeptId());
taskItem.setRwjsrbmmc(deptDTO.getDeptName());
taskItem.setRwjsrdw(item.getCompanyName());
taskItem.setRwjsrdwId(item.getCompanyId());
taskItem.setRwjsrxm(sysUser.getUserName());
taskItem.setRwjsrsfzh(sysUser.getIdEntityCard());
sysTaskItemService.save(taskItem);
SysTaskLog log = new SysTaskLog();
log.setRwId(sysTask.getId());
log.setRwjsrId(sysUser.getId());
log.setTaskItemId(taskItem.getId());
log.setRwczsj(LocalDateTime.now());
log.setRwczzt(TaskItemStatusEnum.NOTVIEWED.code);
logs.add(log);
});
} else {
List<AddSysTaskDeptVO> deptVOS = addSysTaskVO.getDeptVOS();
deptVOS.forEach(item -> {
SysTaskItem taskItem = new SysTaskItem();
taskItem.setRwId(sysTask.getId());
SysDept one = sysDeptService.getOne(new LambdaQueryWrapper<SysDept>()
.eq(SysDept::getOrgCode, item.getDeptCode())
.eq(SysDept::getXtZxbz, DeletedEnum.NATURE.code));
taskItem.setRwjsrbmId(one.getId());
taskItem.setRwjsrdw(item.getCompanyName());
taskItem.setRwjsrdwId(item.getCompanyId());
sysTaskItemService.save(taskItem);
SysTaskLog log = new SysTaskLog();
log.setRwId(sysTask.getId());
log.setTaskItemId(taskItem.getId());
log.setRwczsj(LocalDateTime.now());
log.setRwczzt(TaskItemStatusEnum.NOTVIEWED.code);
logs.add(log);
});
}
sysTaskLogService.saveBatch(logs);
}
private void validInfo(AddSysTaskVO addSysTaskVO) {
Asserts.check(ExecuteTypeEnum.USER.code.equals(addSysTaskVO.getZxlx())
&& CollectionUtil.isEmpty(addSysTaskVO.getUserInfos()), "执行类型为用户用户信息为不能为空");
Asserts.check(ExecuteTypeEnum.DEPT.code.equals(addSysTaskVO.getZxlx())
&& CollectionUtil.isEmpty(addSysTaskVO.getDeptVOS()), "执行类型为部门,部门信息为不能为空");
}
}

View File

@ -0,0 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.mosty.common.task.TaskAutoConfiguration

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mosty.common.task.mapper.SysTaskItemMapper">
<resultMap id="BaseResultMap" type="com.mosty.common.task.entity.SysTaskItem">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="rw_id" column="rw_id" jdbcType="BIGINT"/>
<result property="rwjsr_id" column="rwjsr_id" jdbcType="BIGINT"/>
<result property="rwjsrsfzh" column="rwjsrsfzh" jdbcType="VARCHAR"/>
<result property="rwjsrxm" column="rwjsrxm" jdbcType="VARCHAR"/>
<result property="rwjsrdw_id" column="rwjsrdw_id" jdbcType="BIGINT"/>
<result property="rwjsrdw" column="rwjsrdw" jdbcType="VARCHAR"/>
<result property="rwjsrbm_id" column="rwjsrbm_id" jdbcType="BIGINT"/>
<result property="rwjsrbmmc" column="rwjsrbmmc" jdbcType="VARCHAR"/>
<result property="rwzt" column="rwzt" jdbcType="INTEGER"/>
<result property="rwzdsj" column="rwzdsj" jdbcType="TIMESTAMP"/>
<result property="rwcksj" column="rwcksj" jdbcType="TIMESTAMP"/>
<result property="rwwcsj" column="rwwcsj" jdbcType="TIMESTAMP"/>
<result property="bz" column="bz" jdbcType="VARCHAR"/>
<result property="xt_zxbz" column="xt_zxbz" jdbcType="INTEGER"/>
<result property="xt_zxyy" column="xt_zxyy" jdbcType="VARCHAR"/>
<result property="xt_cjsj" column="xt_cjsj" jdbcType="TIMESTAMP"/>
<result property="xt_lrsj" column="xt_lrsj" jdbcType="TIMESTAMP"/>
<result property="xt_lrrxm" column="xt_lrrxm" jdbcType="VARCHAR"/>
<result property="xt_lrrid" column="xt_lrrid" jdbcType="BIGINT"/>
<result property="xt_lrrbm" column="xt_lrrbm" jdbcType="VARCHAR"/>
<result property="xt_lrrbmid" column="xt_lrrbmid" jdbcType="VARCHAR"/>
<result property="xt_lrip" column="xt_lrip" jdbcType="VARCHAR"/>
<result property="xt_zhxgsj" column="xt_zhxgsj" jdbcType="TIMESTAMP"/>
<result property="xt_zhxgrxm" column="xt_zhxgrxm" jdbcType="VARCHAR"/>
<result property="xt_zhxgid" column="xt_zhxgid" jdbcType="BIGINT"/>
<result property="xt_zhxgrbm" column="xt_zhxgrbm" jdbcType="VARCHAR"/>
<result property="xt_zhxgrbmid" column="xt_zhxgrbmid" jdbcType="BIGINT"/>
<result property="xt_zhxgrip" column="xt_zhxgrip" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,rw_id,rwjsr_id,
rwjsrsfzh,rwjsrxm,rwjsrdw_id,
rwjsrdw,rwjsrbm_id,rwjsrbmmc,
rwzt,rwzdsj,rwcksj,
rwwcsj,bz,xt_zxbz,
xt_zxyy,xt_cjsj,xt_lrsj,
xt_lrrxm,xt_lrrid,xt_lrrbm,
xt_lrrbmid,xt_lrip,xt_zhxgsj,
xt_zhxgrxm,xt_zhxgid,xt_zhxgrbm,
xt_zhxgrbmid,xt_zhxgrip
</sql>
</mapper>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mosty.common.task.mapper.SysTaskLogMapper">
<resultMap id="BaseResultMap" type="com.mosty.common.task.entity.SysTaskLog">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="rw_xfczb_id" column="rw_xfczb_id" jdbcType="BIGINT"/>
<result property="rw_id" column="rw_id" jdbcType="BIGINT"/>
<result property="rwjsr_id" column="rwjsr_id" jdbcType="BIGINT"/>
<result property="rwczsj" column="rwczsj" jdbcType="TIMESTAMP"/>
<result property="rwczzt" column="rwczzt" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id,rw_xfczb_id,rw_id,
rwjsr_id,rwczsj,rwczzt
</sql>
</mapper>

View File

@ -0,0 +1,200 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mosty.common.task.mapper.SysTaskMapper">
<resultMap id="BaseResultMap" type="com.mosty.common.task.entity.SysTask">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="rwlx" column="rwlx" jdbcType="INTEGER"/>
<result property="rwjjcd" column="rwjjcd" jdbcType="INTEGER"/>
<result property="rwmc" column="rwmc" jdbcType="VARCHAR"/>
<result property="rwnr" column="rwnr" jdbcType="VARCHAR"/>
<result property="rwzdsj" column="rwzdsj" jdbcType="TIMESTAMP"/>
<result property="rwwcsj" column="rwwcsj" jdbcType="TIMESTAMP"/>
<result property="rwyqwcsj" column="rwyqwcsj" jdbcType="TIMESTAMP"/>
<result property="rwcjrsfzh" column="rwcjrsfzh" jdbcType="VARCHAR"/>
<result property="rwcjrxm" column="rwcjrxm" jdbcType="VARCHAR"/>
<result property="rwcjrdw" column="rwcjrdw" jdbcType="VARCHAR"/>
<result property="rwcjrdwId" column="rwcjrdw_id" jdbcType="BIGINT"/>
<result property="rwcjrdh" column="rwcjrdh" jdbcType="VARCHAR"/>
<result property="rwcjrgz" column="rwcjrgz" jdbcType="INTEGER"/>
<result property="rwzxzt" column="rwzxzt" jdbcType="INTEGER"/>
<result property="rwlyxt" column="rwlyxt" jdbcType="VARCHAR"/>
<result property="rwUrl" column="rw_url" jdbcType="VARCHAR"/>
<result property="bz" column="bz" jdbcType="VARCHAR"/>
<result property="xtZxbz" column="xt_zxbz" jdbcType="INTEGER"/>
<result property="xtZxyy" column="xt_zxyy" jdbcType="VARCHAR"/>
<result property="xtCjsj" column="xt_cjsj" jdbcType="TIMESTAMP"/>
<result property="xtLrsj" column="xt_lrsj" jdbcType="TIMESTAMP"/>
<result property="xtLrrxm" column="xt_lrrxm" jdbcType="VARCHAR"/>
<result property="xtLrrid" column="xt_lrrid" jdbcType="BIGINT"/>
<result property="xtLrrbm" column="xt_lrrbm" jdbcType="VARCHAR"/>
<result property="xtLrrbmid" column="xt_lrrbmid" jdbcType="VARCHAR"/>
<result property="xtLrip" column="xt_lrip" jdbcType="VARCHAR"/>
<result property="xtZhxgsj" column="xt_zhxgsj" jdbcType="TIMESTAMP"/>
<result property="xtZhxgrxm" column="xt_zhxgrxm" jdbcType="VARCHAR"/>
<result property="xtZhxgid" column="xt_zhxgid" jdbcType="BIGINT"/>
<result property="xtZhxgrbm" column="xt_zhxgrbm" jdbcType="VARCHAR"/>
<result property="xtZhxgrbmid" column="xt_zhxgrbmid" jdbcType="BIGINT"/>
<result property="xtZhxgrip" column="xt_zhxgrip" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id
,rwlx,rwjjcd,
rwmc,rwnr,rwzdsj,
rwwcsj,rwyqwcsj,rwcjrsfzh,
rwcjrxm,rwcjrdw,rwcjrdw_id,
rwcjrdh,rwcjrgz,rwzxzt,
rwlyxt,rw_url,bz,
xt_zxbz,xt_zxyy,xt_cjsj,
xt_lrsj,xt_lrrxm,xt_lrrid,
xt_lrrbm,xt_lrrbmid,xt_lrip,
xt_zhxgsj,xt_zhxgrxm,xt_zhxgid,
xt_zhxgrbm,xt_zhxgrbmid,xt_zhxgrip
</sql>
<select id="countByUser" resultType="java.lang.Long">
select
count(1)
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrsfzh=#{param.idCardNo}
AND st.zxlx =1
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
</select>
<select id="countByDept" resultType="java.lang.Long">
select
count(1)
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrbm_id=#{param.deptId}
AND st.zxlx =2
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
</select>
<!--分页查询-->
<select id="findByList" resultType="com.mosty.common.task.entity.vo.SysTaskItemVO">
select
sti.id,
st.rwlx ,
st.rw_url AS rwUrl,
st.rwmc,
st.rwnr,
st.rwyqwcsj,
st.rwlyxt,
st.rwly_id,
sti.rwjsrsfzh AS idCardNo
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrsfzh=#{param.idCardNo}
AND st.zxlx =1
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
UNION
select
sti.id,
st.rwlx ,
st.rwly_id,
st.rw_url AS rwUrl,
st.rwmc,
st.rwnr,
st.rwyqwcsj,
st.rwlyxt,
sti.rwjsrsfzh AS idCardNo
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrbm_id=#{param.deptId}
AND st.zxlx =2
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
ORDER BY id DESC
</select>
</mapper>

View File

@ -0,0 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.mosty.common.task.TaskAutoConfiguration

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mosty.common.task.mapper.SysTaskItemMapper">
<resultMap id="BaseResultMap" type="com.mosty.common.task.entity.SysTaskItem">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="rw_id" column="rw_id" jdbcType="BIGINT"/>
<result property="rwjsr_id" column="rwjsr_id" jdbcType="BIGINT"/>
<result property="rwjsrsfzh" column="rwjsrsfzh" jdbcType="VARCHAR"/>
<result property="rwjsrxm" column="rwjsrxm" jdbcType="VARCHAR"/>
<result property="rwjsrdw_id" column="rwjsrdw_id" jdbcType="BIGINT"/>
<result property="rwjsrdw" column="rwjsrdw" jdbcType="VARCHAR"/>
<result property="rwjsrbm_id" column="rwjsrbm_id" jdbcType="BIGINT"/>
<result property="rwjsrbmmc" column="rwjsrbmmc" jdbcType="VARCHAR"/>
<result property="rwzt" column="rwzt" jdbcType="INTEGER"/>
<result property="rwzdsj" column="rwzdsj" jdbcType="TIMESTAMP"/>
<result property="rwcksj" column="rwcksj" jdbcType="TIMESTAMP"/>
<result property="rwwcsj" column="rwwcsj" jdbcType="TIMESTAMP"/>
<result property="bz" column="bz" jdbcType="VARCHAR"/>
<result property="xt_zxbz" column="xt_zxbz" jdbcType="INTEGER"/>
<result property="xt_zxyy" column="xt_zxyy" jdbcType="VARCHAR"/>
<result property="xt_cjsj" column="xt_cjsj" jdbcType="TIMESTAMP"/>
<result property="xt_lrsj" column="xt_lrsj" jdbcType="TIMESTAMP"/>
<result property="xt_lrrxm" column="xt_lrrxm" jdbcType="VARCHAR"/>
<result property="xt_lrrid" column="xt_lrrid" jdbcType="BIGINT"/>
<result property="xt_lrrbm" column="xt_lrrbm" jdbcType="VARCHAR"/>
<result property="xt_lrrbmid" column="xt_lrrbmid" jdbcType="VARCHAR"/>
<result property="xt_lrip" column="xt_lrip" jdbcType="VARCHAR"/>
<result property="xt_zhxgsj" column="xt_zhxgsj" jdbcType="TIMESTAMP"/>
<result property="xt_zhxgrxm" column="xt_zhxgrxm" jdbcType="VARCHAR"/>
<result property="xt_zhxgid" column="xt_zhxgid" jdbcType="BIGINT"/>
<result property="xt_zhxgrbm" column="xt_zhxgrbm" jdbcType="VARCHAR"/>
<result property="xt_zhxgrbmid" column="xt_zhxgrbmid" jdbcType="BIGINT"/>
<result property="xt_zhxgrip" column="xt_zhxgrip" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,rw_id,rwjsr_id,
rwjsrsfzh,rwjsrxm,rwjsrdw_id,
rwjsrdw,rwjsrbm_id,rwjsrbmmc,
rwzt,rwzdsj,rwcksj,
rwwcsj,bz,xt_zxbz,
xt_zxyy,xt_cjsj,xt_lrsj,
xt_lrrxm,xt_lrrid,xt_lrrbm,
xt_lrrbmid,xt_lrip,xt_zhxgsj,
xt_zhxgrxm,xt_zhxgid,xt_zhxgrbm,
xt_zhxgrbmid,xt_zhxgrip
</sql>
</mapper>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mosty.common.task.mapper.SysTaskLogMapper">
<resultMap id="BaseResultMap" type="com.mosty.common.task.entity.SysTaskLog">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="rw_xfczb_id" column="rw_xfczb_id" jdbcType="BIGINT"/>
<result property="rw_id" column="rw_id" jdbcType="BIGINT"/>
<result property="rwjsr_id" column="rwjsr_id" jdbcType="BIGINT"/>
<result property="rwczsj" column="rwczsj" jdbcType="TIMESTAMP"/>
<result property="rwczzt" column="rwczzt" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id,rw_xfczb_id,rw_id,
rwjsr_id,rwczsj,rwczzt
</sql>
</mapper>

View File

@ -0,0 +1,200 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mosty.common.task.mapper.SysTaskMapper">
<resultMap id="BaseResultMap" type="com.mosty.common.task.entity.SysTask">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="rwlx" column="rwlx" jdbcType="INTEGER"/>
<result property="rwjjcd" column="rwjjcd" jdbcType="INTEGER"/>
<result property="rwmc" column="rwmc" jdbcType="VARCHAR"/>
<result property="rwnr" column="rwnr" jdbcType="VARCHAR"/>
<result property="rwzdsj" column="rwzdsj" jdbcType="TIMESTAMP"/>
<result property="rwwcsj" column="rwwcsj" jdbcType="TIMESTAMP"/>
<result property="rwyqwcsj" column="rwyqwcsj" jdbcType="TIMESTAMP"/>
<result property="rwcjrsfzh" column="rwcjrsfzh" jdbcType="VARCHAR"/>
<result property="rwcjrxm" column="rwcjrxm" jdbcType="VARCHAR"/>
<result property="rwcjrdw" column="rwcjrdw" jdbcType="VARCHAR"/>
<result property="rwcjrdwId" column="rwcjrdw_id" jdbcType="BIGINT"/>
<result property="rwcjrdh" column="rwcjrdh" jdbcType="VARCHAR"/>
<result property="rwcjrgz" column="rwcjrgz" jdbcType="INTEGER"/>
<result property="rwzxzt" column="rwzxzt" jdbcType="INTEGER"/>
<result property="rwlyxt" column="rwlyxt" jdbcType="VARCHAR"/>
<result property="rwUrl" column="rw_url" jdbcType="VARCHAR"/>
<result property="bz" column="bz" jdbcType="VARCHAR"/>
<result property="xtZxbz" column="xt_zxbz" jdbcType="INTEGER"/>
<result property="xtZxyy" column="xt_zxyy" jdbcType="VARCHAR"/>
<result property="xtCjsj" column="xt_cjsj" jdbcType="TIMESTAMP"/>
<result property="xtLrsj" column="xt_lrsj" jdbcType="TIMESTAMP"/>
<result property="xtLrrxm" column="xt_lrrxm" jdbcType="VARCHAR"/>
<result property="xtLrrid" column="xt_lrrid" jdbcType="BIGINT"/>
<result property="xtLrrbm" column="xt_lrrbm" jdbcType="VARCHAR"/>
<result property="xtLrrbmid" column="xt_lrrbmid" jdbcType="VARCHAR"/>
<result property="xtLrip" column="xt_lrip" jdbcType="VARCHAR"/>
<result property="xtZhxgsj" column="xt_zhxgsj" jdbcType="TIMESTAMP"/>
<result property="xtZhxgrxm" column="xt_zhxgrxm" jdbcType="VARCHAR"/>
<result property="xtZhxgid" column="xt_zhxgid" jdbcType="BIGINT"/>
<result property="xtZhxgrbm" column="xt_zhxgrbm" jdbcType="VARCHAR"/>
<result property="xtZhxgrbmid" column="xt_zhxgrbmid" jdbcType="BIGINT"/>
<result property="xtZhxgrip" column="xt_zhxgrip" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id
,rwlx,rwjjcd,
rwmc,rwnr,rwzdsj,
rwwcsj,rwyqwcsj,rwcjrsfzh,
rwcjrxm,rwcjrdw,rwcjrdw_id,
rwcjrdh,rwcjrgz,rwzxzt,
rwlyxt,rw_url,bz,
xt_zxbz,xt_zxyy,xt_cjsj,
xt_lrsj,xt_lrrxm,xt_lrrid,
xt_lrrbm,xt_lrrbmid,xt_lrip,
xt_zhxgsj,xt_zhxgrxm,xt_zhxgid,
xt_zhxgrbm,xt_zhxgrbmid,xt_zhxgrip
</sql>
<select id="countByUser" resultType="java.lang.Long">
select
count(1)
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrsfzh=#{param.idCardNo}
AND st.zxlx =1
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
</select>
<select id="countByDept" resultType="java.lang.Long">
select
count(1)
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrbm_id=#{param.deptId}
AND st.zxlx =2
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
</select>
<!--分页查询-->
<select id="findByList" resultType="com.mosty.common.task.entity.vo.SysTaskItemVO">
select
sti.id,
st.rwlx ,
st.rw_url AS rwUrl,
st.rwmc,
st.rwnr,
st.rwyqwcsj,
st.rwlyxt,
st.rwly_id,
sti.rwjsrsfzh AS idCardNo
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrsfzh=#{param.idCardNo}
AND st.zxlx =1
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
UNION
select
sti.id,
st.rwlx ,
st.rwly_id,
st.rw_url AS rwUrl,
st.rwmc,
st.rwnr,
st.rwyqwcsj,
st.rwlyxt,
sti.rwjsrsfzh AS idCardNo
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrbm_id=#{param.deptId}
AND st.zxlx =2
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
ORDER BY id DESC
</select>
</mapper>

View File

@ -0,0 +1,5 @@
#Generated by Maven
#Thu Apr 18 12:45:23 CST 2024
version=1.0.0-SNAPSHOT
groupId=com.mosty
artifactId=common-task-starter

View File

@ -0,0 +1,35 @@
com\mosty\common\task\constant\enums\GroupCountTypeEnum.class
com\mosty\common\task\entity\vo\SysTaskLineChartVO.class
com\mosty\common\task\mapper\SysTaskMapper.class
com\mosty\common\task\entity\vo\SysTaskCountToday.class
com\mosty\common\task\service\impl\SysTaskLogServiceImpl.class
com\mosty\common\task\constant\enums\ExecuteStatusEnum.class
com\mosty\common\task\constant\enums\LineChartTypeEnum.class
com\mosty\common\task\entity\SysTask.class
com\mosty\common\task\service\impl\SysTaskItemServiceImpl.class
com\mosty\common\task\constant\enums\RuleTypeEnum.class
com\mosty\common\task\constant\enums\TaskItemStatusEnum.class
com\mosty\common\task\controller\SysTaskController.class
com\mosty\common\task\mapper\SysTaskLogMapper.class
com\mosty\common\task\entity\vo\DetailSysTaskVO.class
com\mosty\common\task\entity\vo\AddSysTaskDeptVO.class
com\mosty\common\task\entity\vo\QueryTaskVO.class
com\mosty\common\task\service\SysTaskLogService.class
com\mosty\common\task\controller\SysTaskReportController.class
com\mosty\common\task\entity\vo\AddSysTaskUserInfoVO.class
com\mosty\common\task\entity\vo\QueryTaskLogVO.class
com\mosty\common\task\entity\vo\SysTaskCountGroup.class
com\mosty\common\task\constant\enums\ExecuteTypeEnum.class
com\mosty\common\task\entity\vo\SysTaskLogVO.class
com\mosty\common\task\service\SysTaskService.class
com\mosty\common\task\service\SysTaskItemService.class
com\mosty\common\task\entity\SysTaskLog.class
com\mosty\common\task\entity\vo\AddSysTaskVO.class
com\mosty\common\task\entity\vo\FinishSysTaskVO.class
com\mosty\common\task\TaskAutoConfiguration.class
com\mosty\common\task\service\impl\SysTaskServiceImpl.class
com\mosty\common\task\constant\enums\TaskLogStatusEnum.class
com\mosty\common\task\constant\enums\TaskTypeEnum.class
com\mosty\common\task\entity\SysTaskItem.class
com\mosty\common\task\mapper\SysTaskItemMapper.class
com\mosty\common\task\entity\vo\SysTaskItemVO.class

View File

@ -0,0 +1,35 @@
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\constant\enums\ExecuteTypeEnum.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\SysTaskItemVO.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\constant\enums\LineChartTypeEnum.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\mapper\SysTaskItemMapper.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\SysTaskLogVO.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\constant\enums\ExecuteStatusEnum.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\SysTaskLineChartVO.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\SysTask.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\SysTaskItem.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\service\impl\SysTaskServiceImpl.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\FinishSysTaskVO.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\service\impl\SysTaskLogServiceImpl.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\SysTaskCountToday.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\controller\SysTaskReportController.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\service\SysTaskItemService.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\SysTaskLog.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\controller\SysTaskController.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\service\SysTaskService.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\constant\enums\RuleTypeEnum.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\AddSysTaskVO.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\QueryTaskLogVO.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\DetailSysTaskVO.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\AddSysTaskDeptVO.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\constant\enums\TaskTypeEnum.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\TaskAutoConfiguration.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\constant\enums\GroupCountTypeEnum.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\constant\enums\TaskLogStatusEnum.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\AddSysTaskUserInfoVO.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\QueryTaskVO.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\constant\enums\TaskItemStatusEnum.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\mapper\SysTaskMapper.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\service\SysTaskLogService.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\entity\vo\SysTaskCountGroup.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\service\impl\SysTaskItemServiceImpl.java
C:\tools\dy外网\mosty-common\common-task-starter\src\main\java\com\mosty\common\task\mapper\SysTaskLogMapper.java