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