修改计算逻辑

This commit is contained in:
CYQ 2025-10-23 17:34:42 +08:00
parent 614b4fee13
commit 1acd391857

View File

@ -299,13 +299,16 @@ public class BIZ006Processor extends AbstractBusinessProcessor {
logger.warn("未找到部门 {} 的分成比例,使用默认比例", record.branchId);
}
// 计算经办人员奖励
BigDecimal jbReward = baseReward.multiply(percentage.jbPercent).setScale(SCALE, ROUNDING_MODE);
updatePerformanceSummary(performanceMap, record.jbId, record.branchId, jbReward);
// 计算营销人员奖励
if (!record.jbId.equals(record.yxId)) {
//计算分成后金额
if (record.jbId.equals(record.yxId)) {
// 同一人不分成
BigDecimal jbReward = baseReward.multiply(BigDecimal.ONE);
updatePerformanceSummary(performanceMap, record.jbId, record.branchId, jbReward);
} else {
// 不同人分成计算
BigDecimal jbReward = baseReward.multiply(percentage.jbPercent).setScale(SCALE, ROUNDING_MODE);
BigDecimal yxReward = baseReward.multiply(percentage.yxPercent).setScale(SCALE, ROUNDING_MODE);
updatePerformanceSummary(performanceMap, record.jbId, record.branchId, jbReward);
updatePerformanceSummary(performanceMap, record.yxId, record.branchId, yxReward);
}
}
@ -321,6 +324,8 @@ public class BIZ006Processor extends AbstractBusinessProcessor {
" fill1 = ? " +
"WHERE marketer_code = ? AND branch_id = ? AND record_date = ?", tableName);
//System.out.println("---更新计价>>>"+summary.branchId + "," + summary.marketerCode + "," + summary.recordCount + "," + summary.totalReward);
updatedCount += executeParameterizedSql(connection, updateSql,
String.valueOf(summary.recordCount),
summary.totalReward.toString(),
@ -366,17 +371,15 @@ public class BIZ006Processor extends AbstractBusinessProcessor {
private void updatePerformanceSummary(Map<String, PerformanceSummary> performanceMap,
String marketerCode, String branchId, BigDecimal reward) {
// 如果奖励金额为0不进行任何操作
if (reward.compareTo(BigDecimal.ZERO) == 0) {
return;
}
String key = marketerCode + "|" + branchId;
PerformanceSummary summary = performanceMap.computeIfAbsent(key,
k -> new PerformanceSummary(marketerCode, branchId));
summary.recordCount++;
summary.totalReward = summary.totalReward.add(reward);
//System.out.println("----------绩效汇总>>>"+key+","+summary.recordCount+","+summary.totalReward);
}
/**