Commit fe59ea40 by jianan

新单跟进50

parent 89792737
...@@ -105,7 +105,7 @@ public class ApiCommissionExpectedController { ...@@ -105,7 +105,7 @@ public class ApiCommissionExpectedController {
* @return * @return
*/ */
@PostMapping("/list/page") @PostMapping("/list/page")
@Operation(summary = "分页获取预计来佣列表") @Operation(summary = "分页获取预计来佣列表", description = "可根据 reconciliation_company、commission_name、commission_period、amount 排序,默认按照佣金期数升序排序")
public Result<Page<CommissionExpectedVO>> listCommissionExpectedByPage(@RequestBody CommissionExpectedQueryRequest CommissionExpectedQueryRequest) { public Result<Page<CommissionExpectedVO>> listCommissionExpectedByPage(@RequestBody CommissionExpectedQueryRequest CommissionExpectedQueryRequest) {
long current = CommissionExpectedQueryRequest.getPageNo(); long current = CommissionExpectedQueryRequest.getPageNo();
long size = CommissionExpectedQueryRequest.getPageSize(); long size = CommissionExpectedQueryRequest.getPageSize();
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.common.constant.CommonConstant;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
...@@ -16,6 +17,7 @@ import com.yd.csf.service.model.CommissionExpected; ...@@ -16,6 +17,7 @@ import com.yd.csf.service.model.CommissionExpected;
import com.yd.csf.service.service.CommissionExpectedService; import com.yd.csf.service.service.CommissionExpectedService;
import com.yd.csf.service.dao.CommissionExpectedMapper; import com.yd.csf.service.dao.CommissionExpectedMapper;
import com.yd.csf.service.vo.CommissionExpectedVO; import com.yd.csf.service.vo.CommissionExpectedVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -103,8 +105,19 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -103,8 +105,19 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
String policyNo = commissionExpectedQueryRequest.getPolicyNo(); String policyNo = commissionExpectedQueryRequest.getPolicyNo();
// 精确查询 // 精确查询
queryWrapper.eq(ObjectUtils.isNotEmpty(policyNo), "policy_no", policyNo); queryWrapper.eq(ObjectUtils.isNotEmpty(policyNo), "policy_no", policyNo);
// 排序规则 // 默认排序规则
queryWrapper.orderByAsc("commission_period"); queryWrapper.orderByAsc("commission_period");
// 排序字段
String sortField = commissionExpectedQueryRequest.getSortField();
String sortOrder = commissionExpectedQueryRequest.getSortOrder();
queryWrapper.orderBy(ObjectUtils.isNotEmpty(sortField) && sortField.equals("reconciliation_company"), sortOrder.equals(CommonConstant.SORT_ORDER_ASC),
sortField);
queryWrapper.orderBy(ObjectUtils.isNotEmpty(sortField) && sortField.equals("commission_name"), sortOrder.equals(CommonConstant.SORT_ORDER_ASC),
sortField);
queryWrapper.orderBy(ObjectUtils.isNotEmpty(sortField) && sortField.equals("commission_period"), sortOrder.equals(CommonConstant.SORT_ORDER_ASC),
sortField);
queryWrapper.orderBy(ObjectUtils.isNotEmpty(sortField) && sortField.equals("amount"), sortOrder.equals(CommonConstant.SORT_ORDER_ASC),
sortField);
return queryWrapper; return queryWrapper;
} }
...@@ -132,6 +145,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -132,6 +145,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "预计来佣列表不能为空"); throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "预计来佣列表不能为空");
} }
List<CommissionExpected> addList = new ArrayList<>();
List<CommissionExpected> updateList = new ArrayList<>(); List<CommissionExpected> updateList = new ArrayList<>();
for (CommissionExpectedAddDto addDto : addDtoList) { for (CommissionExpectedAddDto addDto : addDtoList) {
CommissionExpected commissionExpected = new CommissionExpected(); CommissionExpected commissionExpected = new CommissionExpected();
...@@ -144,13 +158,21 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -144,13 +158,21 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpected.setUpdateTime(new Date()); commissionExpected.setUpdateTime(new Date());
// 设置默认状态 // 设置默认状态
commissionExpected.setStatus(CommissionExpectedStatusEnum.PENDING.getItemValue()); commissionExpected.setStatus(CommissionExpectedStatusEnum.PENDING.getItemValue());
addList.add(commissionExpected);
} else { } else {
commissionExpected.setUpdateTime(new Date()); commissionExpected.setUpdateTime(new Date());
}
updateList.add(commissionExpected); updateList.add(commissionExpected);
} }
// 新增或更新预计来佣
return this.saveOrUpdateBatch(updateList); }
// 新增预计来佣
if (CollectionUtils.isNotEmpty(addList)) {
this.saveBatch(addList);
}
if (CollectionUtils.isNotEmpty(updateList)) {
this.updateBatchById(updateList);
}
return true;
} }
@Override @Override
......
...@@ -98,12 +98,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -98,12 +98,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
} }
BeanUtils.copyProperties(commissionUpdateRequest, commission, "id", "commissionBizId"); BeanUtils.copyProperties(commissionUpdateRequest, commission, "id", "commissionBizId");
// 查询预计来佣 // 查询预计来佣
QueryWrapper<CommissionExpected> queryWrapper = new QueryWrapper<>(); CommissionExpected commissionExpected = queryByCommission(commission);
queryWrapper.eq("commission_biz_id", commissionBizId);
queryWrapper.eq("commission_name", commission.getCommissionName());
queryWrapper.eq("commission_period", commission.getCommissionPeriod());
queryWrapper.eq("commission_currency", commission.getCurrency());
CommissionExpected commissionExpected = commissionExpectedService.getOne(queryWrapper);
if (commissionExpected != null) { if (commissionExpected != null) {
// 对比预计来佣 // 对比预计来佣
compareWithExpected(commission, commissionExpected); compareWithExpected(commission, commissionExpected);
...@@ -119,11 +114,26 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -119,11 +114,26 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return this.updateById(commission); return this.updateById(commission);
} }
private CommissionExpected queryByCommission(Commission commission) {
QueryWrapper<CommissionExpected> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("policy_no", commission.getPolicyNo());
queryWrapper.eq("commission_name", commission.getCommissionName());
queryWrapper.eq("commission_period", commission.getCommissionPeriod());
queryWrapper.eq("currency", commission.getCurrency());
return commissionExpectedService.getOne(queryWrapper);
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean generateFortune(GenerateFortuneRequest generateFortuneRequest) { public Boolean generateFortune(GenerateFortuneRequest generateFortuneRequest) {
List<String> commissionBizIdList = generateFortuneRequest.getCommissionBizIdList(); List<String> commissionBizIdList = generateFortuneRequest.getCommissionBizIdList();
List<Commission> commissionList = this.list(new QueryWrapper<Commission>().in("commission_biz_id", commissionBizIdList)); List<Commission> commissionList = this.list(new QueryWrapper<Commission>().in("commission_biz_id", commissionBizIdList));
// 校验来佣记录状态
for (Commission commission : commissionList) {
if (StringUtils.equals(commission.getStatus(), CommissionStatusEnum.WAIT.getItemValue())) {
throw new BusinessException(ResultCode.FAIL.getCode(), "来佣记录为未比对,不能生成出帐");
}
}
// 获取所有保单号 // 获取所有保单号
Set<String> policyNoSet = commissionList.stream().map(Commission::getPolicyNo).collect(Collectors.toSet()); Set<String> policyNoSet = commissionList.stream().map(Commission::getPolicyNo).collect(Collectors.toSet());
...@@ -206,12 +216,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -206,12 +216,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 设置默认状态 // 设置默认状态
commission.setStatus(CommissionStatusEnum.WAIT.getItemValue()); commission.setStatus(CommissionStatusEnum.WAIT.getItemValue());
// 查询预计来佣 // 查询预计来佣
QueryWrapper<CommissionExpected> queryWrapper = new QueryWrapper<>(); CommissionExpected commissionExpected = queryByCommission(commission);
queryWrapper.eq("commission_biz_id", commissionBizId);
queryWrapper.eq("commission_name", commissionAddRequest.getCommissionName());
queryWrapper.eq("commission_period", commissionAddRequest.getCommissionPeriod());
queryWrapper.eq("commission_currency", commissionAddRequest.getCurrency());
CommissionExpected commissionExpected = commissionExpectedService.getOne(queryWrapper);
if (commissionExpected != null) { if (commissionExpected != null) {
// 对比预计来佣 // 对比预计来佣
compareWithExpected(commission, commissionExpected); compareWithExpected(commission, commissionExpected);
......
...@@ -134,6 +134,17 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -134,6 +134,17 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
List<String> fortuneBizIdList = fortuneDownloadRequest.getFortuneBizIdList(); List<String> fortuneBizIdList = fortuneDownloadRequest.getFortuneBizIdList();
if (CollUtil.isNotEmpty(fortuneBizIdList)) { if (CollUtil.isNotEmpty(fortuneBizIdList)) {
List<Fortune> fortuneList = this.list(new QueryWrapper<Fortune>().in("fortune_biz_id", fortuneBizIdList)); List<Fortune> fortuneList = this.list(new QueryWrapper<Fortune>().in("fortune_biz_id", fortuneBizIdList));
// 校验发佣记录状态
StringBuilder validateMsg = new StringBuilder();
for (Fortune fortune : fortuneList) {
if (StringUtils.equals(fortune.getStatus(), FortuneStatusEnum.WAIT.getItemValue())) {
validateMsg.append(fortune.getPolicyNo()).append("-").append(fortune.getBroker()).append("为待出账,不能生成出账记录; ");
}
}
if (StringUtils.isNotBlank(validateMsg.toString())) {
throw new BusinessException(ResultCode.FAIL.getCode(), validateMsg.toString());
}
if (CollUtil.isNotEmpty(fortuneList)) { if (CollUtil.isNotEmpty(fortuneList)) {
// 按人和币种分组 // 按人和币种分组
Map<String, List<Fortune>> fortuneMap = fortuneList.stream().collect(Collectors.groupingBy(fortune -> fortune.getBroker() + "_" + fortune.getCurrency())); Map<String, List<Fortune>> fortuneMap = fortuneList.stream().collect(Collectors.groupingBy(fortune -> fortune.getBroker() + "_" + fortune.getCurrency()));
......
...@@ -457,21 +457,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -457,21 +457,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
if (CollUtil.isEmpty(policyFollowList)) { if (CollUtil.isEmpty(policyFollowList)) {
return policyFollowDetailVOPage; return policyFollowDetailVOPage;
} }
// 处理 nextStatusList 字段
policyFollowList.forEach(policyFollow -> {
Object nextStatusList = policyFollow.getNextStatusList();
if (nextStatusList != null && !nextStatusList.toString().isEmpty()) {
String[] statusArr = nextStatusList.toString().split(",");
List<Map<String, String>> statusMapList = new ArrayList<>();
for (String status : statusArr) {
Map<String, String> map = new HashMap<>();
map.put("itemLabel", PolicyFollowStatusEnum.getEnumByValue(status).getItemLabel());
map.put("itemValue", status);
statusMapList.add(map);
}
policyFollow.setNextStatusList(statusMapList);
}
});
// 对象列表 => 封装对象列表 // 对象列表 => 封装对象列表
List<PolicyFollowDetailVO> policyFollowDetailVOList = policyFollowList.stream().map(PolicyFollowDetailVO::objToVo).collect(Collectors.toList()); List<PolicyFollowDetailVO> policyFollowDetailVOList = policyFollowList.stream().map(PolicyFollowDetailVO::objToVo).collect(Collectors.toList());
......
package com.yd.csf.service.vo; package com.yd.csf.service.vo;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.yd.csf.service.enums.PolicyFollowStatusEnum;
import com.yd.csf.service.model.PolicyBroker; import com.yd.csf.service.model.PolicyBroker;
import com.yd.csf.service.model.PolicyFollow; import com.yd.csf.service.model.PolicyFollow;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
...@@ -9,8 +10,7 @@ import org.springframework.beans.BeanUtils; ...@@ -9,8 +10,7 @@ import org.springframework.beans.BeanUtils;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.*;
import java.util.List;
/** /**
* 新单跟进 DetailVO * 新单跟进 DetailVO
...@@ -276,6 +276,19 @@ public class PolicyFollowDetailVO implements Serializable { ...@@ -276,6 +276,19 @@ public class PolicyFollowDetailVO implements Serializable {
PolicyFollowDetailVO.setPolicyBizId(policyFollow.getPolicyBizId()); PolicyFollowDetailVO.setPolicyBizId(policyFollow.getPolicyBizId());
// 转换PolicyFollow // 转换PolicyFollow
BeanUtils.copyProperties(policyFollow, PolicyFollowDetailVO); BeanUtils.copyProperties(policyFollow, PolicyFollowDetailVO);
// 处理 nextStatusList 字段
Object nextStatusList = policyFollow.getNextStatusList();
if (nextStatusList != null && !nextStatusList.toString().isEmpty()) {
String[] statusArr = nextStatusList.toString().split(",");
List<Map<String, String>> statusMapList = new ArrayList<>();
for (String status : statusArr) {
Map<String, String> map = new HashMap<>();
map.put("itemLabel", PolicyFollowStatusEnum.getEnumByValue(status).getItemLabel());
map.put("itemValue", status);
statusMapList.add(map);
}
PolicyFollowDetailVO.setNextStatusList(statusMapList);
}
return PolicyFollowDetailVO; return PolicyFollowDetailVO;
} }
......
...@@ -3,6 +3,7 @@ package com.yd.csf.service.vo; ...@@ -3,6 +3,7 @@ package com.yd.csf.service.vo;
import com.yd.csf.service.dto.PolicyFollowUpdateDto; import com.yd.csf.service.dto.PolicyFollowUpdateDto;
import com.yd.csf.service.dto.PolicyMailing; import com.yd.csf.service.dto.PolicyMailing;
import com.yd.csf.service.dto.VerifyPolicyInfo; import com.yd.csf.service.dto.VerifyPolicyInfo;
import com.yd.csf.service.enums.PolicyFollowStatusEnum;
import com.yd.csf.service.model.PolicyBroker; import com.yd.csf.service.model.PolicyBroker;
import com.yd.csf.service.model.PolicyFollow; import com.yd.csf.service.model.PolicyFollow;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
...@@ -10,12 +11,10 @@ import lombok.Data; ...@@ -10,12 +11,10 @@ import lombok.Data;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import java.io.Serializable; import java.io.Serializable;
import java.util.Arrays; import java.util.*;
import java.util.List;
/** /**
* 新单跟进视图 * 新单跟进视图
*
*/ */
@Data @Data
public class PolicyFollowVO implements Serializable { public class PolicyFollowVO implements Serializable {
...@@ -82,8 +81,18 @@ public class PolicyFollowVO implements Serializable { ...@@ -82,8 +81,18 @@ public class PolicyFollowVO implements Serializable {
BeanUtils.copyProperties(policyFollow, policyFollowUpdateDto); BeanUtils.copyProperties(policyFollow, policyFollowUpdateDto);
policyFollowVO.setPolicyFollowUpdateDto(policyFollowUpdateDto); policyFollowVO.setPolicyFollowUpdateDto(policyFollowUpdateDto);
if (policyFollow.getNextStatusList() != null) { // 处理 nextStatusList 字段
policyFollowVO.setNextStatusList(policyFollow.getNextStatusList()); Object nextStatusList = policyFollow.getNextStatusList();
if (nextStatusList != null && !nextStatusList.toString().isEmpty()) {
String[] statusArr = nextStatusList.toString().split(",");
List<Map<String, String>> statusMapList = new ArrayList<>();
for (String status : statusArr) {
Map<String, String> map = new HashMap<>();
map.put("itemLabel", PolicyFollowStatusEnum.getEnumByValue(status).getItemLabel());
map.put("itemValue", status);
statusMapList.add(map);
}
policyFollowVO.setNextStatusList(statusMapList);
} }
VerifyPolicyInfo verifyPolicyInfo = new VerifyPolicyInfo(); VerifyPolicyInfo verifyPolicyInfo = new VerifyPolicyInfo();
......
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