Commit 22c13cc2 by jianan

【线上来佣比对】

导出优化3
parent c71076f9
......@@ -349,14 +349,6 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
}
private void queryOrganization(List<ComeCommissionVO> dataList) {
List<AclPractitioner> aclPractitionerList = aclPractitionerMapper.findAll();
Map<Long, AclPractitioner> aclPractitionerMap = new HashMap<>();
if (aclPractitionerList != null && aclPractitionerList.size() > 0) {
for (AclPractitioner item : aclPractitionerList) {
aclPractitionerMap.put(item.getId(), item);
}
}
List<AclPractitionerSubordinateSystem> subordinateSystemList = aclPractitionerSubordinateSystemDALService.findAll();
Map<Long, AclPractitionerSubordinateSystem> subordinateSystemMap = new HashMap<>();
if (subordinateSystemList != null && subordinateSystemList.size() > 0) {
......@@ -366,21 +358,16 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
}
Map<Long, AclInsurerBranch> aclInsurerBranchMap = systemConfigService.getAclInsurerBranchMap();
//经纪人本人
AclPractitioner self = null;
//所属体系
AclPractitionerSubordinateSystem subordinateSystem = null;
//分公司
AclInsurerBranch insurerBranch = null;
Long practitionerId = null;
ComeCommissionVO comeCommissionVO = null;
MdDropOptions dropOption = null;
for (int i = 0; i < dataList.size(); i++) {
comeCommissionVO = dataList.get(i);
practitionerId = comeCommissionVO.getPractitionerId();
self = aclPractitionerMap.get(practitionerId);
if ("1".equals(comeCommissionVO.getCommissionType())) {
dropOption = systemConfigService.getDropOption("Base_Commission_Item", comeCommissionVO.getCommissionItem());
......@@ -393,26 +380,24 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
comeCommissionVO.setCommissionItemName(dropOption.getDropOptionName());
}
if (self != null) {
if (self.getSubordinateSystemId() != null) {
subordinateSystem = subordinateSystemMap.get(self.getSubordinateSystemId());
if (subordinateSystem != null) {
comeCommissionVO.setSubordinateSystemName(subordinateSystem.getName());
if (comeCommissionVO.getS1Id() != null) {
subordinateSystem = subordinateSystemMap.get(comeCommissionVO.getS1Id());
if (subordinateSystem != null) {
comeCommissionVO.setSubordinateSystemName(subordinateSystem.getName());
if ("S2".equals(subordinateSystem.getSystemType())) {
comeCommissionVO.setS2SubordinateSystemName(subordinateSystem.getName());
}
if ("S2".equals(subordinateSystem.getSystemType())) {
comeCommissionVO.setS2SubordinateSystemName(subordinateSystem.getName());
}
}
}
if (null != self.getS2Id()) {
subordinateSystem = subordinateSystemMap.get(self.getS2Id());
comeCommissionVO.setS2SubordinateSystemName(subordinateSystem != null ? subordinateSystem.getName() : null);
}
if (null != self.getS3Id()) {
subordinateSystem = subordinateSystemMap.get(self.getS3Id());
comeCommissionVO.setS3SubordinateSystemName(subordinateSystem != null ? subordinateSystem.getName() : null);
}
if (null != comeCommissionVO.getS2Id()) {
subordinateSystem = subordinateSystemMap.get(comeCommissionVO.getS2Id());
comeCommissionVO.setS2SubordinateSystemName(subordinateSystem != null ? subordinateSystem.getName() : null);
}
if (null != comeCommissionVO.getS3Id()) {
subordinateSystem = subordinateSystemMap.get(comeCommissionVO.getS3Id());
comeCommissionVO.setS3SubordinateSystemName(subordinateSystem != null ? subordinateSystem.getName() : null);
}
if (null != comeCommissionVO.getYdBranchId()) {
insurerBranch = aclInsurerBranchMap.get(Long.valueOf(comeCommissionVO.getYdBranchId()));
......
......@@ -45,6 +45,9 @@ public class ComeCommissionVO {
private String s3SubordinateSystemName;//s3所属体系名称
private String s2SubordinateSystemName;//s2所属体系名称
private String subordinateSystemName;//所属体系名称
private Long s1Id;
private Long s2Id;
private Long s3Id;
public Long getOrderId() {
return orderId;
......@@ -384,4 +387,28 @@ public class ComeCommissionVO {
public void setYdBrachId(Long ydBrachId) {
this.ydBrachId = ydBrachId;
}
public Long getS1Id() {
return s1Id;
}
public void setS1Id(Long s1Id) {
this.s1Id = s1Id;
}
public Long getS2Id() {
return s2Id;
}
public void setS2Id(Long s2Id) {
this.s2Id = s2Id;
}
public Long getS3Id() {
return s3Id;
}
public void setS3Id(Long s3Id) {
this.s3Id = s3Id;
}
}
......@@ -11,8 +11,12 @@
c.check_yearmonth checkDate,
IFNULL(a.name,p.name) planName,
f.name,
f.practitioner_type_id practitionerTypeId,
practitioner.name,
setting.practitioner_type_id practitionerTypeId,
l.s1_id s1Id,
l.s2_id s2Id,
l.s3_id s3Id,
(case t.config_level when 2 then p2.pName2 else p3.pName3 END) categoryName,
(case t.config_level when 2 then p2.cName2 else p3.cName3 END) planCategoryName
......@@ -41,6 +45,7 @@
oc.commission_item commissionItem,
oc.practitioner_id practitionerId,
o.ydBranchId,
o.broker_customer_id,
o.cover_term_type coverageTerm,
CONCAT(o.payment_term, (case o.payment_term_unit when 'Y' then '年' when 'M' then '月' else '日' END)) payTerm
......@@ -48,7 +53,7 @@
left join
(SELECT id, order_price, product_id,
plan_id, insurer_id, order_date, config_level, cover_term, insurer_branch_id ydBranchId,
payment_term, payment_term_unit,
payment_term, payment_term_unit,broker_customer_id,
cover_term_type
from ag_po_order t
where t.status in (3,4) and t.policy_no is not null
......@@ -74,15 +79,9 @@
where plcl.config_level = 3
) p3
on t.config_level = p3.config_level and t.plan_id = p3.plan_id
left join (SELECT order_id, name, practitioner_type_id, f.customer_id
from (
select *
from (select order_id, customer_id from ag_acl_customer_fortune order by referral_amount desc) f
group by f.order_id
) f
left join ag_acl_practitioner practitioner on f.customer_id = practitioner.customer_id
left join ag_acl_practitioner_setting setting on setting.practitioner_id = practitioner.id
) f on f.order_id = t.orderId
left join ag_acl_practitioner practitioner on t.broker_customer_id = practitioner.customer_id
left join ag_acl_practitioner_setting setting on setting.practitioner_id = practitioner.id
left join ag_acl_life_insurance_practitioner l on l.order_id = t.orderId and l.practitioner_id = practitioner.id
where 1=1
<if test="startDate != null ">
and date_format(t.commissionYear, '%Y-%m') &gt;= #{startDate}
......@@ -101,7 +100,7 @@
and t.insurer_branch_id = #{insurerBranchId,jdbcType=BIGINT}
</if>
<if test="practitionerTypeId != null">
and f.practitioner_type_id = #{practitionerTypeId}
and setting.practitioner_type_id = #{practitionerTypeId}
</if>
<if test="commissionCheckStatus != null">
and t.commissionCheckStatus = #{commissionCheckStatus}
......@@ -194,6 +193,7 @@
oc.commission_type commissionType,
oc.commission_item commissionItem,
oc.practitioner_id practitionerId,
o.broker_customer_id,
o.ydBranchId,
o.cover_term_type coverageTerm,
......@@ -202,7 +202,7 @@
left join
(SELECT id, order_price, product_id,
plan_id, insurer_id, order_date, config_level, cover_term, insurer_branch_id ydBranchId,
payment_term, payment_term_unit,
payment_term, payment_term_unit,broker_customer_id,
cover_term_type
from ag_po_order t
where t.status in (3,4) and t.policy_no is not null
......@@ -214,15 +214,9 @@
left join ag_po_order_commission_check c on t.commission_check_id = c.id
left join ag_product_plan a on t.plan_id = a.id
left join ag_product p on t.product_id = p.id
left join (SELECT order_id, name, practitioner_type_id, f.customer_id
from (
select *
from (select order_id, customer_id from ag_acl_customer_fortune order by referral_amount desc) f
group by f.order_id
) f
left join ag_acl_practitioner practitioner on f.customer_id = practitioner.customer_id
left join ag_acl_practitioner_setting setting on setting.practitioner_id = practitioner.id
) f on f.order_id = t.orderId
left join ag_acl_practitioner practitioner on t.broker_customer_id = practitioner.customer_id
left join ag_acl_practitioner_setting setting on setting.practitioner_id = practitioner.id
left join ag_acl_life_insurance_practitioner l on l.order_id = t.orderId and l.practitioner_id = practitioner.id
where 1=1
<if test="startDate != null ">
and date_format(t.commissionYear, '%Y-%m') &gt;= #{startDate}
......@@ -241,7 +235,7 @@
and t.insurer_branch_id = #{insurerBranchId,jdbcType=BIGINT}
</if>
<if test="practitionerTypeId != null">
and f.practitioner_type_id = #{practitionerTypeId}
and setting.practitioner_type_id = #{practitionerTypeId}
</if>
<if test="commissionCheckStatus != null">
and t.commissionCheckStatus = #{commissionCheckStatus}
......@@ -266,8 +260,8 @@
<select id="queryLifePractitionerCount" resultType="java.lang.Integer">
select
count(distinct f.customer_id)
from <include refid="queryLifecommissionList"/> and f.practitioner_type_id = 28
count(distinct t.broker_customer_id)
from <include refid="queryLifecommissionList"/> and setting.practitioner_type_id = 28
</select>
......
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