1. 巡检项目 创建

This commit is contained in:
zhaowenyuan 2024-06-15 09:33:51 +08:00
parent 3e904a292c
commit 66fca10012
9 changed files with 591 additions and 0 deletions

View File

@ -0,0 +1,64 @@
### gradle ###
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar
### STS ###
.settings/
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
bin/
### IntelliJ IDEA ###
.idea/*
*.iws
*.iml
*.ipr
rebel.xml
### NetBeans ###
nbproject/private/
build/
nbbuild/
nbdist/
.nb-gradle/
### maven ###
target/
*.war
*.ear
*.zip
*.tar
*.tar.gz
### vscode ###
.vscode
### logs ###
/logs/
*.log
*.log.gz
### xxl-job log ###
/xxl-job/
### temp ignore ###
*.cache
*.diff
*.patch
*.tmp
*.java~
*.properties~
*.xml~
### system ignore ###
.DS_Store
Thumbs.db
Servers
.metadata
.fastRequest

View File

@ -0,0 +1,30 @@
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.chushang</groupId>
<artifactId>chushang-module-inspection</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>inspection-feign</artifactId>
<dependencies>
<dependency>
<groupId>com.chushang</groupId>
<artifactId>chushang-common-feign</artifactId>
</dependency>
<!-- 权限控制 -->
<dependency>
<groupId>com.chushang</groupId>
<artifactId>chushang-common-data-scope</artifactId>
</dependency>
<dependency>
<groupId>com.chushang</groupId>
<artifactId>chushang-common-dict</artifactId>
</dependency>
<dependency>
<groupId>com.chushang</groupId>
<artifactId>chushang-common-log</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,118 @@
<?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>chushang-module-inspection</artifactId>
<groupId>com.chushang</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.0.0</version>
<artifactId>inspection-service</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.chushang</groupId>
<artifactId>inspection-feign</artifactId>
</dependency>
<dependency>
<groupId>com.chushang</groupId>
<artifactId>chushang-common-redis</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/application.yml</exclude>
<exclude>**/bootstrap.yml</exclude>
<exclude>**/logback-nacos.xml</exclude>
</excludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!-- MANIFEST.MF 中 Class-Path 加入前缀 -->
<classpathPrefix>lib/</classpathPrefix>
<!-- jar包不包含唯一版本标识 -->
<useUniqueVersions>false</useUniqueVersions>
<!--指定入口类 -->
<mainClass>com.chushang.LoanApplication</mainClass>
</manifest>
<manifestEntries>
<!--MANIFEST.MF 中 Class-Path 加入资源文件目录 -->
<Class-Path>./config/</Class-Path>
</manifestEntries>
</archive>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<finalName>${project.build.finalName}</finalName>
<layers>
<enabled>true</enabled>
</layers>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 该插件的作用是用于复制指定的文件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution> <!-- 复制配置文件 -->
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>application.yml</include>
<include>bootstrap.yml</include>
<include>logback-nacos.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<nonFilteredFileExtensions>
</nonFilteredFileExtensions>
<encoding>UTF-8</encoding>
<outputDirectory>${project.build.directory}/config</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
</project>

View File

@ -0,0 +1,48 @@
package com.chushang;
import com.chushang.common.core.enums.AppStartType;
import com.chushang.common.feign.annotation.EnableOnnFeignClients;
import com.chushang.common.feign.annotation.EnableTransferFeign;
import com.chushang.security.annotation.EnableCustomConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* 认证授权中心
*
* @author ruoyi
*/
@EnableDiscoveryClient
@EnableOnnFeignClients
@SpringBootApplication(scanBasePackages = {"com.chushang.**"})
@EnableTransferFeign
@EnableCustomConfig
@EnableTransactionManagement
public class InspectionApplication extends SpringBootServletInitializer
{
private final static Logger log = LoggerFactory.getLogger(InspectionApplication.class);
private final static String APP_NAME = "巡检工单服务应用";
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
log.info(AppStartType.START_FORMAT, AppStartType.web_server.type(), APP_NAME);
SpringApplicationBuilder run = application.sources(InspectionApplication.class);
log.info(AppStartType.END_FORMAT, AppStartType.web_server.type(), APP_NAME);
return run;
}
public static void main(String[] args) throws Exception {
log.info(AppStartType.START_FORMAT, AppStartType.main.type(), APP_NAME);
SpringApplication.run(InspectionApplication.class, args);
log.info(AppStartType.END_FORMAT, AppStartType.main.type(), APP_NAME);
}
}

View File

@ -0,0 +1,126 @@
server:
#开启优雅停机
shutdown: graceful
port: 8086
servlet:
context-path: /task
tomcat:
uri-encoding: UTF-8
threads:
max: 800
min-spare: 100
spring:
servlet:
multipart:
# 修改上传文件临时路径为 /data1/tmp
location: /data1/tmp
max-file-size: 100MB
max-request-size: 100MB
application:
name: @artifactId@
# 如果需要使用读写分离, 此处需要改造, 有没有办法不用改?
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: ${config.jdbc.master.task.username}
password: ${config.jdbc.master.task.password}
url: jdbc:mysql://${config.jdbc.master.task.host}:${config.jdbc.master.task.port}/${config.jdbc.master.task.database}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
hikari:
# 最大线程池数量
maximum-pool-size: 30
# 最小线程池数量
minimum-idle: 5
# 检测连接
connection-test-query: SELECT 1
# 连接超时时间 默认30分钟
connection-timeout: 30000
# 连接最大生存期间, 默认30分钟
#max-lifetime: 300000
devtools:
restart:
enabled: true
jackson:
default-property-inclusion: ALWAYS
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
# mybaits-plus配置
mybatis-plus:
# 全局刷新 mapper
mapper-locations: classpath:/mapper/**/*.xml
global-config:
refresh:
enable: true
db-config:
id-type: auto
table-underline: true
logic-delete-value: 1
logic-not-delete-value: 0
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# feign 配置
feign:
sentinel:
enabled: true
okhttp:
enabled: true
httpclient:
enabled: false
client:
config:
default:
connectTimeout: 10000
readTimeout: 10000
compression:
request:
enabled: true
response:
enabled: true
# 暴露监控端点
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
# 日志监听配置 -- 如果启用的话,需要配置 kafka 的路径
logging:
config: classpath:logback-nacos.xml
rocketmq:
name-server: ${config.rocketmq.name-server}
producer:
# 生产者分组
group: ${config.rocketmq.producer.group}
# 发送消息超时时间, 单位毫秒, 默认3000
send-message-timeout: 10000
# 消息压缩阈值, 当消息体的大小超过该阈值时进行消息压缩,默认为4*1024B
compress-message-body-threshold: 4096
# 消息体的最大允许大小,默认为4*1024*1024B
max-message-size: 4194304
# 同步发送消息时,失败重试次数,默认2
retry-times-when-send-failed: 2
# 异步发送消息时,失败重试次数,默认2
retry-times-when-send-async-failed: 2
# 发送消息给broker 时,发送失败是否重试另一台broker, 默认为false
retry-next-server: false
access-key: # Access Key ,可阅读 https://github.com/apache/rocketmq/blob/master/docs/cn/acl/user_guide.md 文档
secret-key: # Secret Key
# 是否开启消息轨迹功能,默认为false 可阅读 https://github.com/apache/rocketmq/blob/master/docs/cn/msg_trace/user_guide.md 文档
enable-msg-trace: false
# 自定义消息轨迹的 Topic 。默认为 RMQ_SYS_TRACE_TOPIC 。
customized-trace-topic: RMQ_SYS_TRACE_TOPIC
consumer:
# 配置某个消费分组,是否监听指定 Topic 。结构为 Map<消费者分组, <Topic, Boolean>> 。默认情况下,不配置表示监听。
listeners:
# 关闭 test-consumer-group 对 topic1 的监听消费
test-consumer-group:
topic1: false # 关闭 test-consumer-group 对 topic1 的监听消费

View File

@ -0,0 +1,29 @@
spring:
config:
import:
-: "classpath:application.yml"
cloud:
loadbalancer:
cache:
enabled: false
nacos:
server-addr: ${nacos.host}
username: ${nacos.username}
password: ${nacos.password}
discovery:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${nacos.namespace}
group: ${nacos.group}
service: ${spring.application.name}
config:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
group: ${spring.cloud.nacos.discovery.group}
file-extension: yaml
refresh-enabled: true
shared-configs:
- dataId: application-common.${spring.cloud.nacos.config.file-extension}
group: ${nacos.group}
refresh: ${spring.cloud.nacos.config.refresh-enabled}
profiles:
active: @profiles.active@

View File

@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="false">
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
<springProperty scope="context" name="plumelog.kafka.hosts" source="plumelog.kafka.hosts"/>
<springProperty scope="context" name="plumelog.redis.hosts" source="plumelog.redis.hosts" />
<springProperty scope="context" name="plumelog.redis.auth" source="plumelog.redis.auth" />
<springProperty scope="context" name="plumelog.redis.db" source="plumelog.redis.db" />
<springProperty scope="context" name="plumelog.env" source="spring.profiles.active"/>
<property name="log.kafka.hosts" value="${plumelog.kafka.hosts}" />
<property name="log.redis.hosts" value="${plumelog.redis.hosts}" />
<property name="log.redis.auth" value="${plumelog.redis.auth}" />
<property name="log.redis.db" value="${plumelog.redis.db}"/>
<property name="log.path" value="logs/${spring.application.name}"/>
<property name="log.env" value="${plumelog.env}"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} TRACE[%X{traceId:-} / %X{span:-}] [%clr(%5p) %clr(${PID:- } %clr(%15.15t){faint}] %clr(---){faint}){magenta} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx"/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- Log file info output -->
<appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<maxFileSize>500MB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
</appender>
<appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/debug.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<maxFileSize>500MB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
</appender>
<appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<maxFileSize>500MB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>error</level>
</filter>
</appender>
<!--nacos 心跳 INFO 屏蔽-->
<logger name="com.alibaba.cloud.nacos" level="info">
</logger>
<!-- 使用kafka启用下面配置 -->
<!-- <appender name="plumelog" class="com.plumelog.logback.appender.KafkaAppender">-->
<!-- <appName>${spring.application.name}</appName>-->
<!-- <kafkaHosts>${log.hosts}</kafkaHosts>-->
<!-- </appender>-->
<!--redis-->
<!-- <appender name="redisPlumelog" class="com.plumelog.logback.appender.RedisAppender">-->
<!-- <appName>${spring.application.name}</appName>-->
<!-- <redisHost>${log.redis.hosts}</redisHost>-->
<!-- <redisAuth>${log.redis.auth}</redisAuth>-->
<!-- <redisDb>${log.redis.db}</redisDb>-->
<!-- <env>${log.env}</env>-->
<!-- </appender>-->
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="info"/>
<appender-ref ref="debug"/>
<appender-ref ref="error"/>
<!-- 输出plumelog -->
<!-- <appender-ref ref="redisPlumelog"/>-->
</root>
</configuration>

View File

@ -0,0 +1,64 @@
<?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>chushang-modules</artifactId>
<groupId>com.chushang</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>chushang-module-inspection</artifactId>
<description>巡检模块, 主要包含工单, 项目, 合同, 任务等功能. 将商户以及终端剥离, 使其在单独项目中, 通过远程调用实现</description>
<packaging>pom</packaging>
<modules>
<module>inspection-service</module>
<module>inspection-feign</module>
</modules>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.chushang</groupId>
<artifactId>inspection-feign</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!--监控客户端-->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
<!--注册中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--配置中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -14,6 +14,7 @@
<modules>
<module>chushang-module-auth</module>
<module>chushang-module-gateway</module>
<module>chushang-module-inspection</module>
<module>chushang-module-loan</module>
<module>chushang-module-system</module>
<module>chushang-module-oss</module>