Commit 505801de by jianan

来佣比对查询列表修改

parent 713c9cde
......@@ -2,6 +2,8 @@ package com.yd.api.commission;
import com.yd.api.commission.service.LifeCommissionService;
import com.yd.api.commission.vo.lifecommission.CheckComeCommissionRequestVO;
import com.yd.api.commission.vo.lifecommission.CheckComeCommissionResponseVO;
import com.yd.api.commission.vo.lifecommission.ComeCommissionListResponseVO;
import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO;
import com.yd.api.result.JsonResult;
......@@ -33,4 +35,18 @@ public class LifeCommissionController {
return result;
}
/**
* 来佣比对
*
* @return
*/
@RequestMapping("/checkComeCommission")
public Object checkComeCommission(@RequestBody CheckComeCommissionRequestVO requestVO){
JsonResult result = new JsonResult();
CheckComeCommissionResponseVO responseVO = lifeCommissionService.checkComeCommission(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
}
\ No newline at end of file
package com.yd.api.commission.service;
import com.yd.api.commission.vo.lifecommission.CheckComeCommissionRequestVO;
import com.yd.api.commission.vo.lifecommission.CheckComeCommissionResponseVO;
import com.yd.api.commission.vo.lifecommission.ComeCommissionListResponseVO;
import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO;
public interface LifeCommissionService {
ComeCommissionListResponseVO queryComeCommissionList(QueryComeCommissionListRequestVO requestVO);
CheckComeCommissionResponseVO checkComeCommission(CheckComeCommissionRequestVO requestVO);
}
package com.yd.api.commission.service.impl;
import com.yd.api.commission.service.LifeCommissionService;
import com.yd.api.commission.vo.lifecommission.ComeCommissionListResponseVO;
import com.yd.api.commission.vo.lifecommission.ComeCommissionVO;
import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO;
import com.yd.api.commission.vo.lifecommission.*;
import com.yd.api.result.CommonResult;
import com.yd.dal.entity.commission.OrderCommissonCheck;
import com.yd.dal.mapper.lifecommission.LifeCommissionMapper;
import com.yd.util.CommonUtil;
import com.yd.util.config.ZHBErrorConfig;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.List;
@Service
public class LifeCommissionServiceImpl implements LifeCommissionService {
......@@ -22,7 +23,6 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
@Override
public ComeCommissionListResponseVO queryComeCommissionList(QueryComeCommissionListRequestVO requestVO) {
ComeCommissionListResponseVO resp = new ComeCommissionListResponseVO();
try {
List<ComeCommissionVO> dataList = lifeCommissionMapper.queryComeCommissionList(requestVO);
......@@ -34,4 +34,56 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
}
return resp;
}
@Override
public CheckComeCommissionResponseVO checkComeCommission(CheckComeCommissionRequestVO requestVO) {
CheckComeCommissionResponseVO resp = new CheckComeCommissionResponseVO();
List<Long> orderIds = requestVO.getOrderIds();
String status = null;
String loginId = requestVO.getLoginId();
try {
// 插入批次表信息
OrderCommissonCheck orderCommissionCheck= this.batchInsertOrderCommissionCheck(orderIds, loginId);
System.out.println("看看主键回写");
System.out.println(orderCommissionCheck);
this.checkComeCommission(orderIds, status, orderCommissionCheck);
//TODO 处理withdraw表 和 pay表
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} catch (Exception e) {
e.printStackTrace();
resp.setCommonResult(new CommonResult(false, e.getMessage()));
}
return resp;
}
private void checkComeCommission(List<Long> orderIds, String status, OrderCommissonCheck orderCommissionCheck) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("checkId", orderCommissionCheck.getId());
paramMap.put("status", status);
paramMap.put("checkAt", orderCommissionCheck.getCreatedAt());
paramMap.put("checkBy", orderCommissionCheck.getCreatedBy());
lifeCommissionMapper.checkComeCommission(orderIds, paramMap);
}
private OrderCommissonCheck batchInsertOrderCommissionCheck(List<Long> orderIds, String loginId) {
// 获取当前时间
Date curDate = new Date();
// 获取代表批次的年月
String yearmonth = CommonUtil.dateParseString(curDate, "yyyy-MM");
System.out.println("看看年月");
System.out.println(yearmonth);
OrderCommissonCheck orderCommissonCheck = new OrderCommissonCheck();
orderCommissonCheck.setCheckYearmonth(yearmonth);
orderCommissonCheck.setCreatedAt(curDate);
orderCommissonCheck.setCreatedBy(loginId);
return lifeCommissionMapper.insertOrderCommissionCheck(orderCommissonCheck);
}
}
package com.yd.api.commission.vo.lifecommission;
import java.util.List;
public class CheckComeCommissionRequestVO {
private List<Long> orderIds;
private String checkStatus;
private String loginId;
public List<Long> getOrderIds() {
return orderIds;
}
public void setOrderIds(List<Long> orderIds) {
this.orderIds = orderIds;
}
public String getCheckStatus() {
return checkStatus;
}
public void setCheckStatus(String checkStatus) {
this.checkStatus = checkStatus;
}
public String getLoginId() {
return loginId;
}
public void setLoginId(String loginId) {
this.loginId = loginId;
}
}
package com.yd.api.commission.vo.lifecommission;
import com.yd.api.result.CommonResult;
public class CheckComeCommissionResponseVO {
private CommonResult commonResult;
public CommonResult getCommonResult() {
return commonResult;
}
public void setCommonResult(CommonResult commonResult) {
this.commonResult = commonResult;
}
}
......@@ -5,6 +5,8 @@ import lombok.Data;
@Data
public class ComeCommissionVO {
/**
* 订单id
* 比对日期
* 保险公司
* 购买方案
* 保单号
......@@ -15,8 +17,11 @@ public class ComeCommissionVO {
* 下单时间
* 缴费年限
* 保障期间
* 产品险种
* 保险种类
*/
private Long orderId;
private String checkDate;
private String insurerName;
private String planName;
private String policyNo;
......@@ -27,5 +32,6 @@ public class ComeCommissionVO {
private String orderDate;
private String payTerm;
private String coverageTerm;
private String categoryName;
private String planCategoryName;
}
......@@ -5,6 +5,7 @@ import lombok.Data;
@Data
public class QueryComeCommissionListRequestVO {
private String compareDate;
private String historyDate;
private Long insurerId;
private String commissionCheckStatus;
}
package com.yd.dal.entity.commission;
import java.util.Date;
public class OrderCommissonCheck {
private Long id;
private String checkYearmonth;
private String checkFinished;
private String insurerIds;
private Date createdAt;
private String createdBy;
private Date updatedAt;
private String updatedBy;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCheckYearmonth() {
return checkYearmonth;
}
public void setCheckYearmonth(String checkYearmonth) {
this.checkYearmonth = checkYearmonth;
}
public String getCheckFinished() {
return checkFinished;
}
public void setCheckFinished(String checkFinished) {
this.checkFinished = checkFinished;
}
public String getInsurerIds() {
return insurerIds;
}
public void setInsurerIds(String insurerIds) {
this.insurerIds = insurerIds;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public String getUpdatedBy() {
return updatedBy;
}
public void setUpdatedBy(String updatedBy) {
this.updatedBy = updatedBy;
}
}
......@@ -2,10 +2,17 @@ package com.yd.dal.mapper.lifecommission;
import com.yd.api.commission.vo.lifecommission.ComeCommissionVO;
import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO;
import com.yd.dal.entity.commission.OrderCommissonCheck;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface LifeCommissionMapper {
List<ComeCommissionVO> queryComeCommissionList(QueryComeCommissionListRequestVO requestVO);
void checkComeCommission(@Param("list")List<Long> orderIds, @Param("paramMap")Map<String, Object> paramMap);
OrderCommissonCheck insertOrderCommissionCheck(OrderCommissonCheck orderCommissonCheck);
}
......@@ -5,6 +5,7 @@
<select id="queryComeCommissionList" resultType="com.yd.api.commission.vo.lifecommission.ComeCommissionVO">
select
o.id orderId,
o.commission_check_at checkDate,
i.name insurerName,
IFNULL(a.name,p.name) planName,
o.policy_no policyNo,
......@@ -12,21 +13,26 @@
o.commission_rate commissionRate,
o.commission_amount commissionAmount,
o.commission_check_status commissionCheckStatus,
o.created_at orderDate,
o.order_date orderDate,
e.coverageTerm,
e.payTerm
from (SELECT id, policy_no, order_price, commission_rate, commission_amount, commission_check_status, commission_check_id, product_id, plan_id, insurer_id, created_at
e.payTerm,
p.categoryName,
a.planCategoryName
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 = 3
and t.plan_id not in (424,453,464)
and t.broker_customer_id in
(SELECT customer_id from ag_acl_practitioner pr LEFT JOIN ag_acl_practitioner_setting s on pr.id = s.practitioner_id
where s.practitioner_type_id = 28
)
) o
left join ag_po_order_commission_check c on o.commission_check_id = c.id
left join ag_product p on o.product_id = p.id
left join ag_product_plan a on o.plan_id = a.id
left join (select p.id, p.name, pc.name categoryName
from ag_product p left join ag_product_category pc on p.product_category_id = pc.id
) p on o.product_id = p.id
left join (select pl.id, pl.name, pc.name planCategoryName
from ag_product_plan pl
left join ag_plan_category_list pcl on pl.id = pcl.plan_id
left join ag_plan_category pc on pc.id = pcl.plan_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,withdrawable_date from ag_acl_customer_fortune group by order_id,withdrawable_date) f on o.id = f.order_id
left join (SELECT
......@@ -37,6 +43,11 @@
GROUP BY order_id
) e on e.order_id = o.id
where 1=1
<choose>
<when test="historyDate != null ">
and c.check_yearmonth = #{historyDate}
</when>
<otherwise>
<if test="compareDate != null">
and o.commission_check_id is null or date_format(f.withdrawable_date, '%Y-%m') &lt;= #{compareDate}
</if>
......@@ -46,7 +57,40 @@
<if test="commissionCheckStatus != null">
and o.commission_check_status = #{commissionCheckStatus}
</if>
</otherwise>
</choose>
</select>
<insert id="insertOrderCommissionCheck" useGeneratedKeys="true" keyProperty="id">
insert into ag_po_order_commission_check (check_yearmonth,created_at,created_by)
VALUES
(#{checkYearmonth},#{createdAt},#{createdBy})
</insert>
<update id="checkComeCommission">
update ag_po_order
<set>
<if test="isSuccess != null">
commission_check_id = #{paramMap.checkId,jdbcType=BIGINT},
</if>
<if test="logoutTime != null">
commission_check_status = #{paramMap.status,jdbcType=VARCHAR},
</if>
<if test="createdAt != null">
commission_check_at = #{paramMap.checkAt,jdbcType=TIMESTAMP},
</if>
<if test="createdBy != null">
commission_check_by = #{paramMap.checkBy,jdbcType=VARCHAR},
</if>
</set>
where id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</update>
</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