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
2fba3f1e
Commit
2fba3f1e
authored
Jul 01, 2021
by
fupeiyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
消防水源接口
parent
ef7d400a
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
532 additions
and
119 deletions
+532
-119
WaterResourceCraneDto.java
...n/amos/boot/module/jcs/api/dto/WaterResourceCraneDto.java
+1
-1
WaterResourceDto.java
...eejoin/amos/boot/module/jcs/api/dto/WaterResourceDto.java
+136
-11
WaterResourceHydrantDto.java
...amos/boot/module/jcs/api/dto/WaterResourceHydrantDto.java
+1
-1
WaterResourceIotDto.java
...oin/amos/boot/module/jcs/api/dto/WaterResourceIotDto.java
+2
-2
WaterResourceNaturalDto.java
...amos/boot/module/jcs/api/dto/WaterResourceNaturalDto.java
+1
-1
WaterResourcePoolDto.java
...in/amos/boot/module/jcs/api/dto/WaterResourcePoolDto.java
+1
-1
WaterResource.java
...eejoin/amos/boot/module/jcs/api/entity/WaterResource.java
+12
-2
WaterResourceCrane.java
...n/amos/boot/module/jcs/api/entity/WaterResourceCrane.java
+5
-0
WaterResourceHydrant.java
...amos/boot/module/jcs/api/entity/WaterResourceHydrant.java
+5
-0
WaterResourceIot.java
...oin/amos/boot/module/jcs/api/entity/WaterResourceIot.java
+5
-5
WaterResourceNatural.java
...amos/boot/module/jcs/api/entity/WaterResourceNatural.java
+5
-0
WaterResourcePool.java
...in/amos/boot/module/jcs/api/entity/WaterResourcePool.java
+5
-0
WaterResourceTypeEnum.java
...amos/boot/module/jcs/api/enums/WaterResourceTypeEnum.java
+32
-0
pom.xml
...ule/amos-boot-module-biz/amos-boot-module-jcs-biz/pom.xml
+6
-0
WaterResourceController.java
...ot/module/jcs/biz/controller/WaterResourceController.java
+290
-77
WaterResourceServiceImpl.java
...module/jcs/biz/service/impl/WaterResourceServiceImpl.java
+25
-18
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/dto/WaterResourceCraneDto.java
View file @
2fba3f1e
...
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
...
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterResourceCraneDto"
,
description
=
""
)
@ApiModel
(
value
=
"WaterResourceCraneDto"
,
description
=
"
消防水鹤
"
)
public
class
WaterResourceCraneDto
extends
BaseDto
{
public
class
WaterResourceCraneDto
extends
BaseDto
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/dto/WaterResourceDto.java
View file @
2fba3f1e
...
@@ -7,25 +7,22 @@ import lombok.Data;
...
@@ -7,25 +7,22 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
*
* @author system_generator
*
* @date 2021-06-29
* @author system_generator
*/
* @date 2021-06-29
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterResourceDto"
,
description
=
""
)
@ApiModel
(
value
=
"WaterResourceDto"
,
description
=
"水资源"
)
public
class
WaterResourceDto
extends
BaseDto
{
public
class
WaterResourceDto
extends
BaseDto
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"资源名称"
)
@ApiModelProperty
(
value
=
"资源名称"
)
private
String
name
;
private
String
name
;
@ApiModelProperty
(
value
=
"地址"
)
@ApiModelProperty
(
value
=
"地址"
)
private
String
address
;
private
String
address
;
...
@@ -33,7 +30,10 @@ public class WaterResourceDto extends BaseDto {
...
@@ -33,7 +30,10 @@ public class WaterResourceDto extends BaseDto {
private
String
latLang
;
private
String
latLang
;
@ApiModelProperty
(
value
=
"资源类型(消火栓、消防水鹤、天然水源、消防水池)"
)
@ApiModelProperty
(
value
=
"资源类型(消火栓、消防水鹤、天然水源、消防水池)"
)
private
String
type
;
private
String
resourceType
;
@ApiModelProperty
(
value
=
"资源类型名称(消火栓、消防水鹤、天然水源、消防水池)"
)
private
String
resourceTypeName
;
@ApiModelProperty
(
value
=
"所在建筑id"
)
@ApiModelProperty
(
value
=
"所在建筑id"
)
private
Long
belongBuildingId
;
private
Long
belongBuildingId
;
...
@@ -65,6 +65,12 @@ public class WaterResourceDto extends BaseDto {
...
@@ -65,6 +65,12 @@ public class WaterResourceDto extends BaseDto {
@ApiModelProperty
(
value
=
"启用日期"
)
@ApiModelProperty
(
value
=
"启用日期"
)
private
Date
enableDate
;
private
Date
enableDate
;
@ApiModelProperty
(
value
=
"方位图集合"
)
private
List
<
Object
>
orientationImgList
;
@ApiModelProperty
(
value
=
"实景图集合"
)
private
List
<
Object
>
realityImgList
;
@ApiModelProperty
(
value
=
"方位图"
)
@ApiModelProperty
(
value
=
"方位图"
)
private
String
orientationImg
;
private
String
orientationImg
;
...
@@ -92,4 +98,123 @@ public class WaterResourceDto extends BaseDto {
...
@@ -92,4 +98,123 @@ public class WaterResourceDto extends BaseDto {
@ApiModelProperty
(
value
=
"组织机构代码"
)
@ApiModelProperty
(
value
=
"组织机构代码"
)
private
String
orgCode
;
private
String
orgCode
;
@ApiModelProperty
(
value
=
"资源id"
)
private
Long
resourceId
;
@ApiModelProperty
(
value
=
"高度(cm)"
)
private
Float
height
;
@ApiModelProperty
(
value
=
"水源可用状态类别代码"
)
private
String
statusCode
;
@ApiModelProperty
(
value
=
"水源可用状态类别名称"
)
private
String
status
;
@ApiModelProperty
(
value
=
"所属路段"
)
private
String
section
;
@ApiModelProperty
(
value
=
"所属管网"
)
private
String
pipeNetwork
;
@ApiModelProperty
(
value
=
"消防给水管网形式类型代码"
)
private
String
pipeTypeCode
;
@ApiModelProperty
(
value
=
"消防给水管网形式类型名称"
)
private
String
pipeTypeName
;
@ApiModelProperty
(
value
=
"管网直径(cm)"
)
private
Float
pipeDiameter
;
@ApiModelProperty
(
value
=
"进水管直径(cm)"
)
private
Float
inletPipeDiameter
;
@ApiModelProperty
(
value
=
"出水管直径(cm)"
)
private
Float
outletPipeDiameter
;
@ApiModelProperty
(
value
=
"加水车道数量(个)"
)
private
Integer
waterfillingLaneNum
;
@ApiModelProperty
(
value
=
"供水单位名称"
)
private
String
waterSupplyName
;
@ApiModelProperty
(
value
=
"消火栓系统类型"
)
private
String
systemType
;
@ApiModelProperty
(
value
=
"消火栓系统类型code"
)
private
String
systemTypeCode
;
@ApiModelProperty
(
value
=
"消防设施状况分类"
)
private
String
facilitiesCategory
;
@ApiModelProperty
(
value
=
"消防设施状况分类code"
)
private
String
facilitiesCategoryCode
;
@ApiModelProperty
(
value
=
"道路路口路段简要情况"
)
private
String
roadJunctionInfo
;
@ApiModelProperty
(
value
=
"消火栓放置形式"
)
private
String
placeForm
;
@ApiModelProperty
(
value
=
"消火栓放置形式code"
)
private
String
placeFormCode
;
@ApiModelProperty
(
value
=
"消防水带接口"
)
private
String
hoseConnection
;
@ApiModelProperty
(
value
=
"消防水带接口code"
)
private
String
hoseConnectionCode
;
@ApiModelProperty
(
value
=
"取水方式"
)
private
String
intakeForm
;
@ApiModelProperty
(
value
=
"水源类型代码"
)
private
String
typeCode
;
@ApiModelProperty
(
value
=
"水源类型"
)
private
String
type
;
@ApiModelProperty
(
value
=
"容积(m³)"
)
private
Float
volume
;
@ApiModelProperty
(
value
=
"面积(㎡)"
)
private
Float
area
;
@ApiModelProperty
(
value
=
"水质情况"
)
private
String
qualitySituationInfo
;
@ApiModelProperty
(
value
=
"四季变化简要情况"
)
private
String
seasonChangeInfo
;
@ApiModelProperty
(
value
=
"有无枯水期"
)
private
Boolean
hasDrySeason
;
@ApiModelProperty
(
value
=
"枯水期跨度简要情况"
)
private
String
dryPeriodSpan
;
@ApiModelProperty
(
value
=
"取水高度(cm)"
)
private
Float
intakeHeight
;
@ApiModelProperty
(
value
=
"水源标高差(cm)"
)
private
Float
elevationDifference
;
@ApiModelProperty
(
value
=
"停车位置"
)
private
String
parkingPosition
;
@ApiModelProperty
(
value
=
"停车数量(个)"
)
private
Integer
parkingNum
;
@ApiModelProperty
(
value
=
"储水量容积物联编码"
)
private
String
iotWaterStorage
;
@ApiModelProperty
(
value
=
"流量物联编码"
)
private
String
iotFlowRate
;
@ApiModelProperty
(
value
=
"状态物联编码"
)
private
String
iotStatus
;
@ApiModelProperty
(
value
=
"管网压力物联编码"
)
private
String
iotPipePressure
;
@ApiModelProperty
(
value
=
"物联参数"
)
private
WaterResourceIotDto
waterResourceIotDto
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/dto/WaterResourceHydrantDto.java
View file @
2fba3f1e
...
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
...
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterResourceHydrantDto"
,
description
=
""
)
@ApiModel
(
value
=
"WaterResourceHydrantDto"
,
description
=
"
消火栓
"
)
public
class
WaterResourceHydrantDto
extends
BaseDto
{
public
class
WaterResourceHydrantDto
extends
BaseDto
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/dto/WaterResourceIotDto.java
View file @
2fba3f1e
...
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
...
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterResourceIotDto"
,
description
=
""
)
@ApiModel
(
value
=
"WaterResourceIotDto"
,
description
=
"
物联参数
"
)
public
class
WaterResourceIotDto
extends
BaseDto
{
public
class
WaterResourceIotDto
extends
BaseDto
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
@@ -21,7 +21,7 @@ public class WaterResourceIotDto extends BaseDto {
...
@@ -21,7 +21,7 @@ public class WaterResourceIotDto extends BaseDto {
@ApiModelProperty
(
value
=
"主键id"
)
@ApiModelProperty
(
value
=
"主键id"
)
private
Long
sequencNbr
;
private
Long
sequenc
e
Nbr
;
@ApiModelProperty
(
value
=
"资源类型"
)
@ApiModelProperty
(
value
=
"资源类型"
)
private
String
resourceType
;
private
String
resourceType
;
...
...
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/dto/WaterResourceNaturalDto.java
View file @
2fba3f1e
...
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
...
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterResourceNaturalDto"
,
description
=
""
)
@ApiModel
(
value
=
"WaterResourceNaturalDto"
,
description
=
"
天然水源
"
)
public
class
WaterResourceNaturalDto
extends
BaseDto
{
public
class
WaterResourceNaturalDto
extends
BaseDto
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/dto/WaterResourcePoolDto.java
View file @
2fba3f1e
...
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
...
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"WaterResourcePoolDto"
,
description
=
""
)
@ApiModel
(
value
=
"WaterResourcePoolDto"
,
description
=
"
消防水池
"
)
public
class
WaterResourcePoolDto
extends
BaseDto
{
public
class
WaterResourcePoolDto
extends
BaseDto
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/entity/WaterResource.java
View file @
2fba3f1e
...
@@ -42,8 +42,13 @@ public class WaterResource extends BaseEntity {
...
@@ -42,8 +42,13 @@ public class WaterResource extends BaseEntity {
/**
/**
* 资源类型(消火栓、消防水鹤、天然水源、消防水池)
* 资源类型(消火栓、消防水鹤、天然水源、消防水池)
*/
*/
@TableField
(
"type"
)
@TableField
(
"resource_type"
)
private
String
type
;
private
String
resourceType
;
/**
* 资源类型名称(消火栓、消防水鹤、天然水源、消防水池)
*/
@TableField
(
"resource_type_name"
)
private
String
resourceTypeName
;
/**
/**
* 所在建筑id
* 所在建筑id
*/
*/
...
@@ -139,4 +144,9 @@ public class WaterResource extends BaseEntity {
...
@@ -139,4 +144,9 @@ public class WaterResource extends BaseEntity {
*/
*/
@TableField
(
"org_code"
)
@TableField
(
"org_code"
)
private
String
orgCode
;
private
String
orgCode
;
/**
* 是否启用
*/
@TableField
(
"is_delete"
)
private
Boolean
isDelete
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/entity/WaterResourceCrane.java
View file @
2fba3f1e
...
@@ -91,4 +91,9 @@ public class WaterResourceCrane extends BaseEntity {
...
@@ -91,4 +91,9 @@ public class WaterResourceCrane extends BaseEntity {
*/
*/
@TableField
(
"rec_user_name"
)
@TableField
(
"rec_user_name"
)
private
String
recUserName
;
private
String
recUserName
;
/**
* 是否启用
*/
@TableField
(
"is_delete"
)
private
Boolean
isDelete
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/entity/WaterResourceHydrant.java
View file @
2fba3f1e
...
@@ -116,4 +116,9 @@ public class WaterResourceHydrant extends BaseEntity {
...
@@ -116,4 +116,9 @@ public class WaterResourceHydrant extends BaseEntity {
*/
*/
@TableField
(
"rec_user_name"
)
@TableField
(
"rec_user_name"
)
private
String
recUserName
;
private
String
recUserName
;
/**
* 是否启用
*/
@TableField
(
"is_delete"
)
private
Boolean
isDelete
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/entity/WaterResourceIot.java
View file @
2fba3f1e
...
@@ -22,11 +22,6 @@ public class WaterResourceIot extends BaseEntity {
...
@@ -22,11 +22,6 @@ public class WaterResourceIot extends BaseEntity {
/**
/**
* 主键id
*/
@TableField
(
"sequenc_nbr"
)
private
Long
sequencNbr
;
/**
* 资源类型
* 资源类型
*/
*/
@TableField
(
"resource_type"
)
@TableField
(
"resource_type"
)
...
@@ -61,4 +56,9 @@ public class WaterResourceIot extends BaseEntity {
...
@@ -61,4 +56,9 @@ public class WaterResourceIot extends BaseEntity {
*/
*/
@TableField
(
"rec_user_name"
)
@TableField
(
"rec_user_name"
)
private
String
recUserName
;
private
String
recUserName
;
/**
* 是否启用
*/
@TableField
(
"is_delete"
)
private
Boolean
isDelete
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/entity/WaterResourceNatural.java
View file @
2fba3f1e
...
@@ -86,4 +86,9 @@ public class WaterResourceNatural extends BaseEntity {
...
@@ -86,4 +86,9 @@ public class WaterResourceNatural extends BaseEntity {
*/
*/
@TableField
(
"rec_user_name"
)
@TableField
(
"rec_user_name"
)
private
String
recUserName
;
private
String
recUserName
;
/**
* 是否启用
*/
@TableField
(
"is_delete"
)
private
Boolean
isDelete
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/entity/WaterResourcePool.java
View file @
2fba3f1e
...
@@ -91,4 +91,9 @@ public class WaterResourcePool extends BaseEntity {
...
@@ -91,4 +91,9 @@ public class WaterResourcePool extends BaseEntity {
*/
*/
@TableField
(
"rec_user_name"
)
@TableField
(
"rec_user_name"
)
private
String
recUserName
;
private
String
recUserName
;
/**
* 是否启用
*/
@TableField
(
"is_delete"
)
private
Boolean
isDelete
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/enums/WaterResourceTypeEnum.java
0 → 100644
View file @
2fba3f1e
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jcs
.
api
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
@Getter
@AllArgsConstructor
public
enum
WaterResourceTypeEnum
{
消火栓
(
"hydrant"
,
"消火栓"
),
消防水鹤
(
"crane"
,
"消防水鹤"
),
消防水池
(
"pool"
,
"消防水池"
),
天然水源
(
"natural"
,
"天然水源"
);
private
String
code
;
private
String
name
;
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-jcs-biz/pom.xml
View file @
2fba3f1e
...
@@ -15,6 +15,12 @@
...
@@ -15,6 +15,12 @@
<artifactId>
amos-boot-module-jcs-api
</artifactId>
<artifactId>
amos-boot-module-jcs-api
</artifactId>
<version>
${amos-biz-boot.version}
</version>
<version>
${amos-biz-boot.version}
</version>
</dependency>
</dependency>
<dependency>
<groupId>
net.sf.json-lib
</groupId>
<artifactId>
json-lib
</artifactId>
<version>
2.4
</version>
<classifier>
jdk15
</classifier>
</dependency>
</dependencies>
</dependencies>
</project>
</project>
amos-boot-module/amos-boot-module-biz/amos-boot-module-jcs-biz/src/main/java/com/yeejoin/amos/boot/module/jcs/biz/controller/WaterResourceController.java
View file @
2fba3f1e
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jcs
.
biz
.
controller
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jcs
.
biz
.
controller
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.yeejoin.amos.boot.biz.common.utils.EnumsUtils
;
import
com.yeejoin.amos.boot.module.jcs.api.dto.*
;
import
com.yeejoin.amos.boot.module.jcs.api.entity.*
;
import
com.yeejoin.amos.boot.module.jcs.api.enums.WaterResourceTypeEnum
;
import
com.yeejoin.amos.boot.module.jcs.biz.service.impl.*
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
net.sf.json.JSONArray
;
import
java.util.List
;
import
java.util.List
;
import
com.yeejoin.amos.boot.module.jcs.biz.service.impl.WaterResourceServiceImpl
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
javax.servlet.http.HttpServletRequest
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.jcs.api.dto.WaterResourceDto
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
/**
/**
*
* @author system_generator
*
* @date 2021-06-29
* @author system_generator
*/
* @date 2021-06-29
*/
@RestController
@RestController
@Api
(
tags
=
"Api"
)
@Api
(
tags
=
"
消防水源
Api"
)
@RequestMapping
(
value
=
"/
jcs/
water-resource"
)
@RequestMapping
(
value
=
"/water-resource"
)
public
class
WaterResourceController
extends
BaseController
{
public
class
WaterResourceController
extends
BaseController
{
@Autowired
@Autowired
WaterResourceServiceImpl
waterResourceServiceImpl
;
WaterResourceServiceImpl
waterResourceServiceImpl
;
@Autowired
WaterResourceCraneServiceImpl
waterResourceCraneService
;
@Autowired
WaterResourceHydrantServiceImpl
waterResourceHydrantService
;
@Autowired
WaterResourceNaturalServiceImpl
waterResourceNaturalService
;
@Autowired
WaterResourcePoolServiceImpl
waterResourcePoolService
;
@Autowired
WaterResourceIotServiceImpl
waterResourceIotService
;
/**
* 新增
*
* @return 返回结果
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/save"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
WaterResourceDto
>
save
(
@RequestBody
WaterResourceDto
model
)
{
String
resourceType
=
model
.
getResourceType
();
Optional
<
WaterResourceTypeEnum
>
resourceTypeEnum
=
EnumsUtils
.
getEnumObject
(
WaterResourceTypeEnum
.
class
,
e
->
e
.
getCode
().
equals
(
resourceType
));
model
.
setResourceTypeName
(
resourceTypeEnum
.
get
().
getName
());
model
.
setRealityImg
(
JSONArray
.
fromObject
(
model
.
getRealityImgList
()).
toString
());
model
.
setOrientationImg
(
JSONArray
.
fromObject
(
model
.
getOrientationImgList
()).
toString
());
if
(!
StringUtils
.
isEmpty
(
resourceType
))
{
switch
(
resourceType
)
{
case
"hydrant"
:
// 新增基础信息
model
.
setIsIot
(
true
);
waterResourceServiceImpl
.
createWithModel
(
model
);
// 新增属性信息
WaterResourceHydrantDto
waterResourceHydrantDto
=
new
WaterResourceHydrantDto
();
BeanUtils
.
copyProperties
(
model
,
waterResourceHydrantDto
);
waterResourceHydrantDto
.
setSequenceNbr
(
null
);
waterResourceHydrantDto
.
setResourceId
(
model
.
getSequenceNbr
());
waterResourceHydrantService
.
createWithModel
(
waterResourceHydrantDto
);
break
;
case
"crane"
:
// 新增基础信息
model
.
setIsIot
(
true
);
waterResourceServiceImpl
.
createWithModel
(
model
);
WaterResourceCraneDto
waterResourceCraneDto
=
new
WaterResourceCraneDto
();
BeanUtils
.
copyProperties
(
model
,
waterResourceCraneDto
);
waterResourceCraneDto
.
setSequenceNbr
(
null
);
waterResourceCraneDto
.
setResourceId
(
model
.
getSequenceNbr
());
waterResourceCraneService
.
createWithModel
(
waterResourceCraneDto
);
break
;
case
"natural"
:
// 新增基础信息
model
.
setIsIot
(
false
);
waterResourceServiceImpl
.
createWithModel
(
model
);
WaterResourceNaturalDto
waterResourceNaturalDto
=
new
WaterResourceNaturalDto
();
BeanUtils
.
copyProperties
(
model
,
waterResourceNaturalDto
);
waterResourceNaturalDto
.
setSequenceNbr
(
null
);
waterResourceNaturalDto
.
setResourceId
(
model
.
getSequenceNbr
());
waterResourceNaturalService
.
createWithModel
(
waterResourceNaturalDto
);
break
;
case
"pool"
:
// 新增基础信息
model
.
setIsIot
(
true
);
waterResourceServiceImpl
.
createWithModel
(
model
);
WaterResourcePoolDto
waterResourcePoolDto
=
new
WaterResourcePoolDto
();
BeanUtils
.
copyProperties
(
model
,
waterResourcePoolDto
);
waterResourcePoolDto
.
setSequenceNbr
(
null
);
waterResourcePoolDto
.
setResourceId
(
model
.
getSequenceNbr
());
waterResourcePoolService
.
createWithModel
(
waterResourcePoolDto
);
break
;
}
// 新增物联信息
if
(
model
.
getIsIot
())
{
WaterResourceIotDto
waterResourceIotDto
=
model
.
getWaterResourceIotDto
();
waterResourceIotDto
.
setResourceType
(
model
.
getResourceType
());
waterResourceIotDto
.
setResourceId
(
model
.
getSequenceNbr
());
waterResourceIotService
.
createWithModel
(
waterResourceIotDto
);
}
}
else
{
waterResourceServiceImpl
.
createWithModel
(
model
);
}
return
ResponseHelper
.
buildResponse
(
model
);
}
/**
/**
* 新增
* 根据sequenceNbr更新
* @return
*
*/
* @param sequenceNbr 主键
* @return 返回结果
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/save"
)
@PutMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增"
,
notes
=
"新增"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新"
,
notes
=
"根据sequenceNbr更新"
)
public
ResponseModel
<
WaterResourceDto
>
save
(
@RequestBody
WaterResourceDto
model
)
public
ResponseModel
<
WaterResourceDto
>
updateBySequenceNbrWaterResource
(
@RequestBody
WaterResourceDto
model
,
{
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
model
=
waterResourceServiceImpl
.
createWithModel
(
model
);
// 更新基本信息
return
ResponseHelper
.
buildResponse
(
model
);
model
.
setSequenceNbr
(
sequenceNbr
);
}
WaterResourceDto
waterResourceDto
=
waterResourceServiceImpl
.
updateWithModel
(
model
);
/**
// 更新属性信息
* 根据sequenceNbr更新
String
resourceType
=
model
.
getResourceType
();
* @param sequenceNbr 主键
if
(!
StringUtils
.
isEmpty
(
resourceType
))
{
* @return
switch
(
resourceType
)
{
*/
case
"hydrant"
:
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
WaterResourceHydrantDto
waterResourceHydrantDto
=
new
WaterResourceHydrantDto
();
@PutMapping
(
value
=
"/{sequenceNbr}"
)
WaterResourceHydrant
waterResourceHydrant
=
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新"
,
notes
=
"根据sequenceNbr更新"
)
waterResourceHydrantService
.
getOne
(
new
QueryWrapper
<
WaterResourceHydrant
>().
eq
(
public
ResponseModel
<
WaterResourceDto
>
updateBySequenceNbrWaterResource
(
@RequestBody
WaterResourceDto
model
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
"resource_id"
,
model
.
setSequenceNbr
(
sequenceNbr
);
sequenceNbr
));
return
ResponseHelper
.
buildResponse
(
waterResourceServiceImpl
.
updateWithModel
(
model
));
BeanUtils
.
copyProperties
(
model
,
waterResourceHydrantDto
);
}
waterResourceHydrantDto
.
setSequenceNbr
(
waterResourceHydrant
.
getSequenceNbr
());
/**
waterResourceHydrantService
.
updateWithModel
(
waterResourceHydrantDto
);
* 根据sequenceNbr删除
break
;
* @param sequenceNbr 主键
case
"crane"
:
* @return
WaterResourceCraneDto
waterResourceCraneDto
=
new
WaterResourceCraneDto
();
*/
WaterResourceCrane
waterResourceCrane
=
waterResourceCraneService
.
getOne
(
new
QueryWrapper
<
WaterResourceCrane
>().
eq
(
"resource_id"
,
sequenceNbr
));
BeanUtils
.
copyProperties
(
model
,
waterResourceCraneDto
);
waterResourceCraneDto
.
setSequenceNbr
(
waterResourceCrane
.
getSequenceNbr
());
waterResourceCraneService
.
updateWithModel
(
waterResourceCraneDto
);
break
;
case
"natural"
:
WaterResourceNaturalDto
waterResourceNaturalDto
=
new
WaterResourceNaturalDto
();
WaterResourceNatural
waterResourceNatural
=
waterResourceNaturalService
.
getOne
(
new
QueryWrapper
<
WaterResourceNatural
>().
eq
(
"resource_id"
,
sequenceNbr
));
BeanUtils
.
copyProperties
(
model
,
waterResourceNaturalDto
);
waterResourceNaturalDto
.
setSequenceNbr
(
waterResourceNatural
.
getSequenceNbr
());
waterResourceNaturalService
.
updateWithModel
(
waterResourceNaturalDto
);
break
;
case
"pool"
:
WaterResourcePoolDto
waterResourcePoolDto
=
new
WaterResourcePoolDto
();
WaterResourcePool
waterResourcePool
=
waterResourcePoolService
.
getOne
(
new
QueryWrapper
<
WaterResourcePool
>().
eq
(
"resource_id"
,
sequenceNbr
));
BeanUtils
.
copyProperties
(
model
,
waterResourcePoolDto
);
waterResourcePoolDto
.
setSequenceNbr
(
waterResourcePool
.
getSequenceNbr
());
waterResourcePoolService
.
updateWithModel
(
waterResourcePoolDto
);
break
;
}
}
// 更新物联信息
if
(
model
.
getIsIot
())
{
WaterResourceIotDto
waterResourceIotDto
=
model
.
getWaterResourceIotDto
();
waterResourceIotDto
.
setResourceId
(
sequenceNbr
);
waterResourceIotService
.
updateWithModel
(
waterResourceIotDto
);
}
return
ResponseHelper
.
buildResponse
(
waterResourceDto
);
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return 返回结果
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@DeleteMapping
(
value
=
"/{sequenceNbr}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
HttpServletRequest
request
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
){
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
waterResourceServiceImpl
.
removeById
(
sequenceNbr
));
WaterResource
waterResource
=
waterResourceServiceImpl
.
getById
(
sequenceNbr
);
WaterResourceDto
waterResourceDto
=
new
WaterResourceDto
();
BeanUtils
.
copyProperties
(
waterResource
,
waterResourceDto
);
waterResourceDto
.
setIsDelete
(
false
);
waterResourceServiceImpl
.
updateWithModel
(
waterResourceDto
);
return
ResponseHelper
.
buildResponse
(
true
);
}
}
/**
* 批量删除
*
* @param sequenceNbrList 主键
* @return 返回结果
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@DeleteMapping
(
value
=
"/delete_batch"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"批量删除"
,
notes
=
"批量删除"
)
public
ResponseModel
<
Boolean
>
batchDeleteBySequenceNbrList
(
@RequestParam
(
value
=
"sequenceNbrList"
)
List
<
Long
>
sequenceNbrList
)
{
List
<
WaterResourceDto
>
waterResourceDtos
=
waterResourceServiceImpl
.
queryBatchSeq
(
sequenceNbrList
);
List
<
WaterResource
>
resourceList
=
waterResourceDtos
.
stream
().
map
(
item
->
{
WaterResource
waterResource
=
new
WaterResource
();
BeanUtils
.
copyProperties
(
item
,
waterResource
);
waterResource
.
setIsDelete
(
false
);
return
waterResource
;
}).
collect
(
Collectors
.
toList
());
boolean
batchDelete
=
waterResourceServiceImpl
.
updateBatchById
(
resourceList
);
return
ResponseHelper
.
buildResponse
(
batchDelete
);
}
/**
/**
* 根据sequenceNbr查询
* 根据sequenceNbr查询
* @param sequenceNbr 主键
*
* @return
* @param sequenceNbr 主键
*/
* @return 返回结果
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
*/
@GetMapping
(
value
=
"/{sequenceNbr}"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个"
,
notes
=
"根据sequenceNbr查询单个"
)
@GetMapping
(
value
=
"/{sequenceNbr}"
)
public
ResponseModel
<
WaterResourceDto
>
seleteOne
(
@PathVariable
Long
sequenceNbr
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个"
,
notes
=
"根据sequenceNbr查询单个"
)
{
public
ResponseModel
<
WaterResourceDto
>
selectOne
(
@PathVariable
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
waterResourceServiceImpl
.
queryBySeq
(
sequenceNbr
));
// 查询基本信息
}
WaterResourceDto
waterResourceDto
=
waterResourceServiceImpl
.
queryBySeq
(
sequenceNbr
);
/**
waterResourceDto
.
setRealityImgList
(
JSONArray
.
fromObject
(
waterResourceDto
.
getRealityImg
()));
* 列表分页查询
waterResourceDto
.
setOrientationImgList
(
JSONArray
.
fromObject
(
waterResourceDto
.
getOrientationImg
()));
*@param current 当前页
// 查询属性信息
*@param current 每页大小
String
resourceType
=
waterResourceDto
.
getResourceType
();
* @return
if
(!
StringUtils
.
isEmpty
(
resourceType
))
{
*/
switch
(
resourceType
)
{
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
case
"hydrant"
:
@GetMapping
(
value
=
"/page"
)
WaterResourceHydrant
waterResourceHydrant
=
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询"
,
notes
=
"分页查询"
)
waterResourceHydrantService
.
getOne
(
new
QueryWrapper
<
WaterResourceHydrant
>().
eq
(
public
ResponseModel
<
Page
<
WaterResourceDto
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
)
"resource_id"
,
{
sequenceNbr
));
Page
<
WaterResourceDto
>
page
=
new
Page
<
WaterResourceDto
>();
BeanUtils
.
copyProperties
(
waterResourceHydrant
,
waterResourceDto
);
page
.
setCurrent
(
current
);
break
;
page
.
setSize
(
size
);
case
"crane"
:
return
ResponseHelper
.
buildResponse
(
waterResourceServiceImpl
.
queryForWaterResourcePage
(
page
));
WaterResourceCrane
waterResourceCrane
=
}
waterResourceCraneService
.
getOne
(
new
QueryWrapper
<
WaterResourceCrane
>().
eq
(
"resource_id"
,
/**
sequenceNbr
));
*列表全部数据查询
BeanUtils
.
copyProperties
(
waterResourceCrane
,
waterResourceDto
);
*@return
break
;
*/
case
"natural"
:
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
WaterResourceNatural
waterResourceNatural
=
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
waterResourceNaturalService
.
getOne
(
new
QueryWrapper
<
WaterResourceNatural
>().
eq
(
@GetMapping
(
value
=
"/list"
)
"resource_id"
,
public
ResponseModel
<
List
<
WaterResourceDto
>>
selectForList
()
sequenceNbr
));
{
BeanUtils
.
copyProperties
(
waterResourceNatural
,
waterResourceDto
);
return
ResponseHelper
.
buildResponse
(
waterResourceServiceImpl
.
queryForWaterResourceList
());
break
;
}
case
"pool"
:
WaterResourcePool
waterResourcePool
=
waterResourcePoolService
.
getOne
(
new
QueryWrapper
<
WaterResourcePool
>().
eq
(
"resource_id"
,
sequenceNbr
));
BeanUtils
.
copyProperties
(
waterResourcePool
,
waterResourceDto
);
break
;
}
}
waterResourceDto
.
setSequenceNbr
(
sequenceNbr
);
// 查询物联参数
if
(
waterResourceDto
.
getIsIot
())
{
WaterResourceIot
waterResourceIot
=
waterResourceIotService
.
getOne
(
new
QueryWrapper
<
WaterResourceIot
>().
eq
(
"resource_id"
,
sequenceNbr
));
WaterResourceIotDto
waterResourceIotDto
=
new
WaterResourceIotDto
();
BeanUtils
.
copyProperties
(
waterResourceIot
,
waterResourceIotDto
);
waterResourceDto
.
setWaterResourceIotDto
(
waterResourceIotDto
);
}
return
ResponseHelper
.
buildResponse
(
waterResourceDto
);
}
/**
* 列表分页查询
*
* @param current 当前页
* @param size 每页大小
* @return 返回结果
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/page"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询"
,
notes
=
"分页查询"
)
public
ResponseModel
<
Page
<
WaterResourceDto
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
,
String
name
,
String
resourceType
)
{
Page
<
WaterResourceDto
>
page
=
new
Page
<>();
page
.
setCurrent
(
current
);
page
.
setSize
(
size
);
return
ResponseHelper
.
buildResponse
(
waterResourceServiceImpl
.
queryForWaterResourcePage
(
page
,
name
,
resourceType
,
true
));
}
/**
* 列表全部数据查询
*
* @return 返回结果
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"列表全部数据查询"
,
notes
=
"列表全部数据查询"
)
@GetMapping
(
value
=
"/list"
)
public
ResponseModel
<
List
<
WaterResourceDto
>>
selectForList
()
{
return
ResponseHelper
.
buildResponse
(
waterResourceServiceImpl
.
queryForWaterResourceList
(
true
));
}
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-jcs-biz/src/main/java/com/yeejoin/amos/boot/module/jcs/biz/service/impl/WaterResourceServiceImpl.java
View file @
2fba3f1e
...
@@ -4,29 +4,36 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.WaterResource;
...
@@ -4,29 +4,36 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.WaterResource;
import
com.yeejoin.amos.boot.module.jcs.api.mapper.WaterResourceMapper
;
import
com.yeejoin.amos.boot.module.jcs.api.mapper.WaterResourceMapper
;
import
com.yeejoin.amos.boot.module.jcs.api.service.IWaterResourceService
;
import
com.yeejoin.amos.boot.module.jcs.api.service.IWaterResourceService
;
import
com.yeejoin.amos.boot.module.jcs.api.dto.WaterResourceDto
;
import
com.yeejoin.amos.boot.module.jcs.api.dto.WaterResourceDto
;
import
org.typroject.tyboot.core.rdbms.annotation.Condition
;
import
org.typroject.tyboot.core.rdbms.annotation.Operator
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* 服务实现类
* 服务实现类
*
*
* @author system_generator
* @author system_generator
* @date 2021-06-29
* @date 2021-06-29
*/
*/
@Service
@Service
public
class
WaterResourceServiceImpl
extends
BaseService
<
WaterResourceDto
,
WaterResource
,
WaterResourceMapper
>
implements
IWaterResourceService
{
public
class
WaterResourceServiceImpl
extends
BaseService
<
WaterResourceDto
,
WaterResource
,
WaterResourceMapper
>
implements
IWaterResourceService
{
/**
/**
* 分页查询
* 分页查询
*/
*/
public
Page
<
WaterResourceDto
>
queryForWaterResourcePage
(
Page
<
WaterResourceDto
>
page
)
{
public
Page
<
WaterResourceDto
>
queryForWaterResourcePage
(
Page
<
WaterResourceDto
>
page
,
return
this
.
queryForPage
(
page
,
null
,
false
);
@Condition
(
Operator
.
like
)
String
name
,
}
@Condition
(
Operator
.
eq
)
String
resourceType
,
@Condition
(
Operator
.
eq
)
Boolean
isDelete
)
{
return
this
.
queryForPage
(
page
,
null
,
false
,
name
,
resourceType
,
isDelete
);
}
/**
/**
* 列表查询 示例
* 列表查询 示例
*/
*/
public
List
<
WaterResourceDto
>
queryForWaterResourceList
()
{
public
List
<
WaterResourceDto
>
queryForWaterResourceList
(
@Condition
(
Operator
.
eq
)
Boolean
isDelete
)
{
return
this
.
queryForList
(
""
,
fals
e
);
return
this
.
queryForList
(
""
,
false
,
isDelet
e
);
}
}
}
}
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