Commit 505801de by jianan

来佣比对查询列表修改

parent 713c9cde
...@@ -2,6 +2,8 @@ package com.yd.api.commission; ...@@ -2,6 +2,8 @@ package com.yd.api.commission;
import com.yd.api.commission.service.LifeCommissionService; 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.ComeCommissionListResponseVO;
import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO; import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO;
import com.yd.api.result.JsonResult; import com.yd.api.result.JsonResult;
...@@ -33,4 +35,18 @@ public class LifeCommissionController { ...@@ -33,4 +35,18 @@ public class LifeCommissionController {
return result; 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; 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.ComeCommissionListResponseVO;
import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO; import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO;
public interface LifeCommissionService { public interface LifeCommissionService {
ComeCommissionListResponseVO queryComeCommissionList(QueryComeCommissionListRequestVO requestVO); ComeCommissionListResponseVO queryComeCommissionList(QueryComeCommissionListRequestVO requestVO);
CheckComeCommissionResponseVO checkComeCommission(CheckComeCommissionRequestVO requestVO);
} }
package com.yd.api.commission.service.impl; package com.yd.api.commission.service.impl;
import com.yd.api.commission.service.LifeCommissionService; import com.yd.api.commission.service.LifeCommissionService;
import com.yd.api.commission.vo.lifecommission.ComeCommissionListResponseVO; import com.yd.api.commission.vo.lifecommission.*;
import com.yd.api.commission.vo.lifecommission.ComeCommissionVO;
import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO;
import com.yd.api.result.CommonResult; import com.yd.api.result.CommonResult;
import com.yd.dal.entity.commission.OrderCommissonCheck;
import com.yd.dal.mapper.lifecommission.LifeCommissionMapper; import com.yd.dal.mapper.lifecommission.LifeCommissionMapper;
import com.yd.util.CommonUtil;
import com.yd.util.config.ZHBErrorConfig; import com.yd.util.config.ZHBErrorConfig;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*;
import java.util.List;
@Service @Service
public class LifeCommissionServiceImpl implements LifeCommissionService { public class LifeCommissionServiceImpl implements LifeCommissionService {
...@@ -22,7 +23,6 @@ public class LifeCommissionServiceImpl implements LifeCommissionService { ...@@ -22,7 +23,6 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
@Override @Override
public ComeCommissionListResponseVO queryComeCommissionList(QueryComeCommissionListRequestVO requestVO) { public ComeCommissionListResponseVO queryComeCommissionList(QueryComeCommissionListRequestVO requestVO) {
ComeCommissionListResponseVO resp = new ComeCommissionListResponseVO(); ComeCommissionListResponseVO resp = new ComeCommissionListResponseVO();
try { try {
List<ComeCommissionVO> dataList = lifeCommissionMapper.queryComeCommissionList(requestVO); List<ComeCommissionVO> dataList = lifeCommissionMapper.queryComeCommissionList(requestVO);
...@@ -34,4 +34,56 @@ public class LifeCommissionServiceImpl implements LifeCommissionService { ...@@ -34,4 +34,56 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
} }
return resp; 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; ...@@ -5,6 +5,8 @@ import lombok.Data;
@Data @Data
public class ComeCommissionVO { public class ComeCommissionVO {
/** /**
* 订单id
* 比对日期
* 保险公司 * 保险公司
* 购买方案 * 购买方案
* 保单号 * 保单号
...@@ -15,8 +17,11 @@ public class ComeCommissionVO { ...@@ -15,8 +17,11 @@ public class ComeCommissionVO {
* 下单时间 * 下单时间
* 缴费年限 * 缴费年限
* 保障期间 * 保障期间
* 产品险种
* 保险种类
*/ */
private Long orderId; private Long orderId;
private String checkDate;
private String insurerName; private String insurerName;
private String planName; private String planName;
private String policyNo; private String policyNo;
...@@ -27,5 +32,6 @@ public class ComeCommissionVO { ...@@ -27,5 +32,6 @@ public class ComeCommissionVO {
private String orderDate; private String orderDate;
private String payTerm; private String payTerm;
private String coverageTerm; private String coverageTerm;
private String categoryName;
private String planCategoryName;
} }
...@@ -5,6 +5,7 @@ import lombok.Data; ...@@ -5,6 +5,7 @@ import lombok.Data;
@Data @Data
public class QueryComeCommissionListRequestVO { public class QueryComeCommissionListRequestVO {
private String compareDate; private String compareDate;
private String historyDate;
private Long insurerId; private Long insurerId;
private String commissionCheckStatus; 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; ...@@ -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.ComeCommissionVO;
import com.yd.api.commission.vo.lifecommission.QueryComeCommissionListRequestVO; 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.List;
import java.util.Map;
public interface LifeCommissionMapper { public interface LifeCommissionMapper {
List<ComeCommissionVO> queryComeCommissionList(QueryComeCommissionListRequestVO requestVO); 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 @@ ...@@ -5,6 +5,7 @@
<select id="queryComeCommissionList" resultType="com.yd.api.commission.vo.lifecommission.ComeCommissionVO"> <select id="queryComeCommissionList" resultType="com.yd.api.commission.vo.lifecommission.ComeCommissionVO">
select select
o.id orderId, o.id orderId,
o.commission_check_at checkDate,
i.name insurerName, i.name insurerName,
IFNULL(a.name,p.name) planName, IFNULL(a.name,p.name) planName,
o.policy_no policyNo, o.policy_no policyNo,
...@@ -12,21 +13,26 @@ ...@@ -12,21 +13,26 @@
o.commission_rate commissionRate, o.commission_rate commissionRate,
o.commission_amount commissionAmount, o.commission_amount commissionAmount,
o.commission_check_status commissionCheckStatus, o.commission_check_status commissionCheckStatus,
o.created_at orderDate, o.order_date orderDate,
e.coverageTerm, e.coverageTerm,
e.payTerm 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 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 from ag_po_order t
where t.status = 3 where t.status = 3
and t.plan_id not in (424,453,464) 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 ) o
left join ag_po_order_commission_check c on o.commission_check_id = c.id 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 (select p.id, p.name, pc.name categoryName
left join ag_product_plan a on o.plan_id = a.id 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 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 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 left join (SELECT
...@@ -37,16 +43,54 @@ ...@@ -37,16 +43,54 @@
GROUP BY order_id GROUP BY order_id
) e on e.order_id = o.id ) e on e.order_id = o.id
where 1=1 where 1=1
<if test="compareDate != null"> <choose>
and o.commission_check_id is null or date_format(f.withdrawable_date, '%Y-%m') &lt;= #{compareDate} <when test="historyDate != null ">
</if> and c.check_yearmonth = #{historyDate}
<if test="insurerId != null"> </when>
and a.insurer_id = #{insurerId} <otherwise>
</if> <if test="compareDate != null">
<if test="commissionCheckStatus != null"> and o.commission_check_id is null or date_format(f.withdrawable_date, '%Y-%m') &lt;= #{compareDate}
and o.commission_check_status = #{commissionCheckStatus} </if>
</if> <if test="insurerId != null">
and a.insurer_id = #{insurerId}
</if>
<if test="commissionCheckStatus != null">
and o.commission_check_status = #{commissionCheckStatus}
</if>
</otherwise>
</choose>
</select> </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> </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