Commit 90cc4e19 by yao.xiao

增加-AGMS中Dashboard商机预测列表

parent 76e7b699
......@@ -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("/statisticsPEPByBranch")
public Object statisticsPEPByBranch(@RequestBody StatisticsPEPByBranchRequestVO requestVO){
@RequestMapping("/statisticsPEP")
public Object statisticsPEP(@RequestBody StatisticsPEPRequestVO requestVO){
JsonResult result = new JsonResult();
StatisticsPEPByBranchResponseVO responseVO = agmsDashboardService.statisticsPEPByBranch(requestVO);
StatisticsPEPResponseVO 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;
}
}
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);
}
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;
......
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 StatisticsPEPByBranchResponseVO statisticsPEPByBranch(StatisticsPEPByBranchRequestVO requestVO) {
public StatisticsPEPResponseVO statisticsPEP(StatisticsPEPRequestVO 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;
}
}
......@@ -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 {
......
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:年
}
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;
}
package com.yd.api.agms.vo.dashboard;
public class StatisticsPEPByBranchRequestVO {
}
package com.yd.api.agms.vo.dashboard;
import lombok.Data;
@Data
public class StatisticsPEPRequestVO {
private String type;// B:分公司 T:团队
}
......@@ -5,7 +5,7 @@ import com.yd.dal.entity.agms.dashboard.StatisticsPEPInfo;
import java.util.List;
public class StatisticsPEPByBranchResponseVO {
public class StatisticsPEPResponseVO {
private List<StatisticsPEPInfo> statisticsPEPInfos;
private CommonResult commonResult;
......
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;
}
......@@ -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 scoreToday;
private Double scoreTotal;
}
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);
}
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);
}
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);
}
}
......@@ -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) scoreToday
sum(case when t.track_score is not null then t.track_score else 0 end)/count(p.id) 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 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment