Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-backend
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
AutogeneralShanghai
yd-backend
Commits
90cc4e19
Commit
90cc4e19
authored
Jul 17, 2020
by
yao.xiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加-AGMS中Dashboard商机预测列表
parent
76e7b699
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
180 additions
and
35 deletions
+180
-35
yd-api/src/main/java/com/yd/api/agms/AgmsController.java
+20
-5
yd-api/src/main/java/com/yd/api/agms/service/AgmsDashboardService.java
+12
-4
yd-api/src/main/java/com/yd/api/agms/service/AgmsStatementService.java
+0
-2
yd-api/src/main/java/com/yd/api/agms/service/impl/AgmsDashboardServiceImpl.java
+23
-5
yd-api/src/main/java/com/yd/api/agms/service/impl/AgmsStatementServiceImpl.java
+0
-3
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsOpportunityRequestVO.java
+9
-0
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsOpportunityResponseVO.java
+12
-0
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsPEPByBranchRequestVO.java
+0
-4
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsPEPRequestVO.java
+8
-0
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsPEPResponseVO.java
+1
-1
yd-api/src/main/java/com/yd/dal/entity/agms/dashboard/StatisticsOpportunityInfo.java
+11
-0
yd-api/src/main/java/com/yd/dal/entity/agms/dashboard/StatisticsPEPInfo.java
+2
-1
yd-api/src/main/java/com/yd/dal/mapper/agms/AgmsDashboardMapper.java
+6
-1
yd-api/src/main/java/com/yd/dal/service/agms/AgmsDashboardDALService.java
+4
-1
yd-api/src/main/java/com/yd/dal/service/agms/impl/AgmsDashboardDALServiceImpl.java
+8
-2
yd-api/src/main/resources/mapper/agms/AgmsDashboardMapper.xml
+64
-6
No files found.
yd-api/src/main/java/com/yd/api/agms/AgmsController.java
View file @
90cc4e19
...
...
@@ -2,8 +2,10 @@ package com.yd.api.agms;
import
com.yd.api.agms.service.AgmsDashboardService
;
import
com.yd.api.agms.service.AgmsStatementService
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPByBranchRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPByBranchResponseVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsOpportunityRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsOpportunityResponseVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPResponseVO
;
import
com.yd.api.agms.vo.statement.FinancialStatementRequestVO
;
import
com.yd.api.agms.vo.statement.FinancialStatementResponseVO
;
import
com.yd.api.result.JsonResult
;
...
...
@@ -43,13 +45,26 @@ public class AgmsController {
* @param requestVO 请求数据
* @return 响应数据
*/
@RequestMapping
(
"/statisticsPEP
ByBranch
"
)
public
Object
statisticsPEP
ByBranch
(
@RequestBody
StatisticsPEPByBranch
RequestVO
requestVO
){
@RequestMapping
(
"/statisticsPEP"
)
public
Object
statisticsPEP
(
@RequestBody
StatisticsPEP
RequestVO
requestVO
){
JsonResult
result
=
new
JsonResult
();
StatisticsPEP
ByBranchResponseVO
responseVO
=
agmsDashboardService
.
statisticsPEPByBranch
(
requestVO
);
StatisticsPEP
ResponseVO
responseVO
=
agmsDashboardService
.
statisticsPEP
(
requestVO
);
result
.
addResult
(
responseVO
);
result
.
setData
(
responseVO
);
return
result
;
}
/**
* AGMS -- Dashboard查询 寿险整体运营->商机预测(根据公司)
* @param requestVO 请求数据
* @return 响应数据
*/
@RequestMapping
(
"/statisticsOpportunity"
)
public
Object
statisticsOpportunity
(
@RequestBody
StatisticsOpportunityRequestVO
requestVO
){
JsonResult
result
=
new
JsonResult
();
StatisticsOpportunityResponseVO
responseVO
=
agmsDashboardService
.
statisticsOpportunity
(
requestVO
);
result
.
addResult
(
responseVO
);
result
.
setData
(
responseVO
);
return
result
;
}
}
yd-api/src/main/java/com/yd/api/agms/service/AgmsDashboardService.java
View file @
90cc4e19
package
com
.
yd
.
api
.
agms
.
service
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPByBranchRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPByBranchResponseVO
;
import
org.springframework.stereotype.Service
;
import
com.yd.api.agms.vo.dashboard.StatisticsOpportunityRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsOpportunityResponseVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPResponseVO
;
public
interface
AgmsDashboardService
{
/**
...
...
@@ -10,5 +11,12 @@ public interface AgmsDashboardService {
* @param requestVO 请求数据
* @return 响应数据
*/
StatisticsPEPByBranchResponseVO
statisticsPEPByBranch
(
StatisticsPEPByBranchRequestVO
requestVO
);
StatisticsPEPResponseVO
statisticsPEP
(
StatisticsPEPRequestVO
requestVO
);
/**
* AGMS -- Dashboard查询 寿险整体运营->商机预测(根据公司)
* @param requestVO 请求数据
* @return 响应数据
*/
StatisticsOpportunityResponseVO
statisticsOpportunity
(
StatisticsOpportunityRequestVO
requestVO
);
}
yd-api/src/main/java/com/yd/api/agms/service/AgmsStatementService.java
View file @
90cc4e19
package
com
.
yd
.
api
.
agms
.
service
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPByBranchRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPByBranchResponseVO
;
import
com.yd.api.agms.vo.statement.FinancialStatementRequestVO
;
import
com.yd.api.agms.vo.statement.FinancialStatementResponseVO
;
import
org.springframework.stereotype.Service
;
...
...
yd-api/src/main/java/com/yd/api/agms/service/impl/AgmsDashboardServiceImpl.java
View file @
90cc4e19
package
com
.
yd
.
api
.
agms
.
service
.
impl
;
import
com.yd.api.agms.service.AgmsDashboardService
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPByBranchRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPByBranchResponseVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsOpportunityRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsOpportunityResponseVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPResponseVO
;
import
com.yd.api.result.CommonResult
;
import
com.yd.dal.entity.agms.dashboard.StatisticsOpportunityInfo
;
import
com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo
;
import
com.yd.dal.entity.meta.MdDropOptions
;
import
com.yd.dal.service.agms.AgmsDashboardDALService
;
import
com.yd.dal.service.meta.MdDropOptionsDALService
;
import
com.yd.util.config.ZHBErrorConfig
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -17,14 +22,27 @@ public class AgmsDashboardServiceImpl implements AgmsDashboardService {
@Autowired
private
AgmsDashboardDALService
agmsDashboardDALService
;
@Autowired
private
MdDropOptionsDALService
mdDropOptionsDALService
;
@Override
public
StatisticsPEP
ByBranchResponseVO
statisticsPEPByBranch
(
StatisticsPEPByBranch
RequestVO
requestVO
)
{
public
StatisticsPEP
ResponseVO
statisticsPEP
(
StatisticsPEP
RequestVO
requestVO
)
{
//AGMS -- Dashboard查询 寿险整体运营->PEP活动管理(根据公司)
StatisticsPEPByBranchResponseVO
responseVO
=
new
StatisticsPEPByBranchResponseVO
();
List
<
StatisticsPEPInfo
>
statisticsPEPInfos
=
agmsDashboardDALService
.
statisticsPEPByBranch
();
StatisticsPEPResponseVO
responseVO
=
new
StatisticsPEPResponseVO
();
MdDropOptions
mdDropOptions
=
mdDropOptionsDALService
.
selectByMasterCodeAndOptionsCode
(
"bizchance_promotion_action"
,
"refused"
);
List
<
StatisticsPEPInfo
>
statisticsPEPInfos
=
agmsDashboardDALService
.
statisticsPEP
(
requestVO
.
getType
(),
mdDropOptions
.
getId
());
responseVO
.
setStatisticsPEPInfos
(
statisticsPEPInfos
);
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
return
responseVO
;
}
@Override
public
StatisticsOpportunityResponseVO
statisticsOpportunity
(
StatisticsOpportunityRequestVO
requestVO
)
{
StatisticsOpportunityResponseVO
responseVO
=
new
StatisticsOpportunityResponseVO
();
MdDropOptions
mdDropOptions
=
mdDropOptionsDALService
.
selectByMasterCodeAndOptionsCode
(
"bizchance_promotion_action"
,
"refused"
);
List
<
StatisticsOpportunityInfo
>
statisticsOpportunityInfos
=
agmsDashboardDALService
.
statisticsOpportunity
(
requestVO
.
getType
(),
requestVO
.
getTime
(),
mdDropOptions
.
getId
());
responseVO
.
setStatisticsOpportunityInfos
(
statisticsOpportunityInfos
);
responseVO
.
setCommonResult
(
new
CommonResult
(
true
,
ZHBErrorConfig
.
getErrorInfo
(
"800000"
)));
return
responseVO
;
}
}
yd-api/src/main/java/com/yd/api/agms/service/impl/AgmsStatementServiceImpl.java
View file @
90cc4e19
...
...
@@ -3,8 +3,6 @@ package com.yd.api.agms.service.impl;
import
com.github.pagehelper.PageInfo
;
import
com.google.common.base.Strings
;
import
com.yd.api.agms.service.AgmsStatementService
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPByBranchRequestVO
;
import
com.yd.api.agms.vo.dashboard.StatisticsPEPByBranchResponseVO
;
import
com.yd.api.agms.vo.statement.FinancialStatementRequestVO
;
import
com.yd.api.agms.vo.statement.FinancialStatementResponseVO
;
import
com.yd.api.agms.vo.statement.statementData
;
...
...
@@ -22,7 +20,6 @@ import java.io.OutputStream;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Locale
;
@Service
(
"agmsStatementService"
)
public
class
AgmsStatementServiceImpl
implements
AgmsStatementService
{
...
...
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsOpportunityRequestVO.java
0 → 100644
View file @
90cc4e19
package
com
.
yd
.
api
.
agms
.
vo
.
dashboard
;
import
lombok.Data
;
@Data
public
class
StatisticsOpportunityRequestVO
{
private
String
type
;
// B:分公司 T:团队
private
String
time
;
//D:今天 W:周 M:月 Q:季度 Y:年
}
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsOpportunityResponseVO.java
0 → 100644
View file @
90cc4e19
package
com
.
yd
.
api
.
agms
.
vo
.
dashboard
;
import
com.yd.api.result.CommonResult
;
import
com.yd.dal.entity.agms.dashboard.StatisticsOpportunityInfo
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
StatisticsOpportunityResponseVO
{
private
List
<
StatisticsOpportunityInfo
>
statisticsOpportunityInfos
;
private
CommonResult
commonResult
;
}
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsPEPByBranchRequestVO.java
deleted
100644 → 0
View file @
76e7b699
package
com
.
yd
.
api
.
agms
.
vo
.
dashboard
;
public
class
StatisticsPEPByBranchRequestVO
{
}
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsPEPRequestVO.java
0 → 100644
View file @
90cc4e19
package
com
.
yd
.
api
.
agms
.
vo
.
dashboard
;
import
lombok.Data
;
@Data
public
class
StatisticsPEPRequestVO
{
private
String
type
;
// B:分公司 T:团队
}
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsPEP
ByBranch
ResponseVO.java
→
yd-api/src/main/java/com/yd/api/agms/vo/dashboard/StatisticsPEPResponseVO.java
View file @
90cc4e19
...
...
@@ -5,7 +5,7 @@ import com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo;
import
java.util.List
;
public
class
StatisticsPEP
ByBranch
ResponseVO
{
public
class
StatisticsPEPResponseVO
{
private
List
<
StatisticsPEPInfo
>
statisticsPEPInfos
;
private
CommonResult
commonResult
;
...
...
yd-api/src/main/java/com/yd/dal/entity/agms/dashboard/StatisticsOpportunityInfo.java
0 → 100644
View file @
90cc4e19
package
com
.
yd
.
dal
.
entity
.
agms
.
dashboard
;
import
lombok.Data
;
@Data
public
class
StatisticsOpportunityInfo
{
private
String
branchName
;
private
Double
predictFYC
;
private
Double
predictFYP
;
private
Long
pieces
;
}
yd-api/src/main/java/com/yd/dal/entity/agms/dashboard/StatisticsPEPInfo.java
View file @
90cc4e19
...
...
@@ -5,9 +5,10 @@ import lombok.Data;
@Data
public
class
StatisticsPEPInfo
{
private
String
branchName
;
private
String
subordinateName
;
private
Long
practitionerNum
;
private
Double
scoreDay
;
private
Double
scoreWeek
;
private
Double
scoreMonth
;
private
Double
scoreTo
day
;
private
Double
scoreTo
tal
;
}
yd-api/src/main/java/com/yd/dal/mapper/agms/AgmsDashboardMapper.java
View file @
90cc4e19
package
com
.
yd
.
dal
.
mapper
.
agms
;
import
com.yd.dal.entity.agms.dashboard.StatisticsOpportunityInfo
;
import
com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
public
interface
AgmsDashboardMapper
{
List
<
StatisticsPEPInfo
>
statisticsPEPByBranch
();
List
<
StatisticsPEPInfo
>
statisticsPEP
(
@Param
(
"type"
)
String
type
,
@Param
(
"dropOptionId"
)
Long
dropOptionId
);
List
<
StatisticsOpportunityInfo
>
statisticsOpportunity
(
@Param
(
"type"
)
String
type
,
@Param
(
"time"
)
String
time
,
@Param
(
"dropOptionId"
)
Long
dropOptionId
);
}
yd-api/src/main/java/com/yd/dal/service/agms/AgmsDashboardDALService.java
View file @
90cc4e19
package
com
.
yd
.
dal
.
service
.
agms
;
import
com.yd.dal.entity.agms.dashboard.StatisticsOpportunityInfo
;
import
com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo
;
import
java.util.List
;
public
interface
AgmsDashboardDALService
{
List
<
StatisticsPEPInfo
>
statisticsPEPByBranch
();
List
<
StatisticsPEPInfo
>
statisticsPEP
(
String
type
,
Long
dropOptionId
);
List
<
StatisticsOpportunityInfo
>
statisticsOpportunity
(
String
type
,
String
time
,
Long
id
);
}
yd-api/src/main/java/com/yd/dal/service/agms/impl/AgmsDashboardDALServiceImpl.java
View file @
90cc4e19
package
com
.
yd
.
dal
.
service
.
agms
.
impl
;
import
com.yd.dal.entity.agms.dashboard.StatisticsOpportunityInfo
;
import
com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo
;
import
com.yd.dal.mapper.agms.AgmsDashboardMapper
;
import
com.yd.dal.service.agms.AgmsDashboardDALService
;
...
...
@@ -15,7 +16,12 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService {
private
AgmsDashboardMapper
agmsDashboardMapper
;
@Override
public
List
<
StatisticsPEPInfo
>
statisticsPEPByBranch
()
{
return
agmsDashboardMapper
.
statisticsPEPByBranch
();
public
List
<
StatisticsPEPInfo
>
statisticsPEP
(
String
type
,
Long
dropOptionId
)
{
return
agmsDashboardMapper
.
statisticsPEP
(
type
,
dropOptionId
);
}
@Override
public
List
<
StatisticsOpportunityInfo
>
statisticsOpportunity
(
String
type
,
String
time
,
Long
dropOptionId
)
{
return
agmsDashboardMapper
.
statisticsOpportunity
(
type
,
time
,
dropOptionId
);
}
}
yd-api/src/main/resources/mapper/agms/AgmsDashboardMapper.xml
View file @
90cc4e19
...
...
@@ -3,25 +3,82 @@
<mapper
namespace=
"com.yd.dal.mapper.agms.AgmsDashboardMapper"
>
<select
id=
"statisticsPEPByBranch"
resultType=
"com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo"
>
select b.branch_name branchName,
<select
id=
"statisticsPEP"
resultType=
"com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo"
>
select if(b.branch_name is null,'暂无公司',b.branch_name) branchName,
if(s.name is null ,'暂无团队',s.name) subordinateName,
count(p.id) practitionerNum,
sum(case when to_days(t.track_time)=to_days(now()) then t.track_score else 0 end)/count(p.id) scoreDay,
sum(case when YEARWEEK(date_format(t.track_time,'%Y-%m-%d')) = YEARWEEK(now()) then t.track_score else 0 end)/count(p.id) scoreWeek,
sum(case when date_format(t.track_time,'%Y-%m')=date_format(now(),'%Y-%m') then t.track_score else 0 end)/count(p.id) scoreMonth,
sum(case when t.track_score is not null then t.track_score else 0 end)/count(p.id) scoreTo
day
sum(case when t.track_score is not null then t.track_score else 0 end)/count(p.id) scoreTo
tal
from ag_acl_practitioner p
left join ag_mkt_leads_assigneds a on p.id = a.assigned_practitioner_id
left join ag_mkt_leads_assigned_track t on t.leads_assigned_id = a.id
and t.leads_assigned_id = a.id
left join ag_mkt_leads_assigned_track t on t.leads_assigned_id = a.id
left join ag_acl_insurer_branch b on b.id = p.insurer_branch_id
left join ag_acl_practitioner_subordinate_system s on s.id = p.subordinate_system_id
where not EXISTS(
select tt.leads_assigned_id
from ag_mkt_leads_assigned_track tt
where tt.md_drop_option_id =
102
where tt.md_drop_option_id =
#{dropOptionId,jdbcType=BIGINT}
and a.id = tt.leads_assigned_id)
group by p.insurer_branch_id
<choose>
<when
test=
"type.equalsIgnoreCase('B')"
>
group by p.insurer_branch_id
</when>
<when
test=
"type.equalsIgnoreCase('T')"
>
group by p.subordinate_system_id
</when>
</choose>
order by scoreDay desc ,scoreWeek desc ,scoreMonth desc;
</select>
<select
id=
"statisticsOpportunity"
resultType=
"com.yd.dal.entity.agms.dashboard.StatisticsOpportunityInfo"
>
select b.branch_name branchName,
<choose>
<when
test=
"time.equalsIgnoreCase('D')"
>
sum(case when to_days(a.time_to_close)=to_days(now()) then a.FYP else 0 end) predictFYP,
sum(case when to_days(a.time_to_close)=to_days(now()) then a.FYC else 0 end) predictFYC,
sum(case when to_days(a.time_to_close)=to_days(now()) then a.pieces else 0 end) pieces
</when>
<when
test=
"time.equalsIgnoreCase('W')"
>
sum(case when YEARWEEK(date_format(a.time_to_close, '%Y-%m-%d')) = YEARWEEK(now()) then a.FYP else 0 end) predictFYP,
sum(case when YEARWEEK(date_format(a.time_to_close, '%Y-%m-%d')) = YEARWEEK(now()) then a.FYC else 0 end) predictFYC,
sum(case when YEARWEEK(date_format(a.time_to_close, '%Y-%m-%d')) = YEARWEEK(now()) then a.pieces else 0 end) pieces
</when>
<when
test=
"time.equalsIgnoreCase('M')"
>
sum(case when date_format(a.time_to_close, '%Y-%m') = date_format(now(), '%Y-%m') then a.FYP else 0 end) predictFYP,
sum(case when date_format(a.time_to_close, '%Y-%m') = date_format(now(), '%Y-%m') then a.FYC else 0 end) predictFYC,
sum(case when date_format(a.time_to_close, '%Y-%m') = date_format(now(), '%Y-%m') then a.pieces else 0 end) pieces
</when>
<when
test=
"time.equalsIgnoreCase('Q')"
>
sum(case when QUARTER(a.time_to_close) = QUARTER(now()) then a.FYP else 0 end) predictFYP,
sum(case when QUARTER(a.time_to_close) = QUARTER(now()) then a.FYC else 0 end) predictFYC,
sum(case when QUARTER(a.time_to_close) = QUARTER(now()) then a.pieces else 0 end) pieces
</when>
<when
test=
"time.equalsIgnoreCase('Y')"
>
sum(case when YEAR(a.time_to_close) = YEAR(now()) then a.FYP else 0 end) predictFYP,
sum(case when YEAR(a.time_to_close) = YEAR(now()) then a.FYC else 0 end) predictFYC,
sum(case when YEAR(a.time_to_close) = YEAR(now()) then a.pieces else 0 end) pieces
</when>
</choose>
from ag_acl_practitioner p
left join ag_mkt_leads_assigneds a on p.id = a.assigned_practitioner_id
left join ag_acl_insurer_branch b on b.id = p.insurer_branch_id
where not EXISTS(
select tt.leads_assigned_id
from ag_mkt_leads_assigned_track tt
where tt.md_drop_option_id = #{dropOptionId,jdbcType=BIGINT}
and a.id = tt.leads_assigned_id)
<choose>
<when
test=
"type.equalsIgnoreCase('B')"
>
group by p.insurer_branch_id
</when>
<when
test=
"type.equalsIgnoreCase('T')"
>
group by p.subordinate_system_id
</when>
</choose>
order by predictFYC desc ,predictFYP desc ,pieces desc;
</select>
</mapper>
\ No newline at end of file
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