Commit 60e9aa9e by jianan

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

parent 949389f6
......@@ -7,14 +7,17 @@ import com.yd.api.commission.service.LifeCommissionService;
import com.yd.api.commission.vo.lifecommission.*;
import com.yd.api.result.CommonResult;
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.customer.AclCustomerFortune;
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.service.customer.AclCustomerFortuneDALService;
import com.yd.dal.service.order.PoOrderDALService;
import com.yd.rmi.ali.send.service.SendService;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.util.CommonUtil;
import com.yd.util.config.ZHBErrorConfig;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
......@@ -40,6 +43,8 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
private SystemConfigService systemConfigService;
@Autowired
private SendService sendService;
@Autowired
private AgPoOrderCommissionMapper orderCommissionMapper;
@Override
......@@ -71,46 +76,21 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
@Override
public CheckComeCommissionResponseVO updateCommissionCheckStatus(CheckComeCommissionRequestVO requestVO) {
CheckComeCommissionResponseVO resp = new CheckComeCommissionResponseVO();
List<Long> orderIds = requestVO.getOrderIds();
List<ComeCommissionParams> paramsList = requestVO.getOrderIds();
String status = requestVO.getCheckStatus();
String loginId = requestVO.getLoginId();
String checkBatch = requestVO.getCheckBatch();
List<String> commissionNos = requestVO.getCommissionNos();
if (StringUtils.isBlank(checkBatch)) {
resp.setCommonResult(new CommonResult(false, "检核日期不能为空"));
return resp;
}
try {
// 操作前先检查是否已关账
// 查询对应订单记录
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";
// 1.更新财富等信息
this.processOrderAndFortune(paramsList, status, loginId, checkBatch);
} else {//待来佣
fortuneCommissionPayoutStatus = "1";
}
this.updateOrderAndFortune(orderIds, fortuneList, status, fortuneCommissionPayoutStatus, loginId, checkBatch);
// 更新多年期佣金
this.updateOrderCommission(commissionNos, status, loginId, checkBatch);
// 订单已退保后发送邮件通知运营
if ("3".equals(status)) {//已比对
this.orderCommissionCheckCancelSendMail(orders);
}
// 2.更新多年期佣金
this.updateOrderCommission(paramsList, status, loginId, checkBatch);
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
......@@ -121,10 +101,68 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
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的字符串)
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;
import java.util.List;
public class CheckComeCommissionRequestVO {
private List<Long> orderIds;
private List<ComeCommissionParams> orderIds;
private String checkStatus;
private List<String> commissionNos;
private String loginId;
/**
* 来佣比对批次
*/
private String checkBatch;
public List<Long> getOrderIds() {
public List<ComeCommissionParams> getOrderIds() {
return orderIds;
}
public void setOrderIds(List<Long> orderIds) {
public void setOrderIds(List<ComeCommissionParams> orderIds) {
this.orderIds = orderIds;
}
......@@ -44,11 +43,4 @@ public class CheckComeCommissionRequestVO {
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