上传文件

This commit is contained in:
chentianrui
2025-08-01 15:31:56 +08:00
commit 9609bb67b4
805 changed files with 982256 additions and 0 deletions
@@ -0,0 +1,19 @@
# 基础镜像
FROM harbor.jxbw.com/public/library/centos7-jdk1.8-chinafonts
# 作者
MAINTAINER huangtianlong
#设置系统字符集
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV LC_ALL en_US.UTF-8
# 添加到镜像
ADD booway-analysis-server/ /home/service/booway-analysis-server/
#创建文件夹
RUN mkdir /tmp/jiexi
WORKDIR /home/service/booway-analysis-server/
# 镜像启动后暴露的端口
EXPOSE 8088
#设置时区
RUN echo "Asia/Shanghai" > /etc/timezone
# jar运行命令,参数使用逗号隔开
ENTRYPOINT ["sh", "-c", "java -Djava.io.tmpdir=/tmp/jiexi -jar ./booway-analysis-server*.jar --spring.config.additional-location=./application.yml"]
@@ -0,0 +1,22 @@
{"properties": [
{
"name": "IP.whitelist",
"type": "java.lang.String",
"description": "设置可访问的客户端IP白名单,多个IP地址使用【;】分隔,不配置默认允许全部"
},
{
"name": "bpe.config.path",
"type": "java.lang.String",
"description": "'bpe.config.path' 为组件BPE的主配置文件路径"
},
{
"name": "bpc.config.path",
"type": "java.lang.String",
"description": "'bpc.config.path' 为组件BPC的主配置文件路径"
},
{
"name": "bpt.config.path",
"type": "java.lang.String",
"description": "'bpt.config.path' 为组件BPT的主配置文件路径"
}
]}
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<controls errorCode="80008" errorMsg="检测该工程文件过程中,系统发生未知异常,请稍后再试" variable="实际工程文件后缀,工程文件后缀,工程版本,版本号权值,工程类别,阶段类型,工程类型,插件名称,地区插件,执行规范,项目类型,清单规范">
<control description="是否为支持后缀的博微工程文件" errorMsg="暂不支持解析后缀为&lt;span class='upload-dialog__error__msg'&gt;[实际工程文件后缀]&lt;/span&gt;的博微工程文件" errorCode="80007"
condition="[工程文件后缀]=='.NWZJ' ||[工程文件后缀]=='.NWQD' ||[工程文件后缀]=='.ZWQD' || [工程文件后缀]=='.ZWZJ' || [工程文件后缀]=='.zwzj' || [工程文件后缀]=='.BT1' || [工程文件后缀]=='.BT2' || [工程文件后缀]=='.BDD3' || [工程文件后缀]=='.BDQ3' || [工程文件后缀]=='.BDS3' || [工程文件后缀]=='.BDY3' || [工程文件后缀]=='.BDP3' || [工程文件后缀]=='.BT1P'|| [工程文件后缀]=='.bpz17' || [工程文件后缀]=='.bpp17' || [工程文件后缀]=='.bpq17'|| [工程文件后缀]=='.BPQ17' || [工程文件后缀]=='.bphq18' || [工程文件后缀]=='.bpq18' || [工程文件后缀]=='.bps17' || [工程文件后缀]=='.bphs18' || [工程文件后缀]=='.bps18' || [工程文件后缀]=='.bpy17' || [工程文件后缀]=='.bpy18' || [工程文件后缀]=='.BPY17'" />
<control description="工程版本号是否能获取" errorMsg="未检测到该工程文件版本信息,请确认" errorCode="80007" condition="[工程版本]!=''" />
<!-- <control description="工程版本 是否支持解析" errorMsg="当前工程版本为&lt;span class='upload-dialog__error__msg'&gt;[工程版本]&lt;/span&gt;,工程版本过低,暂不支持" errorCode="80007" -->
<!-- condition="([工程类别]=='主网工程' &amp;&amp; [版本号权值] &gt;= (1*1000000+5*1000+0*1+0*0.001)) || ([工程类别]=='技改定额工程' &amp;&amp; [版本号权值] &gt;= (1*1000000+2*1000+3*1+35*0.001)) || ([工程类别]=='技改清单工程' &amp;&amp; [版本号权值] &gt;=(1*1000000+0*1000+1*1+60*0.001)) || ([工程类别]=='配网定额计价' &amp;&amp; [版本号权值] &gt;=(2*1000000+0*1000+0*1+100*0.001)) || ([工程类别]=='配网清单招投标计价' &amp;&amp; [版本号权值] &gt;=(2*1000000+0*1000+0*1+100*0.001)) || ([工程类别]=='配网清单预算' &amp;&amp; [版本号权值] &gt;=(2*1000000+0*1000+0*1+100*0.001)) || ([工程类别]=='配网清单结算' &amp;&amp; [版本号权值] &gt;=(2*1000000+0*1000+0*1+100*0.001)) || ([工程类别]=='配网批次工程' &amp;&amp; [版本号权值] &gt;=(2*1000000+0*1000+0*1+100*0.001)) || ([工程类别]=='技改批次工程' &amp;&amp; [版本号权值] &gt;=(1*1000000+2*1000+3*1+35*0.001))" /> -->
<control description="当前工程是否为合并工程" errorMsg="当前工程为&lt;span class='upload-dialog__error__msg'&gt;合并工程&lt;/span&gt;,暂不支持" errorCode="80007"
condition="[阶段类型]!='架线合并方案' &amp;&amp; [工程类型]!='架线合并方案'" />
<control description="插件工程是否支持解析" errorMsg="当前工程的插件名称为&lt;span class='upload-dialog__error__msg'&gt;[插件名称]&lt;/span&gt;,暂不支持该插件文件" errorCode="80007"
condition="([工程类别]=='主网工程' &amp;&amp; ([插件名称]=='' || [插件名称]=='南网规约插件' || [插件名称]=='行业清单插件' || [插件名称]=='湖南智能化造价插件')) || ([工程类别]!='主网工程') || ([工程类别]=='配网定额计价' || [工程类别]=='配网清单招投标计价' || [工程类别]=='配网清单结算' || [工程类别]=='配网清单预算' || [工程类别]=='配网批次工程' || [工程类别]=='技改批次工程')" />
<control description="地区插件是否支持解析" errorMsg="当前工程的地区插件为&lt;span class='upload-dialog__error__msg'&gt;[地区插件]&lt;/span&gt;,暂不支持该插件文件" errorCode="80007"
condition="!([工程类别]=='配网定额计价' || [工程类别]=='配网清单招投标计价' || [工程类别]=='配网清单结算' || [工程类别]=='配网清单预算') || ([工程类别]=='配网定额计价' &amp;&amp; [地区插件]=='全国版') || ([工程类别]=='配网定额计价' &amp;&amp; [地区插件]=='贵州版') || ([工程类别]=='配网清单招投标计价' &amp;&amp; [地区插件]=='行业版') || ([工程类别]=='配网清单招投标计价' &amp;&amp; [地区插件]=='广东版') || ([工程类别]=='配网清单招投标计价' &amp;&amp; [地区插件]=='广西版') || ([工程类别]=='配网清单招投标计价' &amp;&amp; [地区插件]=='内蒙古版') || ([工程类别]=='配网清单预算' &amp;&amp; [地区插件]=='广东版') || ([工程类别]=='配网清单预算' &amp;&amp; [地区插件]=='广西版') || ([工程类别]=='配网清单预算' &amp;&amp; [地区插件]=='内蒙古版') || ([工程类别]=='配网清单预算' &amp;&amp; [地区插件]=='广东版') || ([工程类别]=='配网清单结算' &amp;&amp; [地区插件]=='行业版') || ([工程类别]=='配网清单结算' &amp;&amp; [地区插件]=='广东版') || ([工程类别]=='配网清单结算' &amp;&amp; [地区插件]=='内蒙古版') || ([工程类别]=='配网清单预算' &amp;&amp; [地区插件]=='广东版') || ([工程类别]=='配网清单结算' &amp;&amp; [地区插件]=='行业版') || ([工程类别]=='配网清单结算' &amp;&amp; [地区插件]=='广东版') || ([工程类别]=='配网清单结算' &amp;&amp; [地区插件]=='内蒙古版') || ([工程类别]=='配网清单预算' &amp;&amp; [地区插件]=='湖北版') || ([工程类别]=='配网定额计价' &amp;&amp; [地区插件]=='河南版') || ([工程类别]=='配网定额计价' &amp;&amp; [地区插件]=='福建版') || ([工程类别]=='配网清单招投标计价' &amp;&amp; [地区插件]=='辽宁版') || ([工程类别]=='配网清单结算' &amp;&amp; [地区插件]=='辽宁版') || ([工程类别]=='配网定额计价' &amp;&amp; [地区插件]=='云南版') || ([工程类别]=='配网定额计价' &amp;&amp; [地区插件]=='甘肃版') || ([工程类别]=='配网定额计价' &amp;&amp; [地区插件]=='辽宁版')" />
<control description="当前执行规范是否支持解析" errorMsg="当前工程的执行规范为&lt;span class='upload-dialog__error__msg'&gt;[执行规范]&lt;/span&gt;,暂不支持该执行规范" errorCode="80007"
condition="([工程类别]=='主网工程' &amp;&amp; ([执行规范]=='发电预规2018年版' || [执行规范]=='电网预规2018年版' || [执行规范]=='南网规约2018年版' || [执行规范]=='电力清单规范2017年版' || [执行规范]=='电力清单规范2021年版' || [执行规范]=='国网清单规范2014年版' || [执行规范]=='施工图预算综合单价法' || [执行规范]=='国网清单规范2023年版' || [执行规范]=='国网施工图预算2018年版' || [执行规范]=='国网施工图预算2024年版')) || ([工程类别]!='主网工程') || ([工程类别]=='配网定额计价' || [工程类别]=='配网清单招投标计价' || [工程类别]=='配网清单结算' || [工程类别]=='配网清单预算' || [工程类别]=='配网批次工程' || [工程类别]=='技改批次工程')" />
<control description="当前工程类型是否支持解析" errorMsg="当前工程的工程类型为&lt;span class='upload-dialog__error__msg'&gt;[项目类型]&lt;/span&gt;,暂不支持该工程类型" errorCode="80007"
condition="([工程类别]=='主网工程') || ([工程类别]=='技改定额工程' &amp;&amp; ([项目类型]=='概预算工程' || [项目类型]=='应急工程')) || ([工程类别]=='技改清单工程' &amp;&amp; ([项目类型]=='招投标工程' || [项目类型]=='结算工程')) || ([工程类别]=='配网定额计价' || [工程类别]=='配网清单招投标计价' || [工程类别]=='配网清单结算' || [工程类别]=='配网清单预算' || [工程类别]=='配网批次工程' || [工程类别]=='技改批次工程')" />
</controls>
@@ -0,0 +1,117 @@
server:
port: 8098
servlet:
context-path: /
encoding:
force: true
charset: UTF-8
enabled: true
# 开启Gzip压缩,默认只压缩超过2048字节的数据
compression:
enabled: true
mime-types: application/json
tomcat:
uri-encoding: UTF-8
# 日志输出配置
logging:
config: classpath:log4j2.xml
#解析引擎配置路径
bpe:
config:
#绝对路径
# path: /home/service/booway-analysis-server/analysis-config/bpe/system.properties
#开发环境
path: D:/booway-analsys/analysis-config/bpe/system.properties
#正式环境
# path: analysis-config/bpe/system.properties
bpc:
config:
#绝对路径
# path: /home/service/booway-analysis-server/analysis-config/bpc/bpc.properties
#开发环境
path: D:/booway-analsys/analysis-config/bpc/bpc.properties
#正式环境
# path: analysis-config/bpc/bpc.properties
bpt:
config:
#绝对路径
# path: /home/service/booway-analysis-server/analysis-config/bpt/bpt.properties
#开发环境
# path: ../analysis-config/bpt/bpt.properties
#正式环境
path: D:/booway-analsys/analysis-config/bpt/bpt.properties
# IP 白名单
IP:
whitelist:
# 文件临时存放位置
temp:
file:
#绝对路径
# path: /home/service/booway-analysis-server/tempFile
#开发环境&正式环境
path: tempFile
#版本控制列表
version:
control:
config:
#绝对路径
# path: /home/service/booway-analysis-server/version-control.xml
#开发环境
path: src/main/resources/version-control.xml
#正式环境
# path: version-control.xml
#解析条件控制配置
analysis:
control:
config:
#绝对路径
# path: /home/service/booway-analysis-server/analysis-conditions-control.xml
#开发环境
path: D:/booway-analsys/booway-analysis-server/src/main/resources/analysis-conditions-control.xml
#正式环境
# path: analysis-conditions-control.xml
# 深度解析阶段通知地址
notify:
url: http://127.0.0.1:80/cloudcost/cloudDisk/file/updateDeepAnalysisStage.do
# 存储正在深度解析记录地址
history:
path: /home/service/booway-analysis-server/histoty
# 允许缓存文件最大值
file:
cache:
max:
num: 100
# 允许缓存解析数据最大值
data:
cache:
# 深度解析持久化存储路径
path: /home/service/booway-analysis-server/analysisCache
max:
num: 20
#扩展解析队列线程数
queue:
thread:
size: 5
task:
cron:
#缓存数据清理每天0点
cache:
clean: 0 0 0 * * ?
# 线程配置
threadconfig:
#工程网盘_线程默认超时时间(单位:秒)
pool-timeout: 3600
#工程网盘_闲置线程存活时间(单位:秒)- 2小时:7200
pool-keep-alive-time: 7200
#核心线程数
common-core-pool-size: 6
#最大线程数
common-max-pool-size: 10
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<assembly>
<id>assembly</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/main/resources</directory>
<includes>
<include>analysis-conditions-control.xml</include>
<include>application.yml</include>
<include>version-control.xml</include>
</includes>
<outputDirectory>./booway-analysis-server</outputDirectory>
</fileSet>
<fileSet>
<directory>target</directory>
<includes>
<include>${project.artifactId}*.jar</include>
<include>application.yml</include>
<include>version-control.xml</include>
</includes>
<outputDirectory>./booway-analysis-server</outputDirectory>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<includes>
<include>Dockerfile</include>
</includes>
<outputDirectory>.</outputDirectory>
</fileSet>
<fileSet>
<directory>../analysis-config</directory>
<includes>
<include>**</include>
</includes>
<outputDirectory>./booway-analysis-server/analysis-config</outputDirectory>
</fileSet>
</fileSets>
</assembly>
@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- configuration 属性 monitorInterval: 置配置文件的动态加载时间(s),在程序运行过程中,如果修改配置文件,程序会随之改变。 status: 设置 log4j 日志框架内部输出的日志级别 日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<configuration status="WARN" monitorInterval="5">
<!-- 集中配置属性进行管理 使用时通过:${name} -->
<properties>
<!-- 定义日志存储的路径 -->
<property name="LOG_HOME">/home/gly/logs/analysis</property>
<!-- 配置输出格式 -->
<Property name="PATTERN_FORMAT">%date{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %class 类 - %M 方法 - %line 行 - %msg%n</Property>
</properties>
<!-- 日志处理 -->
<Appenders>
<!-- 控制台输出 appenderSYSTEM_OUT输出黑色,SYSTEM_ERR输出红色 -->
<Console name="Console" target="SYSTEM_OUT">
<!-- 输出日志的格式 -->
<PatternLayout pattern="${PATTERN_FORMAT}" />
</Console>
<!-- 按照指定条件(按照时间、大小)阈值设置日志存档规则 属性 filePattern: 表示达到阈值后文件存档路径和文件命名规格(包括是否压缩,若压缩指定后缀) 日志匹配规则 -->
<RollingFile name="InfoFile" fileName="${LOG_HOME}/info/info.log" filePattern="${LOG_HOME}/info/info-%d{yyyyMMdd}-%i.log.gz">
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
<Filters>
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL" />
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
<PatternLayout>
<pattern>${PATTERN_FORMAT}</pattern>
</PatternLayout>
<Policies>
<!--当系统重启会覆盖文件 -->
<OnStartupTriggeringPolicy />
<!-- 当文件达到设定阈值时,会滚动一次(保存为新文件) -->
<SizeBasedTriggeringPolicy size="10MB" />
<!-- interval 属性用来指定多久滚动一次,默认是 1 hour -->
<TimeBasedTriggeringPolicy />
</Policies>
<!-- 在同一个目录下,文件的个限定为 30个,超过进行覆盖 -->
<DefaultRolloverStrategy max="30">
<Delete basePath="${LOG_HOME}/info/" maxDepth="2">
<IfFileName glob="*.log.gz" />
<!--!Note: 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用 另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功! -->
<!--7天 -->
<IfLastModified age="7d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<!--输出error日志到文件,filePattern旧日志另存文件名 -->
<RollingFile name="ErrorFile" fileName="${LOG_HOME}/error/error.log" filePattern="${LOG_HOME}/error/error-%d{yyyyMMdd}-%i.log.gz">
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
<PatternLayout>
<pattern>${PATTERN_FORMAT}</pattern>
</PatternLayout>
<Policies>
<!-- rollover on startup, daily and when the file reaches 10 MegaBytes -->
<!--当系统重启/日期更新/超过100M将会覆盖文件 -->
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10MB" />
<TimeBasedTriggeringPolicy />
</Policies>
<!-- 在同一个目录下,文件的个限定为 30个,超过进行覆盖 -->
<DefaultRolloverStrategy max="30">
<Delete basePath="${LOG_HOME}/error/" maxDepth="2">
<IfFileName glob="*.log.gz" />
<!--!Note: 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用 另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功! -->
<!--7天 -->
<IfLastModified age="7d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<!--Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。 -->
<!--然后定义loggers,只有定义了logger并引入的appenderappender才会生效 -->
<!-- logger 的优先级要高于 root,多个 logger 的优先级是根据 name 属性匹配的完整度进行确定,匹配越精确, 优先级越高。优先级高的为子 logger,优先级低的为父 logger,即 root 为所有 logger 的父 logger。 logger 属性 name: 用于单独配置日志级别和输出的 package 或 class
additivity: false: 只会在优先级最高的 logger 中输出,不会在父 logger 中输出 true: 除了在本 logger 中输出以外,还会根据本 logger 配置的 level 级别,在父 logger 中 根据其输出类型进行输出。 -->
<!-- logger 定义 -->
<Loggers>
<!-- 使用 rootLogger 配置 日志级别 level="trace" -->
<Root level="info">
<!-- 指定日志使用的处理器 -->
<AppenderRef ref="Console" />
<AppenderRef ref="InfoFile" />
<AppenderRef ref="ErrorFile" />
</Root>
<logger name="com.bw.bpc.extend.bcl.context.jg.JgRootVariableBCLContext" level="WARN" />
</Loggers>
</configuration>
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<controls>
<control>
<division>主网</division>
<minimumVersion>1.5.0.5</minimumVersion>
<version>1.5.0.5</version>
<version>1.5.0.6</version>
<version>1.5.1.112</version>
<version>1.5.2.7</version>
<version>1.6.0.73</version>
<version>1.6.1.67</version>
<version>2.0.0.98</version>
<version>2.0.1.6</version>
<version>2.1.0.175</version>
<version>2.2.0.133</version>
<version>2.2.1.2</version>
<version>2.3.0.83</version>
<version>2.3.1.5</version>
<version>2.3.2.57</version>
</control>
<control>
<division>技改造价</division>
<minimumVersion>1.2.3.35</minimumVersion>
<version>1.2.3.35</version>
<version>1.3.0.30</version>
<version>1.4.0.20</version>
<version>1.5.0.50</version>
<version>1.5.1.60</version>
<version>1.6.0.80</version>
<version>1.6.0.200</version>
<version>1.6.1.106</version>
<version>1.6.2.183</version>
<version>1.7.0.202</version>
<version>1.7.1.210</version>
<version>1.7.2.100</version>
<version>1.7.3.121</version>
<version>1.7.4.201</version>
</control>
<control>
<division>技改清单</division>
<minimumVersion>1.0.1.60</minimumVersion>
<version>1.0.1.60</version>
<version>1.1.0.80</version>
<version>1.2.0.103</version>
</control>
<control>
<division>配网造价</division>
<!-- 标准版 -->
<!-- <area value="全国版"> -->
<minimumVersion>2.0.0.100</minimumVersion>
<!-- <version>2.0.0.100</version>
<version>2.0.0.148</version>
<version>2.0.0.195</version>
<version>2.0.2.39</version>
</area>
<area value="贵州版">
<minimumVersion>2.0.0.100</minimumVersion>
<version>2.0.0.91</version>
</area> -->
</control>
<control>
<division>配网清单</division>
<!-- <area value="行业版"> -->
<minimumVersion>2.0.0.100</minimumVersion>
<!-- <version>2.0.0.100</version>
<version>2.0.0.110</version>
</area>
<area value="广东版">
<minimumVersion>2.0.0.100</minimumVersion>
<version>2.0.0.129</version>
<version>2.0.0.100</version>
</area>
<area value="广西版">
<minimumVersion>2.0.0.100</minimumVersion>
<version>2.1.0.25</version>
<version>2.0.0.100</version>
</area>
<area value="内蒙古版">
<minimumVersion>2.0.0.100</minimumVersion>
<version>2.1.0.10</version>
<version>2.0.0.100</version>
</area> -->
</control>
</controls>