Commit c125ff6d by jianan

来佣比对状态修改接口逻辑

parent a2cacf3d
...@@ -3,8 +3,6 @@ package com.yd.api.commission.service.impl; ...@@ -3,8 +3,6 @@ package com.yd.api.commission.service.impl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.yd.api.agms.service.AgmsFortuneService;
import com.yd.api.order.vo.SurrenderFortuneRequestVO;
import com.yd.api.commission.service.LifeCommissionService; 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;
...@@ -31,8 +29,6 @@ public class LifeCommissionServiceImpl implements LifeCommissionService { ...@@ -31,8 +29,6 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
@Autowired @Autowired
private AclCustomerFortuneDALService customerFortuneDalService; private AclCustomerFortuneDALService customerFortuneDalService;
@Autowired @Autowired
private AgmsFortuneService agmsFortuneService;
@Autowired
private PoOrderDALService poOrderDALService; private PoOrderDALService poOrderDALService;
...@@ -70,19 +66,34 @@ public class LifeCommissionServiceImpl implements LifeCommissionService { ...@@ -70,19 +66,34 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
String loginId = requestVO.getLoginId(); String loginId = requestVO.getLoginId();
String checkBatch = requestVO.getCheckBatch(); String checkBatch = requestVO.getCheckBatch();
try { try {
// 寿险经纪人的财富需要初始化withdraw和pay // 操作前先检查是否已关账
// 查询对应订单记录
List<PoOrder> orders = poOrderDALService.findByIds(orderIds);
// 查询保单下的所有寿险经纪人的fortune记录
List<AclCustomerFortune> fortuneList = customerFortuneDalService.queryLifeFortuneListByOrderIds(orderIds);
// 已退保的订单不能修改状态
for (PoOrder o:orders) {
// 已退保的订单不能改状态
if ("4".equals(o.getStatus()) || "3".equals(o.getCommissionCheckStatus())) {
resp.setCommonResult(new CommonResult(false, "已退保的订单不能改状态"));
return resp;
}
}
// 已关帐的订单,则该笔订单来佣比对状态不能改为待来佣和已比对,但能改为已退保
this.validateClosed(orders, fortuneList, status);
String fortuneCommissionPayoutStatus = null;
if ("2".equals(status)) {//已比对 if ("2".equals(status)) {//已比对
this.checkPass(orderIds, status, loginId, checkBatch); fortuneCommissionPayoutStatus = "2";
} else if ("3".equals(status)) {//已退保 } else if ("3".equals(status)) {//已退保
SurrenderFortuneRequestVO surrenderFortuneRequest = new SurrenderFortuneRequestVO(); fortuneCommissionPayoutStatus = "1";
for (Long orderId: orderIds) {
surrenderFortuneRequest.setOrderId(orderId);
agmsFortuneService.surrenderFortune(surrenderFortuneRequest);
}
} else {//待来佣 } else {//待来佣
this.checkRollBack(orderIds, loginId); fortuneCommissionPayoutStatus = "1";
} }
this.updateOrderAndFortune(orderIds, fortuneList, fortuneCommissionPayoutStatus, status, loginId, checkBatch);
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000"))); resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} catch (Exception e) { } catch (Exception e) {
...@@ -92,26 +103,19 @@ public class LifeCommissionServiceImpl implements LifeCommissionService { ...@@ -92,26 +103,19 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
return resp; return resp;
} }
private void checkRollBack(List<Long> orderIds, String loginId) throws Exception { private void updateOrderAndFortune(List<Long> orderIds, List<AclCustomerFortune> fortuneList, String status, String fortuneCommissionPayoutStatus,
// 查询对应订单记录 String loginId, String checkBatch) {
List<PoOrder> orders = poOrderDALService.findByIds(orderIds); // 获取批次号(如2020-11的字符串)
// 查询保单下的所有寿险经纪人的fortune记录 Long checkBatchId = this.getOrderCommissionCheckBatch(checkBatch, loginId);
List<AclCustomerFortune> fortuneList = customerFortuneDalService.queryLifeFortuneListByOrderIds(orderIds); // 设置order记录的CommissionCheckId
this.setOrderCommissionCheckId(orderIds, status, checkBatchId, loginId);
// 校验数据,若订单下存在已发放的财富记录,则该笔订单来佣比对状态不能改为待来佣
this.validateRollBackOrders(orders, fortuneList);
// 设置order记录为待来佣 if (fortuneList.size() == 0) {
for (PoOrder o:orders) { return;
o.setCommissionCheckId(null);
o.setCommissionCheckStatus("1");
o.setCommissionCheckAt(new Date());
o.setCommissionCheckBy(Long.valueOf(loginId));
poOrderDALService.update(o);
} }
// 批量设置fortune为可发佣 // 批量设置fortune为可发佣
fortuneList.forEach(f -> { fortuneList.forEach(f -> {
f.setCommissionPayoutStatus("1"); f.setCommissionPayoutStatus(fortuneCommissionPayoutStatus);
f.setCommissionPayoutAt(new Date()); f.setCommissionPayoutAt(new Date());
f.setCommissionPayoutBy(Long.valueOf(loginId)); f.setCommissionPayoutBy(Long.valueOf(loginId));
}); });
...@@ -120,18 +124,11 @@ public class LifeCommissionServiceImpl implements LifeCommissionService { ...@@ -120,18 +124,11 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
} }
} }
private void validateRollBackOrders(List<PoOrder> orders, List<AclCustomerFortune> fortuneList) throws Exception { private void validateClosed(List<PoOrder> orders, List<AclCustomerFortune> fortuneList, String status) throws Exception {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
Map<Long, String> orderIdPolicyNoMap = new HashMap<>(); Map<Long, String> orderIdPolicyNoMap = new HashMap<>();
for (PoOrder o:orders) { for (PoOrder o:orders) {
orderIdPolicyNoMap.put(o.getId(), o.getPolicyNo()); orderIdPolicyNoMap.put(o.getId(), o.getPolicyNo());
if ("1".equals(o.getCommissionCheckStatus()) || "3".equals(o.getCommissionCheckStatus())) {
stringBuilder.append(o.getPolicyNo()+" ");
}
}
if (StringUtils.isNotEmpty(stringBuilder.toString())) {
stringBuilder.append("待来佣和已退保的订单不能改为待来佣");
throw new Exception(stringBuilder.toString());
} }
for (AclCustomerFortune f:fortuneList) { for (AclCustomerFortune f:fortuneList) {
if ("4".equals(f.getCommissionPayoutStatus())) { if ("4".equals(f.getCommissionPayoutStatus())) {
...@@ -139,28 +136,11 @@ public class LifeCommissionServiceImpl implements LifeCommissionService { ...@@ -139,28 +136,11 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
} }
} }
if (StringUtils.isNotEmpty(stringBuilder.toString())) { if (StringUtils.isNotEmpty(stringBuilder.toString())) {
stringBuilder.append("订单下存在已发放的财富记录,不能改为待来佣"); stringBuilder.append("订单下存在已发放的财富记录,不能改状态");
if (!"3".equals(status)) {
throw new Exception(stringBuilder.toString()); throw new Exception(stringBuilder.toString());
} }
} }
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);
// 查询保单下的所有寿险经纪人的fortune记录
List<AclCustomerFortune> fortuneList = customerFortuneDalService.queryLifeFortuneListByOrderIds(orderIds);
if (fortuneList.size() == 0) {
return;
}
// 批量设置fortune为可发佣
fortuneList.forEach(f -> {
f.setCommissionPayoutStatus("2");
f.setCommissionPayoutAt(new Date());
f.setCommissionPayoutBy(Long.valueOf(loginId));
});
customerFortuneDalService.updateBatch(fortuneList);
} }
private PageInfo<ComeCommissionVO> queryComeCommissionListPage(QueryComeCommissionListRequestVO requestVO) { private PageInfo<ComeCommissionVO> queryComeCommissionListPage(QueryComeCommissionListRequestVO requestVO) {
......
...@@ -5,7 +5,7 @@ import com.yd.dal.entity.transaction.TransSendList; ...@@ -5,7 +5,7 @@ import com.yd.dal.entity.transaction.TransSendList;
public interface TransSendlistMapper { public interface TransSendlistMapper {
int deleteByPrimaryKey(Long id); int deleteByPrimaryKey(Long id);
TransSendList insert(TransSendList record); void insert(TransSendList record);
int insertSelective(TransSendList record); int insertSelective(TransSendList record);
......
...@@ -14,8 +14,8 @@ public class TransSendListServiceImpl implements TransSendListService { ...@@ -14,8 +14,8 @@ public class TransSendListServiceImpl implements TransSendListService {
private TransSendlistMapper transSendlistMapper; private TransSendlistMapper transSendlistMapper;
@Override @Override
public TransSendList save(TransSendList transSendList) { public void save(TransSendList transSendList) {
return transSendlistMapper.insert(transSendList); transSendlistMapper.insert(transSendList);
} }
@Override @Override
......
...@@ -12,7 +12,7 @@ public interface TransSendListService { ...@@ -12,7 +12,7 @@ public interface TransSendListService {
* @param transSendList * @param transSendList
* @return * @return
*/ */
TransSendList save(TransSendList transSendList); void save(TransSendList transSendList);
/** /**
* 按id删除对象 * 按id删除对象
* @param id * @param id
......
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