expose manual salary role breakdown
This commit is contained in:
parent
d0d48d71ac
commit
8460125d79
@ -86,21 +86,61 @@ public class TeamManualSalaryPaymentDTO implements Serializable {
|
||||
*/
|
||||
private BigDecimal expectedSalary;
|
||||
|
||||
/**
|
||||
* 当前账期主播应发工资.
|
||||
*/
|
||||
private BigDecimal expectedMemberSalary;
|
||||
|
||||
/**
|
||||
* 当前账期代理应发工资.
|
||||
*/
|
||||
private BigDecimal expectedAgentSalary;
|
||||
|
||||
/**
|
||||
* 待结算工资 = 当前账期应发工资 - 当前账期实收工资.
|
||||
*/
|
||||
private BigDecimal payableSalary;
|
||||
|
||||
/**
|
||||
* 主播待结算工资 = 主播应发工资 - 主播实收工资.
|
||||
*/
|
||||
private BigDecimal payableMemberSalary;
|
||||
|
||||
/**
|
||||
* 代理待结算工资 = 代理应发工资 - 代理实收工资.
|
||||
*/
|
||||
private BigDecimal payableAgentSalary;
|
||||
|
||||
/**
|
||||
* 当前账期总发放工资.
|
||||
*/
|
||||
private BigDecimal totalIssuedSalary;
|
||||
|
||||
/**
|
||||
* 当前账期主播实收工资.
|
||||
*/
|
||||
private BigDecimal memberIssuedSalary;
|
||||
|
||||
/**
|
||||
* 当前账期代理实收工资.
|
||||
*/
|
||||
private BigDecimal agentIssuedSalary;
|
||||
|
||||
/**
|
||||
* 当前账期多发工资.
|
||||
*/
|
||||
private BigDecimal overIssuedSalary;
|
||||
|
||||
/**
|
||||
* 当前账期主播多发工资.
|
||||
*/
|
||||
private BigDecimal memberOverIssuedSalary;
|
||||
|
||||
/**
|
||||
* 当前账期代理多发工资.
|
||||
*/
|
||||
private BigDecimal agentOverIssuedSalary;
|
||||
|
||||
/**
|
||||
* 当前工资余额.
|
||||
*/
|
||||
|
||||
@ -216,9 +216,17 @@ public class TeamSalaryBackServiceImpl implements TeamSalaryBackService {
|
||||
.setPolicyLevel(dto.getPolicyLevel())
|
||||
.setSatisfyLevel(dto.getSatisfyLevel())
|
||||
.setExpectedSalary(dto.getExpectedSalary())
|
||||
.setExpectedMemberSalary(dto.getExpectedMemberSalary())
|
||||
.setExpectedAgentSalary(dto.getExpectedAgentSalary())
|
||||
.setPayableSalary(dto.getPayableSalary())
|
||||
.setPayableMemberSalary(dto.getPayableMemberSalary())
|
||||
.setPayableAgentSalary(dto.getPayableAgentSalary())
|
||||
.setTotalIssuedSalary(dto.getTotalIssuedSalary())
|
||||
.setMemberIssuedSalary(dto.getMemberIssuedSalary())
|
||||
.setAgentIssuedSalary(dto.getAgentIssuedSalary())
|
||||
.setOverIssuedSalary(dto.getOverIssuedSalary())
|
||||
.setMemberOverIssuedSalary(dto.getMemberOverIssuedSalary())
|
||||
.setAgentOverIssuedSalary(dto.getAgentOverIssuedSalary())
|
||||
.setCurrentSalaryBalance(dto.getCurrentSalaryBalance())
|
||||
.setPaid(dto.getPaid());
|
||||
}
|
||||
|
||||
@ -40,9 +40,17 @@ public class TeamManualSalaryCO implements Serializable {
|
||||
private Integer policyLevel;
|
||||
private Boolean satisfyLevel;
|
||||
private BigDecimal expectedSalary;
|
||||
private BigDecimal expectedMemberSalary;
|
||||
private BigDecimal expectedAgentSalary;
|
||||
private BigDecimal payableSalary;
|
||||
private BigDecimal payableMemberSalary;
|
||||
private BigDecimal payableAgentSalary;
|
||||
private BigDecimal totalIssuedSalary;
|
||||
private BigDecimal memberIssuedSalary;
|
||||
private BigDecimal agentIssuedSalary;
|
||||
private BigDecimal overIssuedSalary;
|
||||
private BigDecimal memberOverIssuedSalary;
|
||||
private BigDecimal agentOverIssuedSalary;
|
||||
private BigDecimal currentSalaryBalance;
|
||||
private Boolean paid;
|
||||
}
|
||||
|
||||
@ -355,9 +355,17 @@ public class TeamManualSalaryPaymentClientServiceImpl implements
|
||||
List<TeamSalaryPayment> cyclePayments = listCyclePayments(salaryPaymentMap,
|
||||
target.getUserId(), billBelong);
|
||||
PaymentSummary paymentSummary = summarizePayments(cyclePayments);
|
||||
BigDecimal expectedMemberSalary = salaryValue(billTarget.getMemberSalary());
|
||||
BigDecimal expectedAgentSalary = salaryValue(billTarget.getOwnSalary());
|
||||
BigDecimal expectedSalary = expectedTotalSalary(billTarget);
|
||||
BigDecimal payableSalary = expectedSalary.subtract(paymentSummary.getTotalIssuedSalary())
|
||||
.setScale(2, RoundingMode.DOWN);
|
||||
BigDecimal payableMemberSalary = expectedMemberSalary
|
||||
.subtract(paymentSummary.getMemberIssuedSalary())
|
||||
.setScale(2, RoundingMode.DOWN);
|
||||
BigDecimal payableAgentSalary = expectedAgentSalary
|
||||
.subtract(paymentSummary.getAgentIssuedSalary())
|
||||
.setScale(2, RoundingMode.DOWN);
|
||||
boolean currentLevelSettled = areCurrentRolesSettled(cyclePayments, target.getUserId(), region,
|
||||
billTarget, payableSalary);
|
||||
List<PolicyPayment> policyPayments = buildSettlementPayments(policyManager, billTarget,
|
||||
@ -378,9 +386,17 @@ public class TeamManualSalaryPaymentClientServiceImpl implements
|
||||
.setPolicyLevel(billTarget.getLevel())
|
||||
.setSatisfyLevel(billTarget.getSatisfyLevel())
|
||||
.setExpectedSalary(expectedSalary)
|
||||
.setExpectedMemberSalary(expectedMemberSalary)
|
||||
.setExpectedAgentSalary(expectedAgentSalary)
|
||||
.setPayableSalary(payableSalary)
|
||||
.setPayableMemberSalary(payableMemberSalary)
|
||||
.setPayableAgentSalary(payableAgentSalary)
|
||||
.setTotalIssuedSalary(paymentSummary.getTotalIssuedSalary())
|
||||
.setMemberIssuedSalary(paymentSummary.getMemberIssuedSalary())
|
||||
.setAgentIssuedSalary(paymentSummary.getAgentIssuedSalary())
|
||||
.setOverIssuedSalary(paymentSummary.getOverIssuedSalary())
|
||||
.setMemberOverIssuedSalary(paymentSummary.getMemberOverIssuedSalary())
|
||||
.setAgentOverIssuedSalary(paymentSummary.getAgentOverIssuedSalary())
|
||||
.setCurrentSalaryBalance(getAccurateBalance(target.getUserId()))
|
||||
.setPaid(currentLevelSettled);
|
||||
|
||||
@ -558,8 +574,12 @@ public class TeamManualSalaryPaymentClientServiceImpl implements
|
||||
BigDecimal agentIssuedSalary = sumDetailsSalary(details, Boolean.FALSE);
|
||||
BigDecimal totalIssuedSalary = memberIssuedSalary.add(agentIssuedSalary)
|
||||
.setScale(2, RoundingMode.DOWN);
|
||||
BigDecimal memberOverIssuedSalary = getOverIssuedSalary(details, Boolean.TRUE);
|
||||
BigDecimal agentOverIssuedSalary = getOverIssuedSalary(details, Boolean.FALSE);
|
||||
BigDecimal overIssuedSalary = memberOverIssuedSalary.add(agentOverIssuedSalary)
|
||||
.setScale(2, RoundingMode.DOWN);
|
||||
return new PaymentSummary(totalIssuedSalary, memberIssuedSalary, agentIssuedSalary,
|
||||
getOverIssuedSalary(details));
|
||||
overIssuedSalary, memberOverIssuedSalary, agentOverIssuedSalary);
|
||||
}
|
||||
|
||||
private BigDecimal sumDetailsSalary(List<TeamSalaryPaymentDetails> details, Boolean anchor) {
|
||||
@ -571,11 +591,16 @@ public class TeamManualSalaryPaymentClientServiceImpl implements
|
||||
}
|
||||
|
||||
private BigDecimal getOverIssuedSalary(List<TeamSalaryPaymentDetails> details) {
|
||||
return getOverIssuedSalary(details, null);
|
||||
}
|
||||
|
||||
private BigDecimal getOverIssuedSalary(List<TeamSalaryPaymentDetails> details, Boolean anchor) {
|
||||
if (CollectionUtils.isEmpty(details)) {
|
||||
return BigDecimal.ZERO.setScale(2, RoundingMode.DOWN);
|
||||
}
|
||||
Set<String> issuedKeys = new HashSet<>();
|
||||
return details.stream()
|
||||
.filter(detail -> Objects.isNull(anchor) || Objects.equals(detail.getAnchor(), anchor))
|
||||
.sorted(Comparator.comparing(detail -> Optional.ofNullable(detail.getCreateTime())
|
||||
.orElse(new Timestamp(0))))
|
||||
.filter(detail -> !issuedKeys.add(paymentDetailsPolicyKey(detail)))
|
||||
@ -681,13 +706,18 @@ public class TeamManualSalaryPaymentClientServiceImpl implements
|
||||
private final BigDecimal memberIssuedSalary;
|
||||
private final BigDecimal agentIssuedSalary;
|
||||
private final BigDecimal overIssuedSalary;
|
||||
private final BigDecimal memberOverIssuedSalary;
|
||||
private final BigDecimal agentOverIssuedSalary;
|
||||
|
||||
private PaymentSummary(BigDecimal totalIssuedSalary, BigDecimal memberIssuedSalary,
|
||||
BigDecimal agentIssuedSalary, BigDecimal overIssuedSalary) {
|
||||
BigDecimal agentIssuedSalary, BigDecimal overIssuedSalary,
|
||||
BigDecimal memberOverIssuedSalary, BigDecimal agentOverIssuedSalary) {
|
||||
this.totalIssuedSalary = totalIssuedSalary;
|
||||
this.memberIssuedSalary = memberIssuedSalary;
|
||||
this.agentIssuedSalary = agentIssuedSalary;
|
||||
this.overIssuedSalary = overIssuedSalary;
|
||||
this.memberOverIssuedSalary = memberOverIssuedSalary;
|
||||
this.agentOverIssuedSalary = agentOverIssuedSalary;
|
||||
}
|
||||
|
||||
private BigDecimal getTotalIssuedSalary() {
|
||||
@ -705,6 +735,14 @@ public class TeamManualSalaryPaymentClientServiceImpl implements
|
||||
private BigDecimal getOverIssuedSalary() {
|
||||
return overIssuedSalary;
|
||||
}
|
||||
|
||||
private BigDecimal getMemberOverIssuedSalary() {
|
||||
return memberOverIssuedSalary;
|
||||
}
|
||||
|
||||
private BigDecimal getAgentOverIssuedSalary() {
|
||||
return agentOverIssuedSalary;
|
||||
}
|
||||
}
|
||||
|
||||
private static class ManualSalaryRow {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user