新增历史团队工资字段
This commit is contained in:
parent
dd8e57615c
commit
273d35884d
@ -84,7 +84,7 @@ public class TeamMemberWorkQryExe {
|
||||
LocalDateTimeUtils.convert(teamMember.getCreateTime().getTime()), "yyyyMM"));
|
||||
|
||||
List<TeamBillCycle> teamBillCycles = teamBillCycleService.listByGeBillBelong(
|
||||
teamMember.getTeamId(), billBelong, 2);
|
||||
teamMember.getTeamId(), billBelong, 5);
|
||||
|
||||
if (CollectionUtils.isEmpty(teamBillCycles)) {
|
||||
return new TeamMemberWorkCO()
|
||||
@ -108,6 +108,9 @@ public class TeamMemberWorkQryExe {
|
||||
unpaidBillCycles.stream().map(TeamBillCycle::getRegion).collect(Collectors.toSet())
|
||||
);
|
||||
|
||||
BigDecimal settledAndSumSalary = teamMemberTargetService.listMemberSettledAndSumSalary(teamMember.getTeamId(), teamMember.getMemberId(), teamMember.getRole());
|
||||
|
||||
|
||||
TeamMemberWorkCO teamMemberWorkCO = new TeamMemberWorkCO()
|
||||
.setMemberProfile(userProfile)
|
||||
.setTargets(teamBillCycles.stream()
|
||||
@ -161,7 +164,8 @@ public class TeamMemberWorkQryExe {
|
||||
);
|
||||
return co;
|
||||
}).collect(Collectors.toList())
|
||||
);
|
||||
)
|
||||
.setHistorySalary(settledAndSumSalary);
|
||||
return teamMemberWorkCO;
|
||||
}
|
||||
|
||||
|
||||
@ -2,6 +2,8 @@ package com.red.circle.other.app.dto.clientobject.team;
|
||||
|
||||
import com.red.circle.framework.dto.ClientObject;
|
||||
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@ -27,4 +29,9 @@ public class TeamMemberWorkCO extends ClientObject {
|
||||
*/
|
||||
private List<TeamMemberWorkBillCO> targets;
|
||||
|
||||
/**
|
||||
* 历史工资
|
||||
*/
|
||||
private BigDecimal historySalary;
|
||||
|
||||
}
|
||||
|
||||
@ -2,10 +2,7 @@ package com.red.circle.other.infra.database.mongo.service.team.team;
|
||||
|
||||
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamMemberTarget;
|
||||
import com.red.circle.other.infra.database.mongo.dto.team.query.TeamMemberTargetQuery;
|
||||
import com.red.circle.other.inner.enums.team.TeamMemberTargetIndex;
|
||||
import com.red.circle.other.inner.enums.team.TeamMemberTargetSettlementResult;
|
||||
import com.red.circle.other.inner.enums.team.TeamMemberTargetStatus;
|
||||
import com.red.circle.other.inner.enums.team.TeamSalaryStatisticsCO;
|
||||
import com.red.circle.other.inner.enums.team.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
@ -248,4 +245,9 @@ public interface TeamMemberTargetService {
|
||||
*/
|
||||
TeamMemberTarget aggregateMonthlyTarget(Long teamId, Long userId, Integer monthlyBillBelong);
|
||||
|
||||
/**
|
||||
* 团队用户已结算的工资
|
||||
*/
|
||||
BigDecimal listMemberSettledAndSumSalary(Long teamId, Long userId, TeamMemberRole role);
|
||||
|
||||
}
|
||||
|
||||
@ -10,10 +10,7 @@ import com.red.circle.framework.mybatis.constant.PageConstant;
|
||||
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamMemberTarget;
|
||||
import com.red.circle.other.infra.database.mongo.dto.team.query.TeamMemberTargetQuery;
|
||||
import com.red.circle.other.infra.database.mongo.service.team.team.TeamMemberTargetService;
|
||||
import com.red.circle.other.inner.enums.team.TeamMemberTargetIndex;
|
||||
import com.red.circle.other.inner.enums.team.TeamMemberTargetSettlementResult;
|
||||
import com.red.circle.other.inner.enums.team.TeamMemberTargetStatus;
|
||||
import com.red.circle.other.inner.enums.team.TeamSalaryStatisticsCO;
|
||||
import com.red.circle.other.inner.enums.team.*;
|
||||
import com.red.circle.tool.core.collection.CollectionUtils;
|
||||
import com.red.circle.tool.core.date.TimestampUtils;
|
||||
import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils;
|
||||
@ -806,6 +803,28 @@ public class TeamMemberTargetServiceImpl implements TeamMemberTargetService {
|
||||
return aggregated;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal listMemberSettledAndSumSalary(Long teamId, Long userId, TeamMemberRole role) {
|
||||
Query query = new Query();
|
||||
query.addCriteria(Criteria.where("teamId").is(teamId))
|
||||
.addCriteria(Criteria.where("userId").is(userId))
|
||||
.addCriteria(Criteria.where("status").is(TeamMemberTargetStatus.CREDITED));
|
||||
|
||||
List<TeamMemberTarget> targets = mongoTemplate.find(query, TeamMemberTarget.class);
|
||||
|
||||
return targets.stream()
|
||||
.map(TeamMemberTarget::getSettlementResult)
|
||||
.filter(Objects::nonNull)
|
||||
.map(result -> {
|
||||
if (role.eq(TeamMemberRole.OWN) || role.eq(TeamMemberRole.ADMIN)) {
|
||||
return result.getTotalSalary() != null ? result.getTotalSalary() : BigDecimal.ZERO;
|
||||
} else {
|
||||
return result.getMemberSalary() != null ? result.getMemberSalary() : BigDecimal.ZERO;
|
||||
}
|
||||
})
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成月度账单标题
|
||||
* 202511 -> "2025年11月"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user