Commit 8394444a by jianan

来佣比对列表加经纪人姓名和经纪人类型字段

parent 15a24b49
......@@ -45,9 +45,14 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
PageInfo<ComeCommissionVO> pageInfo = this.queryComeCommissionListPage(requestVO);
resp.setDataList(pageInfo.getList());
pageInfo.setList(null);
// 不分页结果集统计总单数,总保费,总来佣
List<ComeCommissionVO> dataList = lifeCommissionMapper.queryComeCommissionList(requestVO);
this.getSummaries(resp, dataList);
// 不分页结果集统计总单数,总保费,总来佣,待来佣总数,已比对总数,已退保总数
Map<String, BigDecimal> summaries = lifeCommissionMapper.getSummaries(requestVO);
resp.setTotalOrderPrice(String.valueOf(summaries.get("totalOrderPrice")));
resp.setTotalCommission(String.valueOf(summaries.get("totalCommission")));
resp.setTotalSingular(String.valueOf(summaries.get("totalSingular")));
resp.setTotalDaiLaiYong(String.valueOf(summaries.get("totalDaiLaiYong")));
resp.setTotalYiBiDui(String.valueOf(summaries.get("totalYiBiDui")));
resp.setTotalYiTuiBao(String.valueOf(summaries.get("totalYiTuiBao")));
resp.setPage(pageInfo);
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
......@@ -58,20 +63,6 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
return resp;
}
private void getSummaries(ComeCommissionListResponseVO resp, List<ComeCommissionVO> dataList) {
Integer totalSingular = dataList.size();
BigDecimal totalOrderPrice = BigDecimal.ZERO;
BigDecimal totalCommission = BigDecimal.ZERO;
for (ComeCommissionVO item: dataList) {
totalOrderPrice = totalOrderPrice.add(new BigDecimal(item.getOrderPrice()));
totalCommission = totalCommission.add(new BigDecimal(item.getCommissionAmount()));
}
resp.setTotalOrderPrice(totalOrderPrice);
resp.setTotalSingular(totalSingular);
resp.setTotalCommission(totalCommission);
}
@Override
public CheckComeCommissionResponseVO updateCommissionCheckStatus(CheckComeCommissionRequestVO requestVO) {
CheckComeCommissionResponseVO resp = new CheckComeCommissionResponseVO();
......@@ -116,14 +107,14 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
o.setCommissionCheckId(null);
o.setCommissionCheckStatus("1");
o.setCommissionCheckAt(new Date());
o.setCommissionCheckBy(Long.getLong(loginId));
o.setCommissionCheckBy(Long.valueOf(loginId));
poOrderDALService.update(o);
}
// 批量设置fortune为不可发佣
fortuneList.forEach(f -> {
f.setCommissionPayoutStatus("1");
f.setCommissionPayoutAt(new Date());
f.setCommissionPayoutBy(Long.getLong(loginId));
f.setCommissionPayoutBy(Long.valueOf(loginId));
});
if (fortuneList.size() > 0) {
customerFortuneDalService.updateBatch(fortuneList);
......@@ -155,7 +146,7 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
}
private void checkPass(List<Long> orderIds, String status, String loginId, String checkBatch) {
// 插入批次表信息
// 获取批次号(如2020-11的字符串)
Long checkBatchId = this.getOrderCommissionCheckBatch(checkBatch, loginId);
// 设置order记录的CommissionCheckId
this.setOrderCommissionCheckId(orderIds, status, checkBatchId, loginId);
......@@ -202,7 +193,11 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
}
private Long getOrderCommissionCheckBatch(String OrderCommissionCheckBatch, String loginId) {
OrderCommissonCheck orderCommissonCheck = lifeCommissionMapper.findByCheckYearmonth(OrderCommissionCheckBatch);
List<OrderCommissonCheck> list = lifeCommissionMapper.findByCheckYearmonth(OrderCommissionCheckBatch);
OrderCommissonCheck orderCommissonCheck = null;
if (list.size() > 0) {
orderCommissonCheck = list.get(0);
}
if (orderCommissonCheck == null){
// 获取当前时间
Date curDate = new Date();
......
......@@ -5,7 +5,6 @@ import com.github.pagehelper.PageInfo;
import com.yd.api.result.CommonResult;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
......@@ -15,15 +14,28 @@ public class ComeCommissionListResponseVO {
/**
* 总单数
*/
private Integer totalSingular;
private String totalSingular;
/**
* 总待来佣数
*/
private String totalDaiLaiYong;
/**
* 总比对保数
*/
private String totalYiBiDui;
/**
* 总已退保数
*/
private String totalYiTuiBao;
/**
* 总保费
*/
private BigDecimal totalOrderPrice;
private String totalOrderPrice;
/**
* 应发金额总额
*/
private BigDecimal totalCommission;
private String totalCommission;
private CommonResult commonResult;
private List<ComeCommissionVO> dataList;
}
......@@ -19,6 +19,8 @@ public class ComeCommissionVO {
* 保障期间
* 产品险种
* 保险种类
* 经纪人姓名
* 经纪人类型
*/
private Long orderId;
private String checkDate;
......@@ -34,4 +36,6 @@ public class ComeCommissionVO {
private String coverageTerm;
private String categoryName;
private String planCategoryName;
private String name;
private String practitionerTypeId;
}
......@@ -5,6 +5,7 @@ import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO;
import com.yd.dal.entity.commission.OrderCommissonCheck;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
......@@ -15,5 +16,7 @@ public interface LifeCommissionMapper {
void insertOrderCommissionCheck(OrderCommissonCheck orderCommissonCheck);
OrderCommissonCheck findByCheckYearmonth(String orderCommissionCheckBatch);
List<OrderCommissonCheck> findByCheckYearmonth(String orderCommissionCheckBatch);
Map<String, BigDecimal> getSummaries(QueryComeCommissionListRequestVO requestVO);
}
......@@ -17,6 +17,8 @@
o.order_date orderDate,
e.coverageTerm,
e.payTerm,
f.name,
f.practitioner_type_id practitionerTypeId,
IFNULL(p.categoryName,a.categoryName2) categoryName,
a.planCategoryName
from (SELECT id, policy_no, order_price, commission_rate, commission_amount, commission_check_status, commission_check_id, product_id,
......@@ -37,10 +39,21 @@
left join ag_product_category proc on proc.id = pro.product_category_id
) a on o.plan_id = a.id
left join ag_acl_insurer i on o.insurer_id = i.id
left join (SELECT order_id, name, practitioner_type_id
from (
select
order_id,
CASE WHEN referral_amount = MAX(referral_amount) THEN customer_id END customer_id
from ag_acl_customer_fortune
group by 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 = o.id
left join (SELECT
order_id,
MAX(CASE WHEN factor_name = '保险期间' THEN element_text END) coverageTerm,
MAX(CASE WHEN factor_name = '缴费年限' THEN element_text END) payTerm
MAX(CASE WHEN factor_code = 'f_coverage_term' THEN element_text END) coverageTerm,
MAX(CASE WHEN factor_code = 'f_pay_term' THEN element_text END) payTerm
FROM ag_po_order_life_product_elements t
GROUP BY order_id
) e on e.order_id = o.id
......@@ -99,5 +112,39 @@
where check_yearmonth = #{orderCommissionCheckBatch,jdbcType=VARCHAR}
</select>
<select id="getSummaries" resultType="java.util.Map">
select
count(1) totalSingular,
sum(CASE WHEN o.commission_check_status = '1' THEN 1 ELSE 0 END) totalDaiLaiYong,
sum(CASE WHEN o.commission_check_status = '2' THEN 1 ELSE 0 END) totalYiBiDui,
sum(CASE WHEN o.commission_check_status = '3' THEN 1 ELSE 0 END) totalYiTuiBao,
sum(o.order_price) totalOrderPrice,
sum(o.commission_amount) totalCommission
from (SELECT id, policy_no, order_price, commission_rate, commission_amount, commission_check_status, commission_check_id, product_id,
plan_id, insurer_id, order_date, commission_check_at
from ag_po_order t
where t.status in (3,4) and policy_no is not null
and (t.plan_id not in (424,453,464) or t.plan_id is null)
) o
left join ag_po_order_commission_check c on o.commission_check_id = c.id
where 1=1
<choose>
<when test="historyDate != null ">
and c.check_yearmonth = #{historyDate}
</when>
<otherwise>
<if test="compareDate != null">
and date_format(o.order_date, '%Y-%m') &lt; #{compareDate}
</if>
<if test="insurerId != null">
and o.insurer_id = #{insurerId}
</if>
<if test="commissionCheckStatus != null">
and o.commission_check_status = #{commissionCheckStatus}
</if>
</otherwise>
</choose>
</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