Commit 60e9aa9e by jianan

续年佣金计算-来佣比对优化

parent 949389f6
...@@ -7,14 +7,17 @@ import com.yd.api.commission.service.LifeCommissionService; ...@@ -7,14 +7,17 @@ import com.yd.api.commission.service.LifeCommissionService;
import com.yd.api.commission.vo.lifecommission.*; import com.yd.api.commission.vo.lifecommission.*;
import com.yd.api.result.CommonResult; import com.yd.api.result.CommonResult;
import com.yd.dal.entity.agms.fortune.FortunePayToOrderInfo; import com.yd.dal.entity.agms.fortune.FortunePayToOrderInfo;
import com.yd.dal.entity.commission.AgPoOrderCommission;
import com.yd.dal.entity.commission.OrderCommissonCheck; import com.yd.dal.entity.commission.OrderCommissonCheck;
import com.yd.dal.entity.customer.AclCustomerFortune; import com.yd.dal.entity.customer.AclCustomerFortune;
import com.yd.dal.entity.order.PoOrder; import com.yd.dal.entity.order.PoOrder;
import com.yd.dal.mapper.commission.AgPoOrderCommissionMapper;
import com.yd.dal.mapper.lifecommission.LifeCommissionMapper; import com.yd.dal.mapper.lifecommission.LifeCommissionMapper;
import com.yd.dal.service.customer.AclCustomerFortuneDALService; import com.yd.dal.service.customer.AclCustomerFortuneDALService;
import com.yd.dal.service.order.PoOrderDALService; import com.yd.dal.service.order.PoOrderDALService;
import com.yd.rmi.ali.send.service.SendService; import com.yd.rmi.ali.send.service.SendService;
import com.yd.rmi.cache.SystemConfigService; import com.yd.rmi.cache.SystemConfigService;
import com.yd.util.CommonUtil;
import com.yd.util.config.ZHBErrorConfig; import com.yd.util.config.ZHBErrorConfig;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -40,6 +43,8 @@ public class LifeCommissionServiceImpl implements LifeCommissionService { ...@@ -40,6 +43,8 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
private SystemConfigService systemConfigService; private SystemConfigService systemConfigService;
@Autowired @Autowired
private SendService sendService; private SendService sendService;
@Autowired
private AgPoOrderCommissionMapper orderCommissionMapper;
@Override @Override
...@@ -71,46 +76,21 @@ public class LifeCommissionServiceImpl implements LifeCommissionService { ...@@ -71,46 +76,21 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
@Override @Override
public CheckComeCommissionResponseVO updateCommissionCheckStatus(CheckComeCommissionRequestVO requestVO) { public CheckComeCommissionResponseVO updateCommissionCheckStatus(CheckComeCommissionRequestVO requestVO) {
CheckComeCommissionResponseVO resp = new CheckComeCommissionResponseVO(); CheckComeCommissionResponseVO resp = new CheckComeCommissionResponseVO();
List<Long> orderIds = requestVO.getOrderIds(); List<ComeCommissionParams> paramsList = requestVO.getOrderIds();
String status = requestVO.getCheckStatus(); String status = requestVO.getCheckStatus();
String loginId = requestVO.getLoginId(); String loginId = requestVO.getLoginId();
String checkBatch = requestVO.getCheckBatch(); String checkBatch = requestVO.getCheckBatch();
List<String> commissionNos = requestVO.getCommissionNos();
if (StringUtils.isBlank(checkBatch)) { if (StringUtils.isBlank(checkBatch)) {
resp.setCommonResult(new CommonResult(false, "检核日期不能为空")); resp.setCommonResult(new CommonResult(false, "检核日期不能为空"));
return resp; return resp;
} }
try { try {
// 操作前先检查是否已关账 // 1.更新财富等信息
// 查询对应订单记录 this.processOrderAndFortune(paramsList, status, loginId, checkBatch);
List<PoOrder> orders = poOrderDALService.findByIds(orderIds);
// 查询保单下的所有寿险经纪人的fortune记录
List<AclCustomerFortune> fortuneList = customerFortuneDalService.queryLifeFortuneListByOrderIds(orderIds);
// 已关帐的订单,则该笔订单来佣比对状态不能改为待来佣和已比对,但能改为已退保
// 处理历史记录,暂时关闭
// this.validateClosed(orders, fortuneList, status);
String fortuneCommissionPayoutStatus;
if ("2".equals(status)) {//已比对
fortuneCommissionPayoutStatus = "2";
} else if ("3".equals(status)) {//已退保
fortuneCommissionPayoutStatus = "1";
} else {//待来佣 // 2.更新多年期佣金
fortuneCommissionPayoutStatus = "1"; this.updateOrderCommission(paramsList, status, loginId, checkBatch);
}
this.updateOrderAndFortune(orderIds, fortuneList, status, fortuneCommissionPayoutStatus, loginId, checkBatch);
// 更新多年期佣金
this.updateOrderCommission(commissionNos, status, loginId, checkBatch);
// 订单已退保后发送邮件通知运营
if ("3".equals(status)) {//已比对
this.orderCommissionCheckCancelSendMail(orders);
}
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000"))); resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
...@@ -121,10 +101,68 @@ public class LifeCommissionServiceImpl implements LifeCommissionService { ...@@ -121,10 +101,68 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
return resp; return resp;
} }
private void updateOrderCommission(List<String> commissionNos, String status, String loginId, String checkBatch) { private void processOrderAndFortune(List<ComeCommissionParams> paramsList, String status, String loginId, String checkBatch) {
// 获取首年度佣金的orderId
List<Long> orderIds = new ArrayList<>();
for (ComeCommissionParams params: paramsList) {
if ("1".equals(params.getCommissionPeriod())) {
orderIds.add(params.getOrderId());
}
}
// 操作前先检查是否已关账
// 查询对应订单记录
List<PoOrder> orders = poOrderDALService.findByIds(orderIds);
// 查询保单下的所有寿险经纪人的fortune记录
List<AclCustomerFortune> fortuneList = customerFortuneDalService.queryLifeFortuneListByOrderIds(orderIds);
// 已关帐的订单,则该笔订单来佣比对状态不能改为待来佣和已比对,但能改为已退保
// 处理历史记录,暂时关闭
// this.validateClosed(orders, fortuneList, status);
String fortuneCommissionPayoutStatus;
if ("2".equals(status)) {//已比对
fortuneCommissionPayoutStatus = "2";
} else if ("3".equals(status)) {//已退保
fortuneCommissionPayoutStatus = "1";
} else {//待来佣
fortuneCommissionPayoutStatus = "1";
}
this.updateOrderAndFortune(orderIds, fortuneList, status, fortuneCommissionPayoutStatus, loginId, checkBatch);
// 订单已退保后发送邮件通知运营
if ("3".equals(status)) {//已比对
this.orderCommissionCheckCancelSendMail(orders);
}
}
private void updateOrderCommission(List<ComeCommissionParams> paramsList, String status, String loginId, String checkBatch) {
if (!"2".equals(status)) {
return;
}
// 获取续年度来佣编号
List<String> commissionNos = new ArrayList<>();
for (ComeCommissionParams params: paramsList) {
if (StringUtils.isNotBlank(params.getCommissionNo())) {
commissionNos.add(params.getCommissionNo());
}
}
// 获取批次号(如2020-11的字符串) // 获取批次号(如2020-11的字符串)
Long checkBatchId = this.getOrderCommissionCheckBatch(checkBatch, loginId); Long checkBatchId = this.getOrderCommissionCheckBatch(checkBatch, loginId);
AgPoOrderCommission orderCommission = new AgPoOrderCommission();
orderCommission.setCommissionCheckId(checkBatchId);
orderCommission.setCommissionStatus("1");
orderCommission.setCommissionTime(CommonUtil.dateParseString(new Date(), "yyyy-MM-dd HH:mm:ss"));
orderCommission.setUpdatedBy(Long.valueOf(loginId));
orderCommission.setUpdatedAt(new Date());
orderCommissionMapper.updateBatchBycommissionNo(commissionNos, orderCommission);
} }
......
...@@ -3,20 +3,19 @@ package com.yd.api.commission.vo.lifecommission; ...@@ -3,20 +3,19 @@ package com.yd.api.commission.vo.lifecommission;
import java.util.List; import java.util.List;
public class CheckComeCommissionRequestVO { public class CheckComeCommissionRequestVO {
private List<Long> orderIds; private List<ComeCommissionParams> orderIds;
private String checkStatus; private String checkStatus;
private List<String> commissionNos;
private String loginId; private String loginId;
/** /**
* 来佣比对批次 * 来佣比对批次
*/ */
private String checkBatch; private String checkBatch;
public List<Long> getOrderIds() { public List<ComeCommissionParams> getOrderIds() {
return orderIds; return orderIds;
} }
public void setOrderIds(List<Long> orderIds) { public void setOrderIds(List<ComeCommissionParams> orderIds) {
this.orderIds = orderIds; this.orderIds = orderIds;
} }
...@@ -44,11 +43,4 @@ public class CheckComeCommissionRequestVO { ...@@ -44,11 +43,4 @@ public class CheckComeCommissionRequestVO {
this.checkBatch = checkBatch; this.checkBatch = checkBatch;
} }
public List<String> getCommissionNos() {
return commissionNos;
}
public void setCommissionNos(List<String> commissionNos) {
this.commissionNos = commissionNos;
}
} }
package com.yd.api.commission.vo.lifecommission;
import lombok.Data;
@Data
public class ComeCommissionParams {
private Long orderId;
private String commissionNo;
private String commissionPeriod;
}
package com.yd.dal.mapper.commission;
import com.yd.dal.entity.commission.AgPoOrderCommission;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface AgPoOrderCommissionMapper {
int deleteByPrimaryKey(Long id);
int insert(AgPoOrderCommission record);
int insertSelective(AgPoOrderCommission record);
AgPoOrderCommission selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(AgPoOrderCommission record);
int updateByPrimaryKey(AgPoOrderCommission record);
void updateBatchBycommissionNo(@Param("list")List<String> commissionNos, AgPoOrderCommission orderCommission);
}
\ 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