Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
map-parent
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
map-parent
Commits
b4e30357
Commit
b4e30357
authored
Dec 12, 2022
by
yangyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
车辆接口提交(重庆)
parent
081c2c21
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
42 additions
and
422 deletions
+42
-422
common/common_utils/src/main/java/com/founder/commonutils/model/newPublicEntity/cqEntity/KsjTableResult.java
+1
-0
common/common_utils/src/main/java/com/founder/commonutils/util/cqInterfaceUtil.java
+2
-422
service/publicapi/src/main/java/com/founder/publicapi/controller/cqNewService/CqNewServiceController.java
+39
-0
No files found.
common/common_utils/src/main/java/com/founder/commonutils/model/newPublicEntity/cqEntity/KsjTableResult.java
View file @
b4e30357
...
@@ -30,6 +30,7 @@ public class KsjTableResult {
...
@@ -30,6 +30,7 @@ public class KsjTableResult {
private
String
label
;
// 标签(对应的字段注释)
private
String
label
;
// 标签(对应的字段注释)
private
boolean
search
;
// True/false true得即为查询条件
private
boolean
search
;
// True/false true得即为查询条件
private
String
type
;
// 日期为date 其他的都为text类型
private
String
type
;
// 日期为date 其他的都为text类型
private
String
ishead
;
// 是否为默认展示表头,0是,1否
}
}
}
}
}
}
common/common_utils/src/main/java/com/founder/commonutils/util/cqInterfaceUtil.java
View file @
b4e30357
...
@@ -20,13 +20,13 @@ public class cqInterfaceUtil {
...
@@ -20,13 +20,13 @@ public class cqInterfaceUtil {
JSONArray
datas
=
jsonObject
.
getJSONObject
(
"ResponseParam"
).
getJSONArray
(
"ResourceInfos"
).
getJSONObject
(
0
).
getJSONArray
(
"DataInfo"
);
JSONArray
datas
=
jsonObject
.
getJSONObject
(
"ResponseParam"
).
getJSONArray
(
"ResourceInfos"
).
getJSONObject
(
0
).
getJSONArray
(
"DataInfo"
);
JSONArray
fields
=
jsonObject
.
getJSONObject
(
"ResponseParam"
).
getJSONArray
(
"ResourceInfos"
).
getJSONObject
(
0
).
getJSONArray
(
"DataItems"
);
JSONArray
fields
=
jsonObject
.
getJSONObject
(
"ResponseParam"
).
getJSONArray
(
"ResourceInfos"
).
getJSONObject
(
0
).
getJSONArray
(
"DataItems"
);
if
(
datas
==
null
||
datas
.
size
()
==
0
)
{
if
(
datas
==
null
||
datas
.
size
()
==
0
)
{
return
null
;
return
resultList
;
}
}
for
(
int
i
=
0
;
i
<
datas
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
datas
.
size
();
i
++)
{
JSONArray
data
=
datas
.
getJSONArray
(
i
);
JSONArray
data
=
datas
.
getJSONArray
(
i
);
HashMap
<
String
,
String
>
resultMap
=
new
HashMap
<>();
HashMap
<
String
,
String
>
resultMap
=
new
HashMap
<>();
for
(
int
j
=
0
;
j
<
fields
.
size
();
j
++)
{
for
(
int
j
=
0
;
j
<
fields
.
size
();
j
++)
{
String
dataSj
=
data
.
get
(
j
).
toString
(
);
String
dataSj
=
String
.
valueOf
(
data
.
get
(
j
)
);
// 时间格式转换
// 时间格式转换
if
(
Arrays
.
asList
(
"CJSJ"
,
"GXSJ"
,
"CJ_RQSJ"
,
"SMA_RQSJ"
).
contains
(
fields
.
getJSONObject
(
j
).
getString
(
"Name"
))){
if
(
Arrays
.
asList
(
"CJSJ"
,
"GXSJ"
,
"CJ_RQSJ"
,
"SMA_RQSJ"
).
contains
(
fields
.
getJSONObject
(
j
).
getString
(
"Name"
))){
dataSj
=
DateUtil
.
getTimestampToTime
(
dataSj
);
dataSj
=
DateUtil
.
getTimestampToTime
(
dataSj
);
...
@@ -64,424 +64,4 @@ public class cqInterfaceUtil {
...
@@ -64,424 +64,4 @@ public class cqInterfaceUtil {
System
.
out
.
println
(
JSONObject
.
toJSON
(
ksjTableResult
));
System
.
out
.
println
(
JSONObject
.
toJSON
(
ksjTableResult
));
return
ksjTableResult
;
return
ksjTableResult
;
}
}
public
static
void
main
(
String
[]
args
){
String
json
=
"{\n"
+
" \"MessageSequence\": \"20220513153301004\",\n"
+
" \"MessageStatus\": \"0200\",\n"
+
" \"Remark\": \"正常\",\n"
+
" \"ResponseParam\": {\n"
+
" \"ResourceInfos\": [\n"
+
" {\n"
+
" \"DataInfo\": [\n"
+
" [\n"
+
" \"1660331663\",\n"
+
" \"1651593600\",\n"
+
" \"1659423577\",\n"
+
" \"19960919\",\n"
+
" \"111\",\n"
+
" \"居民身份证\",\n"
+
" \"\",\n"
+
" \"50536969f2ec6ed8a7a3e2937cbb2910\",\n"
+
" \"1\",\n"
+
" \"1\",\n"
+
" \"中国大陆\",\n"
+
" \"152725199609191814\",\n"
+
" \"1\",\n"
+
" \"正常活动\",\n"
+
" \"1659423577\",\n"
+
" \"1\",\n"
+
" \"1\",\n"
+
" \"重庆市\",\n"
+
" \"UHc82b4bd6a8276d5d0b287c1d5270dc49\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"重庆\",\n"
+
" \"\",\n"
+
" \"1\",\n"
+
" \"一直在重庆3个月或以上\",\n"
+
" \"否\",\n"
+
" \"0\",\n"
+
" \"否\",\n"
+
" \"0\",\n"
+
" \"北碚区复兴街道栀子村委会\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"是\",\n"
+
" \"1\",\n"
+
" \"\",\n"
+
" \"1\",\n"
+
" \"自觉正常\",\n"
+
" \"01099\",\n"
+
" \"STG_T_YKMXX\",\n"
+
" \"500000\",\n"
+
" \"14218\",\n"
+
" \"市大数据发展局\",\n"
+
" \"FILE:151.30.1.50:25005\",\n"
+
" \"99\",\n"
+
" \"0\",\n"
+
" \"UHc82b4bd6a8276d5d0b287c1d5270dc49\",\n"
+
" \"1\",\n"
+
" \"男性\",\n"
+
" \"杨洋\",\n"
+
" \"\",\n"
+
" \"无\",\n"
+
" \"0\",\n"
+
" \"15754879533\",\n"
+
" \"UHc82b4bd6a8276d5d0b287c1d5270dc49\",\n"
+
" \"1651655598\",\n"
+
" \"1651655597\",\n"
+
" \"\",\n"
+
" \"152725199609191814\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"1\",\n"
+
" \"身份证\"\n"
+
" ],\n"
+
" [\n"
+
" \"1670321131\",\n"
+
" \"1652457600\",\n"
+
" \"1659432423\",\n"
+
" \"19960919\",\n"
+
" \"990\",\n"
+
" \"其他\",\n"
+
" \"\",\n"
+
" \"f4572b6f70621e72d8412f2cf20dafe6\",\n"
+
" \"1\",\n"
+
" \"1\",\n"
+
" \"中国大陆\",\n"
+
" \"\",\n"
+
" \"1\",\n"
+
" \"正常活动\",\n"
+
" \"1659432423\",\n"
+
" \"4\",\n"
+
" \"4\",\n"
+
" \"其它\",\n"
+
" \"UH78524dcc4e580cadb6277cda6b3c69cb\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"未知\",\n"
+
" \"\",\n"
+
" \"1\",\n"
+
" \"一直在重庆3个月或以上\",\n"
+
" \"否\",\n"
+
" \"0\",\n"
+
" \"否\",\n"
+
" \"0\",\n"
+
" \"北碚区柳荫镇柳荫村\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"否\",\n"
+
" \"0\",\n"
+
" \"\",\n"
+
" \"1\",\n"
+
" \"自觉正常\",\n"
+
" \"01099\",\n"
+
" \"STG_T_YKMXX\",\n"
+
" \"500000\",\n"
+
" \"14218\",\n"
+
" \"市大数据发展局\",\n"
+
" \"FILE:151.30.1.50:25005\",\n"
+
" \"99\",\n"
+
" \"0\",\n"
+
" \"UH78524dcc4e580cadb6277cda6b3c69cb\",\n"
+
" \"1\",\n"
+
" \"男性\",\n"
+
" \"杨洋\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"0\",\n"
+
" \"15754879533\",\n"
+
" \"UH78524dcc4e580cadb6277cda6b3c69cb\",\n"
+
" \"1652507591\",\n"
+
" \"1652507591\",\n"
+
" \"\",\n"
+
" \"152725199609191817\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"1\",\n"
+
" \"身份证\"\n"
+
" ],\n"
+
" [\n"
+
" \"1662933968\",\n"
+
" \"1662825600\",\n"
+
" \"1662930461\",\n"
+
" \"19960919\",\n"
+
" \"111\",\n"
+
" \"居民身份证\",\n"
+
" \"\",\n"
+
" \"8bb8b270ed3cff012a4eeb6b1eb808fe\",\n"
+
" \"1\",\n"
+
" \"1\",\n"
+
" \"中国大陆\",\n"
+
" \"152725199609191814\",\n"
+
" \"1\",\n"
+
" \"正常活动\",\n"
+
" \"1662930461\",\n"
+
" \"4\",\n"
+
" \"4\",\n"
+
" \"其它\",\n"
+
" \"UH223e6f68f940f0e5cd613b78990892b8\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"重庆\",\n"
+
" \"\",\n"
+
" \"1\",\n"
+
" \"一直在重庆3个月或以上\",\n"
+
" \"否\",\n"
+
" \"0\",\n"
+
" \"否\",\n"
+
" \"0\",\n"
+
" \"北碚区蔡家岗街道中庚社区居委会\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"否\",\n"
+
" \"0\",\n"
+
" \"\",\n"
+
" \"1\",\n"
+
" \"自觉正常\",\n"
+
" \"01099\",\n"
+
" \"STG_T_YKMXX\",\n"
+
" \"500000\",\n"
+
" \"14218\",\n"
+
" \"市大数据发展局\",\n"
+
" \"FILE:151.30.1.50:25005\",\n"
+
" \"99\",\n"
+
" \"0\",\n"
+
" \"UH223e6f68f940f0e5cd613b78990892b8\",\n"
+
" \"1\",\n"
+
" \"男性\",\n"
+
" \"杨洋\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"0\",\n"
+
" \"15754879533\",\n"
+
" \"UH223e6f68f940f0e5cd613b78990892b8\",\n"
+
" \"1662850937\",\n"
+
" \"1662850936\",\n"
+
" \"\",\n"
+
" \"152725199609191814\",\n"
+
" \"\",\n"
+
" \"\",\n"
+
" \"1\",\n"
+
" \"身份证\"\n"
+
" ]\n"
+
" ],\n"
+
" \"DataItems\": [\n"
+
" {\n"
+
" \"Name\": \"CJSJ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"CJ_RQSJ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"CQ_RQSJ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"CSRQ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"CYZJDM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"CYZJ_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"FAH_RQ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"FHXTSJWYBSID\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"GJ_DM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"GJ_JYQK\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"GJ_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"GMSFHM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"GR_JK_ZTA_DM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"GR_JK_ZTA_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"GXSJ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"HUJ_DM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"HUJ_JYQK\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"HUJ_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"ID\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JCGRZ_RQ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JCHBRY_RQ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JG_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JHA_FAH_RQ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JQ_JUZH_ZTA_DM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JQ_JUZH_ZTA_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JQ_SF_JCGRZ_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JQ_SF_JCGRZ_PDBZ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JQ_SF_JCHBRY_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JQ_SF_JCHBRY_PDBZ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JZD_DZMC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"JZD_QHNXXDZ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"MQ_SZCS_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"QIT_ZZ_MS_JYQK\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SF_CZ_ZQ_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SF_CZ_ZQ_PDBZ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SF_QIL_PDBZ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SF_YRXZZ_DM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SF_YRXZZ_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SJCJLYBM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SJCJLYBM1\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SJCJLYD\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SJCJLYXT\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SJCJLYXTBZ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SJKHSBSF\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SJMGJBBM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"SUJ_SAC_BS_XXDM02\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"WEY_BS_XXID\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"XBDM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"XBMZWZ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"XM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"XWBQBS\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"XXDZ_DZMC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"XXSC_PDBZ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"YDDH\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"YSXTJRZJ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"YU_E_GXSJ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"YU_YI_GXSJ\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"YWBQBS\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"ZJHM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"ZJYGY_LVJ_HIS_DM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"ZJYGY_LVJ_HIS_MC\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"ZJ_LEX_DM\"\n"
+
" },\n"
+
" {\n"
+
" \"Name\": \"ZJ_LEX_MC\"\n"
+
" }\n"
+
" ],\n"
+
" \"ResourceName\": \"R-500000000000-00000029\"\n"
+
" }\n"
+
" ]\n"
+
" }\n"
+
"}"
;
try
{
List
<
Map
<
String
,
String
>>
list
=
getMapByJson
(
JSONObject
.
parseObject
(
json
));
KsjTableResult
ksjTableResult
=
new
KsjTableResult
();
List
<
KsjTableResult
.
Rows
>
rowsList
=
new
ArrayList
<>();
KsjTableResult
.
Rows
rows
=
new
KsjTableResult
.
Rows
();
rows
.
setTabsName
(
"渝康码"
);
// 表头从数据库获取表头
List
<
KsjTableResult
.
Rows
.
Title
>
titleList
=
new
ArrayList
<>();
rows
.
setTitle
(
titleList
);
rowsList
.
add
(
rows
);
ksjTableResult
.
setRows
(
rowsList
);
ksjTableResult
.
setCount
(
rowsList
.
size
()+
""
);
System
.
out
.
println
(
JSONObject
.
toJSON
(
ksjTableResult
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
}
service/publicapi/src/main/java/com/founder/publicapi/controller/cqNewService/CqNewServiceController.java
View file @
b4e30357
...
@@ -1516,6 +1516,31 @@ public class CqNewServiceController {
...
@@ -1516,6 +1516,31 @@ public class CqNewServiceController {
return
new
MapRestResult
(
200
,
"OK"
,
listResult
.
size
(),
listResult
);
return
new
MapRestResult
(
200
,
"OK"
,
listResult
.
size
(),
listResult
);
}
}
@OperLog
(
message
=
"车辆主题库宽表"
,
operation
=
OperationType
.
QUERY
)
@PostMapping
(
"clztkkbRequest"
)
@ApiOperation
(
value
=
"车辆主题库宽表"
,
notes
=
"车辆主题库宽表"
)
public
MapRestResult
clztkkbRequest
(
@RequestBody
JSONObject
params
)
{
List
<
Map
<
String
,
String
>>
listResult
=
new
ArrayList
<>();
if
(
StringUtils
.
isBlank
(
params
.
getString
(
"VEH_PLATE_NUM"
))&&
StringUtils
.
isBlank
(
params
.
getString
(
"VEH_PER_CERT_NUM"
))){
return
new
MapRestResult
(
200
,
"OK"
,
listResult
.
size
(),
listResult
);
}
if
(
params
.
size
()>
0
){
JSONObject
paramsAll
=
getJsonParams
(
"clztkkb"
,
"R-500000000001-00000020"
,
params
);
try
{
HttpClient
httpClientCq
=
new
HttpClient
();
JSONObject
resultJson
=
httpClientCq
.
doPostJson
(
ykmUrl
,
paramsAll
.
toJSONString
());
if
(
resultJson
.
size
()>
0
){
listResult
=
cqInterfaceUtil
.
getMapByJson
(
resultJson
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
MapRestResult
.
error
(
e
.
getMessage
());
}
}
return
new
MapRestResult
(
200
,
"OK"
,
listResult
.
size
(),
listResult
);
}
public
JSONObject
getJsonParams
(
String
type
,
String
resourceName
,
JSONObject
params
){
public
JSONObject
getJsonParams
(
String
type
,
String
resourceName
,
JSONObject
params
){
StringBuilder
stringBuilderSql
=
new
StringBuilder
();
StringBuilder
stringBuilderSql
=
new
StringBuilder
();
// 渝康码
// 渝康码
...
@@ -1540,6 +1565,20 @@ public class CqNewServiceController {
...
@@ -1540,6 +1565,20 @@ public class CqNewServiceController {
}
}
}
}
// 车辆主题库宽表
if
(
"clztkkb"
.
equals
(
type
)){
if
(
StringUtils
.
isNotBlank
(
params
.
getString
(
"VEH_PER_CERT_NUM"
))&&
StringUtils
.
isNotBlank
(
params
.
getString
(
"VEH_PLATE_NUM"
))){
stringBuilderSql
.
append
(
"VEH_PLATE_NUM='"
+
params
.
getString
(
"VEH_PLATE_NUM"
)+
"'"
);
stringBuilderSql
.
append
(
" and VEH_PER_CERT_NUM='"
+
params
.
getString
(
"VEH_PER_CERT_NUM"
)+
"'"
);
}
else
if
(
StringUtils
.
isNotBlank
(
params
.
getString
(
"VEH_PLATE_NUM"
))){
stringBuilderSql
.
append
(
"VEH_PLATE_NUM='"
+
params
.
getString
(
"VEH_PLATE_NUM"
)+
"'"
);
}
else
if
(
StringUtils
.
isNotBlank
(
params
.
getString
(
"VEH_PER_CERT_NUM"
))){
stringBuilderSql
.
append
(
"VEH_PER_CERT_NUM='"
+
params
.
getString
(
"VEH_PER_CERT_NUM"
)+
"'"
);
}
}
JSONObject
parasm
=
JSONObject
.
parseObject
(
"{\n"
+
JSONObject
parasm
=
JSONObject
.
parseObject
(
"{\n"
+
" \"From\": \"0\", \n"
+
" \"From\": \"0\", \n"
+
" \"To\": \"10000\", \n"
+
" \"To\": \"10000\", \n"
+
...
...
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