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
dd567362
Commit
dd567362
authored
Jul 20, 2020
by
yao.xiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改-AGMS的Dashboard中PEP查询
parent
75833914
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
104 additions
and
12 deletions
+104
-12
yd-api/src/main/java/com/yd/dal/entity/agms/dashboard/StatisticsPEPInfo.java
+2
-0
yd-api/src/main/java/com/yd/dal/mapper/agms/AgmsDashboardMapper.java
+2
-0
yd-api/src/main/java/com/yd/dal/service/agms/impl/AgmsDashboardDALServiceImpl.java
+59
-1
yd-api/src/main/resources/mapper/agms/AgmsDashboardMapper.xml
+41
-11
No files found.
yd-api/src/main/java/com/yd/dal/entity/agms/dashboard/StatisticsPEPInfo.java
View file @
dd567362
...
...
@@ -5,7 +5,9 @@ import lombok.Data;
@Data
public
class
StatisticsPEPInfo
{
private
String
branchName
;
private
Long
branchId
;
private
String
subordinateName
;
private
Long
subordinateId
;
private
Long
practitionerNum
;
private
Double
scoreDay
;
private
Double
scoreWeek
;
...
...
yd-api/src/main/java/com/yd/dal/mapper/agms/AgmsDashboardMapper.java
View file @
dd567362
...
...
@@ -5,6 +5,7 @@ import com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Map
;
public
interface
AgmsDashboardMapper
{
...
...
@@ -12,4 +13,5 @@ public interface AgmsDashboardMapper {
List
<
StatisticsOpportunityInfo
>
statisticsOpportunity
(
@Param
(
"type"
)
String
type
,
@Param
(
"time"
)
String
time
,
@Param
(
"dropOptionId"
)
Long
dropOptionId
);
List
<
Map
<
String
,
Long
>>
getPractitionerNums
(
@Param
(
"type"
)
String
type
);
}
yd-api/src/main/java/com/yd/dal/service/agms/impl/AgmsDashboardDALServiceImpl.java
View file @
dd567362
...
...
@@ -7,7 +7,13 @@ import com.yd.dal.service.agms.AgmsDashboardDALService;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.ConcurrentMap
;
import
java.util.stream.Collectors
;
@Service
(
"agmsDashboardDALService"
)
public
class
AgmsDashboardDALServiceImpl
implements
AgmsDashboardDALService
{
...
...
@@ -17,7 +23,59 @@ public class AgmsDashboardDALServiceImpl implements AgmsDashboardDALService {
@Override
public
List
<
StatisticsPEPInfo
>
statisticsPEP
(
String
type
,
Long
dropOptionId
)
{
return
agmsDashboardMapper
.
statisticsPEP
(
type
,
dropOptionId
);
//查询总分数
List
<
StatisticsPEPInfo
>
statisticsPEPInfos
=
agmsDashboardMapper
.
statisticsPEP
(
type
,
dropOptionId
);
//查询寿险经纪人人数统计,按type分类
List
<
Map
<
String
,
Long
>>
practitionerNums
=
agmsDashboardMapper
.
getPractitionerNums
(
type
);
ConcurrentMap
<
Long
,
Long
>
practitionerNumMap
=
new
ConcurrentHashMap
<>();
practitionerNums
.
forEach
(
u
->
practitionerNumMap
.
put
(
u
.
get
(
"id"
),
u
.
get
(
"practitionerNum"
)));
for
(
StatisticsPEPInfo
statisticsPEPInfo:
statisticsPEPInfos
)
{
Long
practitionerNum
=
0L
;
if
(
type
.
equalsIgnoreCase
(
"B"
)){
practitionerNum
=
practitionerNumMap
.
get
(
statisticsPEPInfo
.
getBranchId
());
statisticsPEPInfo
.
setPractitionerNum
(
practitionerNum
);
}
else
if
(
type
.
equalsIgnoreCase
(
"T"
)){
Long
subordinateId
=
statisticsPEPInfo
.
getSubordinateId
();
practitionerNum
=
practitionerNumMap
.
get
(
subordinateId
);
statisticsPEPInfo
.
setPractitionerNum
(
practitionerNum
);
}
Double
scoreDay
=
BigDecimal
.
valueOf
(
statisticsPEPInfo
.
getScoreDay
())
.
divide
(
BigDecimal
.
valueOf
(
practitionerNum
),
2
,
BigDecimal
.
ROUND_HALF_UP
)
.
doubleValue
();
statisticsPEPInfo
.
setScoreDay
(
scoreDay
);
Double
scoreWeek
=
BigDecimal
.
valueOf
(
statisticsPEPInfo
.
getScoreWeek
())
.
divide
(
BigDecimal
.
valueOf
(
practitionerNum
),
2
,
BigDecimal
.
ROUND_HALF_UP
)
.
doubleValue
();
statisticsPEPInfo
.
setScoreWeek
(
scoreWeek
);
Double
scoreMonth
=
BigDecimal
.
valueOf
(
statisticsPEPInfo
.
getScoreMonth
())
.
divide
(
BigDecimal
.
valueOf
(
practitionerNum
),
2
,
BigDecimal
.
ROUND_HALF_UP
)
.
doubleValue
();
statisticsPEPInfo
.
setScoreMonth
(
scoreMonth
);
Double
scoreQuarter
=
BigDecimal
.
valueOf
(
statisticsPEPInfo
.
getScoreQuarter
())
.
divide
(
BigDecimal
.
valueOf
(
practitionerNum
),
2
,
BigDecimal
.
ROUND_HALF_UP
)
.
doubleValue
();
statisticsPEPInfo
.
setScoreQuarter
(
scoreQuarter
);
Double
scoreYear
=
BigDecimal
.
valueOf
(
statisticsPEPInfo
.
getScoreYear
())
.
divide
(
BigDecimal
.
valueOf
(
practitionerNum
),
2
,
BigDecimal
.
ROUND_HALF_UP
)
.
doubleValue
();
statisticsPEPInfo
.
setScoreYear
(
scoreYear
);
Double
scoreTotal
=
BigDecimal
.
valueOf
(
statisticsPEPInfo
.
getScoreTotal
())
.
divide
(
BigDecimal
.
valueOf
(
practitionerNum
),
2
,
BigDecimal
.
ROUND_HALF_UP
)
.
doubleValue
();
statisticsPEPInfo
.
setScoreTotal
(
scoreTotal
);
}
Comparator
<
StatisticsPEPInfo
>
byDay
=
Comparator
.
comparing
(
StatisticsPEPInfo:
:
getScoreDay
).
reversed
();
Comparator
<
StatisticsPEPInfo
>
byWeek
=
Comparator
.
comparing
(
StatisticsPEPInfo:
:
getScoreWeek
).
reversed
();
Comparator
<
StatisticsPEPInfo
>
byMonth
=
Comparator
.
comparing
(
StatisticsPEPInfo:
:
getScoreMonth
).
reversed
();
Comparator
<
StatisticsPEPInfo
>
byQuarter
=
Comparator
.
comparing
(
StatisticsPEPInfo:
:
getScoreQuarter
).
reversed
();
Comparator
<
StatisticsPEPInfo
>
statisticsPEPInfoComparator
=
byDay
.
thenComparing
(
byWeek
).
thenComparing
(
byMonth
).
thenComparing
(
byQuarter
);
statisticsPEPInfos
=
statisticsPEPInfos
.
stream
().
sorted
(
statisticsPEPInfoComparator
).
collect
(
Collectors
.
toList
());
return
statisticsPEPInfos
;
}
@Override
...
...
yd-api/src/main/resources/mapper/agms/AgmsDashboardMapper.xml
View file @
dd567362
...
...
@@ -4,21 +4,24 @@
<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 QUARTER(t.track_time)=QUARTER(now()) then t.track_score else 0 end)/count(p.id) scoreQuarter,
sum(case when YEAR(t.track_time)=YEAR(now()) then t.track_score else 0 end)/count(p.id) scoreYear,
sum(case when t.track_score is not null then t.track_score else 0 end)/count(p.id) scoreTotal
select if(b.branch_name is null,'暂无公司',b.branch_name) branchName,
if(p.insurer_branch_id is null,0,p.insurer_branch_id) branchId,
if(s.name is null ,'暂无团队',s.name) subordinateName,
if(p.subordinate_system_id is null ,0,p.subordinate_system_id) subordinateId,
sum(case when to_days(t.track_time)=to_days(now()) then t.track_score else 0 end) scoreDay,
sum(case when YEARWEEK(date_format(t.track_time,'%Y-%m-%d')) = YEARWEEK(now()) then t.track_score else 0 end) scoreWeek,
sum(case when date_format(t.track_time,'%Y-%m')=date_format(now(),'%Y-%m') then t.track_score else 0 end) scoreMonth,
sum(case when QUARTER(t.track_time)=QUARTER(now()) then t.track_score else 0 end) scoreQuarter,
sum(case when YEAR(t.track_time)=YEAR(now()) then t.track_score else 0 end) scoreYear,
sum(case when t.track_score is not null then t.track_score else 0 end) scoreTotal
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
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(
left join ag_acl_practitioner_setting ps on ps.practitioner_id = p.id
where ps.practitioner_type_id = 28
and not EXISTS(
select tt.leads_assigned_id
from ag_mkt_leads_assigned_track tt
where tt.md_drop_option_id = #{dropOptionId,jdbcType=BIGINT}
...
...
@@ -73,7 +76,10 @@ 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
left join ag_acl_practitioner_subordinate_system s on s.id = p.subordinate_system_id
where not EXISTS(
left join ag_acl_practitioner_setting ps on ps.practitioner_id = p.id
where
ps.practitioner_type_id = 28
and not EXISTS(
select tt.leads_assigned_id
from ag_mkt_leads_assigned_track tt
where tt.md_drop_option_id = #{dropOptionId,jdbcType=BIGINT}
...
...
@@ -88,6 +94,29 @@ where not EXISTS(
</choose>
order by predictFYC desc ,predictFYP desc ,pieces desc ,opportunityNum desc;
</select>
<select
id=
"getPractitionerNums"
resultType=
"java.util.Map"
>
select
<choose>
<when
test=
"type.equalsIgnoreCase('B')"
>
if(p.insurer_branch_id is null,0,p.insurer_branch_id) id,
</when>
<when
test=
"type.equalsIgnoreCase('T')"
>
if(p.subordinate_system_id is null,0,p.subordinate_system_id) id,
</when>
</choose>
count(p.id) practitionerNum
from ag_acl_practitioner p
left join ag_acl_practitioner_setting ps on ps.practitioner_id = p.id
where ps.practitioner_type_id = 28
<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>
</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