Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
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
fulixin
dsk-operate-sys-cscec
Commits
ead4131e
Commit
ead4131e
authored
Jan 15, 2024
by
施翔轲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
咨询机构管理:自定义表单相关修改
parent
80bfbece
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
266 additions
and
81 deletions
+266
-81
application.yml
dsk-admin/src/main/resources/application.yml
+2
-1
AdvisoryBodyManageController.java
...om/dsk/cscec/controller/AdvisoryBodyManageController.java
+29
-18
AdvisoryBodyCustomFormData.java
...java/com/dsk/cscec/domain/AdvisoryBodyCustomFormData.java
+40
-0
AdvisoryBodyCustomFormTemplate.java
.../com/dsk/cscec/domain/AdvisoryBodyCustomFormTemplate.java
+7
-7
EditAdvisoryBodyCustomFormBo.java
...com/dsk/cscec/domain/bo/EditAdvisoryBodyCustomFormBo.java
+0
-20
AdvisoryBodyCustomFormDataMapper.java
...om/dsk/cscec/mapper/AdvisoryBodyCustomFormDataMapper.java
+15
-0
AdvisoryBodyCustomFormTemplateMapper.java
...sk/cscec/mapper/AdvisoryBodyCustomFormTemplateMapper.java
+14
-0
AdvisoryBodyCustomFormDataService.java
.../dsk/cscec/service/AdvisoryBodyCustomFormDataService.java
+20
-0
AdvisoryBodyCustomFormService.java
.../com/dsk/cscec/service/AdvisoryBodyCustomFormService.java
+0
-13
AdvisoryBodyCustomFormTemplateService.java
.../cscec/service/AdvisoryBodyCustomFormTemplateService.java
+20
-0
AdvisoryBodyCustomFormDataServiceImpl.java
...c/service/impl/AdvisoryBodyCustomFormDataServiceImpl.java
+56
-0
AdvisoryBodyCustomFormServiceImpl.java
...cscec/service/impl/AdvisoryBodyCustomFormServiceImpl.java
+0
-21
AdvisoryBodyCustomFormTemplateServiceImpl.java
...rvice/impl/AdvisoryBodyCustomFormTemplateServiceImpl.java
+55
-0
AdvisoryBodyCustomFormDataMapper.xml
...sources/mapper/cscec/AdvisoryBodyCustomFormDataMapper.xml
+1
-1
AdvisoryBodyCustomFormTemplateMapper.xml
...ces/mapper/cscec/AdvisoryBodyCustomFormTemplateMapper.xml
+7
-0
No files found.
dsk-admin/src/main/resources/application.yml
View file @
ead4131e
...
...
@@ -170,7 +170,8 @@ tenant:
-
d_subcontract
-
advisory_body
-
advisory_body_project
-
advisory_body_custom_form
-
advisory_body_custom_form_data
-
advisory_body_custom_form_template
-
dim_area
-
biz_dict_data
-
push_monitor_rules
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/controller/AdvisoryBodyManageController.java
View file @
ead4131e
...
...
@@ -5,13 +5,14 @@ import com.dsk.common.core.controller.BaseController;
import
com.dsk.common.core.domain.PageQuery
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomForm
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomFormData
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomFormTemplate
;
import
com.dsk.cscec.domain.bo.*
;
import
com.dsk.cscec.domain.vo.*
;
import
com.dsk.cscec.service.AdvisoryBodyCustomFormService
;
import
com.dsk.cscec.service.AdvisoryBodyCustomFormDataService
;
import
com.dsk.cscec.service.AdvisoryBodyCustomFormTemplateService
;
import
com.dsk.cscec.service.AdvisoryBodyService
;
import
com.dsk.cscec.service.IDProjectService
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -33,7 +34,9 @@ public class AdvisoryBodyManageController extends BaseController {
@Resource
private
AdvisoryBodyService
advisoryBodyService
;
@Resource
private
AdvisoryBodyCustomFormService
advisoryBodyCustomFormService
;
private
AdvisoryBodyCustomFormDataService
customFormDataService
;
@Resource
private
AdvisoryBodyCustomFormTemplateService
templateService
;
/**
* 获取项目列表
...
...
@@ -95,28 +98,36 @@ public class AdvisoryBodyManageController extends BaseController {
}
/**
* 获取咨询机构自定义表单
* 获取自定义表单模板
*/
@GetMapping
(
"/getCustomFormTemplate"
)
public
R
<
AdvisoryBodyCustomFormTemplate
>
getCustomFormTemplate
()
{
//业务上确定只有一个模板
List
<
AdvisoryBodyCustomFormTemplate
>
templates
=
templateService
.
list
();
return
R
.
ok
(
templates
.
isEmpty
()
?
null
:
templates
.
get
(
0
));
}
/**
* 编辑自定义表单模板
*/
@
GetMapping
(
"/getAdvisoryBodyCustomForm
"
)
public
R
<
List
<
AdvisoryBodyCustomForm
>>
getAdvisoryBodyCustomForm
(
)
{
return
R
.
ok
(
advisoryBodyCustomFormService
.
list
(
));
@
PostMapping
(
"/editCustomFormTemplate
"
)
public
R
<
Void
>
editCustomFormTemplate
(
@Validated
@RequestBody
AdvisoryBodyCustomFormTemplate
customFormTemplate
)
{
return
toAjax
(
templateService
.
editCustomFormTemplate
(
customFormTemplate
));
}
/**
*
新增咨询机构自定义表单
*
根据项目主键查询自定义表单数据表数据
*/
@PostMapping
(
"/addAdvisoryBodyCustomForm"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
R
<
Void
>
addAdvisoryBodyCustomForm
(
@Validated
@RequestBody
AdvisoryBodyCustomForm
advisoryBodyCustomForm
)
{
return
toAjax
(
advisoryBodyCustomFormService
.
save
(
advisoryBodyCustomForm
));
@GetMapping
(
"/getCustomFormDataByProjectKey/{projectKey}"
)
public
R
<
AdvisoryBodyCustomFormData
>
getCustomFormDataByProjectKey
(
@PathVariable
Long
projectKey
)
{
return
R
.
ok
(
customFormDataService
.
getById
(
projectKey
));
}
/**
*
更新咨询机构自定义表单
*
编辑自定义表单数据表数据
*/
@PutMapping
(
"/updateAdvisoryBodyCustomForm"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
R
<
Void
>
updateAdvisoryBodyCustomForm
(
@Validated
@RequestBody
EditAdvisoryBodyCustomFormBo
editBo
)
{
return
toAjax
(
advisoryBodyCustomFormService
.
updateById
(
editBo
));
@PostMapping
(
"/editCustomFormData"
)
public
R
<
Void
>
editCustomFormData
(
@Validated
@RequestBody
AdvisoryBodyCustomFormData
customFormData
)
{
return
toAjax
(
customFormDataService
.
editCustomFormData
(
customFormData
));
}
}
\ No newline at end of file
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/AdvisoryBodyCustomFormData.java
0 → 100644
View file @
ead4131e
package
com
.
dsk
.
cscec
.
domain
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.dsk.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 咨询机构自定义表单数据表(AdvisoryBodyCustomFormData)实体类
*
* @author sxk
* @since 2023-12-20 16:39:43
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
AdvisoryBodyCustomFormData
extends
BaseEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 项目主键
*/
@TableId
(
value
=
"project_key"
)
@NotNull
(
message
=
"项目主键不能为空"
)
private
Long
projectKey
;
/**
* 模板ID
*/
@NotNull
(
message
=
"模板ID不能为空"
)
private
Long
templateId
;
/**
* json数据
*/
@NotBlank
(
message
=
"json数据不能为空"
)
private
String
jsonData
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/AdvisoryBodyCustomForm.java
→
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/AdvisoryBodyCustomForm
Template
.java
View file @
ead4131e
...
...
@@ -9,20 +9,20 @@ import javax.validation.constraints.NotBlank;
import
java.io.Serializable
;
/**
* 咨询机构自定义表单
(AdvisoryBodyCustomForm
)实体类
* 咨询机构自定义表单
模板表(AdvisoryBodyCustomFormTemplate
)实体类
*
* @author sxk
* @since 202
3-12-20 16:39:43
* @since 202
4-01-15 16:53:19
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
AdvisoryBodyCustomForm
extends
BaseEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1
L
;
public
class
AdvisoryBodyCustomForm
Template
extends
BaseEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
324906245942046585
L
;
/**
*
项目主键
*
模板ID
*/
@TableId
(
value
=
"
ab_custom_form
_id"
)
private
Long
abCustomForm
Id
;
@TableId
(
value
=
"
template
_id"
)
private
Long
template
Id
;
/**
* json数据
*/
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/bo/EditAdvisoryBodyCustomFormBo.java
deleted
100644 → 0
View file @
80bfbece
package
com
.
dsk
.
cscec
.
domain
.
bo
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomForm
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @author sxk
* @date 2024.01.09
* @time 11:24
*/
@Data
public
class
EditAdvisoryBodyCustomFormBo
extends
AdvisoryBodyCustomForm
{
/**
* 项目主键
*/
@NotNull
(
message
=
"自定义表单ID不能为空"
)
private
Long
abCustomFormId
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/mapper/AdvisoryBodyCustomFormMapper.java
→
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/mapper/AdvisoryBodyCustomForm
Data
Mapper.java
View file @
ead4131e
package
com
.
dsk
.
cscec
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomForm
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomForm
Data
;
/**
* 咨询机构自定义表单
(AdvisoryBodyCustomForm
)表数据库访问层
* 咨询机构自定义表单
数据表(AdvisoryBodyCustomFormData
)表数据库访问层
*
* @author sxk
* @since 2023-12-20 16:39:37
*/
public
interface
AdvisoryBodyCustomForm
Mapper
extends
BaseMapper
<
AdvisoryBodyCustomForm
>
{
public
interface
AdvisoryBodyCustomForm
DataMapper
extends
BaseMapper
<
AdvisoryBodyCustomFormData
>
{
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/mapper/AdvisoryBodyCustomFormTemplateMapper.java
0 → 100644
View file @
ead4131e
package
com
.
dsk
.
cscec
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomFormTemplate
;
/**
* 咨询机构自定义表单模板表(AdvisoryBodyCustomFormTemplate)表数据库访问层
*
* @author sxk
* @since 2024-01-15 16:53:17
*/
public
interface
AdvisoryBodyCustomFormTemplateMapper
extends
BaseMapper
<
AdvisoryBodyCustomFormTemplate
>
{
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/AdvisoryBodyCustomFormDataService.java
0 → 100644
View file @
ead4131e
package
com
.
dsk
.
cscec
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomFormData
;
/**
* 咨询机构自定义表单数据表(AdvisoryBodyCustomFormData)表服务接口
*
* @author sxk
* @since 2023-12-20 17:33:31
*/
public
interface
AdvisoryBodyCustomFormDataService
extends
IService
<
AdvisoryBodyCustomFormData
>
{
/**
* 编辑自定义表单数据表数据
*
* @param customFormData 编辑信息
* @return 编辑结果
*/
Integer
editCustomFormData
(
AdvisoryBodyCustomFormData
customFormData
);
}
\ No newline at end of file
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/AdvisoryBodyCustomFormService.java
deleted
100644 → 0
View file @
80bfbece
package
com
.
dsk
.
cscec
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomForm
;
/**
* 咨询机构自定义表单(AdvisoryBodyCustomForm)表服务接口
*
* @author makejava
* @since 2023-12-20 17:33:31
*/
public
interface
AdvisoryBodyCustomFormService
extends
IService
<
AdvisoryBodyCustomForm
>
{
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/AdvisoryBodyCustomFormTemplateService.java
0 → 100644
View file @
ead4131e
package
com
.
dsk
.
cscec
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomFormTemplate
;
/**
* 咨询机构自定义表单模板表(AdvisoryBodyCustomFormTemplate)表服务接口
*
* @author sxk
* @since 2024-01-15 16:53:20
*/
public
interface
AdvisoryBodyCustomFormTemplateService
extends
IService
<
AdvisoryBodyCustomFormTemplate
>
{
/**
* 编辑自定义表单模板
*
* @param customFormTemplate 编辑对象
* @return 编辑结果
*/
Integer
editCustomFormTemplate
(
AdvisoryBodyCustomFormTemplate
customFormTemplate
);
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/AdvisoryBodyCustomFormDataServiceImpl.java
0 → 100644
View file @
ead4131e
package
com
.
dsk
.
cscec
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomFormData
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomFormTemplate
;
import
com.dsk.cscec.mapper.AdvisoryBodyCustomFormDataMapper
;
import
com.dsk.cscec.mapper.AdvisoryBodyCustomFormTemplateMapper
;
import
com.dsk.cscec.service.AdvisoryBodyCustomFormDataService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
/**
* 咨询机构自定义表单数据表(AdvisoryBodyCustomFormData)表服务实现类
*
* @author sxk
* @since 2023-12-20 17:33:31
*/
@Slf4j
@Service
(
"advisoryBodyCustomFormService"
)
public
class
AdvisoryBodyCustomFormDataServiceImpl
extends
ServiceImpl
<
AdvisoryBodyCustomFormDataMapper
,
AdvisoryBodyCustomFormData
>
implements
AdvisoryBodyCustomFormDataService
{
@Resource
private
AdvisoryBodyCustomFormDataMapper
baseMapper
;
@Resource
private
AdvisoryBodyCustomFormTemplateMapper
templateMapper
;
/**
* 编辑自定义表单数据表数据
*
* @param customFormData 编辑信息
* @return 编辑结果
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Integer
editCustomFormData
(
AdvisoryBodyCustomFormData
customFormData
)
{
//校验自定义表单模板是否存在
if
(!
templateMapper
.
exists
(
new
LambdaQueryWrapper
<
AdvisoryBodyCustomFormTemplate
>()
.
eq
(
AdvisoryBodyCustomFormTemplate:
:
getTemplateId
,
customFormData
.
getTemplateId
())))
{
throw
new
ServiceException
(
"自定义表单模板不存在"
);
}
//数据存在,走更新覆盖;否则走新增
if
(
baseMapper
.
exists
(
new
LambdaQueryWrapper
<
AdvisoryBodyCustomFormData
>()
.
eq
(
AdvisoryBodyCustomFormData:
:
getProjectKey
,
customFormData
.
getProjectKey
())))
{
log
.
info
(
"项目{}更新自定义表单数据"
,
customFormData
.
getTemplateId
());
return
baseMapper
.
updateById
(
customFormData
);
}
else
{
log
.
info
(
"项目{}新增自定义表单数据"
,
customFormData
.
getTemplateId
());
return
baseMapper
.
insert
(
customFormData
);
}
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/AdvisoryBodyCustomFormServiceImpl.java
deleted
100644 → 0
View file @
80bfbece
package
com
.
dsk
.
cscec
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomForm
;
import
com.dsk.cscec.mapper.AdvisoryBodyCustomFormMapper
;
import
com.dsk.cscec.service.AdvisoryBodyCustomFormService
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
/**
* 咨询机构自定义表单(AdvisoryBodyCustomForm)表服务实现类
*
* @author sxk
* @since 2023-12-20 17:33:31
*/
@Service
(
"advisoryBodyCustomFormService"
)
public
class
AdvisoryBodyCustomFormServiceImpl
extends
ServiceImpl
<
AdvisoryBodyCustomFormMapper
,
AdvisoryBodyCustomForm
>
implements
AdvisoryBodyCustomFormService
{
@Resource
private
AdvisoryBodyCustomFormMapper
baseMapper
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/AdvisoryBodyCustomFormTemplateServiceImpl.java
0 → 100644
View file @
ead4131e
package
com
.
dsk
.
cscec
.
service
.
impl
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.cscec.domain.AdvisoryBodyCustomFormTemplate
;
import
com.dsk.cscec.mapper.AdvisoryBodyCustomFormTemplateMapper
;
import
com.dsk.cscec.service.AdvisoryBodyCustomFormTemplateService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
/**
* 咨询机构自定义表单模板表(AdvisoryBodyCustomFormTemplate)表服务实现类
*
* @author sxk
* @since 2024-01-15 16:53:20
*/
@Slf4j
@Service
(
"advisoryBodyCustomFormTemplateService"
)
public
class
AdvisoryBodyCustomFormTemplateServiceImpl
extends
ServiceImpl
<
AdvisoryBodyCustomFormTemplateMapper
,
AdvisoryBodyCustomFormTemplate
>
implements
AdvisoryBodyCustomFormTemplateService
{
@Resource
private
AdvisoryBodyCustomFormTemplateMapper
baseMapper
;
/**
* 编辑自定义表单模板
*
* @param customFormTemplate 编辑对象
* @return 编辑结果
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Integer
editCustomFormTemplate
(
AdvisoryBodyCustomFormTemplate
customFormTemplate
)
{
//模板ID为空,则为新增,否则为更新覆盖
Long
templateId
=
customFormTemplate
.
getTemplateId
();
if
(
ObjectUtil
.
isNull
(
templateId
))
{
templateId
=
IdUtil
.
getSnowflakeNextId
();
customFormTemplate
.
setTemplateId
(
templateId
);
log
.
info
(
"新增自定义表单模板,模板ID:{}"
,
templateId
);
return
baseMapper
.
insert
(
customFormTemplate
);
}
else
{
//校验模板是否存在
if
(!
baseMapper
.
exists
(
new
LambdaQueryWrapper
<
AdvisoryBodyCustomFormTemplate
>()
.
eq
(
AdvisoryBodyCustomFormTemplate:
:
getTemplateId
,
customFormTemplate
.
getTemplateId
())))
{
throw
new
ServiceException
(
"该自定义表单模板不存在"
);
}
log
.
info
(
"更新自定义表单模板{}"
,
templateId
);
return
baseMapper
.
updateById
(
customFormTemplate
);
}
}
}
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/AdvisoryBodyCustomFormMapper.xml
→
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/AdvisoryBodyCustomForm
Data
Mapper.xml
View file @
ead4131e
...
...
@@ -2,6 +2,6 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.dsk.cscec.mapper.AdvisoryBodyCustomFormMapper"
>
<mapper
namespace=
"com.dsk.cscec.mapper.AdvisoryBodyCustomForm
Data
Mapper"
>
</mapper>
\ No newline at end of file
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/AdvisoryBodyCustomFormTemplateMapper.xml
0 → 100644
View file @
ead4131e
<?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.dsk.cscec.mapper.AdvisoryBodyCustomFormTemplateMapper"
>
</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