新代理政策-代理政策新增区域国家区分改造完成

This commit is contained in:
tianfeng 2026-02-03 18:59:47 +08:00
parent c2bd8860b8
commit b5eb179a10
17 changed files with 83 additions and 145 deletions

View File

@ -3,6 +3,9 @@ package com.red.circle.other.inner.model.dto.agency.agency;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import lombok.Data;
import lombok.experimental.Accessors;
@ -21,7 +24,7 @@ public class TeamBillSettleResultDTO implements Serializable {
/**
* 账单对应政策.
*/
private TeamPolicyManagerDTO policy;
private Map<String, TeamPolicyManagerDTO> policy;
/**
* 工作人数.

View File

@ -239,7 +239,7 @@ public class BdTeamQryExe {
teamMemberTargetService.mapMemberBillTarget(teamIdSet, currentBillBelong);
// 5. 查询区域政策
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionRelease(
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
billCycleMap.values().stream()
.map(TeamBillCycle::getRegion)
.collect(Collectors.toSet()));
@ -357,7 +357,7 @@ public class BdTeamQryExe {
teamMemberTargetService.mapMemberBillTarget(teamIdSet, currentBillBelong);
// 4. 查询区域政策
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionRelease(
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
billCycleMap.values().stream()
.map(TeamBillCycle::getRegion)
.collect(Collectors.toSet()));
@ -388,8 +388,8 @@ public class BdTeamQryExe {
}
List<TeamMemberTarget> targetList = teamMemberTargetMap.get(teamId);
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTarget(
targetList, policyManagerMap.get(billCycle.getRegion()));
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(
targetList, policyManagerMap);
return ownTotalSalary(memberTargets);
}

View File

@ -228,7 +228,7 @@ public class BdTeamSummaryQryExe {
teamMemberTargetService.mapMemberBillTarget(teamIdSet, currentBillBelong);
// 查询区域政策
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionRelease(
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
billCycleMap.values().stream()
.map(TeamBillCycle::getRegion)
.collect(Collectors.toSet()));
@ -262,7 +262,7 @@ public class BdTeamSummaryQryExe {
teamMemberTargetService.mapMemberBillTarget(teamIdSet, currentBillBelong);
// 4. 查询区域政策
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionRelease(
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
billCycleMap.values().stream()
.map(TeamBillCycle::getRegion)
.collect(Collectors.toSet()));
@ -293,8 +293,8 @@ public class BdTeamSummaryQryExe {
}
List<TeamMemberTarget> targetList = teamMemberTargetMap.get(teamId);
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTarget(
targetList, policyManagerMap.get(billCycle.getRegion()));
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(
targetList, policyManagerMap);
return ownTotalSalary(memberTargets);
}

View File

@ -123,7 +123,7 @@ public class TeamBdMemberBillListQryExe {
// 获取所有区域的政策配置
Map<Long, TeamBillCycle> billCycleMap = teamBillCycleService.mapByTeamIds2(
teamIdSet, currentBillBelong, TeamBillCycleStatus.UNPAID);
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionRelease(
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
billCycleMap.values().stream().map(TeamBillCycle::getRegion).collect(Collectors.toSet()));
// 4. 查询当前周期的账单
@ -284,7 +284,7 @@ public class TeamBdMemberBillListQryExe {
Map<Long, TeamBillCycle> billCycleMap = teamBillCycleService.mapByTeamIds2(
teamIdSet, currentBillBelong, TeamBillCycleStatus.UNPAID);
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionRelease(
Map<String, TeamPolicyManager> regionPolicyMap = teamPolicyManagerService.mapRegionReleaseWithCountry(
billCycleMap.values().stream().map(TeamBillCycle::getRegion).collect(Collectors.toSet()));
// 4. 查询当前周期的账单
@ -423,7 +423,7 @@ public class TeamBdMemberBillListQryExe {
}
List<TeamMemberTarget> targetList = teamMemberTargetMap.get(teamId);
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTarget(targetList, policyManagerMap.get(billCycle.getRegion()));
List<TeamBillMemberTarget> memberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(targetList, policyManagerMap);
return ownTotalSalary(memberTargets);
}

View File

@ -10,6 +10,7 @@ import com.red.circle.other.infra.common.props.PropsSendCommon;
import com.red.circle.other.infra.database.mongo.dto.team.TeamBillMemberTarget;
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamBillCycle;
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamMemberTarget;
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamPolicyManager;
import com.red.circle.other.infra.database.mongo.service.team.TeamBillCycleUtils;
import com.red.circle.other.infra.database.mongo.service.team.team.TeamBillCycleService;
import com.red.circle.other.infra.database.mongo.service.team.team.TeamMemberTargetService;
@ -18,6 +19,8 @@ import com.red.circle.other.inner.model.cmd.material.PrizeDescribeRewardCmd;
import com.red.circle.other.inner.asserts.team.TeamErrorCode;
import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.wallet.inner.model.enums.GoldOrigin;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
@ -54,8 +57,13 @@ public class TeamPolicyPropsRewardExe {
ResponseAssert.notNull(CommonErrorCode.RECEIVE_FAIL,
teamBillCycle.getSettleResult().getPolicy());
TeamBillMemberTarget billMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target,
teamBillCycle.getSettleResult().getPolicy());
Map<String, TeamPolicyManager> policyManagerMap = teamBillCycle.getSettleResult().getPolicy();
TeamPolicyManager policy = TeamBillCycleUtils.getPolicyFromMap(
policyManagerMap,
target.getRegion(),
target.getCountryCode());
TeamBillMemberTarget billMemberTarget = TeamBillCycleUtils.calculatorPolicyTarget(target,policy);
ResponseAssert.notNull(CommonErrorCode.RECEIVE_FAIL, billMemberTarget);
ResponseAssert.isTrue(CommonErrorCode.RECEIVE_FAIL,
CollectionUtils.isNotEmpty(billMemberTarget.getPropsRewards()));

View File

@ -79,7 +79,6 @@ public class BdTeamAgentListQryExe {
.setLastMonthBillDate(lastMonth)
.setUserProfile(teamUserProfileMap.get(team.getAgentId()))
.setBillBalance(getBillTotalSalary(billCycle))
.setPolicyType(Objects.nonNull(billCycle.getSettleResult()) && Objects.nonNull(billCycle.getSettleResult().getPolicy().getPolicyType()) ? billCycle.getSettleResult().getPolicy().getPolicyType() : null)
.setHostQuantity(getTeamHostQuantity(teamProfile))
.setCreateTime(team.getCreateTime());
})

View File

@ -4,13 +4,21 @@ import com.red.circle.common.business.dto.cmd.app.AppIdLongCmd;
import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.other.app.convertor.team.TeamAppConvertor;
import com.red.circle.other.app.dto.clientobject.team.TeamPolicyManagerCO;
import com.red.circle.other.app.service.user.user.UserProfileService;
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
import com.red.circle.other.domain.model.user.UserProfile;
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamPolicyManager;
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamProfile;
import com.red.circle.other.infra.database.mongo.service.team.TeamBillCycleUtils;
import com.red.circle.other.infra.database.mongo.service.team.team.TeamPolicyManagerService;
import com.red.circle.other.infra.database.mongo.service.team.team.TeamProfileService;
import com.red.circle.other.inner.asserts.team.TeamErrorCode;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.Set;
/**
* 团队最新发布政策.
*
@ -23,16 +31,18 @@ public class TeamReleasePolicyQryExe {
private final TeamAppConvertor teamAppConvertor;
private final TeamProfileService teamProfileService;
private final TeamPolicyManagerService teamPolicyManagerService;
private final UserProfileGateway userProfileGateway;
public TeamPolicyManagerCO execute(AppIdLongCmd cmd) {
TeamProfile teamProfile = teamProfileService.getById(cmd.getId());
ResponseAssert.notNull(TeamErrorCode.TEAM_NOT_FOUND, teamProfile);
return teamAppConvertor.toTeamPolicyManagerCO(
teamPolicyManagerService.getReleaseByRegionAndType(
teamProfile.getSysOrigin(),
teamProfile.getRegion())
);
UserProfile userProfile = userProfileGateway.getByUserId(cmd.getReqUserId());
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamProfile.getRegion()));
TeamPolicyManager teamPolicyManager = TeamBillCycleUtils.getPolicyFromMap(policyManagerMap, teamProfile.getRegion(), userProfile.getCountryCode());
return teamAppConvertor.toTeamPolicyManagerCO(teamPolicyManager);
}
}

View File

@ -179,48 +179,6 @@ public class GiftAnchorCountStrategy implements GiftStrategy {
// });
}
/**
* 同步团队钻石
* @param teamIds
*/
private void initProfilesDiamond(Set<Long> teamIds, List<GiftAcceptUser> giftAcceptUsers) {
List<TeamProfile> teamProfiles = teamProfileService.listStatusAvailable(teamIds);
teamProfiles.forEach(teamProfile ->{
TeamBillCycle teamBillCycle = getTeamUnpaidBill(teamProfile.getId());
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
teamBillCycle.getSysOrigin(), teamBillCycle.getRegion()
);
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
List<TeamBillMemberTarget> teamBillMemberTargets = calculatorTarget(teamMemberTargets,
regionPolicyManager);
// 实时更新修改用户账单钻石余额
if (Objects.equals(TeamPolicyTypeEnum.SALARY_DIAMOND.name(), regionPolicyManager.getPolicyType())) {
SysRegionConfig regionConfig = sysRegionConfigService.getById(teamBillCycle.getRegion());
Map<String, String> metadata = getMetadata(regionConfig);
boolean isOpenDailyAutoSalary = isOpenDailyAutoSalary(metadata);
log.warn("实时更新钻石账单周期:" + teamBillCycle.getBillBelong() + ",数据:" + teamBillMemberTargets + "\n" +
"实时更新钻石账单政策类型:" + regionPolicyManager.getPolicyType() + "\n" +
"区域账单配置" + regionConfig);
List<Long> giftAcceptUser = giftAcceptUsers.stream()
.filter(GiftAcceptUser::getAnchor)
.map(GiftAcceptUser::getAcceptUserId)
.collect(Collectors.toList());
giftAcceptUser.add(teamProfile.getOwnUserId());
if (Boolean.TRUE.equals(isOpenDailyAutoSalary)) {
// 钻石日结暂时这样写
List<TeamBillMemberTarget> teamBillMemberDayTargets = calculatorDayTarget(teamMemberTargets,
regionPolicyManager);
addDayBillDiamondBalance(teamBillMemberDayTargets, teamProfile, teamBillCycle, giftAcceptUser);
} else {
addBillDiamondBalance(teamBillMemberTargets, teamProfile, teamBillCycle, giftAcceptUser);
}
}
});
}
/**
* 插入账单数据
@ -504,23 +462,6 @@ public class GiftAnchorCountStrategy implements GiftStrategy {
.map(SysRegionConfig::getMetadata).orElseGet(CollectionUtils::newHashMap);
}
/**
* 计算政策目标工资
*/
private List<TeamBillMemberTarget> calculatorTarget(List<TeamMemberTarget> teamMemberTargets,
TeamPolicyManager regionPolicyManager) {
//2fun新增钻石政策
if (Objects.isNull(regionPolicyManager.getPolicyType()) || Objects.equals("MONEY", regionPolicyManager.getPolicyType())) {
return TeamBillCycleUtils.calculatorPolicyTarget(teamMemberTargets, regionPolicyManager);
}
return TeamBillCycleUtils.calculatorPolicyDiamondTarget(teamMemberTargets, regionPolicyManager);
}
private List<TeamBillMemberTarget> calculatorDayTarget(List<TeamMemberTarget> teamMemberTargets,
TeamPolicyManager regionPolicyManager) {
return TeamBillCycleUtils.calculatorPolicyDiamondDayTarget(teamMemberTargets, regionPolicyManager);
}
private List<TeamProfile> listTeamProfile(TeamSalaryCountEvent event) {

View File

@ -1,5 +1,6 @@
package com.red.circle.other.app.listener.team;
import cn.hutool.core.map.MapUtil;
import com.red.circle.common.business.core.enums.ReceiptType;
import com.red.circle.component.mq.MessageEventProcess;
import com.red.circle.component.mq.MessageEventProcessDescribe;
@ -130,13 +131,10 @@ public class TeamBillSettleListener implements MessageListener {
public TeamBillSettleResult processBill(TeamProfile teamProfile, TeamBillCycle teamBillCycle, Boolean isPay) {
// 获取团队区域政策
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
teamBillCycle.getSysOrigin(),
teamBillCycle.getRegion()
);
Map<String, TeamPolicyManager> regionPolicyManager = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamBillCycle.getRegion()));
log.warn("团队账单结算regionPolicyManager."+regionPolicyManager);
if (Objects.isNull(regionPolicyManager)) {
if (MapUtil.isEmpty(regionPolicyManager)) {
teamBillCycleService.updateStatus(teamBillCycle.getId(), TeamBillCycleStatus.HANG_UP,
new TeamRemark()
.setRemarkId(IdWorkerUtils.getIdStr())
@ -161,8 +159,7 @@ public class TeamBillSettleListener implements MessageListener {
return null;
}
List<TeamBillMemberTarget> teamBillMemberTargets =
TeamBillCycleUtils.calculatorPolicyTarget(teamMemberTargets, regionPolicyManager);
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(teamMemberTargets, regionPolicyManager);
log.warn("团队账单结算teamBillMemberTargets."+teamBillMemberTargets);
teamMemberTargets = teamMemberTargets.stream().filter(e -> !Boolean.TRUE.equals(e.getHistory())).toList();
@ -196,8 +193,6 @@ public class TeamBillSettleListener implements MessageListener {
.setSettleResult(settleResult)
);
if (Objects.isNull(regionPolicyManager.getPolicyType()) ||
Objects.equals(TeamPolicyTypeEnum.MONEY.name(), regionPolicyManager.getPolicyType())) {
log.warn("美金入账{}", teamProfile);
// 成员入账
teamMemberCreditedBankBalance(teamProfile
@ -210,7 +205,6 @@ public class TeamBillSettleListener implements MessageListener {
Objects.toString(teamBillCycle.getId()),
settleResult,
regionConfig);
}
return settleResult;
}

View File

@ -212,7 +212,8 @@ public class TeamExchangeSurplusTargetListener implements MessageListener {
return;
}
if (Objects.isNull(billCycle.getSettleResult().getPolicy().getPolicyType()) || Objects.equals(TeamPolicyTypeEnum.MONEY, billCycle.getSettleResult().getPolicy().getPolicyType())) {
if (Objects.isNull(billTarget.getPolicyType()) ||
Objects.equals(TeamPolicyTypeEnum.MONEY, billTarget.getPolicyType())) {
// 发送团队成员美元工资
memberBankBalancePayment(teamProfile, memberTarget, usd,
memberTarget.sumAcceptGiftValue(),
@ -259,7 +260,7 @@ public class TeamExchangeSurplusTargetListener implements MessageListener {
return;
}
if (Objects.isNull(billCycle.getSettleResult().getPolicy().getPolicyType()) || Objects.equals(TeamPolicyTypeEnum.MONEY, billCycle.getSettleResult().getPolicy().getPolicyType())) {
if (Objects.isNull(billTarget.getPolicyType()) || Objects.equals(TeamPolicyTypeEnum.MONEY, billTarget.getPolicyType())) {
// 发送团队成员工资
memberBankBalancePayment(teamProfile, memberTarget, usd, surplusTarget, exchangeRatio,
region.getMetadata());

View File

@ -33,10 +33,7 @@ import com.red.circle.other.inner.model.cmd.team.TeamBillCmd;
import com.red.circle.tool.core.collection.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import com.red.circle.tool.core.date.TimestampUtils;
@ -107,8 +104,8 @@ public class TeamSalaryCountListener implements MessageListener {
return;
}
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
teamBillCycle.getSysOrigin(), teamBillCycle.getRegion()
Map<String, TeamPolicyManager> regionPolicyManager = teamPolicyManagerService.mapRegionReleaseWithCountry(
Set.of(teamBillCycle.getRegion())
);
if (Objects.isNull(regionPolicyManager)) {
@ -120,8 +117,8 @@ public class TeamSalaryCountListener implements MessageListener {
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
List<TeamBillMemberTarget> teamBillMemberTargets = calculatorTarget(teamMemberTargets,
regionPolicyManager);
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(teamMemberTargets,
regionPolicyManager);
// 结算账单.
teamBillCycleService.updateSelective(new TeamBillCycle()
@ -269,15 +266,6 @@ public class TeamSalaryCountListener implements MessageListener {
return Objects.equals(metadata.get("openDailyAutoSalary"), "true");
}
private List<TeamBillMemberTarget> calculatorTarget(List<TeamMemberTarget> teamMemberTargets,
TeamPolicyManager regionPolicyManager) {
//2fun新增钻石政策
if (Objects.isNull(regionPolicyManager.getPolicyType()) || Objects.equals(TeamPolicyTypeEnum.MONEY.name(), regionPolicyManager.getPolicyType())) {
return TeamBillCycleUtils.calculatorPolicyTarget(teamMemberTargets, regionPolicyManager);
}
return TeamBillCycleUtils.calculatorPolicyDiamondTarget(teamMemberTargets, regionPolicyManager);
}
private List<TeamBillMemberTarget> calculatorDayTarget(List<TeamMemberTarget> teamMemberTargets,
TeamPolicyManager regionPolicyManager) {

View File

@ -237,7 +237,6 @@ public class TeamSalaryPaymentListener implements MessageListener {
// 辅助:组装钻石工资辅助模型
tmpBillMemberTarget = buildDiamondTmpBillMemberTarget(policy, billTarget);
log.warn("组装钻石工资辅助模型:{}\n{}", tmpBillMemberTarget, billCycle.getSettleResult().getPolicy().getPolicyType());
log.warn("发送团队成员钻石工资:{}\n{}\n{}\n{}\n{}\n{}", teamProfile, memberTarget, region, policy, payment, billCycle);
// 发送团队成员钻石工资

View File

@ -4,6 +4,9 @@ import com.red.circle.other.infra.database.mongo.entity.team.team.TeamPolicyMana
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import lombok.Data;
import lombok.experimental.Accessors;
@ -22,7 +25,7 @@ public class TeamBillSettleResult implements Serializable {
/**
* 账单对应政策.
*/
private TeamPolicyManager policy;
private Map<String, TeamPolicyManager> policy;
/**
* 工作人数.

View File

@ -46,11 +46,7 @@ import com.red.circle.other.inner.model.cmd.team.TeamBillByConditionQryCmd;
import com.red.circle.other.inner.model.cmd.team.TeamBillCycleBackQryCmd;
import com.red.circle.other.inner.model.cmd.team.TeamCalculatorWorkCmd;
import com.red.circle.other.inner.model.cmd.team.TeamMemberTargetResetCmd;
import com.red.circle.other.inner.model.dto.agency.agency.TeamBillAnchorStatisticsModelDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamBillCycleDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamBillSettleResultDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamCalculatorWorkResultDTO;
import com.red.circle.other.inner.model.dto.agency.agency.TeamRemark;
import com.red.circle.other.inner.model.dto.agency.agency.*;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.date.DateFormatConstant;
@ -138,17 +134,14 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
TeamBillCycle teamBillCycle = teamBillCycleService.getByBillId(param.getBillId());
ResponseAssert.notNull(TeamErrorCode.BILL_DOES_NOT_EXIST, teamBillCycle);
TeamPolicyManager teamPolicyManager = Objects.nonNull(param.getPolicyId())
? teamPolicyManagerService.getById(param.getPolicyId())
: teamPolicyManagerService.getReleaseByRegionAndType(
teamBillCycle.getSysOrigin(),
teamBillCycle.getRegion());
ResponseAssert.notNull(TeamErrorCode.NOT_FOUND_RELEASE_POLICY, teamPolicyManager);
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamBillCycle.getRegion()));
ResponseAssert.notNull(TeamErrorCode.NOT_FOUND_RELEASE_POLICY, policyManagerMap);
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTarget(
teamMemberTargets, teamPolicyManager);
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(
teamMemberTargets, policyManagerMap);
return new TeamCalculatorWorkResultDTO()
.setWorkMembers(
@ -157,7 +150,8 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
.setMemberSalary(sumMemberSalary(teamBillMemberTargets))
.setOwnSalary(ownSalary(teamBillMemberTargets))
.setTotalSalary(ownTotalSalary(teamBillMemberTargets))
.setPolicyId(teamPolicyManager.getId());
// .setPolicyId(teamPolicyManager.getId())
;
}
@Override
@ -301,12 +295,11 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
return model;
}
TeamPolicyManager teamPolicyManager = Objects.isNull(billCycle.getSettleResult())
? TeamBillCycleUtils.getPolicyFromMap(
TeamPolicyManager teamPolicyManager = TeamBillCycleUtils.getPolicyFromMap(
mapRegionPolicy,
target.getRegion(),
target.getCountryCode())
: teamInfraConvertor.toTeamPolicyManager(billCycle.getSettleResult().getPolicy());
target.getCountryCode());
if (Objects.isNull(teamPolicyManager)) {
return model;
@ -438,7 +431,7 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
// 结算账单.
vo.setSettleResult(new TeamBillSettleResultDTO()
.setPolicy(teamInfraConvertor.toTeamPolicyManagerDTO(policyManager))
// .setPolicy(teamInfraConvertor.toTeamPolicyManagerDTO(policyManager))
.setWorkMembers(countWorkMembers(teamMemberTargets))
.setFinishMembers(teamBillMemberTargets.size())
.setMemberSalary(sumMemberSalary(teamBillMemberTargets))
@ -587,7 +580,7 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
Set<String> regionIds = getRegionIds(teamBillCycles);
Map<String, TeamPolicyManager> policyManagerMap = teamPolicyManagerService
.mapRegionRelease(regionIds);
.mapRegionReleaseWithCountry(regionIds);
return teamBillCycles.stream().map(teamBillCycle -> {
@ -605,11 +598,11 @@ public class TeamBillCycleClientServiceImpl implements TeamBillCycleClientServic
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils
.calculatorPolicyTarget(teamMemberTargets, policyManager);
.calculatorPolicyTargetWithMap(teamMemberTargets, policyManagerMap);
// 结算账单.
vo.setSettleResult(new TeamBillSettleResultDTO()
.setPolicy(teamInfraConvertor.toTeamPolicyManagerDTO(policyManager))
// .setPolicy(teamInfraConvertor.toTeamPolicyManager(policyManagerMap))
.setWorkMembers(countWorkMembers(teamMemberTargets))
.setFinishMembers(teamBillMemberTargets.size())
.setMemberSalary(sumMemberSalary(teamBillMemberTargets))

View File

@ -395,8 +395,8 @@ public class TeamProfileClientServiceImpl implements TeamProfileClientService {
//teamBillCycleService.removeBatchByTeamId(List.of(oldTeamProfile.getId()));
TeamBillCycle teamBillCycle = teamBillCycleService.getLatestByTeamId(cmd.getId());
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
teamBillCycle.getSysOrigin(), teamBillCycle.getRegion()
Map<String, TeamPolicyManager> regionPolicyManager = teamPolicyManagerService.mapRegionReleaseWithCountry(
Set.of(teamBillCycle.getRegion())
);
// 修改账单区域信息
teamBillCycleService.updateSelective(new TeamBillCycle()

View File

@ -33,6 +33,8 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
@SpringBootTest(classes = OtherServiceApplication.class)
@RunWith(SpringRunner.class)
@ -107,14 +109,13 @@ public class TeamMonthBillTest {
// 获取团队区域政策
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
teamBillCycle.getSysOrigin(),
teamBillCycle.getRegion()
Map<String, TeamPolicyManager> regionPolicyManager = teamPolicyManagerService.mapRegionReleaseWithCountry(
Set.of(teamBillCycle.getRegion())
);
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
List<TeamBillMemberTarget> teamBillMemberTargets =
TeamBillCycleUtils.calculatorPolicyTarget(teamMemberTargets, regionPolicyManager);
TeamBillCycleUtils.calculatorPolicyTargetWithMap(teamMemberTargets, regionPolicyManager);
// 结算账单.
TeamBillSettleResult settleResult = new TeamBillSettleResult()

View File

@ -66,7 +66,7 @@ public class TeamSalaryExportTest {
public void exportTeamSalaryToExcel() {
try {
// 1. 获取当前账单
Integer billBelong = TeamBillCycleUtils.getCalcBillBelong();
Integer billBelong = 20260116;
log.info("当前账单: {}", billBelong);
// 2. 查询所有待结算的账单
@ -103,13 +103,11 @@ public class TeamSalaryExportTest {
List<TeamMemberTarget> teamMemberTargets = getTeamMemberTargets(teamBillCycle);
// 获取团队区域政策
TeamPolicyManager regionPolicyManager = teamPolicyManagerService.getReleaseByRegionAndType(
teamBillCycle.getSysOrigin(),
teamBillCycle.getRegion()
);
Map<String, TeamPolicyManager> regionPolicyManager =
teamPolicyManagerService.mapRegionReleaseWithCountry(Set.of(teamBillCycle.getRegion()));
// 计算成员目标
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTarget(
List<TeamBillMemberTarget> teamBillMemberTargets = TeamBillCycleUtils.calculatorPolicyTargetWithMap(
teamMemberTargets, regionPolicyManager);
// 收集成员明细数据
@ -220,7 +218,7 @@ public class TeamSalaryExportTest {
*/
private List<TeamBillCycle> queryPendingBills(Integer billBelong) {
Criteria criteria = Criteria.where("billBelong").lte(billBelong)
.and("status").is(TeamBillCycleStatus.UNPAID);
.and("_id").is(2011906992356577281L);
return mongoTemplate.find(
Query.query(criteria),