添加报价服务模块

This commit is contained in:
曹鹏飞 2026-01-09 15:05:02 +08:00
parent bf343116dd
commit 99121a74fa
8 changed files with 342 additions and 0 deletions

View File

@ -0,0 +1,172 @@
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.nflg</groupId>
<artifactId>nflg-mobilebroken</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>nflg-mobilebroken-quotation</artifactId>
<name>报价服务</name>
<description>nflg-mobilebroken-quotation</description>
<dependencies>
<dependency>
<groupId>com.nflg</groupId>
<artifactId>nflg-mobilebroken-common</artifactId>
</dependency>
<dependency>
<groupId>com.nflg</groupId>
<artifactId>nflg-mobilebroken-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.nflg</groupId>
<artifactId>nflg-mobilebroken-repository</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.1.28</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf</artifactId>
<version>9.3.1</version>
<exclusions>
<exclusion>
<artifactId>bcprov-jdk14</artifactId>
<groupId>org.bouncycastle</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- iText (required by Flying Saucer) -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.3</version>
</dependency>
<!-- Additional iText Asian fonts for Chinese support -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-redis-jackson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>com.github.mwiede</groupId>
<artifactId>jsch</artifactId>
<version>2.27.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<excludeGroupIds>${project.groupId}</excludeGroupIds>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.nflg.mobilebroken.quotation.QuotationApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>${project.groupId}:*</include>
</includes>
</artifactSet>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,26 @@
package com.nflg.mobilebroken.quotation;
import cn.dev33.satoken.SaManager;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@MapperScan("com.nflg.mobilebroken.repository.mapper")
@ComponentScan(basePackages = {"com.nflg.mobilebroken.repository.service", "com.nflg.mobilebroken.quotation"
, "com.nflg.mobilebroken.starter"})
@EnableDiscoveryClient
@EnableScheduling
@Slf4j
public class QuotationApplication {
public static void main(String[] args) {
SpringApplication.run(QuotationApplication.class, args);
log.info("启动成功Sa-Token 配置如下:" + SaManager.getConfig());
}
}

View File

@ -0,0 +1,15 @@
package com.nflg.mobilebroken.quotation.config;
import cn.dev33.satoken.context.SaTokenContext;
import cn.dev33.satoken.spring.SaTokenContextForSpring;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SaTokenConfig {
@Bean
public SaTokenContext saTokenContext() {
return new SaTokenContextForSpring();
}
}

View File

@ -0,0 +1,13 @@
# Nacos 地址
nacos.server-addr=${NACOS_SERVER_ADDR:192.168.0.194:8848}
#nacos.server-addr=192.168.0.194:8848
#spring.cloud.nacos.discovery.username=nacos
#spring.cloud.nacos.discovery.password=ZLQ8vgmjoJ4?EPJ4]fs_
#spring.config.activate.on-profile=dev
logging.level.com.nflg=trace
logging.level.com.alibaba.cloud.nacos.config=DEBUG
#spring.datasource.url=jdbc:mysql://112.74.186.154:13151/mobilebroken?useUnicode=true&characterEncoding=utf8mb4&tinyInt1isBit=false&useSSL=false&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=GMT%2B8
#spring.datasource.username=nflg
#spring.datasource.password=Aciga@2022
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
logging.config=classpath:logback-sit.xml

View File

@ -0,0 +1,13 @@
# Nacos 地址
nacos.server-addr=${NACOS_SERVER_ADDR:192.168.0.194:8848}
#nacos.server-addr=192.168.0.194:8848
#spring.cloud.nacos.discovery.username=nacos
#spring.cloud.nacos.discovery.password=ZLQ8vgmjoJ4?EPJ4]fs_
#spring.config.activate.on-profile=dev
logging.level.com.nflg=DEBUG
logging.level.com.alibaba.cloud.nacos.config=DEBUG
#spring.datasource.url=jdbc:mysql://112.74.186.154:13151/mobilebroken?useUnicode=true&characterEncoding=utf8mb4&tinyInt1isBit=false&useSSL=false&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=GMT%2B8
#spring.datasource.username=nflg
#spring.datasource.password=Aciga@2022
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
logging.config=classpath:logback-sit.xml

View File

@ -0,0 +1,29 @@
spring.application.name=quotation
spring.profiles.active=dev
server.port=8086
spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=1024MB
spring.servlet.multipart.max-request-size=1024MB
spring.servlet.multipart.file-size-threshold=10MB
spring.servlet.multipart.location=/tmp
#spring.config.import=classpath:application-${spring.profiles.active}.properties,nacos:
#spring.config.import=nacos:
logging.level.root=info
#logging.level.com.alibaba.nacos.client=DEBUG
#logging.level.org.springframework.boot.context.config=DEBUG
#logging.config=classpath:logback-sit.xml
# 启用服务发现自动路由
spring.cloud.gateway.discovery.locator.enabled=true
spring.cloud.nacos.config.namespace=mobilebroken
spring.cloud.nacos.config.group=${spring.profiles.active}
spring.cloud.nacos.config.server-addr=${nacos.server-addr}
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.config.extension-configs[0].data-id=shared.properties
spring.cloud.nacos.config.extension-configs[0].group=${spring.profiles.active}
spring.cloud.nacos.config.extension-configs[0].refresh=true
spring.cloud.nacos.discovery.server-addr=${nacos.server-addr}
spring.cloud.nacos.discovery.namespace=mobilebroken
spring.cloud.nacos.discovery.group=${spring.profiles.active}
spring.cloud.nacos.discovery.metadata.env=${spring.profiles.active}
spring.thymeleaf.encoding=UTF-8
#spring.thymeleaf.cache=true

View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="false" scanPeriod="30 seconds">
<!--定义日志文件的存储地址 -->
<Property name="logDir" value="./logs"/>
<Property name="splitSize" value="50MB"/>
<!-- 控制台日志, 控制台输出 -->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder" charset="UTF-8">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度,%logger:显示类名 %msg日志消息%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{traceId} [%thread] %-5level %logger{10} %method:%line %msg%n
</pattern>
</encoder>
</appender>
<!-- 固定窗口滚动策略的日志输出 -->
<appender name="RollingFileAll" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<file>${logDir}/mobilebroken-quotation.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 按日期滚动,每天生成一个文件 -->
<fileNamePattern>${logDir}/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 保留15天的日志 -->
<maxHistory>15</maxHistory>
<!-- 启动时,是否删除旧的日志文件 -->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<!-- 单天单个日志最大size -->
<maxFileSize>${splitSize}</maxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder" charset="UTF-8">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%logger:显示类名 %msg日志消息%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{traceId} [%thread] %-5level %logger{30} %method:%line %msg%n
</pattern>
</encoder>
</appender>
<!-- error日志 -->
<appender name="ErrorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>error</level>
</filter>
<file>${logDir}/error/mobilebroken-quotation-error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 按日期滚动,每天生成一个文件 -->
<fileNamePattern>${logDir}/error/%d{yyyy-MM-dd}.%i.error.log</fileNamePattern>
<!-- 保留15天的日志 -->
<maxHistory>30</maxHistory>
<!-- 启动时,是否删除旧的日志文件 -->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<!-- 单天单个日志最大size -->
<maxFileSize>${splitSize}</maxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder" charset="UTF-8">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%logger:显示类名 %msg日志消息%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{traceId} [%thread] %-5level %logger{50} %msg%n</pattern>
</encoder>
</appender>
<logger name="com.nflg" level="DEBUG"/>
<!-- 日志输出级别 -->
<root level="ERROR">
<appender-ref ref="ErrorFile"/>
</root>
<root level="DEBUG">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileAll"/>
</root>
</configuration>

View File

@ -23,6 +23,7 @@
<module>nflg-mobilebroken-push</module>
<module>nflg-mobilebroken-product</module>
<module>nflg-mobilebroken-gongfu</module>
<module>nflg-mobilebroken-quotation</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>