Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
385988c0
Commit
385988c0
authored
Sep 28, 2023
by
caotao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发电量数据精度丢失问题处理
parent
a7d81947
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
14 deletions
+13
-14
MonitorFanIndicatorImpl.java
...odule/jxiop/biz/service/impl/MonitorFanIndicatorImpl.java
+11
-11
MonitoringServiceIMQTTmpl.java
...ule/jxiop/biz/service/impl/MonitoringServiceIMQTTmpl.java
+2
-3
MonitoringServiceImpl.java
.../module/jxiop/biz/service/impl/MonitoringServiceImpl.java
+0
-0
No files found.
amos-boot-system-jxiop/amos-boot-module-jxiop-monitor-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/service/impl/MonitorFanIndicatorImpl.java
View file @
385988c0
...
@@ -403,7 +403,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
...
@@ -403,7 +403,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
stationBasic
.
getFanGatewayId
()));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
stationBasic
.
getFanGatewayId
()));
queryCondtion
.
put
(
CommonConstans
.
QueryStringEquipmentNumberKeyword
,
Arrays
.
asList
(
equipNum
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringEquipmentNumberKeyword
,
Arrays
.
asList
(
equipNum
));
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
frontModule
);
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
frontModule
);
List
<
ESEquipments
>
result
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
ESEquipments
>
result
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
String
>
xList
=
new
ArrayList
<>();
List
<
String
>
xList
=
new
ArrayList
<>();
List
<
String
>
yList
=
new
ArrayList
<>();
List
<
String
>
yList
=
new
ArrayList
<>();
...
@@ -431,7 +431,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
...
@@ -431,7 +431,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
public
String
getFanDataByType
(
String
stationId
,
String
equipNum
,
String
frontModule
,
String
typeName
)
{
public
String
getFanDataByType
(
String
stationId
,
String
equipNum
,
String
frontModule
,
String
typeName
)
{
StationBasic
stationBasic
=
getOneByStationNumber
(
stationId
);
StationBasic
stationBasic
=
getOneByStationNumber
(
stationId
);
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
frontModule
);
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
frontModule
);
Map
<
String
,
List
<
String
>>
queryCondtion
=
new
HashMap
<>();
Map
<
String
,
List
<
String
>>
queryCondtion
=
new
HashMap
<>();
queryCondtion
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
typeName
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
typeName
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
stationBasic
.
getFanGatewayId
()));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
stationBasic
.
getFanGatewayId
()));
...
@@ -779,7 +779,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
...
@@ -779,7 +779,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
}
}
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
frontModule
);
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
frontModule
);
List
<
ESEquipments
>
indicatorsDtoList
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
ESEquipments
>
indicatorsDtoList
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
Map
<
String
,
Object
>>
statusMaps
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
statusMaps
=
new
ArrayList
<>();
...
@@ -815,7 +815,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
...
@@ -815,7 +815,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
Map
<
String
,
List
<
String
>>
queryCondtion
=
new
HashMap
<>();
Map
<
String
,
List
<
String
>>
queryCondtion
=
new
HashMap
<>();
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
frontModule
);
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
frontModule
);
likeMap
.
put
(
CommonConstans
.
QueryStringSystemType
,
systemType
);
likeMap
.
put
(
CommonConstans
.
QueryStringSystemType
,
systemType
);
List
<
ESEquipments
>
esEquipmentsList
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
ESEquipments
>
esEquipmentsList
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
ESEquipments
>
listData
=
esEquipmentsList
.
stream
().
filter
(
esEquipments
->
!
esEquipments
.
getDisplayName
().
equals
(
""
)).
collect
(
Collectors
.
toList
());
List
<
ESEquipments
>
listData
=
esEquipmentsList
.
stream
().
filter
(
esEquipments
->
!
esEquipments
.
getDisplayName
().
equals
(
""
)).
collect
(
Collectors
.
toList
());
...
@@ -1054,7 +1054,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
...
@@ -1054,7 +1054,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
// queryCondtion.put(CommonConstans.QueryStringFrontMoudle, Arrays.asList("电量表计"));
// queryCondtion.put(CommonConstans.QueryStringFrontMoudle, Arrays.asList("电量表计"));
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
"电量表计"
);
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
"电量表计"
);
List
<
ESEquipments
>
esEquipmentsList
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
ESEquipments
>
esEquipmentsList
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
ESEquipments
>
windSqlList
=
esEquipmentsList
.
stream
().
filter
(
esEquipments
->
!
esEquipments
.
getDisplayName
().
equals
(
""
)
&&
!
esEquipments
.
getDisplayName
().
equals
(
"检修状态"
)).
collect
(
Collectors
.
toList
());
List
<
ESEquipments
>
windSqlList
=
esEquipmentsList
.
stream
().
filter
(
esEquipments
->
!
esEquipments
.
getDisplayName
().
equals
(
""
)
&&
!
esEquipments
.
getDisplayName
().
equals
(
"检修状态"
)).
collect
(
Collectors
.
toList
());
Map
<
String
,
List
<
ESEquipments
>>
maps
=
windSqlList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ESEquipments:
:
getSystemType
));
Map
<
String
,
List
<
ESEquipments
>>
maps
=
windSqlList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ESEquipments:
:
getSystemType
));
...
@@ -1105,9 +1105,9 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
...
@@ -1105,9 +1105,9 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
queryCodtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
queryCodtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
queryCodtion
.
put
(
CommonConstans
.
QueryStringSystemTypeKeyword
,
Arrays
.
asList
(
"模拟量"
));
queryCodtion
.
put
(
CommonConstans
.
QueryStringSystemTypeKeyword
,
Arrays
.
asList
(
"模拟量"
));
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
map
.
get
(
"boosterName"
));
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
map
.
get
(
"boosterName"
));
if
(
"1主变高压侧"
.
equals
(
map
.
get
(
"boosterName"
))
||
"1主变低压侧"
.
equals
(
map
.
get
(
"boosterName"
)))
{
if
(
"1主变高压侧"
.
equals
(
map
.
get
(
"boosterName"
))
||
"1主变低压侧"
.
equals
(
map
.
get
(
"boosterName"
)))
{
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
map
.
get
(
"压侧"
));
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
map
.
get
(
"压侧"
));
List
<
ESEquipments
>
listData
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCodtion
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
ESEquipments
>
listData
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCodtion
,
null
,
ESEquipments
.
class
,
likeMap
);
// 主变高压侧
// 主变高压侧
...
@@ -1785,14 +1785,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
...
@@ -1785,14 +1785,14 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
queryConditon
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
"总直流功率"
));
queryConditon
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
"总直流功率"
));
queryConditon
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
queryConditon
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
"逆变器"
);
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
"逆变器"
);
List
<
ESEquipments
>
listData
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryConditon
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
ESEquipments
>
listData
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryConditon
,
null
,
ESEquipments
.
class
,
likeMap
);
Map
<
String
,
List
<
String
>>
queryConditon1
=
new
HashMap
<>();
Map
<
String
,
List
<
String
>>
queryConditon1
=
new
HashMap
<>();
queryConditon1
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
"有功功率"
));
queryConditon1
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
"有功功率"
));
queryConditon1
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
queryConditon1
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
Map
<
String
,
String
>
likeMap1
=
new
HashMap
<>();
Map
<
String
,
String
>
likeMap1
=
new
HashMap
<>();
likeMap1
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
"逆变器"
);
likeMap1
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
"逆变器"
);
List
<
ESEquipments
>
listData1
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryConditon1
,
null
,
ESEquipments
.
class
,
likeMap1
);
List
<
ESEquipments
>
listData1
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryConditon1
,
null
,
ESEquipments
.
class
,
likeMap1
);
// 将两组数据合并成一个集合中 将总直流功率数据 放入 另一个集合的valueLable中
// 将两组数据合并成一个集合中 将总直流功率数据 放入 另一个集合的valueLable中
...
@@ -1895,7 +1895,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
...
@@ -1895,7 +1895,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
queryCondtion
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
"运行"
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
"运行"
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
Map
<
String
,
String
>
likeMap
=
new
HashMap
<>();
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
"逆变器"
);
likeMap
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
"逆变器"
);
List
<
ESEquipments
>
result
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion
,
null
,
ESEquipments
.
class
,
likeMap
);
List
<
ESEquipments
>
result
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion
,
null
,
ESEquipments
.
class
,
likeMap
);
// 逆变器总数量
// 逆变器总数量
Integer
totalNumber
=
result
.
size
();
Integer
totalNumber
=
result
.
size
();
...
@@ -1905,7 +1905,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
...
@@ -1905,7 +1905,7 @@ public class MonitorFanIndicatorImpl implements IMonitorFanIndicator {
queryCondtion1
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
queryCondtion1
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
gatewayId
));
queryCondtion1
.
put
(
CommonConstans
.
QueryStringValueKeyword
,
Arrays
.
asList
(
"true"
));
queryCondtion1
.
put
(
CommonConstans
.
QueryStringValueKeyword
,
Arrays
.
asList
(
"true"
));
Map
<
String
,
String
>
likeMap1
=
new
HashMap
<>();
Map
<
String
,
String
>
likeMap1
=
new
HashMap
<>();
likeMap1
.
put
(
CommonConstans
.
QueryStringFrontMoudle
NotKeyWord
,
"逆变器"
);
likeMap1
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
"逆变器"
);
List
<
ESEquipments
>
result1
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion1
,
null
,
ESEquipments
.
class
,
likeMap1
);
List
<
ESEquipments
>
result1
=
commonServiceImpl
.
getListDataByCondtionsAndLike
(
queryCondtion1
,
null
,
ESEquipments
.
class
,
likeMap1
);
List
<
String
>
equipmentNumberList
=
result1
.
stream
().
map
(
ESEquipments:
:
getEquipmentNumber
).
distinct
().
collect
(
Collectors
.
toList
());
List
<
String
>
equipmentNumberList
=
result1
.
stream
().
map
(
ESEquipments:
:
getEquipmentNumber
).
distinct
().
collect
(
Collectors
.
toList
());
int
djNum
=
0
;
int
djNum
=
0
;
...
...
amos-boot-system-jxiop/amos-boot-module-jxiop-monitor-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/service/impl/MonitoringServiceIMQTTmpl.java
View file @
385988c0
...
@@ -101,15 +101,14 @@ public class MonitoringServiceIMQTTmpl {
...
@@ -101,15 +101,14 @@ public class MonitoringServiceIMQTTmpl {
Map
<
String
,
List
<
String
>>
queryCondtion
=
new
HashMap
<>();
Map
<
String
,
List
<
String
>>
queryCondtion
=
new
HashMap
<>();
queryCondtion
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
"日发电量"
,
"月发电量"
,
"年发电量"
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
"日发电量"
,
"月发电量"
,
"年发电量"
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
stationBasic
.
getFanGatewayId
()));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
stationBasic
.
getFanGatewayId
()));
totalSocialContribution
.
updateAndGet
(
v
->
v
+
commonServiceImpl
.
getTotalByIndicatior
(
stationBasic
.
getFanGatewayId
(),
"年发电量"
));
totalSocialContribution
.
updateAndGet
(
v
->
v
+
commonServiceImpl
.
getTotalByIndicatior
(
stationBasic
.
getFanGatewayId
(),
"年发电量"
));
}
else
{
}
else
{
Map
<
String
,
List
<
String
>>
queryCondtion
=
new
HashMap
<>();
Map
<
String
,
List
<
String
>>
queryCondtion
=
new
HashMap
<>();
queryCondtion
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
"日发电量"
,
"月发电量"
,
"年发电量"
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringEquipmentIndexName
,
Arrays
.
asList
(
"日发电量"
,
"月发电量"
,
"年发电量"
));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
stationBasic
.
getFanGatewayId
()));
queryCondtion
.
put
(
CommonConstans
.
QueryStringGateWayId
,
Arrays
.
asList
(
stationBasic
.
getFanGatewayId
()));
Map
<
String
,
String
>
shouldQueryCondtion
=
new
HashMap
<>();
Map
<
String
,
String
>
shouldQueryCondtion
=
new
HashMap
<>();
shouldQueryCondtion
.
put
(
"frontModule"
,
"逆变器"
);
shouldQueryCondtion
.
put
(
CommonConstans
.
QueryStringFrontMoudle
,
"逆变器"
);
List
<
ESEquipments
>
result
=
commonServiceImpl
.
getListDataByCondtions
(
queryCondtion
,
shouldQueryCondtion
,
ESEquipments
.
class
);
List
<
ESEquipments
>
result
=
commonServiceImpl
.
getListDataByCondtions
(
queryCondtion
,
null
,
ESEquipments
.
class
,
shouldQueryCondtion
);
totalSocialContribution
.
updateAndGet
(
v
->
v
+
commonServiceImpl
.
getSumByEquipmentIndxName
(
result
,
"年发电量"
)
*
CommonConstans
.
pvGenPoweActor
);
totalSocialContribution
.
updateAndGet
(
v
->
v
+
commonServiceImpl
.
getSumByEquipmentIndxName
(
result
,
"年发电量"
)
*
CommonConstans
.
pvGenPoweActor
);
}
}
});
});
...
...
amos-boot-system-jxiop/amos-boot-module-jxiop-monitor-biz/src/main/java/com/yeejoin/amos/boot/module/jxiop/biz/service/impl/MonitoringServiceImpl.java
View file @
385988c0
This diff is collapsed.
Click to expand it.
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