Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
T
tianjin-cement
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
竹天卫
tianjin-cement
Commits
a4dee111
Commit
a4dee111
authored
Feb 07, 2021
by
竹天卫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1111
parent
f5fd1953
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
245 additions
and
53 deletions
+245
-53
EntrustController.java
...wise/sc/cement/business/controller/EntrustController.java
+71
-0
SampleDistributionCheckinput.java
.../cement/business/entity/SampleDistributionCheckinput.java
+1
-1
SampleDistributionMapper.java
...e/sc/cement/business/mapper/SampleDistributionMapper.java
+3
-6
EntrustMapper.xml
...a/cn/wise/sc/cement/business/mapper/xml/EntrustMapper.xml
+1
-1
SampleDistributionMapper.xml
...c/cement/business/mapper/xml/SampleDistributionMapper.xml
+1
-1
CheckCountFastQuery.java
...e/sc/cement/business/model/query/CheckCountFastQuery.java
+25
-0
CheckSampleResultVo.java
...wise/sc/cement/business/model/vo/CheckSampleResultVo.java
+3
-1
CheckUserResultVo.java
...n/wise/sc/cement/business/model/vo/CheckUserResultVo.java
+16
-0
SampleTeamGroupUserVo.java
...se/sc/cement/business/model/vo/SampleTeamGroupUserVo.java
+26
-0
IEntrustService.java
...a/cn/wise/sc/cement/business/service/IEntrustService.java
+2
-0
EntrustServiceImpl.java
...e/sc/cement/business/service/impl/EntrustServiceImpl.java
+95
-42
DataStatisticsMapper.xml
...n/wise/sc/cement/business/mapper/DataStatisticsMapper.xml
+1
-1
No files found.
cement-business/src/main/java/cn/wise/sc/cement/business/controller/EntrustController.java
View file @
a4dee111
...
...
@@ -468,6 +468,63 @@ public class EntrustController {
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
value
=
"样品检测退回"
)
@PostMapping
(
"/returnDistribution"
)
public
BaseResponse
returnDistribution
(
@RequestBody
ReturnDistributionQuery
query
)
{
try
{
return
entrustService
.
returnDistribution
(
query
);
}
catch
(
Exception
e
)
{
log
.
debug
(
"样品检测退回{}"
,
e
);
}
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
value
=
"样品检测退回任务分页"
)
@ApiImplicitParams
(
value
=
{
@ApiImplicitParam
(
name
=
"entrustCode"
,
value
=
"委托单号"
,
paramType
=
"query"
,
dataType
=
"String"
),
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"接受人id"
,
paramType
=
"query"
,
dataType
=
"Integer"
),
@ApiImplicitParam
(
name
=
"clientName"
,
value
=
"委托单位id"
,
paramType
=
"query"
,
dataType
=
"String"
),
@ApiImplicitParam
(
name
=
"projectName"
,
value
=
"项目名称"
,
paramType
=
"query"
,
dataType
=
"String"
),
@ApiImplicitParam
(
name
=
"projectCode"
,
value
=
"项目编号"
,
paramType
=
"query"
,
dataType
=
"String"
),
@ApiImplicitParam
(
name
=
"isUrgent"
,
value
=
"(1加急,0不加急)"
,
paramType
=
"query"
,
dataType
=
"Integer"
)
})
@GetMapping
(
"/getSampleReturnDistributioPage"
)
public
BaseResponse
getSampleReturnDistributioPage
(
PageQuery
pageQuery
,
String
entrustCode
,
Integer
userId
,
String
clientName
,
String
projectName
,
String
projectCode
,
Integer
isUrgent
)
{
try
{
return
entrustService
.
getSampleReturnDistributioPage
(
pageQuery
,
entrustCode
,
userId
,
clientName
,
projectName
,
projectCode
,
isUrgent
);
}
catch
(
Exception
e
)
{
log
.
debug
(
"样品检测退回任务分页{}"
,
e
);
}
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
value
=
"重新派发样品检测任务"
)
@PostMapping
(
"/distributioAgain"
)
public
BaseResponse
distributioAgain
(
@RequestBody
HandleAgainQuery
query
)
{
try
{
return
entrustService
.
distributioAgain
(
query
);
}
catch
(
Exception
e
)
{
log
.
debug
(
"重新派发样品检测任务{}"
,
e
);
}
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
value
=
"数据校核分页"
)
@ApiImplicitParams
(
value
=
{
...
...
@@ -502,6 +559,17 @@ public class EntrustController {
}
@ApiOperation
(
value
=
"校核计算 立马返回数据"
)
@PostMapping
(
"/checkCountFast"
)
public
BaseResponse
checkCountFast
(
@RequestBody
CheckCountFastQuery
query
)
{
try
{
return
entrustService
.
checkCountFast
(
query
);
}
catch
(
Exception
e
)
{
log
.
debug
(
"校核计算 立马返回数据{}"
,
e
);
}
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
value
=
"数据校核结果查看"
)
@GetMapping
(
"/getCheckResult"
)
public
BaseResponse
getCheckResult
(
Integer
entrustId
,
Integer
userId
)
{
...
...
@@ -513,6 +581,9 @@ public class EntrustController {
return
BaseResponse
.
errorMsg
(
"失败!"
);
}
@ApiOperation
(
value
=
"校核计算"
)
@PostMapping
(
"/checkCount"
)
public
BaseResponse
checkCount
(
@RequestBody
CheckCountNewQuery
query
)
{
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/entity/SampleDistributionCheckinput.java
View file @
a4dee111
...
...
@@ -64,7 +64,7 @@ public class SampleDistributionCheckinput implements Serializable {
private
String
inputResult
;
/**
* 状态(
1通过,0
退回)
* 状态(
(0未接受,1接受,2待校核,3退回,4校核通过,5校核
退回)
*/
private
Integer
status
;
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/SampleDistributionMapper.java
View file @
a4dee111
...
...
@@ -2,10 +2,7 @@ package cn.wise.sc.cement.business.mapper;
import
cn.wise.sc.cement.business.entity.EntrustSample
;
import
cn.wise.sc.cement.business.entity.SampleDistribution
;
import
cn.wise.sc.cement.business.model.vo.SampleCheckGroupVo
;
import
cn.wise.sc.cement.business.model.vo.SampleDistributionTeamVo
;
import
cn.wise.sc.cement.business.model.vo.SampleDistributionVo
;
import
cn.wise.sc.cement.business.model.vo.SampleHandleVo
;
import
cn.wise.sc.cement.business.model.vo.*
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -31,7 +28,7 @@ public interface SampleDistributionMapper extends BaseMapper<SampleDistribution>
List
<
SampleDistributionTeamVo
>
getDistributionTeamList
(
@Param
(
"sampleId"
)
Integer
sampleId
,
@Param
(
"userId"
)
Integer
userId
);
List
<
Sample
DistributionTeam
Vo
>
getDistributionTeamGroupList
(
@Param
(
"sampleId"
)
Integer
sampleId
,
List
<
Sample
TeamGroupUser
Vo
>
getDistributionTeamGroupList
(
@Param
(
"sampleId"
)
Integer
sampleId
,
@Param
(
"userId"
)
Integer
userId
);
List
<
SampleCheckGroupVo
>
getSampleCheckGroupList
(
@Param
(
"sampleId"
)
Integer
sampleId
);
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/xml/EntrustMapper.xml
View file @
a4dee111
...
...
@@ -306,7 +306,7 @@
<sql
id=
"checkWhere"
>
<where>
and e.is_delete = 1 and e.status >=
6
and e.is_delete = 1 and e.status >=
0
<if
test=
"params.startDate != null and params.startDate != ''"
>
and DATE(e.entrust_date)
>
= #{params.startDate}
</if>
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/mapper/xml/SampleDistributionMapper.xml
View file @
a4dee111
...
...
@@ -77,7 +77,7 @@
order by t.id asc
</select>
<select
id=
"getDistributionTeamGroupList"
resultType=
"cn.wise.sc.cement.business.model.vo.Sample
DistributionTeam
Vo"
>
<select
id=
"getDistributionTeamGroupList"
resultType=
"cn.wise.sc.cement.business.model.vo.Sample
TeamGroupUser
Vo"
>
select su.id as userId,
t.team_group_id as teamGroupId
from sample_distribution t
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/model/query/CheckCountFastQuery.java
0 → 100644
View file @
a4dee111
package
cn
.
wise
.
sc
.
cement
.
business
.
model
.
query
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Map
;
/**
* @description:
* @author: ztw
* @create: 2020-02-07
**/
@Data
@ApiModel
(
"数据校核-快速计算接口"
)
public
class
CheckCountFastQuery
{
@ApiModelProperty
(
"检测组表id"
)
private
Integer
teamGroupId
;
@ApiModelProperty
(
"输入信息集合"
)
private
Map
<
String
,
String
>
intputResult
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/model/vo/CheckSampleResultVo.java
View file @
a4dee111
...
...
@@ -2,6 +2,7 @@ package cn.wise.sc.cement.business.model.vo;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.models.auth.In
;
import
lombok.Data
;
import
java.math.BigDecimal
;
...
...
@@ -91,6 +92,8 @@ public class CheckSampleResultVo {
@ApiModelProperty
(
"计算结果 json串"
)
private
String
countResult
;
@ApiModelProperty
(
"状态(0未接受,1接受,2待校核,3退回,4校核通过,5校核退回)"
)
private
Integer
status
;
@ApiModelProperty
(
"委托-校核结果-检测项列表"
)
...
...
@@ -98,5 +101,4 @@ public class CheckSampleResultVo {
}
cement-business/src/main/java/cn/wise/sc/cement/business/model/vo/CheckUserResultVo.java
View file @
a4dee111
...
...
@@ -27,6 +27,22 @@ public class CheckUserResultVo {
@ApiModelProperty
(
"委托编号"
)
private
String
entrustCode
;
@ApiModelProperty
(
"项目名称"
)
private
String
projectName
;
@ApiModelProperty
(
"项目编号"
)
private
String
projectCode
;
@ApiModelProperty
(
"项目类型(常规项目,科研项目,质量控制项目)"
)
private
String
projectType
;
@ApiModelProperty
(
"委托人姓名"
)
private
String
entrustUserName
;
@ApiModelProperty
(
"委托单位姓名"
)
private
String
clientName
;
@ApiModelProperty
(
"委托-校核结果-检测组列表"
)
private
List
<
CheckTeamGroupResultVo
>
checkTeamGroupResultVoList
;
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/model/vo/SampleTeamGroupUserVo.java
0 → 100644
View file @
a4dee111
package
cn
.
wise
.
sc
.
cement
.
business
.
model
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* @description:
* @author: ztw
* @create: 2021-02-07 14:58
**/
@Data
@ApiModel
(
"委托-检测人-检测组关联Vo"
)
public
class
SampleTeamGroupUserVo
{
@ApiModelProperty
(
"检测人id"
)
private
Integer
userId
;
@ApiModelProperty
(
"检测组id"
)
private
Integer
teamGroupId
;
}
cement-business/src/main/java/cn/wise/sc/cement/business/service/IEntrustService.java
View file @
a4dee111
...
...
@@ -112,6 +112,8 @@ public interface IEntrustService extends IService<Entrust> {
BaseResponse
<
List
<
SampleCheckVo
>>
getCheckDetail
(
String
cementCode
);
BaseResponse
<
Map
<
String
,
String
>>
checkCountFast
(
CheckCountFastQuery
query
);
BaseResponse
<
String
>
checkCountNew
(
CheckCountNewQuery
query
);
/*BaseResponse<String> check(CheckQuery query);*/
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/EntrustServiceImpl.java
View file @
a4dee111
...
...
@@ -2612,12 +2612,14 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
}
entrustMapper
.
updateById
(
entrust
);
//计算产值
List
<
Sample
DistributionTeam
Vo
>
sampleDistributionTeamGroupVoList
=
distributionMapper
.
getDistributionTeamGroupList
(
sample
.
getId
(),
loginUser
.
getId
());
List
<
Sample
TeamGroupUser
Vo
>
sampleDistributionTeamGroupVoList
=
distributionMapper
.
getDistributionTeamGroupList
(
sample
.
getId
(),
loginUser
.
getId
());
if
(
sampleDistributionTeamGroupVoList
!=
null
&&
sampleDistributionTeamGroupVoList
.
size
()
>
0
)
{
for
(
Sample
DistributionTeam
Vo
sdVo
:
sampleDistributionTeamGroupVoList
)
{
for
(
Sample
TeamGroupUser
Vo
sdVo
:
sampleDistributionTeamGroupVoList
)
{
try
{
SampleDistribution
sampleDistribution
=
distributionMapper
.
selectById
(
sdVo
.
getDistributionId
());
iPrecipriceService
.
createPreciprice
(
sdVo
.
getUserId
(),
entrust
.
getId
(),
sampleDistribution
.
getTeamGroupId
(),
1
,
sample
.
getId
(),
false
);
if
(
sdVo
.
getTeamGroupId
()
==
null
){
return
BaseResponse
.
errorMsg
(
"当前登录人没有该样品的检测权限"
);
}
iPrecipriceService
.
createPreciprice
(
sdVo
.
getUserId
(),
entrust
.
getId
(),
sdVo
.
getTeamGroupId
(),
1
,
sample
.
getId
(),
false
);
}
catch
(
Exception
e
){
return
BaseResponse
.
errorMsg
(
e
.
getMessage
());
}
...
...
@@ -2716,7 +2718,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
}
/**
*
样品检测重新派发
*
重新派发样品检测任务
* @param query
* @return
*/
...
...
@@ -3011,6 +3013,11 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
SysUser
sysUser
=
userService
.
getById
(
userId
);
checkUserResultVo
.
setUserId
(
sysUser
.
getId
());
checkUserResultVo
.
setUserName
(
sysUser
.
getName
());
checkUserResultVo
.
setProjectName
(
entrustVo
.
getProjectName
());
checkUserResultVo
.
setProjectCode
(
entrustVo
.
getProjectCode
());
checkUserResultVo
.
setProjectType
(
entrustVo
.
getProjectType
());
checkUserResultVo
.
setEntrustUserName
(
entrustVo
.
getUserName
());
checkUserResultVo
.
setClientName
(
entrustVo
.
getClientName
());
QueryWrapper
<
SampleDistribution
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"entrust_id"
,
entrust
.
getId
());
...
...
@@ -3066,6 +3073,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
//根据委托id,样品id 检测组id,检测人id判断校核输入表是否有数据,如果有显示校核输入表数据,如果没有显示检测项表数据。
String
inputResult
=
teamGroup
.
getCheckElement
();
Integer
status
=
2
;
QueryWrapper
<
SampleDistributionCheckinput
>
checkinputQueryWrapper
=
new
QueryWrapper
<>();
checkinputQueryWrapper
.
eq
(
"entrust_id"
,
entrust
.
getId
());
checkinputQueryWrapper
.
eq
(
"sample_id"
,
sample
.
getId
());
...
...
@@ -3077,10 +3085,11 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
SampleDistributionCheckinput
checkinput
=
checkinputList
.
get
(
0
);
if
(
checkinput
!=
null
){
inputResult
=
checkinput
.
getInputResult
();
status
=
checkinput
.
getStatus
();
}
}
checkSampleResultVo
.
setInputResult
(
inputResult
);
checkSampleResultVo
.
setStatus
(
status
);
List
<
SampleDistribution
>
list4
=
(
List
<
SampleDistribution
>)
entrySample
.
getValue
();
if
(
list4
!=
null
&&
list4
.
size
()
>
0
)
{
...
...
@@ -3127,13 +3136,15 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
ortherWrapper
.
eq
(
"team_group_id"
,
checkTeamGroupResultVo
.
getTeamGroupId
());
ortherWrapper
.
eq
(
"team_id"
,
checkTeamResultVo
.
getTeamId
());
List
<
SampleDistribution
>
ortherDdistributionList
=
distributionMapper
.
selectList
(
ortherWrapper
);
if
(
ortherDdistributionList
.
size
()
>
0
){
if
(
ortherDdistributionList
.
size
()
>
1
){
return
BaseResponse
.
errorMsg
(
"检测派发表检测项信息重复"
);
}
SampleDistribution
other
=
ortherDdistributionList
.
get
(
0
);
if
(
StringUtils
.
isNotBlank
(
other
.
getDistributionResult
())){
ortherResultList
.
add
(
other
.
getDistributionResult
());
}
}
}
checkTeamResultVo
.
setOrtherUserResult
(
ortherResultList
);
//该检测项的误差结果值和最终结果值
...
...
@@ -3164,6 +3175,45 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
}
/**
* 校核计算 立马返回数据
*
* @param query
* @return
*/
@Transactional
@Override
public
BaseResponse
<
Map
<
String
,
String
>>
checkCountFast
(
CheckCountFastQuery
query
)
{
if
(
query
==
null
)
{
return
BaseResponse
.
errorMsg
(
"参数错误"
);
}
LoginUser
loginUser
=
userService
.
getLoginUser
();
if
(
loginUser
==
null
)
{
return
BaseResponse
.
errorMsg
(
"请登录用户"
);
}
//通过检测组获取检测项信息
List
<
String
>
checkResutlList
=
teamMapper
.
getByGroup
(
query
.
getTeamGroupId
());
//该检测项的每个样品的检测计算结果集合
if
(
query
.
getIntputResult
()
==
null
){
return
BaseResponse
.
errorMsg
(
"请输入检测数据"
);
}
JSONArray
inputResult_jsonArray
=
commonService
.
mapToJSONArray2
(
query
.
getTeamGroupId
(),
query
.
getIntputResult
());
String
inputResult_String
=
JSON
.
toJSON
(
inputResult_jsonArray
).
toString
();
System
.
out
.
println
(
inputResult_String
);
//计算检测结果
Map
<
String
,
String
>
resultMap
=
commonService
.
checkCount
(
checkResutlList
,
query
.
getIntputResult
());
return
BaseResponse
.
okData
(
resultMap
);
}
/**
* 按照检测组校核计算 (新的)
* @param query
...
...
@@ -3191,7 +3241,6 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
return
BaseResponse
.
errorMsg
(
"信息错误"
);
}
entrust
.
setStatus
(
7
);
//校核中状态
if
(
query
.
getIsAgree
()
==
1
){
//通过
//保存校核输入表信息
QueryWrapper
<
SampleDistributionCheckinput
>
checkinputQueryWrapper
=
new
QueryWrapper
<>();
checkinputQueryWrapper
.
eq
(
"entrust_id"
,
query
.
getEntrustId
());
...
...
@@ -3208,7 +3257,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
checkinput
=
checkinputList
.
get
(
0
);
checkinput
.
setCheckUserId
(
loginUser
.
getId
())
.
setInputResult
(
inputResult_String
)
.
setStatus
(
query
.
getIsAgree
()
==
1
?
1
:
0
)
.
setStatus
(
query
.
getIsAgree
()
==
1
?
4
:
5
)
.
setUpdateTime
(
LocalDateTime
.
now
())
.
setRemark
(
query
.
getAuditReason
());
sampleDistributionCheckinputMapper
.
updateById
(
checkinput
);
...
...
@@ -3220,12 +3269,15 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
.
setUserId
(
query
.
getUserId
())
.
setCheckUserId
(
loginUser
.
getId
())
.
setInputResult
(
inputResult_String
)
.
setStatus
(
query
.
getIsAgree
()
==
1
?
1
:
0
)
.
setStatus
(
query
.
getIsAgree
()
==
1
?
4
:
5
)
.
setCreateTime
(
LocalDateTime
.
now
())
.
setUpdateTime
(
LocalDateTime
.
now
())
.
setRemark
(
query
.
getAuditReason
());
sampleDistributionCheckinputMapper
.
insert
(
checkinput
);
}
//根据按钮判断
if
(
query
.
getIsAgree
()
==
1
){
//通过
//保存校核结果信息
List
<
CheckCountDistributionNewQuery
>
queryList
=
query
.
getCheckCountDistributionNewQueryList
();
if
(
queryList
!=
null
&&
queryList
.
size
()>
0
){
...
...
@@ -3323,6 +3375,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
dis
.
setStatus
(
5
);
//校核退回
dis
.
setDistributionResult
(
null
);
dis
.
setRemark
(
query
.
getAuditReason
());
dis
.
setCheckInputId
(
checkinput
.
getId
());
if
(
dis
.
getCheckId
()
!=
null
){
SampleDistributionCheck
disCheck
=
sampleDistributionCheckMapper
.
selectById
(
dis
.
getCheckId
());
disCheck
.
setDistributionError
(
null
)
...
...
cement-business/target/classes/cn/wise/sc/cement/business/mapper/DataStatisticsMapper.xml
View file @
a4dee111
...
...
@@ -216,7 +216,7 @@
LEFT JOIN sample s ON sd.sample_id = s.id
LEFT JOIN team t ON t.id = sd.team_id
WHERE (sd.finish_time between #{start} and #{end})
<if
test=
"origins != null"
>
<if
test=
"origins != null
and origins.size()>0
"
>
AND s.origin in
<foreach
collection=
"origins"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item}
...
...
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