@ -0,0 +1,51 @@ |
|||
# ====== Java / Maven ====== |
|||
target/ |
|||
*.class |
|||
*.jar |
|||
*.war |
|||
*.ear |
|||
*.zip |
|||
*.tar.gz |
|||
*.rar |
|||
hs_err_pid* |
|||
.flattened-pom.xml |
|||
# 保留本地依赖 JAR |
|||
!Libs/**/*.jar |
|||
|
|||
# ====== IDE ====== |
|||
.idea/ |
|||
*.iml |
|||
*.iws |
|||
*.ipr |
|||
.vscode/ |
|||
.settings/ |
|||
.project |
|||
.classpath |
|||
.factorypath |
|||
*.swp |
|||
*.swo |
|||
|
|||
# ====== Logs ====== |
|||
logs/ |
|||
*.log |
|||
*.log.gz |
|||
|
|||
# ====== OS ====== |
|||
.DS_Store |
|||
Thumbs.db |
|||
|
|||
# ====== Spring Boot ====== |
|||
${project.build.directory}/ |
|||
|
|||
# ====== Frontend ====== |
|||
node_modules/ |
|||
dist/ |
|||
dist.zip |
|||
.npm |
|||
.eslintcache |
|||
*.local |
|||
|
|||
# ====== Misc ====== |
|||
*.bak |
|||
*.tmp |
|||
*.orig |
|||
@ -0,0 +1,30 @@ |
|||
# 将 Libs 目录下的所有 zdxt-common-*.jar 安装到本地 Maven 仓库 |
|||
# groupId: org.dromara, version: 5.6.0 |
|||
|
|||
$libsDir = $PSScriptRoot |
|||
$groupId = "org.dromara" |
|||
$version = "5.6.0" |
|||
|
|||
Get-ChildItem -Path $libsDir -Filter "*.jar" | ForEach-Object { |
|||
$jarFile = $_.FullName |
|||
# 从文件名中提取 artifactId,例如 zdxt-common-core-5.6.0.jar -> zdxt-common-core |
|||
$artifactId = $_.BaseName -replace "-$version$", "" |
|||
|
|||
Write-Host "Installing: $artifactId ($jarFile)" -ForegroundColor Cyan |
|||
|
|||
mvn install:install-file ` |
|||
"-Dfile=$jarFile" ` |
|||
"-DgroupId=$groupId" ` |
|||
"-DartifactId=$artifactId" ` |
|||
"-Dversion=$version" ` |
|||
"-Dpackaging=jar" ` |
|||
"-DgeneratePom=true" |
|||
|
|||
if ($LASTEXITCODE -eq 0) { |
|||
Write-Host " -> OK" -ForegroundColor Green |
|||
} else { |
|||
Write-Host " -> FAILED" -ForegroundColor Red |
|||
} |
|||
} |
|||
|
|||
Write-Host "`nAll done." -ForegroundColor Yellow |
|||
@ -0,0 +1,658 @@ |
|||
<?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"> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>EnforcementCode</artifactId> |
|||
<version>${revision}</version> |
|||
|
|||
<name>EnforcementCode</name> |
|||
<description>EnforcementCode管理系统</description> |
|||
|
|||
<properties> |
|||
<springdoc.version>2.8.15</springdoc.version> |
|||
<knife4j.version>4.3.0</knife4j.version> |
|||
|
|||
<revision>5.6.0</revision> |
|||
<spring-boot.version>3.5.12</spring-boot.version> |
|||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
|||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
|||
<java.version>17</java.version> |
|||
<mybatis.version>3.5.19</mybatis.version> |
|||
<therapi-javadoc.version>0.15.0</therapi-javadoc.version> |
|||
<fastexcel.version>1.3.0</fastexcel.version> |
|||
<velocity.version>2.3</velocity.version> |
|||
<satoken.version>1.44.0</satoken.version> |
|||
<mybatis-plus.version>3.5.16</mybatis-plus.version> |
|||
<p6spy.version>3.9.1</p6spy.version> |
|||
<hutool.version>5.8.43</hutool.version> |
|||
<spring-boot-admin.version>3.5.6</spring-boot-admin.version> |
|||
<redisson.version>3.52.0</redisson.version> |
|||
<lock4j.version>2.2.7</lock4j.version> |
|||
<dynamic-ds.version>4.3.1</dynamic-ds.version> |
|||
<snailjob.version>1.9.0</snailjob.version> |
|||
<mapstruct-plus.version>1.5.0</mapstruct-plus.version> |
|||
<mapstruct-plus.lombok.version>0.2.0</mapstruct-plus.lombok.version> |
|||
<lombok.version>1.18.42</lombok.version> |
|||
<bouncycastle.version>1.83</bouncycastle.version> |
|||
<justauth.version>1.16.7</justauth.version> |
|||
<!-- 离线IP地址定位库 --> |
|||
<ip2region.version>3.3.4</ip2region.version> |
|||
<!-- OSS 配置 --> |
|||
<aws.sdk.version>2.28.22</aws.sdk.version> |
|||
<!-- SMS 配置 --> |
|||
<sms4j.version>3.3.5</sms4j.version> |
|||
<!-- 限制框架中的fastjson版本 --> |
|||
<fastjson.version>1.2.83</fastjson.version> |
|||
<!-- 面向运行时的D-ORM依赖 --> |
|||
<anyline.version>8.7.3-20251210</anyline.version> |
|||
<!-- 工作流配置 --> |
|||
<warm-flow.version>1.8.4</warm-flow.version> |
|||
<!-- Jasypt 加密配置 --> |
|||
<jasypt.version>1.9.3</jasypt.version> |
|||
<jasypt-spring-boot.version>4.0.3</jasypt-spring-boot.version> |
|||
|
|||
<!-- Spring Cloud 版本 --> |
|||
<spring-cloud.version>2025.0.0</spring-cloud.version> |
|||
<!-- 插件版本 --> |
|||
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version> |
|||
<maven-war-plugin.version>3.4.0</maven-war-plugin.version> |
|||
<maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version> |
|||
<maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version> |
|||
<flatten-maven-plugin.version>1.3.0</flatten-maven-plugin.version> |
|||
<!-- 打包默认跳过测试 --> |
|||
<skipTests>true</skipTests> |
|||
</properties> |
|||
|
|||
<profiles> |
|||
<profile> |
|||
<id>local</id> |
|||
<properties> |
|||
<!-- 环境标识,需要与配置文件的名称相对应 --> |
|||
<profiles.active>local</profiles.active> |
|||
<logging.level>info</logging.level> |
|||
<monitor.username>ruoyi</monitor.username> |
|||
<monitor.password>123456</monitor.password> |
|||
</properties> |
|||
</profile> |
|||
<profile> |
|||
<id>dev</id> |
|||
<properties> |
|||
<!-- 环境标识,需要与配置文件的名称相对应 --> |
|||
<profiles.active>dev</profiles.active> |
|||
<logging.level>info</logging.level> |
|||
<monitor.username>ruoyi</monitor.username> |
|||
<monitor.password>123456</monitor.password> |
|||
</properties> |
|||
<activation> |
|||
<!-- 默认环境 --> |
|||
<activeByDefault>true</activeByDefault> |
|||
</activation> |
|||
</profile> |
|||
<profile> |
|||
<id>prod</id> |
|||
<properties> |
|||
<profiles.active>prod</profiles.active> |
|||
<logging.level>warn</logging.level> |
|||
<monitor.username>ruoyi</monitor.username> |
|||
<monitor.password>123456</monitor.password> |
|||
</properties> |
|||
</profile> |
|||
</profiles> |
|||
|
|||
<!-- 依赖声明 --> |
|||
<dependencyManagement> |
|||
<dependencies> |
|||
|
|||
<!-- Spring Cloud BOM --> |
|||
<dependency> |
|||
<groupId>org.springframework.cloud</groupId> |
|||
<artifactId>spring-cloud-dependencies</artifactId> |
|||
<version>${spring-cloud.version}</version> |
|||
<type>pom</type> |
|||
<scope>import</scope> |
|||
</dependency> |
|||
|
|||
<!-- SpringBoot的依赖配置--> |
|||
<dependency> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-dependencies</artifactId> |
|||
<version>${spring-boot.version}</version> |
|||
<type>pom</type> |
|||
<scope>import</scope> |
|||
</dependency> |
|||
|
|||
<!-- hutool 的依赖配置--> |
|||
<dependency> |
|||
<groupId>cn.hutool</groupId> |
|||
<artifactId>hutool-bom</artifactId> |
|||
<version>${hutool.version}</version> |
|||
<type>pom</type> |
|||
<scope>import</scope> |
|||
</dependency> |
|||
|
|||
<!-- common 的依赖配置(引用本地Maven仓库) --> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-core</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-doc</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-encrypt</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-excel</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-idempotent</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-json</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-log</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-mail</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-mybatis</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-oss</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-quartz</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-ratelimiter</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-redis</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-satoken</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-security</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-sensitive</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-sms</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-social</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-sse</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-tenant</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-translation</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-web</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-websocket</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
|
|||
<!-- 系统模块(本地 Libs 提供) --> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-system</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.springdoc</groupId> |
|||
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId> |
|||
<version>${springdoc.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.springdoc</groupId> |
|||
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> |
|||
<version>${springdoc.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>com.github.xiaoymin</groupId> |
|||
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> |
|||
<version>${knife4j.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>com.github.therapi</groupId> |
|||
<artifactId>therapi-runtime-javadoc</artifactId> |
|||
<version>${therapi-javadoc.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.projectlombok</groupId> |
|||
<artifactId>lombok</artifactId> |
|||
<version>${lombok.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>cn.idev.excel</groupId> |
|||
<artifactId>fastexcel</artifactId> |
|||
<version>${fastexcel.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- velocity代码生成使用模板 --> |
|||
<dependency> |
|||
<groupId>org.apache.velocity</groupId> |
|||
<artifactId>velocity-engine-core</artifactId> |
|||
<version>${velocity.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- Sa-Token 权限认证, 在线文档:http://sa-token.dev33.cn/ --> |
|||
<dependency> |
|||
<groupId>cn.dev33</groupId> |
|||
<artifactId>sa-token-spring-boot3-starter</artifactId> |
|||
<version>${satoken.version}</version> |
|||
</dependency> |
|||
<!-- Sa-Token 整合 jwt --> |
|||
<dependency> |
|||
<groupId>cn.dev33</groupId> |
|||
<artifactId>sa-token-jwt</artifactId> |
|||
<version>${satoken.version}</version> |
|||
<exclusions> |
|||
<exclusion> |
|||
<groupId>cn.hutool</groupId> |
|||
<artifactId>hutool-all</artifactId> |
|||
</exclusion> |
|||
</exclusions> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>cn.dev33</groupId> |
|||
<artifactId>sa-token-core</artifactId> |
|||
<version>${satoken.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- dynamic-datasource 多数据源--> |
|||
<dependency> |
|||
<groupId>com.baomidou</groupId> |
|||
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId> |
|||
<version>${dynamic-ds.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.mybatis</groupId> |
|||
<artifactId>mybatis</artifactId> |
|||
<version>${mybatis.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>com.baomidou</groupId> |
|||
<artifactId>mybatis-plus-spring-boot3-starter</artifactId> |
|||
<version>${mybatis-plus.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>com.baomidou</groupId> |
|||
<artifactId>mybatis-plus-jsqlparser</artifactId> |
|||
<version>${mybatis-plus.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>com.baomidou</groupId> |
|||
<artifactId>mybatis-plus-annotation</artifactId> |
|||
<version>${mybatis-plus.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- sql性能分析插件 --> |
|||
<dependency> |
|||
<groupId>p6spy</groupId> |
|||
<artifactId>p6spy</artifactId> |
|||
<version>${p6spy.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- AWS SDK for Java 2.x --> |
|||
<dependency> |
|||
<groupId>software.amazon.awssdk</groupId> |
|||
<artifactId>s3</artifactId> |
|||
<version>${aws.sdk.version}</version> |
|||
</dependency> |
|||
<!-- 客户端的性能增强传输管理器 --> |
|||
<dependency> |
|||
<groupId>software.amazon.awssdk</groupId> |
|||
<artifactId>s3-transfer-manager</artifactId> |
|||
<version>${aws.sdk.version}</version> |
|||
</dependency> |
|||
<!-- 适用于 Netty 的客户端 --> |
|||
<dependency> |
|||
<groupId>software.amazon.awssdk</groupId> |
|||
<artifactId>netty-nio-client</artifactId> |
|||
<version>${aws.sdk.version}</version> |
|||
</dependency> |
|||
<!--短信sms4j--> |
|||
<dependency> |
|||
<groupId>org.dromara.sms4j</groupId> |
|||
<artifactId>sms4j-spring-boot-starter</artifactId> |
|||
<version>${sms4j.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>de.codecentric</groupId> |
|||
<artifactId>spring-boot-admin-starter-server</artifactId> |
|||
<version>${spring-boot-admin.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>de.codecentric</groupId> |
|||
<artifactId>spring-boot-admin-starter-client</artifactId> |
|||
<version>${spring-boot-admin.version}</version> |
|||
</dependency> |
|||
|
|||
<!--redisson--> |
|||
<dependency> |
|||
<groupId>org.redisson</groupId> |
|||
<artifactId>redisson-spring-boot-starter</artifactId> |
|||
<version>${redisson.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>com.baomidou</groupId> |
|||
<artifactId>lock4j-redisson-spring-boot-starter</artifactId> |
|||
<version>${lock4j.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- SnailJob Client --> |
|||
<!--<dependency> |
|||
<groupId>com.aizuda</groupId> |
|||
<artifactId>snail-job-client-starter</artifactId> |
|||
<version>${snailjob.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>com.aizuda</groupId> |
|||
<artifactId>snail-job-client-job-core</artifactId> |
|||
<version>${snailjob.version}</version> |
|||
</dependency>--> |
|||
|
|||
<!-- 加密包引入 --> |
|||
<dependency> |
|||
<groupId>org.bouncycastle</groupId> |
|||
<artifactId>bcpkix-jdk18on</artifactId> |
|||
<version>${bouncycastle.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- Jasypt 核心加密库 --> |
|||
<dependency> |
|||
<groupId>org.jasypt</groupId> |
|||
<artifactId>jasypt</artifactId> |
|||
<version>${jasypt.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- Jasypt Spring Boot Starter --> |
|||
<dependency> |
|||
<groupId>com.github.ulisesbocchio</groupId> |
|||
<artifactId>jasypt-spring-boot-starter</artifactId> |
|||
<version>${jasypt-spring-boot.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>io.github.linpeilie</groupId> |
|||
<artifactId>mapstruct-plus-spring-boot-starter</artifactId> |
|||
<version>${mapstruct-plus.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- Warm-Flow国产工作流引擎, 在线文档:http://warm-flow.cn/ --> |
|||
<!--<dependency> |
|||
<groupId>org.dromara.warm</groupId> |
|||
<artifactId>warm-flow-mybatis-plus-sb3-starter</artifactId> |
|||
<version>${warm-flow.version}</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara.warm</groupId> |
|||
<artifactId>warm-flow-plugin-ui-sb-web</artifactId> |
|||
<version>${warm-flow.version}</version> |
|||
</dependency>--> |
|||
|
|||
<!-- JustAuth 的依赖配置--> |
|||
<dependency> |
|||
<groupId>me.zhyd.oauth</groupId> |
|||
<artifactId>JustAuth</artifactId> |
|||
<version>${justauth.version}</version> |
|||
</dependency> |
|||
|
|||
<!-- 离线IP地址定位库 ip2region --> |
|||
<dependency> |
|||
<groupId>org.lionsoul</groupId> |
|||
<artifactId>ip2region</artifactId> |
|||
<version>${ip2region.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>com.alibaba</groupId> |
|||
<artifactId>fastjson</artifactId> |
|||
<version>${fastjson.version}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-enforcement-code</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-enforcement-nos</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency> |
|||
|
|||
<!-- 工作流模块 --> |
|||
<!--<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-workflow</artifactId> |
|||
<version>${revision}</version> |
|||
</dependency>--> |
|||
|
|||
<dependency> |
|||
<groupId>net.sourceforge.htmlunit</groupId> |
|||
<artifactId>htmlunit</artifactId> |
|||
<version>2.70.0</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>com.google.zxing</groupId> |
|||
<artifactId>core</artifactId> |
|||
<version>3.5.3</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>com.google.zxing</groupId> |
|||
<artifactId>javase</artifactId> |
|||
<version>3.5.3</version> |
|||
</dependency> |
|||
</dependencies> |
|||
</dependencyManagement> |
|||
|
|||
<modules> |
|||
<module>zdxt-modules</module> |
|||
<module>zdxt-web-server</module> |
|||
<module>zdxt-web-server/zdxt-admin-web-server</module> |
|||
<module>zdxt-web-client</module> |
|||
</modules> |
|||
<packaging>pom</packaging> |
|||
|
|||
<build> |
|||
<plugins> |
|||
<plugin> |
|||
<groupId>org.apache.maven.plugins</groupId> |
|||
<artifactId>maven-compiler-plugin</artifactId> |
|||
<version>${maven-compiler-plugin.version}</version> |
|||
<configuration> |
|||
<release>${java.version}</release> |
|||
<encoding>${project.build.sourceEncoding}</encoding> |
|||
<annotationProcessorPaths> |
|||
<path> |
|||
<groupId>com.github.therapi</groupId> |
|||
<artifactId>therapi-runtime-javadoc-scribe</artifactId> |
|||
<version>${therapi-javadoc.version}</version> |
|||
</path> |
|||
<path> |
|||
<groupId>org.projectlombok</groupId> |
|||
<artifactId>lombok</artifactId> |
|||
<version>${lombok.version}</version> |
|||
</path> |
|||
<path> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-configuration-processor</artifactId> |
|||
<version>${spring-boot.version}</version> |
|||
</path> |
|||
<path> |
|||
<groupId>io.github.linpeilie</groupId> |
|||
<artifactId>mapstruct-plus-processor</artifactId> |
|||
<version>${mapstruct-plus.version}</version> |
|||
</path> |
|||
<path> |
|||
<groupId>org.projectlombok</groupId> |
|||
<artifactId>lombok-mapstruct-binding</artifactId> |
|||
<version>${mapstruct-plus.lombok.version}</version> |
|||
</path> |
|||
</annotationProcessorPaths> |
|||
<compilerArgs> |
|||
<arg>-parameters</arg> |
|||
</compilerArgs> |
|||
</configuration> |
|||
</plugin> |
|||
<!-- 单元测试使用 --> |
|||
<plugin> |
|||
<groupId>org.apache.maven.plugins</groupId> |
|||
<artifactId>maven-surefire-plugin</artifactId> |
|||
<version>${maven-surefire-plugin.version}</version> |
|||
<configuration> |
|||
<argLine>-Dfile.encoding=UTF-8</argLine> |
|||
<!-- 根据打包环境执行对应的@Tag测试方法 --> |
|||
<groups>${profiles.active}</groups> |
|||
<!-- 排除标签 --> |
|||
<excludedGroups>exclude</excludedGroups> |
|||
</configuration> |
|||
</plugin> |
|||
<!-- 统一版本号管理 --> |
|||
<plugin> |
|||
<groupId>org.codehaus.mojo</groupId> |
|||
<artifactId>flatten-maven-plugin</artifactId> |
|||
<version>${flatten-maven-plugin.version}</version> |
|||
<configuration> |
|||
<updatePomFile>true</updatePomFile> |
|||
<flattenMode>resolveCiFriendliesOnly</flattenMode> |
|||
</configuration> |
|||
<executions> |
|||
<execution> |
|||
<id>flatten</id> |
|||
<phase>process-resources</phase> |
|||
<goals> |
|||
<goal>flatten</goal> |
|||
</goals> |
|||
</execution> |
|||
<execution> |
|||
<id>flatten.clean</id> |
|||
<phase>clean</phase> |
|||
<goals> |
|||
<goal>clean</goal> |
|||
</goals> |
|||
</execution> |
|||
</executions> |
|||
</plugin> |
|||
</plugins> |
|||
<resources> |
|||
<resource> |
|||
<directory>src/main/resources</directory> |
|||
<!-- 关闭过滤 --> |
|||
<filtering>false</filtering> |
|||
</resource> |
|||
<resource> |
|||
<directory>src/main/resources</directory> |
|||
<!-- 引入所有 匹配文件进行过滤 --> |
|||
<includes> |
|||
<include>application*</include> |
|||
<include>bootstrap*</include> |
|||
<include>banner*</include> |
|||
</includes> |
|||
<!-- 启用过滤 即该资源中的变量将会被过滤器中的值替换 --> |
|||
<filtering>true</filtering> |
|||
</resource> |
|||
</resources> |
|||
</build> |
|||
|
|||
<repositories> |
|||
<repository> |
|||
<id>public</id> |
|||
<name>huawei nexus</name> |
|||
<url>https://mirrors.huaweicloud.com/repository/maven/</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
</repository> |
|||
</repositories> |
|||
|
|||
<pluginRepositories> |
|||
<pluginRepository> |
|||
<id>public</id> |
|||
<name>huawei nexus</name> |
|||
<url>https://mirrors.huaweicloud.com/repository/maven/</url> |
|||
<releases> |
|||
<enabled>true</enabled> |
|||
</releases> |
|||
<snapshots> |
|||
<enabled>false</enabled> |
|||
</snapshots> |
|||
</pluginRepository> |
|||
</pluginRepositories> |
|||
|
|||
</project> |
|||
|
|||
|
|||
@ -0,0 +1,34 @@ |
|||
* 表结构的维护全部采用sql,存入[nos](script/sql/nos)中,后续通过脚本多次重建数据库 |
|||
* 非现场执法的表明全部采用 nos_开头,方便后续区分 |
|||
* 将所有非现场执法的表的都加入租户的排除表中 |
|||
``` |
|||
# 多租户配置 |
|||
tenant: |
|||
# 是否开启 |
|||
enable: false |
|||
# 排除表 |
|||
excludes: |
|||
- sys_menu |
|||
- sys_tenant |
|||
- sys_tenant_package |
|||
``` |
|||
* 非现场的所有数据库表,需要增加一下字段: |
|||
* 使用[install-to-maven.ps1](Libs/install-to-maven.ps1)将jar包注册到本地的maven仓库中 |
|||
* 后端的功能全部写入[zdxt-enforcement-nos](zdxt-modules/zdxt-enforcement-nos)中 |
|||
* 前端分为3个 |
|||
* 非现场企业端 |
|||
* [zdxt-efcode-nos-enterprise-app](zdxt-web-client/zdxt-efcode-nos-enterprise-app) |
|||
* 非现场执法端 |
|||
* [zdxt-efcode-nos-enforcement-app](zdxt-web-client/zdxt-efcode-nos-enforcement-app) |
|||
* 非现场监督端 |
|||
* [zdxt-efcode-nos-supervision-app](zdxt-web-client/zdxt-efcode-nos-supervision-app) |
|||
* 代码生成 |
|||
* 将设计好的表,创建到执法码二期的库中,可以使用现有的代码生成的模块,生成统一风格的代码格式,方便后续维护 |
|||
* 关于包名的修改,生成代码的地方,导入表后,点击编辑,生成信息中可以修改导出的包名,设置为com.zdxt.enforcementnos,这样导出后,代码和现有的功能目录一致 |
|||
* 前端接入方法 |
|||
* 开发时 |
|||
* 部署时 |
|||
* 从主页面进入非现场的页面时,会携带token,凭借token可以调用监督码的后台接口,获取相关的信息 |
|||
* 后端接入方法,前端进入后,先请求一次后端,将token提交给后端,后端自行存储,本次session中,凭借改token去调用后端接口 |
|||
* 现场执法提供给非现场执法的接口,所需的参数通过接口参数传递,不要凭借token去获取数据. |
|||
* 非现场执法的接口,只验证token,不要再做其他权限设置,等后边合并的时候在考虑 |
|||
@ -0,0 +1,23 @@ |
|||
<?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>EnforcementCode</artifactId> |
|||
<groupId>org.dromara</groupId> |
|||
<version>${revision}</version> |
|||
</parent> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<modules> |
|||
<module>zdxt-enforcement-nos</module> |
|||
</modules> |
|||
|
|||
<artifactId>zdxt-modules</artifactId> |
|||
<packaging>pom</packaging> |
|||
|
|||
<description> |
|||
zdxt-modules 业务模块 |
|||
</description> |
|||
|
|||
</project> |
|||
@ -0,0 +1,99 @@ |
|||
<?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"> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
<parent> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-modules</artifactId> |
|||
<version>${revision}</version> |
|||
</parent> |
|||
|
|||
<artifactId>zdxt-enforcement-nos</artifactId> |
|||
|
|||
<description> |
|||
enforcement-nos 执法业务模块 |
|||
</description> |
|||
|
|||
<properties> |
|||
<maven.compiler.source>17</maven.compiler.source> |
|||
<maven.compiler.target>17</maven.compiler.target> |
|||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
|||
</properties> |
|||
|
|||
<dependencies> |
|||
|
|||
<!-- 通用工具 --> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-core</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-doc</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-redis</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-idempotent</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-mybatis</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-log</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-excel</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-security</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-web</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-ratelimiter</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-translation</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-sensitive</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-encrypt</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zdxt-common-tenant</artifactId> |
|||
</dependency> |
|||
|
|||
</dependencies> |
|||
|
|||
</project> |
|||
@ -0,0 +1,4 @@ |
|||
package com.zdxt.enforcementnos; |
|||
|
|||
public class Main { |
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package com.zdxt.enforcementnos.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import com.zdxt.enforcementnos.domain.vo.TestEnfDemoVo; |
|||
import com.zdxt.enforcementnos.domain.bo.TestEnfDemoBo; |
|||
import com.zdxt.enforcementnos.service.ITestEnfDemoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* enf测试单 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2026-05-19 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/enforcementcode/enfDemo") |
|||
public class TestEnfDemoController extends BaseController { |
|||
|
|||
private final ITestEnfDemoService testEnfDemoService; |
|||
|
|||
/** |
|||
* 查询enf测试单列表 |
|||
*/ |
|||
@SaCheckPermission("enforcementcode:enfDemo:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<TestEnfDemoVo> list(TestEnfDemoBo bo, PageQuery pageQuery) { |
|||
return testEnfDemoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出enf测试单列表 |
|||
*/ |
|||
@SaCheckPermission("enforcementcode:enfDemo:export") |
|||
@Log(title = "enf测试单", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(TestEnfDemoBo bo, HttpServletResponse response) { |
|||
List<TestEnfDemoVo> list = testEnfDemoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "enf测试单", TestEnfDemoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取enf测试单详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("enforcementcode:enfDemo:query") |
|||
@GetMapping("/{id}") |
|||
public R<TestEnfDemoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable Long id) { |
|||
return R.ok(testEnfDemoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增enf测试单 |
|||
*/ |
|||
@SaCheckPermission("enforcementcode:enfDemo:add") |
|||
@Log(title = "enf测试单", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody TestEnfDemoBo bo) { |
|||
return toAjax(testEnfDemoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改enf测试单 |
|||
*/ |
|||
@SaCheckPermission("enforcementcode:enfDemo:edit") |
|||
@Log(title = "enf测试单", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TestEnfDemoBo bo) { |
|||
return toAjax(testEnfDemoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除enf测试单 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("enforcementcode:enfDemo:remove") |
|||
@Log(title = "enf测试单", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable Long[] ids) { |
|||
return toAjax(testEnfDemoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
|||
@ -0,0 +1,83 @@ |
|||
package com.zdxt.enforcementnos.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* enf测试单对象 test_enf_demo |
|||
* |
|||
* @author Lion Li |
|||
* @date 2026-05-19 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("test_enf_demo") |
|||
public class TestEnfDemo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private Long id; |
|||
|
|||
/** |
|||
* 文本 |
|||
*/ |
|||
private String enfText; |
|||
|
|||
/** |
|||
* 长文本 |
|||
*/ |
|||
private String enfContent; |
|||
|
|||
/** |
|||
* 部门id |
|||
*/ |
|||
private Long deptId; |
|||
|
|||
/** |
|||
* 用户id |
|||
*/ |
|||
private Long userId; |
|||
|
|||
/** |
|||
* 排序号 |
|||
*/ |
|||
private Long orderNum; |
|||
|
|||
/** |
|||
* key键 |
|||
*/ |
|||
private String testKey; |
|||
|
|||
/** |
|||
* 值 |
|||
*/ |
|||
private String value; |
|||
|
|||
/** |
|||
* 版本 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
/** |
|||
* 执法部门ID |
|||
*/ |
|||
private String bureauDeptId; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,70 @@ |
|||
package com.zdxt.enforcementnos.domain.bo; |
|||
|
|||
import com.zdxt.enforcementnos.domain.TestEnfDemo; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
|
|||
/** |
|||
* enf测试单业务对象 test_enf_demo |
|||
* |
|||
* @author Lion Li |
|||
* @date 2026-05-19 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = TestEnfDemo.class, reverseConvertGenerate = false) |
|||
public class TestEnfDemoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@NotNull(message = "主键不能为空", groups = { EditGroup.class }) |
|||
private Long id; |
|||
|
|||
/** |
|||
* 文本 |
|||
*/ |
|||
private String enfText; |
|||
|
|||
/** |
|||
* 长文本 |
|||
*/ |
|||
private String enfContent; |
|||
|
|||
/** |
|||
* 部门id |
|||
*/ |
|||
private Long deptId; |
|||
|
|||
/** |
|||
* 用户id |
|||
*/ |
|||
private Long userId; |
|||
|
|||
/** |
|||
* 排序号 |
|||
*/ |
|||
private Long orderNum; |
|||
|
|||
/** |
|||
* key键 |
|||
*/ |
|||
private String testKey; |
|||
|
|||
/** |
|||
* 值 |
|||
*/ |
|||
private String value; |
|||
|
|||
/** |
|||
* 执法部门ID |
|||
*/ |
|||
private String bureauDeptId; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,86 @@ |
|||
package com.zdxt.enforcementnos.domain.vo; |
|||
|
|||
import com.zdxt.enforcementnos.domain.TestEnfDemo; |
|||
import cn.idev.excel.annotation.ExcelIgnoreUnannotated; |
|||
import cn.idev.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* enf测试单视图对象 test_enf_demo |
|||
* |
|||
* @author Lion Li |
|||
* @date 2026-05-19 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = TestEnfDemo.class) |
|||
public class TestEnfDemoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private Long id; |
|||
|
|||
/** |
|||
* 文本 |
|||
*/ |
|||
@ExcelProperty(value = "文本") |
|||
private String enfText; |
|||
|
|||
/** |
|||
* 长文本 |
|||
*/ |
|||
@ExcelProperty(value = "长文本") |
|||
private String enfContent; |
|||
|
|||
/** |
|||
* 部门id |
|||
*/ |
|||
@ExcelProperty(value = "部门id") |
|||
private Long deptId; |
|||
|
|||
/** |
|||
* 用户id |
|||
*/ |
|||
@ExcelProperty(value = "用户id") |
|||
private Long userId; |
|||
|
|||
/** |
|||
* 排序号 |
|||
*/ |
|||
@ExcelProperty(value = "排序号") |
|||
private Long orderNum; |
|||
|
|||
/** |
|||
* key键 |
|||
*/ |
|||
@ExcelProperty(value = "key键") |
|||
private String testKey; |
|||
|
|||
/** |
|||
* 值 |
|||
*/ |
|||
@ExcelProperty(value = "值") |
|||
private String value; |
|||
|
|||
/** |
|||
* 执法部门ID |
|||
*/ |
|||
@ExcelProperty(value = "执法部门ID") |
|||
private String bureauDeptId; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
package com.zdxt.enforcementnos.mapper; |
|||
|
|||
import com.zdxt.enforcementnos.domain.TestEnfDemo; |
|||
import com.zdxt.enforcementnos.domain.vo.TestEnfDemoVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* enf测试单Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2026-05-19 |
|||
*/ |
|||
public interface TestEnfDemoMapper extends BaseMapperPlus<TestEnfDemo, TestEnfDemoVo> { |
|||
|
|||
} |
|||
@ -0,0 +1,68 @@ |
|||
package com.zdxt.enforcementnos.service; |
|||
|
|||
import com.zdxt.enforcementnos.domain.vo.TestEnfDemoVo; |
|||
import com.zdxt.enforcementnos.domain.bo.TestEnfDemoBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* enf测试单Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2026-05-19 |
|||
*/ |
|||
public interface ITestEnfDemoService { |
|||
|
|||
/** |
|||
* 查询enf测试单 |
|||
* |
|||
* @param id 主键 |
|||
* @return enf测试单 |
|||
*/ |
|||
TestEnfDemoVo queryById(Long id); |
|||
|
|||
/** |
|||
* 分页查询enf测试单列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return enf测试单分页列表 |
|||
*/ |
|||
TableDataInfo<TestEnfDemoVo> queryPageList(TestEnfDemoBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的enf测试单列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return enf测试单列表 |
|||
*/ |
|||
List<TestEnfDemoVo> queryList(TestEnfDemoBo bo); |
|||
|
|||
/** |
|||
* 新增enf测试单 |
|||
* |
|||
* @param bo enf测试单 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(TestEnfDemoBo bo); |
|||
|
|||
/** |
|||
* 修改enf测试单 |
|||
* |
|||
* @param bo enf测试单 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(TestEnfDemoBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除enf测试单信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); |
|||
} |
|||
@ -0,0 +1,139 @@ |
|||
package com.zdxt.enforcementnos.service.impl; |
|||
|
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Service; |
|||
import com.zdxt.enforcementnos.domain.bo.TestEnfDemoBo; |
|||
import com.zdxt.enforcementnos.domain.vo.TestEnfDemoVo; |
|||
import com.zdxt.enforcementnos.domain.TestEnfDemo; |
|||
import com.zdxt.enforcementnos.mapper.TestEnfDemoMapper; |
|||
import com.zdxt.enforcementnos.service.ITestEnfDemoService; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* enf测试单Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2026-05-19 |
|||
*/ |
|||
@Slf4j |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class TestEnfDemoServiceImpl implements ITestEnfDemoService { |
|||
|
|||
private final TestEnfDemoMapper baseMapper; |
|||
|
|||
/** |
|||
* 查询enf测试单 |
|||
* |
|||
* @param id 主键 |
|||
* @return enf测试单 |
|||
*/ |
|||
@Override |
|||
public TestEnfDemoVo queryById(Long id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询enf测试单列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return enf测试单分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<TestEnfDemoVo> queryPageList(TestEnfDemoBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<TestEnfDemo> lqw = buildQueryWrapper(bo); |
|||
Page<TestEnfDemoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的enf测试单列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return enf测试单列表 |
|||
*/ |
|||
@Override |
|||
public List<TestEnfDemoVo> queryList(TestEnfDemoBo bo) { |
|||
LambdaQueryWrapper<TestEnfDemo> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<TestEnfDemo> buildQueryWrapper(TestEnfDemoBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<TestEnfDemo> lqw = Wrappers.lambdaQuery(); |
|||
lqw.orderByAsc(TestEnfDemo::getId); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getEnfText()), TestEnfDemo::getEnfText, bo.getEnfText()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getEnfContent()), TestEnfDemo::getEnfContent, bo.getEnfContent()); |
|||
lqw.eq(bo.getDeptId() != null, TestEnfDemo::getDeptId, bo.getDeptId()); |
|||
lqw.eq(bo.getUserId() != null, TestEnfDemo::getUserId, bo.getUserId()); |
|||
lqw.eq(bo.getOrderNum() != null, TestEnfDemo::getOrderNum, bo.getOrderNum()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getTestKey()), TestEnfDemo::getTestKey, bo.getTestKey()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getValue()), TestEnfDemo::getValue, bo.getValue()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getBureauDeptId()), TestEnfDemo::getBureauDeptId, bo.getBureauDeptId()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增enf测试单 |
|||
* |
|||
* @param bo enf测试单 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(TestEnfDemoBo bo) { |
|||
TestEnfDemo add = MapstructUtils.convert(bo, TestEnfDemo.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改enf测试单 |
|||
* |
|||
* @param bo enf测试单 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(TestEnfDemoBo bo) { |
|||
TestEnfDemo update = MapstructUtils.convert(bo, TestEnfDemo.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(TestEnfDemo entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除enf测试单信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteByIds(ids) > 0; |
|||
} |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
<?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.zdxt.enforcementnos.mapper.TestEnfDemoMapper"> |
|||
</mapper> |
|||
@ -0,0 +1,21 @@ |
|||
<?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"> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
<parent> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>EnforcementCode</artifactId> |
|||
<version>${revision}</version> |
|||
<relativePath>../pom.xml</relativePath> |
|||
</parent> |
|||
|
|||
<artifactId>zdxt-web-client</artifactId> |
|||
<packaging>pom</packaging> |
|||
<properties> |
|||
<maven.compiler.source>17</maven.compiler.source> |
|||
<maven.compiler.target>17</maven.compiler.target> |
|||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
|||
</properties> |
|||
|
|||
</project> |
|||
@ -0,0 +1,149 @@ |
|||
// https://eslint.org/docs/user-guide/configuring
|
|||
|
|||
module.exports = { |
|||
//此项是用来告诉eslint找当前配置文件不能往父级查找
|
|||
root: true, |
|||
|
|||
//此项是用来指定eslint解析器的,解析器必须符合规则,babel-eslint解析器是对babel解析器的包装使其与ESLint解析
|
|||
parser: "babel-eslint", |
|||
|
|||
//此项是用来指定javaScript语言类型和风格,sourceType用来指定js导入的方式,默认是script,此处设置为module,指某块导入方式
|
|||
parserOptions: { |
|||
// 设置 script(默认) 或 module,如果代码是在ECMASCRIPT中的模块
|
|||
sourceType: "module", |
|||
ecmaVersion: 6, |
|||
ecmaFeatures: { |
|||
jsx: true, |
|||
}, |
|||
}, |
|||
|
|||
// 此项指定环境的全局变量,下面的配置指定为浏览器环境
|
|||
env: { |
|||
browser: true, |
|||
node: true, |
|||
commonjs: true, |
|||
es6: true, |
|||
amd: true, |
|||
}, |
|||
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
|
|||
// 此项是用来配置标准的js风格,就是说写代码的时候要规范的写,如果你使用vs-code我觉得应该可以避免出错
|
|||
extends: "vue", |
|||
// 此项是用来提供插件的,插件名称省略了eslint-plugin-,下面这个配置是用来规范html的
|
|||
plugins: ["html", "flow-vars", "react"], |
|||
/* |
|||
下面这些rules是用来设置从插件来的规范代码的规则,使用必须去掉前缀eslint-plugin- |
|||
主要有如下的设置规则,可以设置字符串也可以设置数字,两者效果一致 |
|||
"off" -> 0 关闭规则 |
|||
"warn" -> 1 开启警告规则 |
|||
"error" -> 2 开启错误规则 |
|||
*/ |
|||
rules: { |
|||
// 不需要
|
|||
"space-before-function-paren": 0, // 函数定义时括号前面要不要有空格
|
|||
"eol-last": 0, // 文件以单一的换行符结束
|
|||
"no-extra-semi": 0, // 可以多余的冒号
|
|||
semi: 0, // 语句可以不需要分号结尾
|
|||
eqeqeq: 0, // 必须使用全等
|
|||
"one-var": 0, // 连续声明
|
|||
"no-undef": 0, // 可以 有未定义的变量
|
|||
|
|||
// 警告
|
|||
"no-extra-boolean-cast": 1, // 不必要的bool转换
|
|||
"no-extra-parens": 1, // 非必要的括号
|
|||
"no-empty": 1, // 块语句中的内容不能为空
|
|||
"no-use-before-define": [1, "nofunc"], // 未定义前不能使用
|
|||
complexity: [1, 10], // 循环复杂度
|
|||
"no-unused-vars": 1, // 不能有声明后未被使用的变量或参数
|
|||
// vue
|
|||
"flow-vars/define-flow-type": 1, |
|||
"flow-vars/use-flow-type": 1, |
|||
|
|||
// react
|
|||
"react/jsx-uses-react": 2, |
|||
"react/jsx-uses-vars": 2, |
|||
|
|||
// 错误
|
|||
"comma-dangle": [2, "never"], // 对象字面量项尾不能有逗号
|
|||
"no-debugger": 2, // 禁止使用debugger
|
|||
"no-constant-condition": 2, // 禁止在条件中使用常量表达式 if(true) if(1)
|
|||
"no-dupe-args": 2, // 函数参数不能重复
|
|||
"no-dupe-keys": 2, // 在创建对象字面量时不允许键重复 {a:1,a:1}
|
|||
"no-duplicate-case": 2, // switch中的case标签不能重复
|
|||
"no-empty-character-class": 2, // 正则表达式中的[]内容不能为空
|
|||
"no-invalid-regexp": 2, // 禁止无效的正则表达式
|
|||
"no-func-assign": 2, // 禁止重复的函数声明
|
|||
"valid-typeof": 2, // 必须使用合法的typeof的值
|
|||
"no-unreachable": 2, // 不能有无法执行的代码
|
|||
"no-unexpected-multiline": 2, // 避免多行表达式
|
|||
"no-sparse-arrays": 2, // 禁止稀疏数组, [1,,2]
|
|||
"no-shadow-restricted-names": 2, // 严格模式中规定的限制标识符不能作为声明时的变量名使用
|
|||
"no-cond-assign": 2, // 禁止在条件表达式中使用赋值语句
|
|||
"no-native-reassign": 2, // 不能重写native对象
|
|||
|
|||
// 代码风格
|
|||
"no-else-return": 1, // 如果if语句里面有return,后面不能跟else语句
|
|||
"no-multi-spaces": 1, // 不能用多余的空格
|
|||
"key-spacing": [ |
|||
1, |
|||
{ |
|||
// 对象字面量中冒号的前后空格
|
|||
beforeColon: false, |
|||
afterColon: true, |
|||
}, |
|||
], |
|||
"block-scoped-var": 2, // 块语句中使用var
|
|||
"consistent-return": 2, // return 后面是否允许省略
|
|||
"accessor-pairs": 2, // 在对象中使用getter/setter
|
|||
"dot-location": [2, "property"], // 对象访问符的位置,换行的时候在行首还是行尾
|
|||
"no-lone-blocks": 2, // 禁止不必要的嵌套块
|
|||
"no-labels": 2, // 禁止标签声明
|
|||
"no-extend-native": 2, // 禁止扩展native对象
|
|||
"no-floating-decimal": 2, // 禁止省略浮点数中的0 .5 3.
|
|||
"no-loop-func": 2, // 禁止在循环中使用函数(如果没有引用外部变量不形成闭包就可以)
|
|||
"no-new-func": 2, // 禁止使用new Function
|
|||
"no-self-compare": 2, // 不能比较自身
|
|||
"no-sequences": 2, // 禁止使用逗号运算符
|
|||
"no-throw-literal": 2, // 禁止抛出字面量错误 throw "error";
|
|||
"no-return-assign": [2, "always"], // return 语句中不能有赋值表达式
|
|||
"no-redeclare": [ |
|||
2, |
|||
{ |
|||
// 禁止重复声明变量
|
|||
builtinGlobals: true, |
|||
}, |
|||
], |
|||
"no-unused-expressions": [ |
|||
2, |
|||
{ |
|||
// 禁止无用的表达式
|
|||
allowShortCircuit: true, |
|||
allowTernary: true, |
|||
}, |
|||
], |
|||
"no-useless-call": 2, // 禁止不必要的call和apply
|
|||
"no-useless-concat": 2, |
|||
"no-void": 2, // 禁用void操作符
|
|||
"no-with": 2, // 禁用with
|
|||
"space-infix-ops": 2, // 中缀操作符周围要不要有空格
|
|||
"valid-jsdoc": [ |
|||
2, |
|||
{ |
|||
// jsdoc规则
|
|||
requireParamDescription: true, |
|||
requireReturnDescription: true, |
|||
}, |
|||
], |
|||
"no-warning-comments": [ |
|||
2, |
|||
{ |
|||
// 不能有警告备注
|
|||
terms: ["todo", "fixme", "any other term"], |
|||
location: "anywhere", |
|||
}, |
|||
], |
|||
curly: 1, // 必须使用 if(){} 中的{}
|
|||
|
|||
// common js
|
|||
"no-duplicate-imports": 1, |
|||
}, |
|||
}; |
|||
@ -0,0 +1,27 @@ |
|||
.DS_Store |
|||
node_modules |
|||
/dist |
|||
/configs |
|||
|
|||
# local env files |
|||
.env.local |
|||
.env.*.local |
|||
|
|||
|
|||
# Log files |
|||
npm-debug.log* |
|||
yarn-debug.log* |
|||
yarn-error.log* |
|||
pnpm-debug.log* |
|||
package-lock.json |
|||
# Editor directories and files |
|||
.idea |
|||
.vscode |
|||
*.suo |
|||
*.ntvs* |
|||
*.njsproj |
|||
*.sln |
|||
*.sw? |
|||
*.zip |
|||
docs/.vitepress/cache |
|||
package-lock.json |
|||
@ -0,0 +1,127 @@ |
|||
木兰宽松许可证, 第2版 |
|||
|
|||
木兰宽松许可证, 第2版 |
|||
2020年1月 http://license.coscl.org.cn/MulanPSL2 |
|||
|
|||
|
|||
您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束: |
|||
|
|||
0. 定义 |
|||
|
|||
“软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。 |
|||
|
|||
“贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。 |
|||
|
|||
“贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。 |
|||
|
|||
“法人实体”是指提交贡献的机构及其“关联实体”。 |
|||
|
|||
“关联实体”是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。 |
|||
|
|||
1. 授予版权许可 |
|||
|
|||
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。 |
|||
|
|||
2. 授予专利许可 |
|||
|
|||
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。 |
|||
|
|||
3. 无商标许可 |
|||
|
|||
“本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。 |
|||
|
|||
4. 分发限制 |
|||
|
|||
您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。 |
|||
|
|||
5. 免责声明与责任限制 |
|||
|
|||
“软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。 |
|||
|
|||
6. 语言 |
|||
“本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。 |
|||
|
|||
条款结束 |
|||
|
|||
如何将木兰宽松许可证,第2版,应用到您的软件 |
|||
|
|||
如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步: |
|||
|
|||
1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字; |
|||
|
|||
2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中; |
|||
|
|||
3, 请将如下声明文本放入每个源文件的头部注释中。 |
|||
|
|||
Copyright (c) [Year] [name of copyright holder] |
|||
[Software Name] is licensed under Mulan PSL v2. |
|||
You can use this software according to the terms and conditions of the Mulan PSL v2. |
|||
You may obtain a copy of Mulan PSL v2 at: |
|||
http://license.coscl.org.cn/MulanPSL2 |
|||
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. |
|||
See the Mulan PSL v2 for more details. |
|||
|
|||
|
|||
Mulan Permissive Software License,Version 2 |
|||
|
|||
Mulan Permissive Software License,Version 2 (Mulan PSL v2) |
|||
January 2020 http://license.coscl.org.cn/MulanPSL2 |
|||
|
|||
Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions: |
|||
|
|||
0. Definition |
|||
|
|||
Software means the program and related documents which are licensed under this License and comprise all Contribution(s). |
|||
|
|||
Contribution means the copyrightable work licensed by a particular Contributor under this License. |
|||
|
|||
Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License. |
|||
|
|||
Legal Entity means the entity making a Contribution and all its Affiliates. |
|||
|
|||
Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity. |
|||
|
|||
1. Grant of Copyright License |
|||
|
|||
Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not. |
|||
|
|||
2. Grant of Patent License |
|||
|
|||
Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken. |
|||
|
|||
3. No Trademark License |
|||
|
|||
No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4. |
|||
|
|||
4. Distribution Restriction |
|||
|
|||
You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software. |
|||
|
|||
5. Disclaimer of Warranty and Limitation of Liability |
|||
|
|||
THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
|||
|
|||
6. Language |
|||
|
|||
THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL. |
|||
|
|||
END OF THE TERMS AND CONDITIONS |
|||
|
|||
How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software |
|||
|
|||
To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps: |
|||
|
|||
i Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; |
|||
|
|||
ii Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package; |
|||
|
|||
iii Attach the statement to the appropriate annotated syntax at the beginning of each source file. |
|||
|
|||
|
|||
Copyright (c) [Year] [name of copyright holder] |
|||
[Software Name] is licensed under Mulan PSL v2. |
|||
You can use this software according to the terms and conditions of the Mulan PSL v2. |
|||
You may obtain a copy of Mulan PSL v2 at: |
|||
http://license.coscl.org.cn/MulanPSL2 |
|||
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. |
|||
See the Mulan PSL v2 for more details. |
|||
@ -0,0 +1,5 @@ |
|||
module.exports = { |
|||
presets: [ |
|||
'@vue/cli-plugin-babel/preset' |
|||
] |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8" /> |
|||
<!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> --> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover"/> |
|||
<title>执法监督码</title> |
|||
</head> |
|||
<body> |
|||
<div id="app"></div> |
|||
<script type="module" src="/src/main.js"></script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,71 @@ |
|||
{ |
|||
"name": "zdxt-efcode-nos-enforcement-app", |
|||
"version": "0.1.0", |
|||
"private": true, |
|||
"type": "module", |
|||
"scripts": { |
|||
"vite-server-app:enforcement-dev": "vite --mode enforcement-dev", |
|||
"build-app:enforcement-dev": "vite build --mode enforcement-dev --outDir dist/enforcement-dev", |
|||
"build-app:enforcement-prod": "vite build --mode enforcement-prod --outDir dist/enforcement-prod" |
|||
}, |
|||
"dependencies": { |
|||
"axios": "^1.15.0", |
|||
"compressorjs": "^1.2.1", |
|||
"core-js": "^3.44.0", |
|||
"crypto-js": "^4.2.0", |
|||
"date-fns": "^3.6.0", |
|||
"echarts": "^6.0.0", |
|||
"html5-qrcode": "^2.3.8", |
|||
"jsonp": "^0.2.1", |
|||
"lodash": "^4.17.21", |
|||
"mitt": "^3.0.1", |
|||
"pinia": "^3.0.4", |
|||
"pinia-plugin-persistedstate": "^4.7.1", |
|||
"sass": "^1.71.1", |
|||
"szient-js-sdk": "^1.2.2", |
|||
"vant": "^4.9.24", |
|||
"vconsole": "^3.15.1", |
|||
"vue": "^3.5.32", |
|||
"vue-dompurify-html": "^5.0.1", |
|||
"vue-i18n": "^11.3.2", |
|||
"vue-qrcode-reader": "^5.7.3", |
|||
"vue-router": "^4.3.0", |
|||
"weixin-js-sdk": "^1.6.5" |
|||
}, |
|||
"devDependencies": { |
|||
"@vitejs/plugin-basic-ssl": "^1.1.0", |
|||
"@vitejs/plugin-legacy": "^6.0.2", |
|||
"@vitejs/plugin-vue": "^5.0.4", |
|||
"amfe-flexible": "^2.2.1", |
|||
"autoprefixer": "^10.4.17", |
|||
"jszip": "^3.10.1", |
|||
"less": "^4.2.0", |
|||
"less-loader": "^12.2.0", |
|||
"postcss-pxtorem": "^6.1.0", |
|||
"unplugin-auto-import": "^21.0.0", |
|||
"unplugin-vue-components": "^32.0.0", |
|||
"vite": "^6.2.6", |
|||
"vite-plugin-compression": "^0.5.1", |
|||
"vite-plugin-eslint": "^1.8.1", |
|||
"vite-plugin-progress": "^0.0.7", |
|||
"vite-plugin-style-import": "^2.0.0", |
|||
"vite-plugin-vue-setup-extend": "^0.4.0", |
|||
"vitepress": "^1.6.3" |
|||
}, |
|||
"eslintConfig": { |
|||
"root": true, |
|||
"env": { |
|||
"node": true |
|||
}, |
|||
"extends": [], |
|||
"parserOptions": { |
|||
"parser": "babel-eslint" |
|||
}, |
|||
"rules": {} |
|||
}, |
|||
"browserslist": [ |
|||
"> 1%", |
|||
"last 2 versions", |
|||
"not dead" |
|||
] |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
<template> |
|||
<router-view v-slot="{ Component, route }"> |
|||
<!-- 路由缓存 --> |
|||
<keep-alive> |
|||
<component :is="Component" v-if="route?.meta?.isKeepAlive || route?.meta?.isRouterKeepAlive" |
|||
:key="route?.meta?.isRouterKeepAlive ? route?.fullPath : route?.name" /> |
|||
</keep-alive> |
|||
|
|||
<!-- 不缓存 --> |
|||
<component :is="Component" v-if="(!route?.meta?.isKeepAlive) && (!route?.meta?.isRouterKeepAlive)" |
|||
:key="route.name" /> |
|||
</router-view> |
|||
</template> |
|||
|
|||
<script setup name="App"> |
|||
const handleLoadUrl = inject('$provideLoadUrl') |
|||
|
|||
onMounted(async () => { |
|||
handleLoadUrl() |
|||
}); |
|||
</script> |
|||
|
|||
|
|||
@ -0,0 +1,13 @@ |
|||
import { _get, _post, _form, _delete } from "../../http/index"; |
|||
|
|||
// region 执法端接口
|
|||
|
|||
let enforcementAppBaseUrl = "/app-enf"; |
|||
|
|||
// 执法端用户登录
|
|||
export const enforcementLogin = (params, success, error) => _post(enforcementAppBaseUrl + "/login/do", params, success, error); |
|||
|
|||
// 扫描二维码后获取企业信息(qrContent 为前端解析二维码获取的原始文本)
|
|||
export const getEntInfoByQRCode = (qrContent, success, error) => _get(enforcementAppBaseUrl + "/enterpriseInfo/getEntInfoByQRCode", { qrContent }, success, error); |
|||
|
|||
// endregion
|
|||
@ -0,0 +1,22 @@ |
|||
import { _get, _post, _put, _delete } from "../../http/index"; |
|||
|
|||
// region 计划管理接口
|
|||
|
|||
const planBaseUrl = "/app-enf/cpPlan"; |
|||
|
|||
// 计划列表(分页)
|
|||
export const getPlanList = (params, success, error) => _get(planBaseUrl + "/list", params, success, error); |
|||
|
|||
// 计划详情
|
|||
export const getPlanDetail = (id, success, error) => _get(planBaseUrl + "/" + id, {}, success, error); |
|||
|
|||
// 新增计划
|
|||
export const addPlan = (params, success, error) => _post(planBaseUrl, params, success, error); |
|||
|
|||
// 编辑计划
|
|||
export const editPlan = (params, success, error) => _put(planBaseUrl, params, success, error); |
|||
|
|||
// 删除计划
|
|||
export const deletePlan = (ids, success, error) => _delete(planBaseUrl + "/" + ids, {}, success, error); |
|||
|
|||
// endregion
|
|||
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 161 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 187 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 90 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 955 B |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 604 B |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |