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
6504f354
Commit
6504f354
authored
Jan 08, 2022
by
KeYong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'developer' of 172.16.10.76:moa/amos-boot-biz into developer
parents
ae4021e2
b4a8f2a9
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
295 additions
and
112 deletions
+295
-112
DutyPersonShiftMapper.java
.../boot/module/common/api/mapper/DutyPersonShiftMapper.java
+3
-0
DutyPersonShiftMapper.xml
...n-api/src/main/resources/mapper/DutyPersonShiftMapper.xml
+44
-0
VideoOnEquipmentSpecificVo.java
...oin/equipmanage/common/vo/VideoOnEquipmentSpecificVo.java
+29
-0
DutyPersonController.java
...ot/module/common/biz/controller/DutyPersonController.java
+8
-1
DutyFirstAidServiceImpl.java
...dule/common/biz/service/impl/DutyFirstAidServiceImpl.java
+9
-9
DutyPersonServiceImpl.java
...module/common/biz/service/impl/DutyPersonServiceImpl.java
+42
-1
EquipmentSpecificController.java
...n/equipmanage/controller/EquipmentSpecificController.java
+34
-35
VideoEquipmentSpecificMapper.java
...join/equipmanage/mapper/VideoEquipmentSpecificMapper.java
+4
-0
IEquipmentSpecificSerivce.java
...eejoin/equipmanage/service/IEquipmentSpecificSerivce.java
+31
-25
IVideoEquipmentSpecificService.java
...n/equipmanage/service/IVideoEquipmentSpecificService.java
+9
-0
EquipmentSpecificSerivceImpl.java
...quipmanage/service/impl/EquipmentSpecificSerivceImpl.java
+48
-41
VideoEquipmentSpecificImpl.java
.../equipmanage/service/impl/VideoEquipmentSpecificImpl.java
+10
-0
LatentDangerServiceImpl.java
...danger/business/service/impl/LatentDangerServiceImpl.java
+1
-0
VideoEquipmentSpecificMapper.xml
...rc/main/resources/mapper/VideoEquipmentSpecificMapper.xml
+23
-0
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/mapper/DutyPersonShiftMapper.java
View file @
6504f354
...
@@ -140,4 +140,7 @@ public interface DutyPersonShiftMapper extends BaseMapper<DutyPersonShift> {
...
@@ -140,4 +140,7 @@ public interface DutyPersonShiftMapper extends BaseMapper<DutyPersonShift> {
List
<
Map
<
String
,
Object
>>
queryByCompanyId
(
@Param
(
value
=
"bizNames"
)
List
<
String
>
bizNames
);
List
<
Map
<
String
,
Object
>>
queryByCompanyId
(
@Param
(
value
=
"bizNames"
)
List
<
String
>
bizNames
);
List
<
Map
<
String
,
Object
>>
queryByCompanyNew
(
String
bizOrgName
);
List
<
Map
<
String
,
Object
>>
queryByCompanyNew
(
String
bizOrgName
);
List
<
Map
<
String
,
Object
>>
getNewEquipmentForSpecifyDate
(
String
dutyDate
,
String
groupCode
,
String
equipmentId
,
String
equipmentName
,
String
groupByName
);
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/resources/mapper/DutyPersonShiftMapper.xml
View file @
6504f354
...
@@ -202,6 +202,50 @@ select * from (
...
@@ -202,6 +202,50 @@ select * from (
group by ${groupByName}
group by ${groupByName}
</if>
</if>
</select>
</select>
<select
id=
'getNewEquipmentForSpecifyDate'
resultType=
'map'
>
select * from (
SELECT
MAX(
CASE
WHEN cd.FIELD_CODE = #{equipmentId} THEN
cd.FIELD_VALUE
END
) AS #{equipmentId},
MAX(
CASE
WHEN cd.FIELD_CODE = 'userName' THEN
cd.FIELD_VALUE
END
) AS 'userName',
MAX(
CASE
WHEN cd.FIELD_CODE = #{equipmentName} THEN
cd.FIELD_VALUE
END
) AS #{equipmentName}
FROM
cb_dynamic_form_instance cd
LEFT JOIN (
SELECT
dp.instance_id,
ds.`name`
FROM
cb_duty_person_shift dp
LEFT JOIN cb_duty_shift ds ON dp.shift_id = ds.sequence_nbr
WHERE
dp.duty_date = #{dutyDate} and dp.is_delete=0
) cds ON cd.instance_id = cds.instance_id
where cd.group_code =#{groupCode} and cds.instance_id is not null and
cd.is_delete=0
group by cd.instance_id
) result
<if
test=
"groupByName != null and groupByName!='' "
>
group by ${groupByName}
</if>
</select>
<select
id=
'getInstanceIdForSpecifyDateAndEquipment'
<select
id=
'getInstanceIdForSpecifyDateAndEquipment'
resultType=
'map'
>
resultType=
'map'
>
SELECT
SELECT
...
...
amos-boot-module/amos-boot-module-api/amos-boot-module-equip-api/src/main/java/com/yeejoin/equipmanage/common/vo/VideoOnEquipmentSpecificVo.java
0 → 100644
View file @
6504f354
package
com
.
yeejoin
.
equipmanage
.
common
.
vo
;
import
lombok.Data
;
import
java.util.List
;
/**
* @ProjectName: amos-biz-boot
* @Package: com.yeejoin.equipmanage.common.vo
* @ClassName: VideoOnEquipmentSpecificVo
* @Author: Jianqiang Gao
* @Description: 摄像头绑定设备
* @Date: 2022/1/7 17:35
* @Version: 1.0
*/
@Data
public
class
VideoOnEquipmentSpecificVo
{
/**
* 设备ID
*/
private
Long
equipmentSpecificId
;
/**
* 摄像头Id集合
*/
private
List
<
Long
>
videoIdList
;
}
\ No newline at end of file
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/controller/DutyPersonController.java
View file @
6504f354
...
@@ -181,7 +181,14 @@ public class DutyPersonController extends BaseController {
...
@@ -181,7 +181,14 @@ public class DutyPersonController extends BaseController {
@ApiParam
(
value
=
"岗位"
)
@RequestParam
(
required
=
false
)
String
postType
)
{
@ApiParam
(
value
=
"岗位"
)
@RequestParam
(
required
=
false
)
String
postType
)
{
return
ResponseHelper
.
buildResponse
(
iDutyPersonService
.
dayDutyPersonList
(
dutyDay
,
shiftId
,
postType
));
return
ResponseHelper
.
buildResponse
(
iDutyPersonService
.
dayDutyPersonList
(
dutyDay
,
shiftId
,
postType
));
}
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
"新查询指定日期值班人信息列表"
)
@GetMapping
(
"/new-person/{dutyDay}/list"
)
public
ResponseModel
newListDutyPerson
(
@ApiParam
(
value
=
"值班日期"
,
required
=
true
)
@PathVariable
String
dutyDay
,
@ApiParam
(
value
=
"班次id"
)
@RequestParam
(
required
=
false
)
Long
shiftId
,
@ApiParam
(
value
=
"岗位"
)
@RequestParam
(
required
=
false
)
String
postType
)
{
return
ResponseHelper
.
buildResponse
(
iDutyPersonService
.
getSchedulingDutyForSpecifyDate
(
dutyDay
,
shiftId
,
postType
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
"查询当前值班人信息列表"
)
@ApiOperation
(
"查询当前值班人信息列表"
)
@GetMapping
(
"/person/on_duty/list"
)
@GetMapping
(
"/person/on_duty/list"
)
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/DutyFirstAidServiceImpl.java
View file @
6504f354
...
@@ -65,15 +65,15 @@ public class DutyFirstAidServiceImpl extends DutyCommonServiceImpl implements ID
...
@@ -65,15 +65,15 @@ public class DutyFirstAidServiceImpl extends DutyCommonServiceImpl implements ID
}
}
List
<
Object
>
detailList
=
new
ArrayList
<
Object
>();
List
<
Object
>
detailList
=
new
ArrayList
<
Object
>();
for
(
Map
<
String
,
Object
>
map
:
equipmentList
)
{
for
(
Map
<
String
,
Object
>
map
:
equipmentList
)
{
List
<
Map
<
String
,
Object
>>
resultList
=
new
ArrayList
<
Map
<
String
,
Object
>
>();
List
<
Object
>
resultList
=
new
ArrayList
<
Object
>();
LinkedHashMap
<
String
,
Object
>
titleMap_1
=
new
LinkedHashMap
<
String
,
Object
>();
//
LinkedHashMap<String, Object> titleMap_1 = new LinkedHashMap<String, Object>();
titleMap_1
.
put
(
"120急救站"
,
map
.
get
(
"firstAid"
).
toString
());
//
titleMap_1.put("120急救站", map.get("firstAid").toString());
resultList
.
add
(
titleMap_1
);
resultList
.
add
(
map
.
get
(
"firstAid"
).
toString
()
);
LinkedHashMap
<
String
,
Object
>
titleMap_2
=
new
LinkedHashMap
<
String
,
Object
>();
//
LinkedHashMap<String, Object> titleMap_2 = new LinkedHashMap<String, Object>();
if
(
map
.
containsKey
(
"teamName"
)
&&
map
.
get
(
"teamName"
)
!=
null
){
//
if(map.containsKey("teamName") && map.get("teamName") != null){
titleMap_2
.
put
(
"单位/部门"
,
map
.
get
(
"teamName"
).
toString
());
//
titleMap_2.put("单位/部门", map.get("teamName").toString());
}
//
}
resultList
.
add
(
titleMap_2
);
//
resultList.add(titleMap_2);
String
carId
=
map
.
get
(
"firstAidId"
).
toString
();
String
carId
=
map
.
get
(
"firstAidId"
).
toString
();
Map
<
String
,
Object
>
instanceMap
=
dutyPersonShiftMapper
.
getInstanceIdForSpecifyDateAndEquipment
(
dutyDay
,
Map
<
String
,
Object
>
instanceMap
=
dutyPersonShiftMapper
.
getInstanceIdForSpecifyDateAndEquipment
(
dutyDay
,
this
.
getGroupCode
(),
carId
);
this
.
getGroupCode
(),
carId
);
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/DutyPersonServiceImpl.java
View file @
6504f354
...
@@ -304,7 +304,48 @@ public Object BuildScheduleDetails(String dutyDay, Long shiftId, String postType
...
@@ -304,7 +304,48 @@ public Object BuildScheduleDetails(String dutyDay, Long shiftId, String postType
}
}
public
Object
getSchedulingDutyForSpecifyDate
(
String
dutyDay
,
Long
shiftId
,
String
postType
)
{
List
<
Map
<
String
,
Object
>>
equipmentList
=
dutyPersonShiftMapper
.
getNewEquipmentForSpecifyDate
(
dutyDay
,
this
.
getGroupCode
(),
"deptId"
,
"deptName"
,
"result.deptId"
);
if
(
equipmentList
==
null
||
equipmentList
.
size
()
<
1
||
equipmentList
.
get
(
0
)
==
null
)
{
return
null
;
}
List
<
Object
>
detailList
=
new
ArrayList
<
Object
>();
for
(
Map
<
String
,
Object
>
map
:
equipmentList
)
{
List
<
Object
>
resultList
=
new
ArrayList
<
Object
>();
LinkedHashMap
<
String
,
Object
>
titleMap_2
=
new
LinkedHashMap
<
String
,
Object
>();
if
(
map
.
containsKey
(
"deptName"
)
&&
map
.
get
(
"deptName"
)
!=
null
){
resultList
.
add
(
map
.
get
(
"deptName"
).
toString
());
}
String
carId
=
map
.
get
(
"deptId"
).
toString
();
Map
<
String
,
Object
>
instanceMap
=
dutyPersonShiftMapper
.
getInstanceIdForSpecifyDateAndEquipment
(
dutyDay
,
this
.
getGroupCode
(),
carId
);
if
(
instanceMap
==
null
)
{
continue
;
}
String
instanceId
=
instanceMap
.
get
(
"instanceIds"
).
toString
();
if
(
StringUtils
.
isNotBlank
(
instanceId
))
{
String
[]
instanceIds
=
instanceId
.
split
(
","
);
// 获取当前装备ID下的排版数据
List
<
Map
<
String
,
Object
>>
specifyDateList
=
dutyPersonShiftMapper
.
getPositionStaffDutyForSpecifyDate
(
dutyDay
,
this
.
getGroupCode
(),
instanceIds
,
null
);
if
(
specifyDateList
==
null
||
specifyDateList
.
size
()
<
1
||
specifyDateList
.
get
(
0
)
==
null
)
{
continue
;
}
for
(
Map
<
String
,
Object
>
specify
:
specifyDateList
)
{
LinkedHashMap
<
String
,
Object
>
infoMap_2
=
new
LinkedHashMap
<
String
,
Object
>();
if
(
specify
.
containsKey
(
"postTypeName"
)&&
specify
.
get
(
"postTypeName"
)!=
null
&&
specify
.
containsKey
(
"userName"
)&&
specify
.
get
(
"userName"
)!=
null
)
{
infoMap_2
.
put
(
specify
.
get
(
"postTypeName"
).
toString
(),
specify
.
get
(
"userName"
).
toString
());
resultList
.
add
(
infoMap_2
);
}
}
}
detailList
.
add
(
resultList
);
}
return
detailList
;
}
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/controller/EquipmentSpecificController.java
View file @
6504f354
package
com
.
yeejoin
.
equipmanage
.
controller
;
package
com
.
yeejoin
.
equipmanage
.
controller
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto
;
import
com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto
;
import
com.yeejoin.equipmanage.common.entity.EquipmentDetail
;
import
com.yeejoin.equipmanage.common.entity.EquipmentDetail
;
...
@@ -29,16 +7,28 @@ import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
...
@@ -29,16 +7,28 @@ import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import
com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO
;
import
com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO
;
import
com.yeejoin.equipmanage.common.entity.dto.SourceNameListDTO
;
import
com.yeejoin.equipmanage.common.entity.dto.SourceNameListDTO
;
import
com.yeejoin.equipmanage.common.entity.vo.ComplementCodeVO
;
import
com.yeejoin.equipmanage.common.entity.vo.ComplementCodeVO
;
import
com.yeejoin.equipmanage.common.entity.vo.DetailPaneVO
;
import
com.yeejoin.equipmanage.common.entity.vo.SourceNameByEquipSpeIdVO
;
import
com.yeejoin.equipmanage.common.entity.vo.SourceNameByEquipSpeIdVO
;
import
com.yeejoin.equipmanage.common.utils.CommonResponseUtil
;
import
com.yeejoin.equipmanage.common.utils.CommonResponseUtil
;
import
com.yeejoin.equipmanage.common.vo.EquipmentOnCarVo
;
import
com.yeejoin.equipmanage.common.vo.EquipmentOnCarVo
;
import
com.yeejoin.equipmanage.common.vo.VideoOnEquipmentSpecificVo
;
import
com.yeejoin.equipmanage.mapper.EquipmentSpecificMapper
;
import
com.yeejoin.equipmanage.mapper.EquipmentSpecificMapper
;
import
com.yeejoin.equipmanage.service.IEquipmentDetailService
;
import
com.yeejoin.equipmanage.service.IEquipmentDetailService
;
import
com.yeejoin.equipmanage.service.IEquipmentSpecificSerivce
;
import
com.yeejoin.equipmanage.service.IEquipmentSpecificSerivce
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
/**
* @author ZeHua Li
* @author ZeHua Li
...
@@ -153,8 +143,8 @@ public class EquipmentSpecificController extends AbstractBaseController {
...
@@ -153,8 +143,8 @@ public class EquipmentSpecificController extends AbstractBaseController {
@RequestMapping
(
value
=
"/getOneCard"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/getOneCard"
,
method
=
RequestMethod
.
GET
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据id查询"
,
notes
=
"组装组态使用装备卡片数据"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据id查询"
,
notes
=
"组装组态使用装备卡片数据"
)
public
Object
getOneCard
(
Long
id
,
String
type
)
{
public
Object
getOneCard
(
Long
id
,
String
type
)
{
return
equipmentSpecificSerivce
.
getOneCard
(
id
,
type
);
return
equipmentSpecificSerivce
.
getOneCard
(
id
,
type
);
}
}
/**
/**
...
@@ -240,31 +230,33 @@ public class EquipmentSpecificController extends AbstractBaseController {
...
@@ -240,31 +230,33 @@ public class EquipmentSpecificController extends AbstractBaseController {
/**
/**
* 根据specificId删除装备相关数据
* 根据specificId删除装备相关数据
*
* @param specificId id
* @param specificId id
* @return ResponseModel
* @return ResponseModel
*/
*/
@DeleteMapping
(
value
=
"/delEquipmentBySpecificId"
)
@DeleteMapping
(
value
=
"/delEquipmentBySpecificId"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
value
=
"删除装备相关所有数据"
,
notes
=
"删除装备相关所有数据"
)
@ApiOperation
(
value
=
"删除装备相关所有数据"
,
notes
=
"删除装备相关所有数据"
)
public
ResponseModel
delEquipmentBySpecificId
(
@RequestParam
Long
specificId
)
{
public
ResponseModel
delEquipmentBySpecificId
(
@RequestParam
Long
specificId
)
{
return
CommonResponseUtil
.
success
(
equipmentSpecificSerivce
.
delEquipmentBySpecificId
(
specificId
));
return
CommonResponseUtil
.
success
(
equipmentSpecificSerivce
.
delEquipmentBySpecificId
(
specificId
));
}
}
/**
/**
* 根据specificIds删除装备相关数据
* 根据specificIds删除装备相关数据
*
* @param specificIds id
* @param specificIds id
* @return ResponseModel
* @return ResponseModel
*/
*/
@DeleteMapping
(
value
=
"/delAllEquipmentBySpecificIds"
)
@DeleteMapping
(
value
=
"/delAllEquipmentBySpecificIds"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
value
=
"批量删除装备相关所有数据"
,
notes
=
"批量删除装备相关所有数据"
)
@ApiOperation
(
value
=
"批量删除装备相关所有数据"
,
notes
=
"批量删除装备相关所有数据"
)
public
ResponseModel
delEquipmentBySpecificId
(
@RequestBody
List
<
Long
>
specificIds
)
{
public
ResponseModel
delEquipmentBySpecificId
(
@RequestBody
List
<
Long
>
specificIds
)
{
if
(
ObjectUtils
.
isEmpty
(
specificIds
))
{
if
(
ObjectUtils
.
isEmpty
(
specificIds
))
{
return
CommonResponseUtil
.
failure
(
"参数为空"
);
return
CommonResponseUtil
.
failure
(
"参数为空"
);
}
}
specificIds
.
forEach
(
specificId
->
{
specificIds
.
forEach
(
specificId
->
{
equipmentSpecificSerivce
.
delEquipmentBySpecificId
(
specificId
);
equipmentSpecificSerivce
.
delEquipmentBySpecificId
(
specificId
);
});
});
return
CommonResponseUtil
.
success
();
return
CommonResponseUtil
.
success
();
}
}
...
@@ -274,4 +266,11 @@ public class EquipmentSpecificController extends AbstractBaseController {
...
@@ -274,4 +266,11 @@ public class EquipmentSpecificController extends AbstractBaseController {
public
ResponseModel
getFessIndexDetails
()
{
public
ResponseModel
getFessIndexDetails
()
{
return
CommonResponseUtil
.
success
(
equipmentSpecificSerivce
.
getFessIndexDetails
());
return
CommonResponseUtil
.
success
(
equipmentSpecificSerivce
.
getFessIndexDetails
());
}
}
@RequestMapping
(
value
=
"/videoOnEquipmentSpecific"
,
method
=
RequestMethod
.
POST
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"摄像头绑定设备"
,
notes
=
"摄像头绑定设备"
)
public
ResponseModel
videoOnEquipmentSpecific
(
@RequestBody
VideoOnEquipmentSpecificVo
videoOnEquipmentSpecificVo
)
{
return
CommonResponseUtil
.
success
(
equipmentSpecificSerivce
.
videoOnEquipmentSpecific
(
videoOnEquipmentSpecificVo
));
}
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/mapper/VideoEquipmentSpecificMapper.java
View file @
6504f354
...
@@ -3,6 +3,9 @@ package com.yeejoin.equipmanage.mapper;
...
@@ -3,6 +3,9 @@ package com.yeejoin.equipmanage.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.equipmanage.common.entity.VideoEquipmentSpecific
;
import
com.yeejoin.equipmanage.common.entity.VideoEquipmentSpecific
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
/**
* @author ZeHua Li
* @author ZeHua Li
...
@@ -11,4 +14,5 @@ import org.apache.ibatis.annotations.Mapper;
...
@@ -11,4 +14,5 @@ import org.apache.ibatis.annotations.Mapper;
*/
*/
@Mapper
@Mapper
public
interface
VideoEquipmentSpecificMapper
extends
BaseMapper
<
VideoEquipmentSpecific
>
{
public
interface
VideoEquipmentSpecificMapper
extends
BaseMapper
<
VideoEquipmentSpecific
>
{
List
<
VideoEquipmentSpecific
>
findBySpecificIdAndVideoIdIn
(
@Param
(
"equipmentSpecificId"
)
Long
equipmentSpecificId
,
@Param
(
"list"
)
List
<
Long
>
videoIdList
);
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/IEquipmentSpecificSerivce.java
View file @
6504f354
package
com
.
yeejoin
.
equipmanage
.
service
;
package
com
.
yeejoin
.
equipmanage
.
service
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
...
@@ -16,14 +12,13 @@ import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
...
@@ -16,14 +12,13 @@ import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import
com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex
;
import
com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex
;
import
com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO
;
import
com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO
;
import
com.yeejoin.equipmanage.common.entity.vo.ComplementCodeVO
;
import
com.yeejoin.equipmanage.common.entity.vo.ComplementCodeVO
;
import
com.yeejoin.equipmanage.common.entity.vo.DetailPaneVO
;
import
com.yeejoin.equipmanage.common.entity.vo.EquipmentSpecificVo
;
import
com.yeejoin.equipmanage.common.entity.vo.EquipmentSpecificVo
;
import
com.yeejoin.equipmanage.common.entity.vo.SourceNameByEquipSpeIdVO
;
import
com.yeejoin.equipmanage.common.entity.vo.SourceNameByEquipSpeIdVO
;
import
com.yeejoin.equipmanage.common.vo.
EquipFor3DVO
;
import
com.yeejoin.equipmanage.common.vo.
*
;
import
com.yeejoin.equipmanage.common.vo.EquipmentDate
;
import
com.yeejoin.equipmanage.common.vo.EquipmentDetailVo
;
import
java.util.LinkedHashMap
;
import
com.yeejoin.equipmanage.common.vo.EquipmentOnCarVo
;
import
java.util.List
;
import
com.yeejoin.equipmanage.common.vo.EquipmentSpecific3dVo
;
import
java.util.Map
;
/**
/**
* @author ZeHua Li
* @author ZeHua Li
...
@@ -168,30 +163,41 @@ public interface IEquipmentSpecificSerivce extends IService<EquipmentSpecific> {
...
@@ -168,30 +163,41 @@ public interface IEquipmentSpecificSerivce extends IService<EquipmentSpecific> {
/**
/**
* 根据specificId删除相关数据
* 根据specificId删除相关数据
*
* @param specificId specificId
* @param specificId specificId
* @return Boolean
* @return Boolean
*/
*/
Boolean
delEquipmentBySpecificId
(
Long
specificId
);
Boolean
delEquipmentBySpecificId
(
Long
specificId
);
/**
/**
* 集成页面刷新,发送数据时调用
* 集成页面刷新,发送数据时调用
* @param systemTypeCode
*
*/
* @param systemTypeCode
void
integrationPageSysDataRefresh
(
String
systemTypeCode
);
*/
void
integrationPageSysDataRefresh
(
String
systemTypeCode
);
/**
* 更新设备表实时指标状态
/**
* @param indexs
* 更新设备表实时指标状态
*/
*
void
updateEquipmentSpecIndexRealtimeData
(
List
<
EquipmentSpecificIndex
>
indexs
);
* @param indexs
*/
void
updateEquipmentSpecIndexRealtimeData
(
List
<
EquipmentSpecificIndex
>
indexs
);
List
<
EquipmentSpecificVo
>
getEquipAndCarIotcodeByIotcode
(
String
iotCode
);
List
<
EquipmentSpecificVo
>
getEquipAndCarIotcodeByIotcode
(
String
iotCode
);
/**
/**
* 获取中州环境监测指标详情
* 获取中州环境监测指标详情
*
* @return
* @return
*/
*/
Map
<
String
,
List
<
Map
<
String
,
String
>>>
getFessIndexDetails
();
Map
<
String
,
List
<
Map
<
String
,
String
>>>
getFessIndexDetails
();
/**
* 设备绑定摄像头
*
* @param videoOnEquipmentSpecificVo
* @return
*/
Boolean
videoOnEquipmentSpecific
(
VideoOnEquipmentSpecificVo
videoOnEquipmentSpecificVo
);
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/IVideoEquipmentSpecificService.java
View file @
6504f354
...
@@ -3,10 +3,19 @@ package com.yeejoin.equipmanage.service;
...
@@ -3,10 +3,19 @@ package com.yeejoin.equipmanage.service;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yeejoin.equipmanage.common.entity.VideoEquipmentSpecific
;
import
com.yeejoin.equipmanage.common.entity.VideoEquipmentSpecific
;
import
java.util.List
;
/**
/**
* @author ZeHua Li
* @author ZeHua Li
* @date 2020/11/23 15:42
* @date 2020/11/23 15:42
* @since v2.0
* @since v2.0
*/
*/
public
interface
IVideoEquipmentSpecificService
extends
IService
<
VideoEquipmentSpecific
>
{
public
interface
IVideoEquipmentSpecificService
extends
IService
<
VideoEquipmentSpecific
>
{
/**
* 获取设备或摄像头ID绑定集合
* @param equipmentSpecificId
* @param videoIdList
* @return
*/
List
<
VideoEquipmentSpecific
>
findBySpecificIdAndVideoIdIn
(
Long
equipmentSpecificId
,
List
<
Long
>
videoIdList
);
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/EquipmentSpecificSerivceImpl.java
View file @
6504f354
...
@@ -12,6 +12,9 @@ import java.util.List;
...
@@ -12,6 +12,9 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
com.yeejoin.equipmanage.common.entity.*
;
import
com.yeejoin.equipmanage.common.vo.*
;
import
com.yeejoin.equipmanage.service.*
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
...
@@ -39,23 +42,6 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
...
@@ -39,23 +42,6 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import
com.yeejoin.equipmanage.common.datasync.entity.FireEquipment
;
import
com.yeejoin.equipmanage.common.datasync.entity.FireEquipment
;
import
com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto
;
import
com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto
;
import
com.yeejoin.equipmanage.common.dto.UserDto
;
import
com.yeejoin.equipmanage.common.dto.UserDto
;
import
com.yeejoin.equipmanage.common.entity.EquProperty
;
import
com.yeejoin.equipmanage.common.entity.Equipment
;
import
com.yeejoin.equipmanage.common.entity.EquipmentCategory
;
import
com.yeejoin.equipmanage.common.entity.EquipmentDetail
;
import
com.yeejoin.equipmanage.common.entity.EquipmentIndex
;
import
com.yeejoin.equipmanage.common.entity.EquipmentSpecific
;
import
com.yeejoin.equipmanage.common.entity.EquipmentSpecificAlarm
;
import
com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex
;
import
com.yeejoin.equipmanage.common.entity.EquipmentSystemSourceStatistics
;
import
com.yeejoin.equipmanage.common.entity.Stock
;
import
com.yeejoin.equipmanage.common.entity.StockBill
;
import
com.yeejoin.equipmanage.common.entity.StockBillDetail
;
import
com.yeejoin.equipmanage.common.entity.StockDetail
;
import
com.yeejoin.equipmanage.common.entity.UploadFile
;
import
com.yeejoin.equipmanage.common.entity.Video
;
import
com.yeejoin.equipmanage.common.entity.Warehouse
;
import
com.yeejoin.equipmanage.common.entity.WarehouseStructure
;
import
com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO
;
import
com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO
;
import
com.yeejoin.equipmanage.common.entity.vo.AlamVideoVO
;
import
com.yeejoin.equipmanage.common.entity.vo.AlamVideoVO
;
import
com.yeejoin.equipmanage.common.entity.vo.AlarmInfoVO
;
import
com.yeejoin.equipmanage.common.entity.vo.AlarmInfoVO
;
...
@@ -85,11 +71,6 @@ import com.yeejoin.equipmanage.common.exception.BaseException;
...
@@ -85,11 +71,6 @@ import com.yeejoin.equipmanage.common.exception.BaseException;
import
com.yeejoin.equipmanage.common.utils.DateUtils
;
import
com.yeejoin.equipmanage.common.utils.DateUtils
;
import
com.yeejoin.equipmanage.common.utils.QRCodeUtil
;
import
com.yeejoin.equipmanage.common.utils.QRCodeUtil
;
import
com.yeejoin.equipmanage.common.utils.StringUtil
;
import
com.yeejoin.equipmanage.common.utils.StringUtil
;
import
com.yeejoin.equipmanage.common.vo.EquipFor3DVO
;
import
com.yeejoin.equipmanage.common.vo.EquipmentDate
;
import
com.yeejoin.equipmanage.common.vo.EquipmentDetailVo
;
import
com.yeejoin.equipmanage.common.vo.EquipmentOnCarVo
;
import
com.yeejoin.equipmanage.common.vo.EquipmentSpecific3dVo
;
import
com.yeejoin.equipmanage.config.EquipmentIotMqttReceiveConfig
;
import
com.yeejoin.equipmanage.config.EquipmentIotMqttReceiveConfig
;
import
com.yeejoin.equipmanage.fegin.VideoFeignClient
;
import
com.yeejoin.equipmanage.fegin.VideoFeignClient
;
import
com.yeejoin.equipmanage.mapper.EquipmentIndexMapper
;
import
com.yeejoin.equipmanage.mapper.EquipmentIndexMapper
;
...
@@ -97,25 +78,6 @@ import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmMapper;
...
@@ -97,25 +78,6 @@ import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmMapper;
import
com.yeejoin.equipmanage.mapper.EquipmentSpecificMapper
;
import
com.yeejoin.equipmanage.mapper.EquipmentSpecificMapper
;
import
com.yeejoin.equipmanage.mapper.UploadFileMapper
;
import
com.yeejoin.equipmanage.mapper.UploadFileMapper
;
import
com.yeejoin.equipmanage.mapper.VideoMapper
;
import
com.yeejoin.equipmanage.mapper.VideoMapper
;
import
com.yeejoin.equipmanage.service.IEquPropertyService
;
import
com.yeejoin.equipmanage.service.IEquipmentCategoryService
;
import
com.yeejoin.equipmanage.service.IEquipmentDetailService
;
import
com.yeejoin.equipmanage.service.IEquipmentIndexService
;
import
com.yeejoin.equipmanage.service.IEquipmentService
;
import
com.yeejoin.equipmanage.service.IEquipmentSpecificIndexSerivce
;
import
com.yeejoin.equipmanage.service.IEquipmentSpecificSerivce
;
import
com.yeejoin.equipmanage.service.IEquipmentSystemSourceStatisticsService
;
import
com.yeejoin.equipmanage.service.IFireFightingSystemService
;
import
com.yeejoin.equipmanage.service.IStockBillDetailService
;
import
com.yeejoin.equipmanage.service.IStockBillService
;
import
com.yeejoin.equipmanage.service.IStockDetailService
;
import
com.yeejoin.equipmanage.service.IStockService
;
import
com.yeejoin.equipmanage.service.ISyncDataService
;
import
com.yeejoin.equipmanage.service.ISystemDicService
;
import
com.yeejoin.equipmanage.service.IUploadFileService
;
import
com.yeejoin.equipmanage.service.IVideoService
;
import
com.yeejoin.equipmanage.service.IWarehouseService
;
import
com.yeejoin.equipmanage.service.IWarehouseStructureService
;
import
com.yeejoin.equipmanage.utils.RelationRedisUtil
;
import
com.yeejoin.equipmanage.utils.RelationRedisUtil
;
/**
/**
...
@@ -184,6 +146,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
...
@@ -184,6 +146,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
@Autowired
@Autowired
private
IVideoService
videoService
;
private
IVideoService
videoService
;
@Autowired
private
IVideoEquipmentSpecificService
videoEquipmentSpecificService
;
@Value
(
"${systemctl.dict.iot-core-param}"
)
@Value
(
"${systemctl.dict.iot-core-param}"
)
private
String
iotCoreParam
;
private
String
iotCoreParam
;
...
@@ -1659,4 +1624,46 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
...
@@ -1659,4 +1624,46 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
map
.
put
(
"tropics"
,
tropicsIndexDetails
);
map
.
put
(
"tropics"
,
tropicsIndexDetails
);
return
map
;
return
map
;
}
}
@Override
public
Boolean
videoOnEquipmentSpecific
(
VideoOnEquipmentSpecificVo
videoOnEquipmentSpecificVo
)
{
Long
equipmentSpecificId
=
videoOnEquipmentSpecificVo
.
getEquipmentSpecificId
();
List
<
Long
>
videoIdList
=
videoOnEquipmentSpecificVo
.
getVideoIdList
();
if
(
equipmentSpecificId
!=
null
&&
!
CollectionUtils
.
isEmpty
(
videoIdList
))
{
EquipmentSpecific
equipmentSpecific
=
this
.
baseMapper
.
selectById
(
equipmentSpecificId
);
if
(!
ObjectUtils
.
isEmpty
(
equipmentSpecific
))
{
List
<
VideoEquipmentSpecific
>
videoSpecificList
=
new
ArrayList
<>();
List
<
VideoEquipmentSpecific
>
list
=
videoEquipmentSpecificService
.
findBySpecificIdAndVideoIdIn
(
equipmentSpecificId
,
videoIdList
);
if
(!
CollectionUtils
.
isEmpty
(
list
))
{
List
<
Long
>
collect
=
list
.
stream
().
map
(
VideoEquipmentSpecific:
:
getVideoId
).
collect
(
Collectors
.
toList
());
// videoIdList - collect
List
<
Long
>
reduce
=
videoIdList
.
stream
().
filter
(
item
->
!
collect
.
contains
(
item
)).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
reduce
))
{
reduce
.
parallelStream
().
forEach
(
x
->
{
VideoEquipmentSpecific
videoEquipmentSpecific
=
new
VideoEquipmentSpecific
();
videoEquipmentSpecific
.
setVideoId
(
x
);
videoEquipmentSpecific
.
setEquipmentSpecificId
(
equipmentSpecificId
);
videoSpecificList
.
add
(
videoEquipmentSpecific
);
});
videoEquipmentSpecificService
.
saveBatch
(
videoSpecificList
);
return
Boolean
.
TRUE
;
}
}
else
{
videoIdList
.
parallelStream
().
forEach
(
x
->
{
VideoEquipmentSpecific
videoEquipmentSpecific
=
new
VideoEquipmentSpecific
();
videoEquipmentSpecific
.
setVideoId
(
x
);
videoEquipmentSpecific
.
setEquipmentSpecificId
(
equipmentSpecificId
);
videoSpecificList
.
add
(
videoEquipmentSpecific
);
});
videoEquipmentSpecificService
.
saveBatch
(
videoSpecificList
);
return
Boolean
.
TRUE
;
}
}
else
{
throw
new
RuntimeException
(
"未获取到此设备!"
);
}
}
else
{
throw
new
RuntimeException
(
"设备ID或摄像头ID集合为空!"
);
}
return
Boolean
.
FALSE
;
}
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/VideoEquipmentSpecificImpl.java
View file @
6504f354
...
@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...
@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
com.yeejoin.equipmanage.common.entity.VideoEquipmentSpecific
;
import
com.yeejoin.equipmanage.common.entity.VideoEquipmentSpecific
;
import
com.yeejoin.equipmanage.mapper.VideoEquipmentSpecificMapper
;
import
com.yeejoin.equipmanage.mapper.VideoEquipmentSpecificMapper
;
import
com.yeejoin.equipmanage.service.IVideoEquipmentSpecificService
;
import
com.yeejoin.equipmanage.service.IVideoEquipmentSpecificService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
/**
* @author ZeHua Li
* @author ZeHua Li
* @date 2020/11/23 15:43
* @date 2020/11/23 15:43
...
@@ -13,4 +16,11 @@ import org.springframework.stereotype.Service;
...
@@ -13,4 +16,11 @@ import org.springframework.stereotype.Service;
*/
*/
@Service
@Service
public
class
VideoEquipmentSpecificImpl
extends
ServiceImpl
<
VideoEquipmentSpecificMapper
,
VideoEquipmentSpecific
>
implements
IVideoEquipmentSpecificService
{
public
class
VideoEquipmentSpecificImpl
extends
ServiceImpl
<
VideoEquipmentSpecificMapper
,
VideoEquipmentSpecific
>
implements
IVideoEquipmentSpecificService
{
@Autowired
private
VideoEquipmentSpecificMapper
videoEquipmentSpecificMapper
;
@Override
public
List
<
VideoEquipmentSpecific
>
findBySpecificIdAndVideoIdIn
(
Long
equipmentSpecificId
,
List
<
Long
>
videoIdList
)
{
return
videoEquipmentSpecificMapper
.
findBySpecificIdAndVideoIdIn
(
equipmentSpecificId
,
videoIdList
);
}
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-latentdanger-biz/src/main/java/com/yeejoin/amos/latentdanger/business/service/impl/LatentDangerServiceImpl.java
View file @
6504f354
...
@@ -408,6 +408,7 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
...
@@ -408,6 +408,7 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
record
.
setExecuteState
(
executeState
);
record
.
setExecuteState
(
executeState
);
record
.
setExecuteResult
(
executeResult
);
record
.
setExecuteResult
(
executeResult
);
record
.
setActionFlag
(
dangerState
);
record
.
setActionFlag
(
dangerState
);
record
.
setRemark
(
remark
);
if
(!
ValidationUtil
.
isEmpty
(
flowJson
))
{
if
(!
ValidationUtil
.
isEmpty
(
flowJson
))
{
record
.
setFlowJson
(
flowJson
.
toJSONString
());
record
.
setFlowJson
(
flowJson
.
toJSONString
());
record
.
setRemark
(
ValidationUtil
.
isEmpty
(
remark
)
?
flowJson
.
getString
(
"remark"
)
:
remark
);
record
.
setRemark
(
ValidationUtil
.
isEmpty
(
remark
)
?
flowJson
.
getString
(
"remark"
)
:
remark
);
...
...
amos-boot-system-equip/src/main/resources/mapper/VideoEquipmentSpecificMapper.xml
0 → 100644
View file @
6504f354
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yeejoin.equipmanage.mapper.VideoEquipmentSpecificMapper"
>
<select
id=
"findBySpecificIdAndVideoIdIn"
resultType=
"com.yeejoin.equipmanage.common.entity.VideoEquipmentSpecific"
>
SELECT
v.id,
v.equipment_specific_id AS equipmentSpecificId,
v.video_id AS videoId
FROM
`wl_video_equipment_specific` v
<where>
<if
test=
"equipmentSpecificId != null"
>
v.equipment_specific_id = #{equipmentSpecificId}
</if>
<if
test=
"list != null and list.size() >0"
>
AND v.video_id IN
<foreach
collection=
"list"
item=
"item"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</if>
</where>
</select>
</mapper>
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