Commit 2df7bfc8 by zhangxingmin

Merge branch 'dev' into prod

parents 6ba8e474 84319ad9
...@@ -542,24 +542,25 @@ public class ApiCommissionController { ...@@ -542,24 +542,25 @@ public class ApiCommissionController {
/** /**
* 入账记录 * 入账记录
* *
* @param commissionQueryRequest * @param pageByCommissionexpectedBizIdRequest
* @param request * @param request
* @return * @return
*/ */
@PostMapping("/pageByCommissionexpectedBizId") @PostMapping("/pageByCommissionexpectedBizId")
@Operation(summary = "入账记录") @Operation(summary = "入账记录")
public Result<Page<CommissionVO>> pageByCommissionexpectedBizId(@RequestBody CommissionQueryRequest commissionQueryRequest, public Result<Page<CommissionVO>> pageByCommissionexpectedBizId(@RequestBody PageByCommissionexpectedBizIdRequest pageByCommissionexpectedBizIdRequest,
HttpServletRequest request) { HttpServletRequest request) {
if (ObjectUtils.isEmpty(commissionQueryRequest.getCommissionExpectedBizId()) && ObjectUtils.isEmpty(commissionQueryRequest.getReconciliationYearMonth())) { if (ObjectUtils.isEmpty(pageByCommissionexpectedBizIdRequest.getCommissionExpectedBizId()) && ObjectUtils.isEmpty(pageByCommissionexpectedBizIdRequest.getReconciliationYearMonth())) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "commissionExpectedBizId、 reconciliationYearMonth 不能全部为空"); return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "commissionExpectedBizId、 reconciliationYearMonth 不能全部为空");
} }
long current = commissionQueryRequest.getPageNo(); long current = pageByCommissionexpectedBizIdRequest.getPageNo();
long size = commissionQueryRequest.getPageSize(); long size = pageByCommissionexpectedBizIdRequest.getPageSize();
// 查询列表数据 // 查询列表数据
QueryWrapper<Commission> queryWrapper = new QueryWrapper<>(); QueryWrapper<Commission> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(ObjectUtils.isNotEmpty(commissionQueryRequest.getCommissionExpectedBizId()),"commission_expected_biz_id", commissionQueryRequest.getCommissionExpectedBizId()); queryWrapper.eq(ObjectUtils.isNotEmpty(pageByCommissionexpectedBizIdRequest.getCommissionExpectedBizId()),"commission_expected_biz_id", pageByCommissionexpectedBizIdRequest.getCommissionExpectedBizId());
queryWrapper.eq(ObjectUtils.isNotEmpty(commissionQueryRequest.getReconciliationYearMonth()),"reconciliation_year_month", commissionQueryRequest.getReconciliationYearMonth()); queryWrapper.eq(ObjectUtils.isNotEmpty(pageByCommissionexpectedBizIdRequest.getReconciliationYearMonth()),"reconciliation_year_month", pageByCommissionexpectedBizIdRequest.getReconciliationYearMonth());
queryWrapper.like(StringUtils.isNotBlank(pageByCommissionexpectedBizIdRequest.getPolicyNo()), "policy_no", pageByCommissionexpectedBizIdRequest.getPolicyNo());
Page<Commission> commissionPage = commissionService.page(new Page<>(current, size), Page<Commission> commissionPage = commissionService.page(new Page<>(current, size),
queryWrapper); queryWrapper);
// 组装返回值 // 组装返回值
......
...@@ -113,6 +113,21 @@ public class ApiCommissionExpectedController { ...@@ -113,6 +113,21 @@ public class ApiCommissionExpectedController {
} }
/** /**
* 预计入账-修改状态
*
* @param commissionExpectedChangeStatusRequest
* @return
*/
@PostMapping("/change_status")
@Operation(summary = "预计入账-修改状态")
public Result<Boolean> changeStatus(@RequestBody CommissionExpectedChangeStatusRequest commissionExpectedChangeStatusRequest) {
if (commissionExpectedChangeStatusRequest == null || StringUtils.isBlank(commissionExpectedChangeStatusRequest.getCommissionExpectedBizId())) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "commissionExpectedBizId不能为空");
}
return Result.success(commissionExpectedService.changeStatus(commissionExpectedChangeStatusRequest));
}
/**
* 根据 CommissionExpectedBizId 获取CommissionExpected(封装类) * 根据 CommissionExpectedBizId 获取CommissionExpected(封装类)
* *
* @param commissionExpectedBizId 预计入账业务id * @param commissionExpectedBizId 预计入账业务id
......
...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
@Data @Data
public class ExpectedFortuneUpdateRequest { public class ExpectedFortuneUpdateRequest {
...@@ -26,14 +26,14 @@ public class ExpectedFortuneUpdateRequest { ...@@ -26,14 +26,14 @@ public class ExpectedFortuneUpdateRequest {
*/ */
@Schema(description = "出账日 (估)") @Schema(description = "出账日 (估)")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date payoutDate; private LocalDate payoutDate;
/** /**
* 出账日 (实) * 出账日 (实)
*/ */
@Schema(description = "出账日 (实)") @Schema(description = "出账日 (实)")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date actualPayoutDate; private LocalDate actualPayoutDate;
/** /**
* 出账金额 * 出账金额
...@@ -66,6 +66,18 @@ public class ExpectedFortuneUpdateRequest { ...@@ -66,6 +66,18 @@ public class ExpectedFortuneUpdateRequest {
private String fortuneType; private String fortuneType;
/** /**
* 出账期数
*/
@Schema(description = "出账期数")
private Integer fortunePeriod;
/**
* 出账总期数
*/
@Schema(description = "出账总期数")
private Integer fortuneTotalPeriod;
/**
* 币种 * 币种
*/ */
@Schema(description = "币种") @Schema(description = "币种")
......
package com.yd.csf.service.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class CommissionExpectedChangeStatusRequest implements Serializable {
/**
* 预计入账业务id
*/
@Schema(description = "预计入账业务id", requiredMode = Schema.RequiredMode.REQUIRED)
private String commissionExpectedBizId;
/**
* 入账状态
*/
@Schema(description = "入账状态 字典值: csf_expected_commission_status", requiredMode = Schema.RequiredMode.REQUIRED)
private String status;
/**
* 设置入账状态-修改理由
*/
@Schema(description = "设置入账状态-修改理由")
private String statusDesc;
private static final long serialVersionUID = 1L;
}
...@@ -5,6 +5,7 @@ import lombok.Data; ...@@ -5,6 +5,7 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date; import java.util.Date;
@Data @Data
...@@ -97,7 +98,7 @@ public class FortuneAddRequest implements Serializable { ...@@ -97,7 +98,7 @@ public class FortuneAddRequest implements Serializable {
* 出账日期 * 出账日期
*/ */
@Schema(description = "出账日期", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "出账日期", requiredMode = Schema.RequiredMode.REQUIRED)
private Date payoutDate; private LocalDate payoutDate;
/** /**
* 出账备注 * 出账备注
......
package com.yd.csf.service.dto;
import com.yd.common.dto.PageDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class PageByCommissionexpectedBizIdRequest extends PageDto implements Serializable {
/**
* 预计入账 id
*/
@Schema(description = "预计入账 id")
private String commissionExpectedBizId;
/**
* 检核年月
*/
@Schema(description = "检核年月 格式: yyyy-MM")
private String reconciliationYearMonth;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
private static final long serialVersionUID = 1L;
}
...@@ -170,7 +170,7 @@ public class Fortune implements Serializable { ...@@ -170,7 +170,7 @@ public class Fortune implements Serializable {
/** /**
* 实际出账日期 * 实际出账日期
*/ */
private Date actualPayoutDate; private LocalDate actualPayoutDate;
/** /**
* 检核人 * 检核人
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.service.dto.CommissionExpectedAddRequest; import com.yd.csf.service.dto.CommissionExpectedAddRequest;
import com.yd.csf.service.dto.CommissionExpectedChangeStatusRequest;
import com.yd.csf.service.dto.CommissionExpectedQueryRequest; import com.yd.csf.service.dto.CommissionExpectedQueryRequest;
import com.yd.csf.service.dto.CommissionExpectedUpdateRequest; import com.yd.csf.service.dto.CommissionExpectedUpdateRequest;
import com.yd.csf.service.model.CommissionExpected; import com.yd.csf.service.model.CommissionExpected;
...@@ -81,4 +82,6 @@ public interface CommissionExpectedService extends IService<CommissionExpected> ...@@ -81,4 +82,6 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
IPage<ReceivableReportVO> receivableReportPage(Page<ReceivableReportVO> page, List<Long> expectedIds); IPage<ReceivableReportVO> receivableReportPage(Page<ReceivableReportVO> page, List<Long> expectedIds);
void testExpectedCommission(String policyNo,String effectiveDate,String coolingOffEndDate) throws IOException; void testExpectedCommission(String policyNo,String effectiveDate,String coolingOffEndDate) throws IOException;
Boolean changeStatus(CommissionExpectedChangeStatusRequest commissionExpectedChangeStatusRequest);
} }
...@@ -1053,6 +1053,27 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -1053,6 +1053,27 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
} }
} }
@Override
public Boolean changeStatus(CommissionExpectedChangeStatusRequest commissionExpectedChangeStatusRequest) {
// 校验预计入账是否存在
CommissionExpected commissionExpected = getByBizId(commissionExpectedChangeStatusRequest.getCommissionExpectedBizId());
if (commissionExpected == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "预计入账不存在");
}
// 校验数据
if (StringUtils.isBlank(commissionExpectedChangeStatusRequest.getStatus())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "状态不能为空");
}
// 转换为实体类
CommissionExpected updateObj = new CommissionExpected();
BeanUtil.copyProperties(commissionExpectedChangeStatusRequest, updateObj);
updateObj.setId(commissionExpected.getId());
// 更新
return this.updateById(updateObj);
}
private Policy convertPolicy(PolicyFollow policyFollow,String effectiveDate,String coolingOffEndDate) { private Policy convertPolicy(PolicyFollow policyFollow,String effectiveDate,String coolingOffEndDate) {
Policy policy = new Policy(); Policy policy = new Policy();
BeanUtil.copyProperties(policyFollow, policy); BeanUtil.copyProperties(policyFollow, policy);
......
...@@ -306,7 +306,7 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper, ...@@ -306,7 +306,7 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
f.setCurrentPaymentRatio(BigDecimal.valueOf(100)); f.setCurrentPaymentRatio(BigDecimal.valueOf(100));
} }
f.setStatus(FortuneStatusEnum.SENT.getItemValue()); f.setStatus(FortuneStatusEnum.SENT.getItemValue());
f.setActualPayoutDate(new Date()); // f.setActualPayoutDate(new Date());
f.setUpdaterId(loginUserId.toString()); f.setUpdaterId(loginUserId.toString());
f.setUpdateTime(new Date()); f.setUpdateTime(new Date());
}); });
......
...@@ -226,10 +226,6 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -226,10 +226,6 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
fortune.setUpdaterId(loginUserId); fortune.setUpdaterId(loginUserId);
fortune.setUpdateTime(new Date()); fortune.setUpdateTime(new Date());
// 更新实际出账日期
Date actualPayoutDate = new Date();
fortune.setActualPayoutDate(actualPayoutDate);
this.updateById(fortune); this.updateById(fortune);
} }
...@@ -683,9 +679,18 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -683,9 +679,18 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
.map(FortuneAddRequest::getPolicyNo) .map(FortuneAddRequest::getPolicyNo)
.filter(StringUtils::isNotBlank).collect(Collectors.toSet()); .filter(StringUtils::isNotBlank).collect(Collectors.toSet());
// 查询保单号
Map<String, Policy> policyMap = new HashMap<>();
// 查询预计出账 // 查询预计出账
Map<String, ExpectedFortune> expectedFortuneMap = new HashMap<>(); Map<String, ExpectedFortune> expectedFortuneMap = new HashMap<>();
// 查询入账记录
Map<String, Commission> commissionByPolicyPeriod = new HashMap<>();
if (CollectionUtils.isNotEmpty(policyNoSet)) { if (CollectionUtils.isNotEmpty(policyNoSet)) {
// 查询保单号
List<Policy> policyList = policyService.lambdaQuery().in(Policy::getPolicyNo, policyNoSet).list();
policyMap = policyList.stream().collect(Collectors.toMap(Policy::getPolicyNo, Function.identity(), (oldValue, newValue) -> newValue));
// 查询预计出账
expectedFortuneMap = expectedFortuneService.lambdaQuery() expectedFortuneMap = expectedFortuneService.lambdaQuery()
.in(ExpectedFortune::getPolicyNo, policyNoSet) .in(ExpectedFortune::getPolicyNo, policyNoSet)
.list() .list()
...@@ -695,20 +700,18 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -695,20 +700,18 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
Function.identity(), Function.identity(),
(oldValue, newValue) -> newValue) (oldValue, newValue) -> newValue)
); );
// 查询入账记录
List<Commission> commissionList = commissionService.lambdaQuery().in(Commission::getPolicyNo, policyNoSet)
.list();
if (CollectionUtils.isNotEmpty(commissionList)) {
commissionByPolicyPeriod = commissionList.stream()
.collect(Collectors.toMap(
commission -> commissionService.buildPolicyPeriodKey(commission.getPolicyNo(), commission.getCommissionPeriod()),
Function.identity(),
(oldValue, newValue) -> newValue // 遇到重复时使用新值
));
}
} }
// 查询入账记录
List<Commission> commissionList = commissionService.lambdaQuery().in(Commission::getPolicyNo, policyNoSet)
.list();
Map<String, Commission> commissionByPolicyPeriod = new HashMap<>();
if (CollectionUtils.isNotEmpty(commissionList)) {
commissionByPolicyPeriod = commissionList.stream()
.collect(Collectors.toMap(
commission -> commissionService.buildPolicyPeriodKey(commission.getPolicyNo(), commission.getCommissionPeriod()),
Function.identity(),
(oldValue, newValue) -> newValue // 遇到重复时使用新值
));
}
List<Fortune> fortuneList = new ArrayList<>(); List<Fortune> fortuneList = new ArrayList<>();
List<ExpectedFortune> expectedFortuneUpdateList = new ArrayList<>(); List<ExpectedFortune> expectedFortuneUpdateList = new ArrayList<>();
...@@ -724,6 +727,9 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune> ...@@ -724,6 +727,9 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
fortune.setCurrentPaymentHkdAmount(fortune.getHkdAmount()); fortune.setCurrentPaymentHkdAmount(fortune.getHkdAmount());
if ("R".equals(fortuneAddRequest.getFortuneBizType())) { if ("R".equals(fortuneAddRequest.getFortuneBizType())) {
if (policyMap.get(fortuneAddRequest.getPolicyNo()) == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), fortuneAddRequest.getPolicyNo() + " 保单号不存在");
}
ExpectedFortune expectedFortune = expectedFortuneMap.get(fortuneAddRequest.getPolicyNo() + "_" + fortuneAddRequest.getFortunePeriod() + "_" + fortuneAddRequest.getFortuneType()); ExpectedFortune expectedFortune = expectedFortuneMap.get(fortuneAddRequest.getPolicyNo() + "_" + fortuneAddRequest.getFortunePeriod() + "_" + fortuneAddRequest.getFortuneType());
if (expectedFortune == null) { if (expectedFortune == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), fortuneAddRequest.getFortuneName() + " 预计出账不存在"); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), fortuneAddRequest.getFortuneName() + " 预计出账不存在");
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
ce.commission_period as commissionPeriod, ce.commission_period as commissionPeriod,
MAX(ce.total_period) as totalPeriod, MAX(ce.total_period) as totalPeriod,
MAX(ce.commission_date) as commissionDate, MAX(ce.commission_date) as commissionDate,
ifnull(avg(ce.commission_ratio), 0) as commissionRatio, ifnull(sum(ce.commission_ratio), 0) as commissionRatio,
ifnull(sum(ce.amount), 0) as amount, ifnull(sum(ce.amount), 0) as amount,
MAX(ce.currency) as currency, MAX(ce.currency) as currency,
ifnull(sum(ce.expected_amount), 0) as hkdAmount, ifnull(sum(ce.expected_amount), 0) as hkdAmount,
......
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