## 考核月表添加考核会员实时奖衔记录;

This commit is contained in:
cabbage 2025-07-29 16:50:38 +08:00
parent 377b64f1e8
commit e2a907f775
4 changed files with 55 additions and 19 deletions

View File

@ -254,6 +254,14 @@ public interface CuMemberAssessMapper extends BaseMapper<CuMemberAssess> {
@Param("currentSettleTableName") String currentSettleTableName, @Param("currentSettleTableName") String currentSettleTableName,
@Param("beforeMonthSettleTableName") String beforeMonthSettleTableName); @Param("beforeMonthSettleTableName") String beforeMonthSettleTableName);
/**
* 更新区域考核考核状态
*
* @param accessTableName
* @return
*/
int updateAreaAssessStatus(@Param("accessTableName") String accessTableName);
/** /**
* 更新会员区域失效 * 更新会员区域失效
* *

View File

@ -439,10 +439,9 @@ public class CuMemberAssessServiceImpl extends ServiceImpl<CuMemberAssessMapper,
// 考核时间当月最后一天2025-07-25 23:59:59往前推2个月 -- 这2个月新选的不需要处理 // 考核时间当月最后一天2025-07-25 23:59:59往前推2个月 -- 这2个月新选的不需要处理
Date assessDate = DateUtils.getEndTime(DateUtils.addMonths(currentSettleDate, -2)); Date assessDate = DateUtils.getEndTime(DateUtils.addMonths(currentSettleDate, -2));
// 本月考核本月最后一天 // 本月考核本月最后一天
String accessTableName = TableNameConstants.CU_MEMBER_ASSESS + DateUtils.getMonth(settleDate); String assessTableName = TableNameConstants.CU_MEMBER_ASSESS + DateUtils.getMonth(settleDate);
// 初始化本次考核会员数据 // 初始化本次考核会员数据
// TODO 需要处理兼容重算的处理 baseMapper.initAreaAssess(assessTableName, assessDate, currentSettleDate,
baseMapper.initAreaAssess(accessTableName, assessDate, currentSettleDate,
regionConfigMap.get(EAreaType.PROVINCE.getValue()), regionConfigMap.get(EAreaType.PROVINCE.getValue()),
regionConfigMap.get(EAreaType.CITY.getValue()), regionConfigMap.get(EAreaType.CITY.getValue()),
regionConfigMap.get(EAreaType.COUNTY.getValue())); regionConfigMap.get(EAreaType.COUNTY.getValue()));
@ -453,10 +452,13 @@ public class CuMemberAssessServiceImpl extends ServiceImpl<CuMemberAssessMapper,
String beforeMonthSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + beforeMonthPeriod; String beforeMonthSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + beforeMonthPeriod;
// 当月最后一天日结currentSettleTableName - 上月最后一天日结beforeMonthSettleTableName // 当月最后一天日结currentSettleTableName - 上月最后一天日结beforeMonthSettleTableName
// 累计算大小区当天 - 上月最后一天 = 新増业绩 // 累计算大小区当天 - 上月最后一天 = 新増业绩
baseMapper.updateAreaSmallPV(accessTableName, currentSettleTableName, beforeMonthSettleTableName); baseMapper.updateAreaSmallPV(assessTableName, currentSettleTableName, beforeMonthSettleTableName);
// 更新考核状态
baseMapper.updateAreaAssessStatus(assessTableName);
// 根据考核结果更新区域有效状态 // 根据考核结果更新区域有效状态
baseMapper.updateRetailRegionEffective(accessTableName, currentSettleDate); baseMapper.updateRetailRegionEffective(assessTableName, currentSettleDate);
} }
} }

View File

@ -34,6 +34,7 @@
assess_type NUMBER(2) not null, assess_type NUMBER(2) not null,
pk_awards NUMBER(6) default 1 not null, pk_awards NUMBER(6) default 1 not null,
assess_target NUMBER(17,6) default 0 not null, assess_target NUMBER(17,6) default 0 not null,
assess_pk_awards NUMBER(6) default 1 not null,,
is_examine NUMBER(1) default 1 not null, is_examine NUMBER(1) default 1 not null,
assess_status NUMBER(2) not null, assess_status NUMBER(2) not null,
month_balance NUMBER(17,6) default 0 not null, month_balance NUMBER(17,6) default 0 not null,
@ -532,7 +533,7 @@
when cmrr.city = 0 and cmrr.county = 0 then #{province.pkAwards} when cmrr.city = 0 and cmrr.county = 0 then #{province.pkAwards}
when cmrr.city != 0 and cmrr.county = 0 then #{city.pkAwards} when cmrr.city != 0 and cmrr.county = 0 then #{city.pkAwards}
when cmrr.city != 0 and cmrr.county != 0 then #{county.pkAwards} when cmrr.city != 0 and cmrr.county != 0 then #{county.pkAwards}
end pk_awards, end assess_pk_awards,
case case
when cmrr.city = 0 and cmrr.county = 0 then #{province.smallAssess} when cmrr.city = 0 and cmrr.county = 0 then #{province.smallAssess}
when cmrr.city != 0 and cmrr.county = 0 then #{city.smallAssess} when cmrr.city != 0 and cmrr.county = 0 then #{city.smallAssess}
@ -552,7 +553,7 @@
insert ( insert (
pk_member, pk_member,
assess_type, assess_type,
pk_awards, assess_pk_awards,
assess_target, assess_target,
assess_status, assess_status,
pk_creator, pk_creator,
@ -560,7 +561,7 @@
values ( values (
tmp.pk_member, tmp.pk_member,
tmp.assess_type, tmp.assess_type,
tmp.pk_awards, tmp.assess_pk_awards,
tmp.assess_target, tmp.assess_target,
tmp.assess_status, tmp.assess_status,
tmp.pk_creator, tmp.pk_creator,
@ -571,6 +572,7 @@
<update id="updateAreaSmallPV"> <update id="updateAreaSmallPV">
merge into ${accessTableName} cma merge into ${accessTableName} cma
using (select t.pk_member, using (select t.pk_member,
t.pk_awards,
case case
when t.a_sum_pv > t.b_sum_pv then when t.a_sum_pv > t.b_sum_pv then
t.b_sum_pv t.b_sum_pv
@ -578,11 +580,13 @@
t.a_sum_pv t.a_sum_pv
end small_pv end small_pv
from (select a.pk_member, from (select a.pk_member,
a.pk_awards,
nvl(a.a_sum_pv, 0) + nvl(a.rep_a_sum_pv, 0) - nvl(a.a_sum_pv, 0) + nvl(a.rep_a_sum_pv, 0) -
nvl(b.a_sum_pv, 0) - nvl(b.rep_a_sum_pv, 0) a_sum_pv, nvl(b.a_sum_pv, 0) - nvl(b.rep_a_sum_pv, 0) a_sum_pv,
nvl(a.b_sum_pv, 0) + nvl(a.rep_b_sum_pv, 0) - nvl(a.b_sum_pv, 0) + nvl(a.rep_b_sum_pv, 0) -
nvl(b.b_sum_pv, 0) - nvl(b.rep_b_sum_pv, 0) b_sum_pv nvl(b.b_sum_pv, 0) - nvl(b.rep_b_sum_pv, 0) b_sum_pv
from (select cms.pk_member, from (select cms.pk_member,
cms.pk_awards,
cms.a_sum_pv, cms.a_sum_pv,
cms.b_sum_pv, cms.b_sum_pv,
cms.rep_a_sum_pv, cms.rep_a_sum_pv,
@ -604,17 +608,32 @@
from ${accessTableName} cma from ${accessTableName} cma
where cma.del_flag = 0 where cma.del_flag = 0
and cma.assess_type in (6, 7, 8))) b and cma.assess_type in (6, 7, 8))) b
on a.pk_member = b.pk_member) t) tmp on a.pk_member = b.pk_member) t
on (cma.pk_member = tmp.pk_member and cma.assess_type in (6, 7, 8) and cma.del_flag = 0) ) tmp
on (cma.pk_member = tmp.pk_member and cma.assess_type in (6, 7, 8) and cma.assess_status != 1 and cma.del_flag = 0)
when matched then when matched then
update set cma.month_add = tmp.small_pv, update set cma.pk_awards = tmp.pk_awards,
cma.ASSESS_STATUS = cma.month_add = tmp.small_pv,
(case cma.assess_status = 2
when tmp.small_pv >= cma.assess_target then </update>
1
else <!-- 更新区域考核考核状态 -->
2 <update id="updateAreaAssessStatus">
end) merge into ${accessTableName} cma
using (select cma.pk_member, cma.assess_type
from ${accessTableName} cma
left join bd_awards baa
on baa.pk_id = cma.assess_pk_awards
left join bd_awards ba
on ba.pk_id = cma.pk_awards
where cma.del_flag = 0
and cma.assess_type in (6, 7, 8)
and ba.awards_value >= baa.awards_value
and cma.month_add >= cma.assess_target
) tmp
on (cma.pk_member = tmp.pk_member and cma.assess_type = tmp.assess_type)
when matched then
update set cma.assess_status = 0
</update> </update>
<!-- 更新会员区域失效 --> <!-- 更新会员区域失效 -->

View File

@ -49,7 +49,7 @@ public class CuMemberAssess extends BaseEntity {
private Integer assessType; private Integer assessType;
/** /**
* 考核奖衔 * 奖衔
*/ */
@TableField("PK_AWARDS") @TableField("PK_AWARDS")
private Integer pkAwards; private Integer pkAwards;
@ -60,6 +60,13 @@ public class CuMemberAssess extends BaseEntity {
@TableField("ASSESS_TARGET") @TableField("ASSESS_TARGET")
private BigDecimal assessTarget; private BigDecimal assessTarget;
/**
* 考核奖衔
*/
@TableField("ASSESS_PK_AWARDS")
private Integer assessPkAwards;
/** /**
* 是否免考(0=1=) * 是否免考(0=1=)
*/ */