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
203b23a7
Commit
203b23a7
authored
Oct 14, 2024
by
changxiangyu
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register
parents
ced66dd2
fd82a03b
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
103 additions
and
3 deletions
+103
-3
DPFilterParamDto.java
...oin/amos/boot/module/common/api/dto/DPFilterParamDto.java
+5
-0
DPFilterParamForDetailDto.java
...boot/module/common/api/dto/DPFilterParamForDetailDto.java
+5
-0
IdxBizJqEquipmentRegisterController.java
...g/biz/controller/IdxBizJqEquipmentRegisterController.java
+39
-1
IIdxBizJgRegisterInfoService.java
...t/module/jg/biz/service/IIdxBizJgRegisterInfoService.java
+6
-0
IdxBizJgRegisterInfoServiceImpl.java
.../jg/biz/service/impl/IdxBizJgRegisterInfoServiceImpl.java
+0
-0
JyjcInspectionApplicationMapper.xml
...main/resources/mapper/JyjcInspectionApplicationMapper.xml
+6
-0
JGStatisticsMapper.xml
...tics-api/src/main/resources/mapper/JGStatisticsMapper.xml
+0
-0
JGDPStatisticsServiceImpl.java
...statistcs/biz/service/impl/JGDPStatisticsServiceImpl.java
+1
-0
JYJCDPStatisticsServiceImpl.java
...atistcs/biz/service/impl/JYJCDPStatisticsServiceImpl.java
+1
-0
TzBaseEnterpriseInfoMapper.java
...oot/module/ymt/api/mapper/TzBaseEnterpriseInfoMapper.java
+2
-0
TzsUserInfoMapper.java
...in/amos/boot/module/ymt/api/mapper/TzsUserInfoMapper.java
+2
-1
TzBaseEnterpriseInfoMapper.xml
.../src/main/resources/mapper/TzBaseEnterpriseInfoMapper.xml
+10
-0
TzsUserInfoMapper.xml
...e-ymt-api/src/main/resources/mapper/TzsUserInfoMapper.xml
+16
-0
EquipmentCategoryServiceImpl.java
...le/ymt/biz/service/impl/EquipmentCategoryServiceImpl.java
+10
-1
No files found.
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/DPFilterParamDto.java
View file @
203b23a7
...
@@ -80,4 +80,9 @@ public class DPFilterParamDto {
...
@@ -80,4 +80,9 @@ public class DPFilterParamDto {
* 设备类别code
* 设备类别code
*/
*/
private
String
equCategoryCode
;
private
String
equCategoryCode
;
/**
* 业务状态
*/
private
String
status
;
}
}
amos-boot-system-tzs/amos-boot-module-common/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/DPFilterParamForDetailDto.java
View file @
203b23a7
...
@@ -103,4 +103,9 @@ public class DPFilterParamForDetailDto {
...
@@ -103,4 +103,9 @@ public class DPFilterParamForDetailDto {
*/
*/
private
String
address
;
private
String
address
;
/**
* 业务状态
*/
private
String
status
;
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/controller/IdxBizJqEquipmentRegisterController.java
View file @
203b23a7
...
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.yeejoin.amos.boot.biz.common.bo.CompanyBo
;
import
com.yeejoin.amos.boot.biz.common.bo.CompanyBo
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.bo.ReginParams
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.jg.api.vo.ElevatorModelVo
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService
;
import
com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.PageParam
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.PageParam
;
import
com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel
;
import
com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel
;
...
@@ -320,4 +319,43 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
...
@@ -320,4 +319,43 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
return
ResponseHelper
.
buildResponse
(
idxBizJgRegisterInfoService
.
getCylinderInfo
(
equCode
,
startTime
,
endTime
,
pageParam
));
return
ResponseHelper
.
buildResponse
(
idxBizJgRegisterInfoService
.
getCylinderInfo
(
equCode
,
startTime
,
endTime
,
pageParam
));
}
}
/**
* 初始化接口,调用一次,企业许可到期提醒
*
* @return 返回调用成功信息
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@RequestMapping
(
value
=
"/initEnterpriseLicenseExpirationOnce"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"初始化接口,调用一次,企业许可到期提醒"
,
notes
=
"初始化接口,调用一次,企业许可到期提醒"
)
public
ResponseModel
<
String
>
initEnterpriseLicenseExpirationOnce
()
{
idxBizJgRegisterInfoService
.
initEnterpriseLicenseExpirationOnce
();
return
ResponseHelper
.
buildResponse
(
"ok"
);
}
/**
* 初始化接口,调用一次,人员资质过期提醒
*
* @return 返回调用成功信息
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@RequestMapping
(
value
=
"/initUserExpirationReminderOnce"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"初始化接口,调用一次,人员资质过期提醒"
,
notes
=
"初始化接口,调用一次,人员资质过期提醒"
)
public
ResponseModel
<
String
>
initUserExpirationReminderOnce
()
{
idxBizJgRegisterInfoService
.
initUserExpirationReminderOnce
();
return
ResponseHelper
.
buildResponse
(
"ok"
);
}
/**
* 初始化接口,调用一次,检验有效期到期提醒
*
* @return 返回调用成功信息
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
,
needAuth
=
false
)
@RequestMapping
(
value
=
"/inspectionExpirationReminderOnce"
,
method
=
RequestMethod
.
GET
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"初始化接口,调用一次,检验有效期到期提醒"
,
notes
=
"初始化接口,调用一次,检验有效期到期提醒"
)
public
ResponseModel
<
String
>
inspectionExpirationReminderOnce
()
{
idxBizJgRegisterInfoService
.
inspectionExpirationReminderOnce
();
return
ResponseHelper
.
buildResponse
(
"ok"
);
}
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/IIdxBizJgRegisterInfoService.java
View file @
203b23a7
...
@@ -67,4 +67,10 @@ public interface IIdxBizJgRegisterInfoService {
...
@@ -67,4 +67,10 @@ public interface IIdxBizJgRegisterInfoService {
List
<
Map
<
String
,
Object
>>
getVehicleCylinderInfo
(
String
useCode
);
List
<
Map
<
String
,
Object
>>
getVehicleCylinderInfo
(
String
useCode
);
IPage
<
Map
<
String
,
Object
>>
getCylinderInfo
(
String
equCode
,
Date
startTime
,
Date
endTime
,
PageParam
pageParam
);
IPage
<
Map
<
String
,
Object
>>
getCylinderInfo
(
String
equCode
,
Date
startTime
,
Date
endTime
,
PageParam
pageParam
);
void
initUserExpirationReminderOnce
();
void
inspectionExpirationReminderOnce
();
void
initEnterpriseLicenseExpirationOnce
();
}
}
amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/IdxBizJgRegisterInfoServiceImpl.java
View file @
203b23a7
This diff is collapsed.
Click to expand it.
amos-boot-system-tzs/amos-boot-module-jyjc/amos-boot-module-jyjc-api/src/main/resources/mapper/JyjcInspectionApplicationMapper.xml
View file @
203b23a7
...
@@ -460,6 +460,12 @@
...
@@ -460,6 +460,12 @@
<if
test=
"dto.equCategoryCode != null and dto.equCategoryCode != ''"
>
<if
test=
"dto.equCategoryCode != null and dto.equCategoryCode != ''"
>
and ri.EQU_CATEGORY = #{dto.equCategoryCode}
and ri.EQU_CATEGORY = #{dto.equCategoryCode}
</if>
</if>
<if
test=
"dto.status != null and dto.status != '' and dto.status != '6616'"
>
and tjia.status != '6616'
</if>
<if
test=
"dto.status != null and dto.status != '' and dto.status = '6616'"
>
and tjia.status = '6616'
</if>
group by tjia.sequence_nbr
group by tjia.sequence_nbr
order by tjia.application_date desc
order by tjia.application_date desc
</select>
</select>
...
...
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-api/src/main/resources/mapper/JGStatisticsMapper.xml
View file @
203b23a7
This diff is collapsed.
Click to expand it.
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/service/impl/JGDPStatisticsServiceImpl.java
View file @
203b23a7
...
@@ -3345,6 +3345,7 @@ public class JGDPStatisticsServiceImpl {
...
@@ -3345,6 +3345,7 @@ public class JGDPStatisticsServiceImpl {
filterParamDto
.
setBusinessTypeCode
(
dpFilterParamForDetailDto
.
getBusinessTypeCode
());
filterParamDto
.
setBusinessTypeCode
(
dpFilterParamForDetailDto
.
getBusinessTypeCode
());
filterParamDto
.
setEquCategoryCode
(
dpFilterParamForDetailDto
.
getEquCategoryCode
());
filterParamDto
.
setEquCategoryCode
(
dpFilterParamForDetailDto
.
getEquCategoryCode
());
filterParamDto
.
setEquListCode
(
dpFilterParamForDetailDto
.
getEquListCode
());
filterParamDto
.
setEquListCode
(
dpFilterParamForDetailDto
.
getEquListCode
());
filterParamDto
.
setStatus
(
dpFilterParamForDetailDto
.
getStatus
());
if
(
null
!=
dpFilterParamForDetailDto
.
getTimeSearchOne
())
{
if
(
null
!=
dpFilterParamForDetailDto
.
getTimeSearchOne
())
{
filterParamDto
.
setBeginDate
(
dpFilterParamForDetailDto
.
getTimeSearchOne
().
getBeginDate
());
filterParamDto
.
setBeginDate
(
dpFilterParamForDetailDto
.
getTimeSearchOne
().
getBeginDate
());
filterParamDto
.
setEndDate
(
dpFilterParamForDetailDto
.
getTimeSearchOne
().
getEndDate
());
filterParamDto
.
setEndDate
(
dpFilterParamForDetailDto
.
getTimeSearchOne
().
getEndDate
());
...
...
amos-boot-system-tzs/amos-boot-module-statistics/amos-boot-module-statistics-biz/src/main/java/com/yeejoin/amos/boot/module/statistcs/biz/service/impl/JYJCDPStatisticsServiceImpl.java
View file @
203b23a7
...
@@ -1113,6 +1113,7 @@ public class JYJCDPStatisticsServiceImpl {
...
@@ -1113,6 +1113,7 @@ public class JYJCDPStatisticsServiceImpl {
filterParamDto
.
setSuperviseUnitName
(
dpFilterParamForDetailDto
.
getSuperviseUnitName
());
filterParamDto
.
setSuperviseUnitName
(
dpFilterParamForDetailDto
.
getSuperviseUnitName
());
filterParamDto
.
setEquListCode
(
dpFilterParamForDetailDto
.
getEquListCode
());
filterParamDto
.
setEquListCode
(
dpFilterParamForDetailDto
.
getEquListCode
());
filterParamDto
.
setEquCategoryCode
(
dpFilterParamForDetailDto
.
getEquCategoryCode
());
filterParamDto
.
setEquCategoryCode
(
dpFilterParamForDetailDto
.
getEquCategoryCode
());
filterParamDto
.
setStatus
(
dpFilterParamForDetailDto
.
getStatus
());
if
(
null
!=
dpFilterParamForDetailDto
.
getTimeSearchOne
())
{
if
(
null
!=
dpFilterParamForDetailDto
.
getTimeSearchOne
())
{
filterParamDto
.
setBeginDate
(
dpFilterParamForDetailDto
.
getTimeSearchOne
().
getBeginDate
());
filterParamDto
.
setBeginDate
(
dpFilterParamForDetailDto
.
getTimeSearchOne
().
getBeginDate
());
filterParamDto
.
setEndDate
(
dpFilterParamForDetailDto
.
getTimeSearchOne
().
getEndDate
());
filterParamDto
.
setEndDate
(
dpFilterParamForDetailDto
.
getTimeSearchOne
().
getEndDate
());
...
...
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/mapper/TzBaseEnterpriseInfoMapper.java
View file @
203b23a7
...
@@ -94,4 +94,6 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
...
@@ -94,4 +94,6 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
List
<
TzBaseEnterpriseInfoDto
>
queryByUseCode
(
@Param
(
"useCodes"
)
List
<
String
>
useCode
);
List
<
TzBaseEnterpriseInfoDto
>
queryByUseCode
(
@Param
(
"useCodes"
)
List
<
String
>
useCode
);
List
<
TzBaseEnterpriseInfoDto
>
selectExpiringUnits
(
@Param
(
"operator"
)
String
operator
);
}
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/java/com/yeejoin/amos/boot/module/ymt/api/mapper/TzsUserInfoMapper.java
View file @
203b23a7
...
@@ -7,7 +7,6 @@ import com.yeejoin.amos.boot.module.ymt.api.dto.TzsUserInfoDto;
...
@@ -7,7 +7,6 @@ import com.yeejoin.amos.boot.module.ymt.api.dto.TzsUserInfoDto;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo
;
import
com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.List
;
@Mapper
@Mapper
...
@@ -17,4 +16,6 @@ public interface TzsUserInfoMapper extends BaseMapper<TzsUserInfo> {
...
@@ -17,4 +16,6 @@ public interface TzsUserInfoMapper extends BaseMapper<TzsUserInfo> {
Long
countUserByPostAndAreaCode
(
@Param
(
"orgCode"
)
String
orgCode
,
@Param
(
"post"
)
String
post
,
@Param
(
"regionCode"
)
String
regionCode
);
Long
countUserByPostAndAreaCode
(
@Param
(
"orgCode"
)
String
orgCode
,
@Param
(
"post"
)
String
post
,
@Param
(
"regionCode"
)
String
regionCode
);
List
<
TzsUserPermissionDto
>
queryPermissionByUserSeq
(
@Param
(
"userSeq"
)
Long
userSeq
,
@Param
(
"permissionPost"
)
String
permissionPost
);
List
<
TzsUserPermissionDto
>
queryPermissionByUserSeq
(
@Param
(
"userSeq"
)
Long
userSeq
,
@Param
(
"permissionPost"
)
String
permissionPost
);
List
<
TzsUserInfoDto
>
selectUserPermission
(
@Param
(
"operator"
)
String
operator
,
@Param
(
"posts"
)
List
<
String
>
posts
);
}
}
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/TzBaseEnterpriseInfoMapper.xml
View file @
203b23a7
...
@@ -325,4 +325,14 @@
...
@@ -325,4 +325,14 @@
</foreach>
</foreach>
</if>
</if>
</select>
</select>
<select
id=
"selectExpiringUnits"
resultType=
"com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto"
>
SELECT tbei.*
FROM tz_base_unit_licence tbul
JOIN tz_base_enterprise_info tbei ON tbul.unit_Code = tbei.use_unit_code
WHERE 1 = 1
<if
test=
"operator != null and operator !='' "
>
AND tbul.expiry_date ${operator} CURRENT_DATE
</if>
</select>
</mapper>
</mapper>
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-api/src/main/resources/mapper/TzsUserInfoMapper.xml
View file @
203b23a7
...
@@ -71,4 +71,19 @@
...
@@ -71,4 +71,19 @@
user_seq = #{userSeq}
user_seq = #{userSeq}
and permission_post like concat(#{permissionPost}, '%')
and permission_post like concat(#{permissionPost}, '%')
</select>
</select>
<select
id=
"selectUserPermission"
resultType=
"com.yeejoin.amos.boot.module.ymt.api.dto.TzsUserInfoDto"
>
SELECT tup.expiry_date, tui.phone, tui.rec_user_name
FROM tzs_user_permission tup
JOIN tzs_user_info tui ON tup.user_seq = tui.sequence_nbr
WHERE 1 = 1
<if
test=
"operator != null and operator !='' "
>
AND tup.expiry_date ${operator} CURRENT_DATE
</if>
AND (
<foreach
collection=
"posts"
item=
"post"
separator=
" OR "
>
tui.new_post LIKE CONCAT('%', #{post}, '%')
</foreach>
)
</select>
</mapper>
</mapper>
\ No newline at end of file
amos-boot-system-tzs/amos-boot-module-ymt/amos-boot-module-ymt-biz/src/main/java/com/yeejoin/amos/boot/module/ymt/biz/service/impl/EquipmentCategoryServiceImpl.java
View file @
203b23a7
...
@@ -175,6 +175,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
...
@@ -175,6 +175,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
private
static
final
String
LEVEL
=
"company"
;
private
static
final
String
LEVEL
=
"company"
;
private
static
final
String
EQUSTATE
=
"EQU_STATE"
;
private
static
final
String
EQUSTATE
=
"EQU_STATE"
;
private
static
final
String
USEPLACE
=
"USE_PLACE"
;
private
static
final
String
USEPLACE
=
"USE_PLACE"
;
private
static
final
String
REC_DATE
=
"REC_DATE"
;
@Autowired
@Autowired
ESEquipmentCategory
esEquipmentCategory
;
ESEquipmentCategory
esEquipmentCategory
;
@Autowired
@Autowired
...
@@ -2159,13 +2160,20 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
...
@@ -2159,13 +2160,20 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
boolMust
.
must
(
meBuilder
);
boolMust
.
must
(
meBuilder
);
}
}
builder
.
query
(
boolMust
);
builder
.
query
(
boolMust
);
builder
.
sort
(
"REC_DATE"
,
SortOrder
.
DESC
);
builder
.
sort
(
"REC_DATE"
,
Optional
.
ofNullable
(
map
.
getString
(
"sort"
))
.
map
(
s
->
s
.
split
(
","
))
.
filter
(
sortParams
->
"ascend"
.
equals
(
sortParams
[
1
]))
.
map
(
s
->
SortOrder
.
ASC
)
.
orElse
(
SortOrder
.
DESC
));
builder
.
from
((
map
.
getInteger
(
"number"
)
-
1
)
*
map
.
getInteger
(
"size"
));
builder
.
from
((
map
.
getInteger
(
"number"
)
-
1
)
*
map
.
getInteger
(
"size"
));
builder
.
size
(
map
.
getInteger
(
"size"
));
builder
.
size
(
map
.
getInteger
(
"size"
));
request
.
source
(
builder
);
request
.
source
(
builder
);
List
<
JSONObject
>
list
=
new
LinkedList
<>();
List
<
JSONObject
>
list
=
new
LinkedList
<>();
long
totle
=
0
;
long
totle
=
0
;
try
{
try
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
SearchResponse
response
=
restHighLevelClient
.
search
(
request
,
RequestOptions
.
DEFAULT
);
SearchResponse
response
=
restHighLevelClient
.
search
(
request
,
RequestOptions
.
DEFAULT
);
for
(
org
.
elasticsearch
.
search
.
SearchHit
hit
:
response
.
getHits
().
getHits
())
{
for
(
org
.
elasticsearch
.
search
.
SearchHit
hit
:
response
.
getHits
().
getHits
())
{
System
.
out
.
println
(
hit
);
System
.
out
.
println
(
hit
);
...
@@ -2176,6 +2184,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
...
@@ -2176,6 +2184,7 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
String
status
=
EquimentEnum
.
getName
.
get
(
integer
);
String
status
=
EquimentEnum
.
getName
.
get
(
integer
);
dto2
.
put
(
EQUSTATE
,
status
);
dto2
.
put
(
EQUSTATE
,
status
);
}
}
dto2
.
put
(
REC_DATE
,
dateFormat
.
format
(
dto2
.
get
(
REC_DATE
)));
list
.
add
(
dto2
);
list
.
add
(
dto2
);
}
}
totle
=
response
.
getInternalResponse
().
hits
().
getTotalHits
().
value
;
totle
=
response
.
getInternalResponse
().
hits
().
getTotalHits
().
value
;
...
...
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