Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
smart_gov_platform
Commits
4315e870
Commit
4315e870
authored
Nov 14, 2024
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加已经部署脚本
parent
698734d0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
228 additions
and
4 deletions
+228
-4
base-manager/src/main/bin/project_deploy.sh
base-manager/src/main/bin/project_deploy.sh
+90
-0
base-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMatterDaumFileTaskImpl.java
...m/mortals/xhx/daemon/task/SyncMatterDaumFileTaskImpl.java
+129
-0
base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteController.java
.../java/com/mortals/xhx/module/site/web/SiteController.java
+9
-4
No files found.
base-manager/src/main/bin/project_deploy.sh
0 → 100644
View file @
4315e870
#!/bin/sh
RETVAL
=
$?
SHELL_NAME
=
"deploy"
BASEDIR
=
$(
dirname
$0
)
BASEDIR
=
$(
(
cd
"
$BASEDIR
"
pwd
)
)
LOCK_FILE
=
"/tmp/deploy.lock"
# 时间变量
CDATE
=
$(
date
"+%Y-%m-%d"
)
CTIME
=
$(
date
"+%H:%M:%S"
)
SHELL_LOG
=
"
${
BASEDIR
}
/
${
SHELL_NAME
}
.log"
JAVA_HOME
=
"/usr/local/java/jdk1.8"
SERVICE_PATH
=
"/usr/lib/systemd/system"
PUBLISH_PATH
=
"/home/publish"
PROJECT_NAME
=
"@project.artifactId@"
PROJECT_EXECPATH
=
"
${
PUBLISH_PATH
}
/
${
PROJECT_NAME
}
"
PROJECT_FILENAME
=
"
${
PROJECT_NAME
}
.tar.gz"
PROJECT_SERVICE
=
"
${
SERVICE_PATH
}
/
${
PROJECT_NAME
}
.service"
#写日志
writelog
()
{
LOGINFO
=
$1
echo
"
${
CDATE
}
${
CTIME
}
:
${
SHELL_NAME
}
:
${
LOGINFO
}
"
>>
${
SHELL_LOG
}
echo
${
LOGINFO
}
}
#清理目标
clear_deploy
()
{
SERVICE
=
$1
EXECPATH
=
$2
#清理后台自启服务
rm
-f
${
SERVICE
}
#清理执行文件目录
}
build_service
()
{
SERVICE
=
$1
EXECPATH
=
$2
echo
""
>
${
SERVICE
}
echo
"[Unit]"
>>
${
SERVICE
}
echo
"Description=
${
PROJECT_NAME
}
"
>>
${
SERVICE
}
echo
"After=network.target"
>>
${
SERVICE
}
echo
""
>>
${
SERVICE
}
echo
"[Service]"
>>
${
SERVICE
}
echo
"Environment=
\"
JAVA_HOME=
$JAVA_HOME
\"
"
>>
${
SERVICE
}
echo
"Type=forking"
>>
${
SERVICE
}
echo
"ExecStartPre=-/bin/sleep 5s"
>>
${
SERVICE
}
echo
"ExecStart=
${
EXECPATH
}
/bin/start.sh"
>>
${
SERVICE
}
echo
"ExecStop=
${
EXECPATH
}
/bin/shutdown.sh"
>>
${
SERVICE
}
echo
"PrivateTmp=true"
>>
${
SERVICE
}
echo
""
>>
${
SERVICE
}
echo
"[Install]"
>>
${
SERVICE
}
echo
"WantedBy=multi-user.target"
>>
${
SERVICE
}
writelog
"
${
PROJECT_NAME
}
服务创建完成!"
}
#启动服务与nginx
start_service
()
{
systemctl
enable
${
PROJECT_NAME
}
systemctl daemon-reload
writelog
"
${
PROJECT_NAME
}
服务启动..."
systemctl stop
${
PROJECT_NAME
}
&&
systemctl start
${
PROJECT_NAME
}
project_status
=
$(
systemctl status
"
${
PROJECT_NAME
}
"
|grep Active |awk
'{print $2}'
)
jcpid
=
$(
ps
-ef
|
grep
-v
"grep"
|
grep
"
${
PROJECT_NAME
}
"
|
awk
'{print $2}'
)
writelog
"
${
PROJECT_NAME
}
服务启动,PID is
${
jcpid
}
,status:
${
project_status
}
"
}
#部署后台服务
project_deploy
()
{
writelog
"
${
PROJECT_NAME
}
_deploy"
clear_deploy
${
PROJECT_SERVICE
}
${
PROJECT_EXECPATH
}
writelog
"
${
PROJECT_NAME
}
_clear_finish"
tar
-zvxf
./
${
PROJECT_FILENAME
}
-C
${
PUBLISH_PATH
}
build_service
${
PROJECT_SERVICE
}
${
PROJECT_EXECPATH
}
start_service
writelog
"
${
PROJECT_NAME
}
_deploy_finish"
}
#主函数
main
()
{
echo
"后台服务部署"
project_deploy
exit
${
RETVAL
}
}
main
$1
base-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMatterDaumFileTaskImpl.java
0 → 100644
View file @
4315e870
package
com.mortals.xhx.daemon.task
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.service.ITask
;
import
com.mortals.framework.service.ITaskExcuteService
;
import
com.mortals.framework.utils.ServletUtils
;
import
com.mortals.xhx.base.system.upload.service.UploadService
;
import
com.mortals.xhx.module.matter.model.MatterDatumFileEntity
;
import
com.mortals.xhx.module.matter.model.MatterDatumFileQuery
;
import
com.mortals.xhx.module.matter.service.MatterDatumFileService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StopWatch
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.ConnectException
;
import
java.net.SocketTimeoutException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
Constant
.
MAX_RETRY_COUNT
;
/**
* 同步全部站点事项材料附件
*
* @author: zxfei
* @date: 2024/2/27 15:34
*/
@Slf4j
//@Service("SyncMatterDaumFileTask")
public
class
SyncMatterDaumFileTaskImpl
implements
ITaskExcuteService
{
@Autowired
private
MatterDatumFileService
matterDatumFileService
;
@Autowired
private
UploadService
uploadService
;
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
log
.
info
(
"开始同步材料列表附件! 分页获取"
);
int
total
=
matterDatumFileService
.
count
(
new
MatterDatumFileQuery
(),
null
);
int
page
=
total
/
1000
+
1
;
StopWatch
stopWatch
=
new
StopWatch
(
"watch daum file"
);
for
(
int
i
=
1
;
i
<=
page
;
i
++)
{
try
{
stopWatch
.
start
(
"同步附件"
);
PageInfo
pageInfo
=
new
PageInfo
();
pageInfo
.
setCurrPage
(
i
);
pageInfo
.
setPrePageResult
(
1000
);
List
<
MatterDatumFileEntity
>
datumFileEntities
=
matterDatumFileService
.
find
(
new
MatterDatumFileQuery
(),
pageInfo
,
null
).
getList
();
List
<
MatterDatumFileEntity
>
updateList
=
new
ArrayList
<>();
for
(
MatterDatumFileEntity
datumFileEntity
:
datumFileEntities
)
{
String
localFileUrl
=
datumFileEntity
.
getLocalFileUrl
();
if
(
ObjectUtils
.
isEmpty
(
localFileUrl
)
&&
!
ObjectUtils
.
isEmpty
(
datumFileEntity
.
getFileUrl
()))
{
String
encryUrl
=
"http://www.sczwfw.gov.cn/jiq/interface/item/annex/encryptUrl?id="
+
datumFileEntity
.
getFileUrl
();
// Thread.sleep(300);
String
resp
=
HttpUtil
.
get
(
encryUrl
,
60000
);
JSONObject
obj
=
JSON
.
parseObject
(
resp
);
String
code
=
obj
.
getString
(
"code"
);
String
data
=
obj
.
getString
(
"data"
);
if
(
"0"
.
equals
(
code
))
{
//下载文件
int
reCount
=
0
;
while
(
reCount
<
3
)
{
try
{
byte
[]
fileData
=
HttpUtil
.
downloadBytes
(
data
);
InputStream
inputStream
=
new
ByteArrayInputStream
(
fileData
);
MultipartFile
file
=
ServletUtils
.
getMultipartFile
(
inputStream
,
datumFileEntity
.
getFileName
());
String
filePath
=
uploadService
.
saveFileUpload
(
file
,
"file/fileupload/daumfile"
,
null
);
if
(!
ObjectUtils
.
isEmpty
(
filePath
))
{
datumFileEntity
.
setLocalFileUrl
(
"/"
+
filePath
);
MatterDatumFileEntity
updateEntity
=
new
MatterDatumFileEntity
();
updateEntity
.
setId
(
datumFileEntity
.
getId
());
updateEntity
.
setLocalFileUrl
(
datumFileEntity
.
getLocalFileUrl
());
updateList
.
add
(
updateEntity
);
}
break
;
}
catch
(
Exception
e
)
{
log
.
error
(
"下载附件异常,id:{},url:{}"
,
datumFileEntity
.
getFileUrl
(),
data
,
e
);
reCount
++;
try
{
Thread
.
sleep
(
2000
);
}
catch
(
InterruptedException
ie
)
{
}
}
}
}
}
}
if
(!
ObjectUtils
.
isEmpty
(
updateList
))
{
log
.
info
(
"开始更新附件本地地址==》{}"
,
updateList
.
size
());
matterDatumFileService
.
update
(
updateList
);
}
log
.
info
(
"同步材料附件{}条完成,耗时:{}s"
,
updateList
.
size
(),
stopWatch
.
getLastTaskTimeMillis
()
/
1000
);
}
catch
(
Exception
e
)
{
log
.
error
(
"同步材料附件异常"
,
e
);
}
stopWatch
.
stop
();
}
}
@Override
public
void
stopTask
(
ITask
task
)
throws
AppException
{
}
public
static
void
main
(
String
[]
args
)
{
int
total
=
1001
;
int
page
=
total
/
1000
;
System
.
out
.
println
(
page
);
}
}
base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteController.java
View file @
4315e870
...
...
@@ -540,20 +540,25 @@ public class SiteController extends BaseCRUDJsonBodyMappingController<SiteServic
JSONObject
jsonObject
=
new
JSONObject
();
String
busiDesc
=
"外部站点添加"
+
this
.
getModuleDesc
();
try
{
if
(
ObjectUtils
.
isEmpty
(
siteEntity
.
getAreaCode
()))
{
String
areaCode
=
siteEntity
.
getAreaCode
();
String
siteName
=
siteEntity
.
getSiteName
();
if
(
ObjectUtils
.
isEmpty
(
areaCode
))
{
throw
new
AppException
(
"区域编码不能为空!"
);
}
SiteEntity
one
=
this
.
service
.
selectOne
(
new
SiteQuery
().
areaCode
(
siteEntity
.
getAreaCode
()).
siteName
(
siteEntity
.
getSiteName
()
),
getContext
());
SiteEntity
one
=
this
.
service
.
selectOne
(
new
SiteQuery
().
areaCode
(
areaCode
).
siteName
(
siteName
),
getContext
());
if
(!
ObjectUtils
.
isEmpty
(
one
))
throw
new
AppException
(
"当前区域下站点名称已存在!"
);
AreaEntity
areaEntity
=
areaService
.
selectOne
(
new
AreaQuery
().
areaCode
(
siteEntity
.
getAreaCode
()),
getContext
());
AreaEntity
areaEntity
=
areaService
.
selectOne
(
new
AreaQuery
().
areaCode
(
areaCode
),
getContext
());
siteEntity
.
initAttrValue
();
siteEntity
.
setAreaCode
(
areaCode
);
siteEntity
.
setSiteName
(
siteName
);
if
(!
ObjectUtils
.
isEmpty
(
areaEntity
))
{
siteEntity
.
setAreaID
(
areaEntity
.
getIid
());
siteEntity
.
setAreaName
(
areaEntity
.
getName
());
siteEntity
.
setAreaLevel
(
areaEntity
.
getAreaLevel
());
}
SiteEntity
save
=
this
.
service
.
save
(
siteEntity
,
getContext
());
//todo 更新相关表中的站点名称,站点编码,站点ID
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment