Commit ab943ab2 by jianan

导出运营报表2-经纪人日程管理,销售目标,活动量

parent 72a2ee49
package com.yd.api.agms.service;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingListRequestVO;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingListResponseVO;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingSaveRequestVO;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingSaveResponseVO;
import com.yd.api.agms.vo.practitioner.*;
import com.yd.api.result.CommonResultResponseVO;
import javax.servlet.http.HttpServletResponse;
/**
* @author xxy
......@@ -22,4 +22,21 @@ public interface AgmsPractitionerService {
* @return 响应数据
*/
PractitionerFileSharingListResponseVO practitionerFileSharingList(PractitionerFileSharingListRequestVO requestVO);
/**
* 经纪人日程管理
* @param requestVO
* @return
*/
PractitionerScheduleResponseVO practitionerSchedule(PractitionerScheduleRequestVO requestVO);
CommonResultResponseVO practitionerScheduleExport(PractitionerScheduleRequestVO requestVO, HttpServletResponse response);
PractitionerLeadsGoalsResponseVO practitionerLeadsGoals(PractitionerLeadsGoalsRequestVO requestVO);
CommonResultResponseVO practitionerLeadsGoalsExport(PractitionerLeadsGoalsRequestVO requestVO, HttpServletResponse response);
PractitionerActivityResponseVO practitionerActivity(PractitionerActivityRequestVO requestVO);
CommonResultResponseVO practitionerActivityExport(PractitionerActivityRequestVO requestVO, HttpServletResponse response);
}
package com.yd.api.agms.vo.practitioner;
import lombok.Data;
@Data
public class PractitionerActivityInfo {
private String practitionerName;
private String type;
private String score;
private String timePeriod;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import lombok.Data;
@Data
public class PractitionerActivityRequestVO {
private Long practitionerId;
private String startDate;
private String endDate;
private PageInfo<PractitionerActivityInfo> page;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import com.yd.api.result.CommonResult;
import lombok.Data;
import java.util.List;
@Data
public class PractitionerActivityResponseVO {
private CommonResult commonResult;
private List<PractitionerActivityInfo> list;
private PageInfo<PractitionerActivityInfo> page;
}
package com.yd.api.agms.vo.practitioner;
import lombok.Data;
import java.util.Date;
@Data
public class PractitionerLeadsGoalsInfo {
/**
* p.name 经纪人名称,
* CASE (t.statistic_time_unit) WHEN 1 THEN '年度目标' WHEN 3 THEN '月度目标' ELSE '其他' END 目标类型,
* t.seq_time 设置年份或者月份,
* t.premium 保费,t.commission 佣金,
* t.pieces 件数,
* t.piece_average_premium 件均保费,
* t.created_at 设置时间
*/
private String practitionerName;
private String type;
private String seqTime;
private String premium;
private String commission;
private String pieces;
private String pieceAveragePremium;
private Date createdAt;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import lombok.Data;
@Data
public class PractitionerLeadsGoalsRequestVO {
private String date;
private Long practitionerId;
private Integer type;
private PageInfo<PractitionerLeadsGoalsInfo> page;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import com.yd.api.result.CommonResult;
import lombok.Data;
import java.util.List;
@Data
public class PractitionerLeadsGoalsResponseVO {
private CommonResult commonResult;
private List<PractitionerLeadsGoalsInfo> list;
private PageInfo<PractitionerLeadsGoalsInfo> page;
}
package com.yd.api.agms.vo.practitioner;
import lombok.Data;
import java.util.Date;
@Data
public class PractitionerScheduleInfo {
/**
* p.name 经纪人名称,
* 日程,
* CASE (t.task_type) WHEN 1 THEN '商机' WHEN 2 THEN '增员' ELSE '其他' END 日程类型,
* op.drop_option_name 日程内容,
* t.track_time 日程,
* t.task_time_from 任务开始时间,
* task_time_end 任务结束时间,
* t.notice 备注,
* t.created_at 设置时间
*/
private String practitionerName;
private String trackTime;
private String taskType;
private String dropOptionName;
private String taskTimeFrom;
private String taskTimeEnd;
private String notice;
private Date createdAt;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import lombok.Data;
@Data
public class PractitionerScheduleRequestVO {
private String trackTime;
private Long practitionerId;
private Integer taskType;
private Long dropOptionName;
private PageInfo<PractitionerScheduleInfo> page;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import com.yd.api.result.CommonResult;
import lombok.Data;
import java.util.List;
@Data
public class PractitionerScheduleResponseVO {
private CommonResult commonResult;
private List<PractitionerScheduleInfo> list;
private PageInfo<PractitionerScheduleInfo> page;
}
package com.yd.dal.mapper.agms;
import com.github.pagehelper.Page;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharing;
import com.yd.api.agms.vo.practitioner.SharePractitionerInfo;
import com.yd.api.agms.vo.practitioner.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author xxy
*/
......@@ -22,4 +24,17 @@ public interface AgmsPractitionerMapper {
@Param("isActive") Integer isActive);
SharePractitionerInfo findSharePractitioner(String shareCode);
List<PractitionerScheduleInfo> practitionerSchedule(PractitionerScheduleRequestVO requestVO);
List<PractitionerLeadsGoalsInfo> practitionerLeadsGoals(PractitionerLeadsGoalsRequestVO requestVO);
List<Map<String, Object>> practitionerScheduleExport(PractitionerScheduleRequestVO requestVO);
List<Map<String, Object>> practitionerLeadsGoalsExport(PractitionerLeadsGoalsRequestVO requestVO);
List<PractitionerActivityInfo> practitionerActivity(PractitionerActivityRequestVO requestVO);
List<Map<String, Object>> practitionerActivityExport(PractitionerActivityRequestVO requestVO);
}
package com.yd.dal.service.agms;
import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharing;
import com.yd.api.agms.vo.practitioner.SharePractitionerInfo;
import com.yd.api.agms.vo.practitioner.*;
import java.util.List;
import java.util.Map;
/**
* @author xxy
......@@ -19,4 +21,16 @@ public interface AgmsPractitionerDALService {
PageInfo<PractitionerFileSharing> practitionerFileSharingList(Long id ,Long practitionerId,String shareCode,Long[] mdDropOptionId, Integer isActive, int pageNum, int size);
SharePractitionerInfo findSharePractitioner(String shareCode);
List<PractitionerScheduleInfo> practitionerSchedule(PractitionerScheduleRequestVO requestVO);
List<PractitionerLeadsGoalsInfo> practitionerLeadsGoals(PractitionerLeadsGoalsRequestVO requestVO);
List<Map<String, Object>> practitionerScheduleExport(PractitionerScheduleRequestVO requestVO);
List<Map<String, Object>> practitionerLeadsGoalsExport(PractitionerLeadsGoalsRequestVO requestVO);
List<PractitionerActivityInfo> practitionerActivity(PractitionerActivityRequestVO requestVO);
List<Map<String, Object>> practitionerActivityExport(PractitionerActivityRequestVO requestVO);
}
......@@ -3,14 +3,16 @@ package com.yd.dal.service.agms.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharing;
import com.yd.api.agms.vo.practitioner.SharePractitionerInfo;
import com.yd.api.agms.vo.practitioner.*;
import com.yd.dal.mapper.agms.AgmsPractitionerMapper;
import com.yd.dal.service.agms.AgmsPractitionerDALService;
import com.yd.util.CommonUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @author xxy
*/
......@@ -33,4 +35,34 @@ public class AgmsPractitionerDALServiceImpl implements AgmsPractitionerDALServic
}
return mapper.findSharePractitioner(shareCode);
}
@Override
public List<PractitionerScheduleInfo> practitionerSchedule(PractitionerScheduleRequestVO requestVO) {
return mapper.practitionerSchedule(requestVO);
}
@Override
public List<PractitionerLeadsGoalsInfo> practitionerLeadsGoals(PractitionerLeadsGoalsRequestVO requestVO) {
return mapper.practitionerLeadsGoals(requestVO);
}
@Override
public List<Map<String, Object>> practitionerScheduleExport(PractitionerScheduleRequestVO requestVO) {
return mapper.practitionerScheduleExport(requestVO);
}
@Override
public List<Map<String, Object>> practitionerLeadsGoalsExport(PractitionerLeadsGoalsRequestVO requestVO) {
return mapper.practitionerLeadsGoalsExport(requestVO);
}
@Override
public List<PractitionerActivityInfo> practitionerActivity(PractitionerActivityRequestVO requestVO) {
return mapper.practitionerActivity(requestVO);
}
@Override
public List<Map<String, Object>> practitionerActivityExport(PractitionerActivityRequestVO requestVO) {
return mapper.practitionerActivityExport(requestVO);
}
}
......@@ -80,4 +80,165 @@
LEFT JOIN ag_acl_file_upload uw ON uw.target_type = 1 AND uw.target_id = p.id AND uw.is_active = 1 AND uw.target_use_for = 9
WHERE os.share_code = #{shareCode,jdbcType=VARCHAR}
</select>
<select id="practitionerSchedule" resultType="com.yd.api.agms.vo.practitioner.PractitionerScheduleInfo">
SELECT
p.name practitionerName,
(CASE (t.task_type) WHEN 1 THEN '商机' WHEN 2 THEN '增员' ELSE '其他' END) taskType,
op.drop_option_name dropOptionName,
t.track_time trackTime,
t.task_time_from taskTimeFrom,
task_time_end taskTimeEnd,
t.notice ,
t.created_at createdAt
FROM ag_mkt_schedule_task_tracking t, ag_acl_practitioner p, ag_md_drop_options op
WHERE t.practitioner_id = p.id AND op.id = t.md_drop_option_id
<if test="trackTime != null">
AND t.created_at &gt;= DATE #{trackTime,jdbcType=VARCHAR} AND t.created_at &lt;= DATE #{trackTime,jdbcType=VARCHAR}
</if>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
<if test="taskType != null">
AND t.task_type = #{taskType,jdbcType=BIGINT}
</if>
<if test="dropOptionName != null">
AND t.md_drop_option_id = #{dropOptionName,jdbcType=BIGINT}
</if>
AND t.is_active = 1
</select>
<select id="practitionerScheduleExport" resultType="map">
SELECT
p.name '1',
date_format(t.track_time, '%Y-%m-%d') '2',
(CASE (t.task_type) WHEN 1 THEN '商机' WHEN 2 THEN '增员' ELSE '其他' END) '3',
op.drop_option_name '4',
t.task_time_from '5',
task_time_end '6',
t.notice '7',
date_format(t.created_at, '%Y-%m-%d %H:%i:%s') '8'
FROM ag_mkt_schedule_task_tracking t, ag_acl_practitioner p, ag_md_drop_options op
WHERE t.practitioner_id = p.id AND op.id = t.md_drop_option_id
<if test="trackTime != null">
AND t.created_at &gt;= DATE #{trackTime,jdbcType=VARCHAR} AND t.created_at &lt;= DATE #{trackTime,jdbcType=VARCHAR}
</if>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
<if test="taskType != null">
AND t.task_type = #{taskType,jdbcType=BIGINT}
</if>
<if test="dropOptionName != null">
AND t.md_drop_option_id = #{dropOptionName,jdbcType=BIGINT}
</if>
AND t.is_active = 1
</select>
<select id="practitionerLeadsGoals" resultType="com.yd.api.agms.vo.practitioner.PractitionerLeadsGoalsInfo">
SELECT
p.name practitionerName,
(CASE (t.statistic_time_unit) WHEN 1 THEN '年度目标' WHEN 3 THEN '月度目标' ELSE '其他' END) type,
t.seq_time seqTime,
t.premium ,
t.commission ,
t.pieces ,
t.piece_average_premium pieceAveragePremium,
t.created_at createdAt
FROM ag_mkt_leads_goals t,ag_acl_practitioner p
WHERE t.practitioner_id = p.id
<if test="date != null">
AND t.created_at &gt;= DATE #{date,jdbcType=VARCHAR} AND t.created_at &lt;= DATE #{date,jdbcType=VARCHAR}
</if>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
<if test="type != null">
AND t.t.statistic_time_unit = #{type,jdbcType=BIGINT}
</if>
AND t.is_active = 1
</select>
<select id="practitionerLeadsGoalsExport" resultType="map">
SELECT
p.name '1',
(CASE (t.statistic_time_unit) WHEN 1 THEN '年度目标' WHEN 3 THEN '月度目标' ELSE '其他' END) '2',
t.seq_time '3',
t.premium '4',
t.commission '5',
t.pieces '6',
t.piece_average_premium '7',
date_format(t.created_at, '%Y-%m-%d %H:%i:%s') '8'
FROM ag_mkt_leads_goals t,ag_acl_practitioner p
WHERE t.practitioner_id = p.id
<if test="date != null">
AND t.created_at &gt;= DATE #{date,jdbcType=VARCHAR} AND t.created_at &lt;= DATE #{date,jdbcType=VARCHAR}
</if>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
<if test="type != null">
AND t.t.statistic_time_unit = #{type,jdbcType=BIGINT}
</if>
AND t.is_active = 1
</select>
<select id="practitionerActivity" resultType="com.yd.api.agms.vo.practitioner.PractitionerActivityInfo">
SELECT
p.name practitionerName,
(CASE
WHEN (o.drop_master_id = 14) THEN '增员'
WHEN (o.drop_master_id = 16) THEN '销售'
WHEN (o.id = 226) THEN '辅导'
WHEN (o.id = 227) THEN '培训'
WHEN (o.id = 229) THEN '会议'
ELSE '其他'
END) type,
SUM(track_score) score,
YEARWEEK(DATE_FORMAT(t.track_time, '%Y-%m-%d')) timePeriod
FROM ag_mkt_schedule_task_tracking t, ag_acl_practitioner p, ag_md_drop_options o
WHERE t.practitioner_id = p.id AND o.id = t.md_drop_option_id
AND (o.drop_master_id IN(14,16) OR o.id IN(226,227,229))
<if test="startDate != null">
AND t.track_time &gt;= DATE #{startDate,jdbcType=VARCHAR}
</if>
<if test="endDate != null">
AND t.track_time &lt;= DATE #{endDate,jdbcType=VARCHAR}
</if>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
AND t.is_active = 1
GROUP BY p.name, o.drop_master_id, YEARWEEK(DATE_FORMAT(t.track_time, '%Y-%m-%d'))
</select>
<select id="practitionerActivityExport" resultType="map">
SELECT
p.name '1',
(CASE
WHEN (o.drop_master_id = 14) THEN '增员'
WHEN (o.drop_master_id = 16) THEN '销售'
WHEN (o.id = 226) THEN '辅导'
WHEN (o.id = 227) THEN '培训'
WHEN (o.id = 229) THEN '会议'
ELSE '其他'
END) '2',
SUM(track_score) '3',
YEARWEEK(DATE_FORMAT(t.track_time, '%Y-%m-%d')) '4'
FROM ag_mkt_schedule_task_tracking t, ag_acl_practitioner p, ag_md_drop_options o
WHERE t.practitioner_id = p.id AND o.id = t.md_drop_option_id
AND (o.drop_master_id IN(14,16) OR o.id IN(226,227,229))
<if test="startDate != null">
AND t.track_time &gt;= DATE #{startDate,jdbcType=VARCHAR}
</if>
<if test="endDate != null">
AND t.track_time &lt;= DATE #{endDate,jdbcType=VARCHAR}
</if>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
AND t.is_active = 1
GROUP BY p.name, o.drop_master_id, YEARWEEK(DATE_FORMAT(t.track_time, '%Y-%m-%d'))
</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