Merge remote-tracking branch 'origin/bd_dev' into bd_dev
This commit is contained in:
commit
e251567cb3
|
@ -2,16 +2,16 @@ package com.hzs.system.base;
|
||||||
|
|
||||||
import com.hzs.common.core.domain.R;
|
import com.hzs.common.core.domain.R;
|
||||||
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
||||||
|
import com.hzs.common.domain.system.config.ext.BdAwardsRegionConfigExt;
|
||||||
import com.hzs.system.base.dto.ApprovalPushInfoDTO;
|
import com.hzs.system.base.dto.ApprovalPushInfoDTO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface IBdAwardsRegionConfigServiceApi {
|
public interface IBdAwardsRegionConfigServiceApi {
|
||||||
/**
|
|
||||||
* 审批推送站内信信息
|
|
||||||
*
|
|
||||||
* @param approvalPushInfoDTOList 推送信息DTO
|
|
||||||
* @return R
|
|
||||||
*/
|
|
||||||
R<List<BdAwardsRegionConfig>> getMatchList(Integer value);
|
R<List<BdAwardsRegionConfig>> getMatchList(Integer value);
|
||||||
|
|
||||||
|
R<Map<Integer, BdAwardsRegionConfigExt>> getAwardsRegionConfig();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,8 +85,6 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
|
||||||
createMonthTreeTableName(date);
|
createMonthTreeTableName(date);
|
||||||
// 创建月表业绩记录表(cu_member_achieve)
|
// 创建月表业绩记录表(cu_member_achieve)
|
||||||
iCuMemberAchieveService.createCuMemberAchieve(date);
|
iCuMemberAchieveService.createCuMemberAchieve(date);
|
||||||
// 创建考核月表(cu_member_assess)
|
|
||||||
iCuMemberAssessService.createCuMemberAssessMonth(date);
|
|
||||||
|
|
||||||
// 创建秒接表,秒结表只需要表结构,跟日表一模一样,秒结表期间是date+1期间
|
// 创建秒接表,秒结表只需要表结构,跟日表一模一样,秒结表期间是date+1期间
|
||||||
Date tomorrowDate = DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.parseStringToDate(date));
|
Date tomorrowDate = DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.parseStringToDate(date));
|
||||||
|
|
|
@ -918,7 +918,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
|
||||||
if (null != targetMemberSettleExt) {
|
if (null != targetMemberSettleExt) {
|
||||||
// 处理区域收益
|
// 处理区域收益
|
||||||
this.handleAreaBonus(saOrderExt, sourceMemberSettleExt, targetMemberSettleExt, period, bonusConfigDTO, regionAreaConfigMap,
|
this.handleAreaBonus(saOrderExt, sourceMemberSettleExt, targetMemberSettleExt, period, bonusConfigDTO, regionAreaConfigMap,
|
||||||
cuMemberBonusMap, cuMemberBonusRangeList, EAreaType.CITY, beforeBonusCal);
|
cuMemberBonusMap, cuMemberBonusRangeList, EAreaType.PROVINCE, beforeBonusCal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -403,6 +403,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
@Override
|
@Override
|
||||||
public void calculateCuMemberBonus(String settleDate, List<SaOrderExt> saOrderExtList) {
|
public void calculateCuMemberBonus(String settleDate, List<SaOrderExt> saOrderExtList) {
|
||||||
try {
|
try {
|
||||||
|
Date currentSettleDate = DateUtils.parseStringToDate(settleDate);
|
||||||
// 今天期间(settleDate - 年月日)
|
// 今天期间(settleDate - 年月日)
|
||||||
Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId();
|
||||||
// 会员结算日表(cu_member_settle) + 期间
|
// 会员结算日表(cu_member_settle) + 期间
|
||||||
|
@ -433,9 +434,9 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
cuMemberAchieveLogList.forEach(cuMemberAchieveLog -> iCuMemberAchieveService.updateCuMemberSettleAchieveBySpecialBus(currentSettleTableName, period, cuMemberAchieveLog.getPkId()));
|
cuMemberAchieveLogList.forEach(cuMemberAchieveLog -> iCuMemberAchieveService.updateCuMemberSettleAchieveBySpecialBus(currentSettleTableName, period, cuMemberAchieveLog.getPkId()));
|
||||||
}
|
}
|
||||||
// 注水到期回退
|
// 注水到期回退
|
||||||
iCuMemberAchieveService.mergeCuMemberSettleByAchieveLogByDate(currentSettleTableName, DateUtils.parseStringToDate(settleDate));
|
iCuMemberAchieveService.mergeCuMemberSettleByAchieveLogByDate(currentSettleTableName, currentSettleDate);
|
||||||
// 判断特殊业务是否有到期日期,有到期的需要使用真实业绩,昨天的期间真实更新当前的
|
// 判断特殊业务是否有到期日期,有到期的需要使用真实业绩,昨天的期间真实更新当前的
|
||||||
iCuMemberAchieveService.updateCuMemberSettleAchieveByDueDate(currentSettleTableName, yesterdayTableName, DateUtils.parseStringToDate(settleDate));
|
iCuMemberAchieveService.updateCuMemberSettleAchieveByDueDate(currentSettleTableName, yesterdayTableName, currentSettleDate);
|
||||||
|
|
||||||
// 2025.05.14 新拓展处理在2025.06.01之前还是走原来的1:1对碰,之后走1:2对碰
|
// 2025.05.14 新拓展处理在2025.06.01之前还是走原来的1:1对碰,之后走1:2对碰
|
||||||
// true 走新逻辑(首购+复购 合并计算)
|
// true 走新逻辑(首购+复购 合并计算)
|
||||||
|
@ -487,7 +488,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
||||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||||
// 获取所有区域配置(key:省-市-区,value:会员ID)
|
// 获取所有区域配置(key:省-市-区,value:会员ID)
|
||||||
Map<String, Long> memberRegionMap = iMemberServiceApi.memberRegionMap(DateUtils.getEndTime(DateUtils.parseStringToDate(settleDate))).getData();
|
Map<String, Long> memberRegionMap = iMemberServiceApi.memberRegionMap(DateUtils.getEndTime(currentSettleDate)).getData();
|
||||||
|
|
||||||
//*********************************计算奖衔 更新奖衔*********************************/
|
//*********************************计算奖衔 更新奖衔*********************************/
|
||||||
// 开始计算奖衔 计算奖衔 更新奖衔(根据最新业绩查询变动且业绩满足下一等级,根据等级判断是否满足考核,安置考核或血缘考核)
|
// 开始计算奖衔 计算奖衔 更新奖衔(根据最新业绩查询变动且业绩满足下一等级,根据等级判断是否满足考核,安置考核或血缘考核)
|
||||||
|
@ -505,8 +506,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
iCuMemberTreeService.updateCuMemberSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
iCuMemberTreeService.updateCuMemberSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||||
// 实际处理数据方法(计算奖衔)
|
// 实际处理数据方法(计算奖衔)
|
||||||
iCuMemberAwardsService.calculateCuMemberAwards(settleDate, awardsMap, currentSettleTableName);
|
iCuMemberAwardsService.calculateCuMemberAwards(settleDate, awardsMap, currentSettleTableName);
|
||||||
// 2025.04.23 调整需求,乐学升级不需要处理结算套数处理 -- new 乐学,处理V3 V4的升级
|
|
||||||
// iCuMemberLevelService.calculateCuMemberGrade(settleDate, currentSettleTableName);
|
|
||||||
// 计算完奖衔回退金额、业绩,最终根据新增进行回写
|
// 计算完奖衔回退金额、业绩,最终根据新增进行回写
|
||||||
iCuMemberTreeService.updateCuMemberBackSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
iCuMemberTreeService.updateCuMemberBackSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||||
|
|
||||||
|
@ -558,14 +557,14 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
iCuMemberTreeService.insertCuMemberTreeBySettleDate(settleDate, currentSettleTableName, period);
|
iCuMemberTreeService.insertCuMemberTreeBySettleDate(settleDate, currentSettleTableName, period);
|
||||||
|
|
||||||
// 计算完当日奖金后,处理下月表初始化
|
// 计算完当日奖金后,处理下月表初始化
|
||||||
Date currentDate = DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.parseStringToDate(settleDate));
|
Date currentAfterDate = DateUtils.afterDate(1, ChronoUnit.DAYS, currentSettleDate);
|
||||||
// 结算日期的后一天
|
// 结算日期的后一天
|
||||||
String afterDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, currentDate);
|
String afterDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, currentAfterDate);
|
||||||
if (afterDate.endsWith("01")) {
|
if (afterDate.endsWith("01")) {
|
||||||
// new 不是月奖衔,每月初不更新(月度级差奖衔需要去掉)
|
// new 不是月奖衔,每月初不更新(月度级差奖衔需要去掉)
|
||||||
// String rangeTableName = TableNameConstants.CU_MEMBER_RANGE + period;
|
// String rangeTableName = TableNameConstants.CU_MEMBER_RANGE + period;
|
||||||
// // 月第一天日期
|
// // 月第一天日期
|
||||||
// String monthFirstDate = DateUtils.currentMonthFirstDateStr(DateUtils.parseStringToDate(settleDate));
|
// String monthFirstDate = DateUtils.currentMonthFirstDateStr(currentSettleDate);
|
||||||
// // 月第一天期数
|
// // 月第一天期数
|
||||||
// Integer startPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(monthFirstDate).getPkId();
|
// Integer startPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(monthFirstDate).getPkId();
|
||||||
// // 更新奖衔,根据新结算的奖衔
|
// // 更新奖衔,根据新结算的奖衔
|
||||||
|
@ -586,9 +585,14 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||||
iCuMemberTreeService.createCuMemberTreeParentIndex(monthTableName);
|
iCuMemberTreeService.createCuMemberTreeParentIndex(monthTableName);
|
||||||
iCuMemberTreeService.createCuMemberTreePlaceIndex(monthTableName);
|
iCuMemberTreeService.createCuMemberTreePlaceIndex(monthTableName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 创建考核月表(cu_member_assess)
|
||||||
|
iCuMemberAssessService.createCuMemberAssessMonth(afterDate);
|
||||||
|
// TODO 区域考核,当月、次月免考
|
||||||
|
iCuMemberAssessService.initAreaMemberAssess(settleDate, currentSettleDate, currentSettleTableName);
|
||||||
}
|
}
|
||||||
// 奖金计算结束,统计拨比、业绩、4-N拨比
|
// 奖金计算结束,统计拨比、业绩、4-N拨比
|
||||||
iCuBonusExpandService.updateCuBonusExpandRatio(BonusExpandParam.builder().settleDate(DateUtils.parseStringToDate(settleDate)).build(), "cu_member_bonus");
|
iCuBonusExpandService.updateCuBonusExpandRatio(BonusExpandParam.builder().settleDate(currentSettleDate).build(), "cu_member_bonus");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.hzs.common.domain.member.detail.CuMemberAssess;
|
import com.hzs.common.domain.member.detail.CuMemberAssess;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberAssessExt;
|
import com.hzs.common.domain.member.ext.CuMemberAssessExt;
|
||||||
import com.hzs.bonus.detail.vo.CuMemberAssessVO;
|
import com.hzs.bonus.detail.vo.CuMemberAssessVO;
|
||||||
|
import com.hzs.common.domain.system.config.ext.BdAwardsRegionConfigExt;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -226,4 +227,41 @@ public interface CuMemberAssessMapper extends BaseMapper<CuMemberAssess> {
|
||||||
@Param("startDate") Date startDate,
|
@Param("startDate") Date startDate,
|
||||||
@Param("endDate") Date endDate);
|
@Param("endDate") Date endDate);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化区域考核数据
|
||||||
|
*
|
||||||
|
* @param accessTableName
|
||||||
|
* @param assessDate
|
||||||
|
* @param currentSettleDate
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int initAreaAssess(@Param("accessTableName") String accessTableName,
|
||||||
|
@Param("assessDate") Date assessDate,
|
||||||
|
@Param("currentSettleDate") Date currentSettleDate,
|
||||||
|
@Param("province") BdAwardsRegionConfigExt province,
|
||||||
|
@Param("city") BdAwardsRegionConfigExt city,
|
||||||
|
@Param("county") BdAwardsRegionConfigExt county);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新区域考核月度业绩
|
||||||
|
*
|
||||||
|
* @param accessTableName
|
||||||
|
* @param currentSettleTableName
|
||||||
|
* @param beforeMonthSettleTableName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int updateAreaSmallPV(@Param("accessTableName") String accessTableName,
|
||||||
|
@Param("currentSettleTableName") String currentSettleTableName,
|
||||||
|
@Param("beforeMonthSettleTableName") String beforeMonthSettleTableName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新会员区域失效
|
||||||
|
*
|
||||||
|
* @param accessTableName
|
||||||
|
* @param currentSettleDate
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int updateRetailRegionEffective(@Param("accessTableName") String accessTableName,
|
||||||
|
@Param("currentSettleDate") Date currentSettleDate);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,4 +94,14 @@ public interface ICuMemberAssessService extends IService<CuMemberAssess> {
|
||||||
*/
|
*/
|
||||||
void initMemberAssess(String settleDate, String currentSettleTableName);
|
void initMemberAssess(String settleDate, String currentSettleTableName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域收益考核
|
||||||
|
*
|
||||||
|
* @param settleDate 结算日期(本月最后一天)
|
||||||
|
* @param currentSettleDate 结算日期(本月最后一天)
|
||||||
|
* @param currentSettleTableName 今天日结表(本月最后一天)
|
||||||
|
*/
|
||||||
|
void initAreaMemberAssess(String settleDate, Date currentSettleDate, String currentSettleTableName);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,9 @@ import com.hzs.common.domain.member.detail.CuMemberAssess;
|
||||||
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||||
import com.hzs.bonus.detail.mapper.CuMemberAssessMapper;
|
import com.hzs.bonus.detail.mapper.CuMemberAssessMapper;
|
||||||
import com.hzs.bonus.detail.vo.CuMemberAssessVO;
|
import com.hzs.bonus.detail.vo.CuMemberAssessVO;
|
||||||
|
import com.hzs.common.domain.system.config.ext.BdAwardsRegionConfigExt;
|
||||||
|
import com.hzs.system.base.IBdAwardsRegionConfigServiceApi;
|
||||||
|
import org.apache.dubbo.config.annotation.DubboReference;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
@ -39,6 +42,8 @@ public class CuMemberAssessServiceImpl extends ServiceImpl<CuMemberAssessMapper,
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||||
|
@DubboReference
|
||||||
|
IBdAwardsRegionConfigServiceApi iBdAwardsRegionConfigServiceApi;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -424,4 +429,34 @@ public class CuMemberAssessServiceImpl extends ServiceImpl<CuMemberAssessMapper,
|
||||||
iCuMemberTreeService.updateCuMemberSettlePointAssess(currentSettleTableName, assessTableName);
|
iCuMemberTreeService.updateCuMemberSettlePointAssess(currentSettleTableName, assessTableName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initAreaMemberAssess(String settleDate, Date currentSettleDate, String currentSettleTableName) {
|
||||||
|
// 区域考核,当月、次月免考
|
||||||
|
|
||||||
|
// 查询区域省、市、区配置
|
||||||
|
Map<Integer, BdAwardsRegionConfigExt> regionConfigMap = iBdAwardsRegionConfigServiceApi.getAwardsRegionConfig().getData();
|
||||||
|
|
||||||
|
// 考核时间,当月最后一天(2025-07-25 23:59:59),往前推2个月 -- 这2个月新选的不需要处理
|
||||||
|
Date assessDate = DateUtils.getEndTime(DateUtils.addMonths(currentSettleDate, -2));
|
||||||
|
// 本月考核(本月最后一天)
|
||||||
|
String accessTableName = TableNameConstants.CU_MEMBER_ASSESS + DateUtils.getMonth(settleDate);
|
||||||
|
// 初始化本次考核会员数据
|
||||||
|
// TODO 需要处理兼容重算的处理
|
||||||
|
baseMapper.initAreaAssess(accessTableName, assessDate, currentSettleDate,
|
||||||
|
regionConfigMap.get(EAreaType.PROVINCE.getValue()),
|
||||||
|
regionConfigMap.get(EAreaType.CITY.getValue()),
|
||||||
|
regionConfigMap.get(EAreaType.COUNTY.getValue()));
|
||||||
|
|
||||||
|
// 上月日结表(上月最后一天日结表)
|
||||||
|
Integer beforeMonthPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(DateUtils.beforeMonthLastDateStr(currentSettleDate)).getPkId();
|
||||||
|
// 会员结算日表(cu_member_settle) + 期间
|
||||||
|
String beforeMonthSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + beforeMonthPeriod;
|
||||||
|
// 当月最后一天日结(currentSettleTableName) - 上月最后一天日结(beforeMonthSettleTableName)
|
||||||
|
// 累计算大小区,当天 - 上月最后一天 = 新増业绩
|
||||||
|
baseMapper.updateAreaSmallPV(accessTableName, currentSettleTableName, beforeMonthSettleTableName);
|
||||||
|
|
||||||
|
// 根据考核结果,更新区域有效状态
|
||||||
|
baseMapper.updateRetailRegionEffective(accessTableName, currentSettleDate);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -519,4 +519,128 @@
|
||||||
values (tmp.pk_member, 5, 1, 0, tmp.pk_member, trunc(tmp.pay_time), #{endDate})
|
values (tmp.pk_member, 5, 1, 0, tmp.pk_member, trunc(tmp.pay_time), #{endDate})
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<!-- 初始化区域考核数据 -->
|
||||||
|
<insert id="initAreaAssess">
|
||||||
|
merge into ${accessTableName} cma
|
||||||
|
using (select cmrr.pk_member,
|
||||||
|
case
|
||||||
|
when cmrr.city = 0 and cmrr.county = 0 then 6
|
||||||
|
when cmrr.city != 0 and cmrr.county = 0 then 7
|
||||||
|
when cmrr.city != 0 and cmrr.county != 0 then 8
|
||||||
|
end assess_type,
|
||||||
|
case
|
||||||
|
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 #{county.pkAwards}
|
||||||
|
end pk_awards,
|
||||||
|
case
|
||||||
|
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 #{county.smallAssess}
|
||||||
|
end assess_target,
|
||||||
|
case
|
||||||
|
when #{assessDate} >= cmrr.creation_time then 2
|
||||||
|
else 1
|
||||||
|
end assess_status,
|
||||||
|
100000000 pk_creator,
|
||||||
|
#{currentSettleDate} end_date
|
||||||
|
from cu_member_retail_region cmrr
|
||||||
|
where cmrr.del_flag = 0
|
||||||
|
and cmrr.effective = 0) tmp
|
||||||
|
on (cma.pk_member = tmp.pk_member and cma.assess_type = tmp.assess_type and cma.del_flag = 0)
|
||||||
|
when not matched then
|
||||||
|
insert (
|
||||||
|
pk_member,
|
||||||
|
assess_type,
|
||||||
|
pk_awards,
|
||||||
|
assess_target,
|
||||||
|
assess_status,
|
||||||
|
pk_creator,
|
||||||
|
end_date)
|
||||||
|
values (
|
||||||
|
tmp.pk_member,
|
||||||
|
tmp.assess_type,
|
||||||
|
tmp.pk_awards,
|
||||||
|
tmp.assess_target,
|
||||||
|
tmp.assess_status,
|
||||||
|
tmp.pk_creator,
|
||||||
|
tmp.end_date)
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<!-- 更新区域考核月度业绩 -->
|
||||||
|
<update id="updateAreaSmallPV">
|
||||||
|
merge into ${accessTableName} cma
|
||||||
|
using (select t.pk_member,
|
||||||
|
case
|
||||||
|
when t.a_sum_pv > t.b_sum_pv then
|
||||||
|
t.b_sum_pv
|
||||||
|
else
|
||||||
|
t.a_sum_pv
|
||||||
|
end small_pv
|
||||||
|
from (select a.pk_member,
|
||||||
|
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(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
|
||||||
|
from (select cms.pk_member,
|
||||||
|
cms.a_sum_pv,
|
||||||
|
cms.b_sum_pv,
|
||||||
|
cms.rep_a_sum_pv,
|
||||||
|
cms.rep_b_sum_pv
|
||||||
|
from ${currentSettleTableName} cms
|
||||||
|
where cms.pk_member in
|
||||||
|
(select cma.pk_member
|
||||||
|
from ${accessTableName} cma
|
||||||
|
where cma.del_flag = 0
|
||||||
|
and cma.assess_type in (6, 7, 8))) a
|
||||||
|
left join (select cms.pk_member,
|
||||||
|
cms.a_sum_pv,
|
||||||
|
cms.b_sum_pv,
|
||||||
|
cms.rep_a_sum_pv,
|
||||||
|
cms.rep_b_sum_pv
|
||||||
|
from ${beforeMonthSettleTableName} cms
|
||||||
|
where cms.pk_member in
|
||||||
|
(select cma.pk_member
|
||||||
|
from ${accessTableName} cma
|
||||||
|
where cma.del_flag = 0
|
||||||
|
and cma.assess_type in (6, 7, 8))) b
|
||||||
|
on a.pk_member = b.pk_member) t) tmp
|
||||||
|
on (cma.pk_member = tmp.pk_member and cma.assess_type in (6, 7, 8) and cma.del_flag = 0)
|
||||||
|
when matched then
|
||||||
|
update set cma.month_add = tmp.small_pv,
|
||||||
|
cma.ASSESS_STATUS =
|
||||||
|
(case
|
||||||
|
when tmp.small_pv >= cma.assess_target then
|
||||||
|
1
|
||||||
|
else
|
||||||
|
2
|
||||||
|
end)
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<!-- 更新会员区域失效 -->
|
||||||
|
<update id="updateRetailRegionEffective">
|
||||||
|
merge into cu_member_retail_region cmrr
|
||||||
|
using (select cmrr.pk_id
|
||||||
|
from ${accessTableName} cma
|
||||||
|
left join (select t.pk_id,
|
||||||
|
t.pk_member,
|
||||||
|
case
|
||||||
|
when t.city = 0 and t.county = 0 then 6
|
||||||
|
when t.city != 0 and t.county = 0 then 7
|
||||||
|
when t.city != 0 and t.county != 0 then 8
|
||||||
|
end assess_type
|
||||||
|
from CU_MEMBER_RETAIL_REGION t
|
||||||
|
where t.del_flag = 0
|
||||||
|
and t.effective = 0) cmrr
|
||||||
|
on cmrr.pk_member = cma.pk_member and cmrr.assess_type = cma.assess_type
|
||||||
|
where cma.del_flag = 0
|
||||||
|
and cma.assess_type in (6, 7, 8)
|
||||||
|
and cma.assess_status = 2
|
||||||
|
) tmp
|
||||||
|
on (cmrr.pk_id = tmp.pk_id)
|
||||||
|
when matched then
|
||||||
|
update set cmrr.effective = 1,
|
||||||
|
cmrr.effective_end_date = #{currentSettleDate}
|
||||||
|
</update>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.hzs.system.base.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
||||||
|
import com.hzs.common.domain.system.config.ext.BdAwardsRegionConfigExt;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -16,4 +17,12 @@ import java.util.List;
|
||||||
public interface BdAwardsRegionConfigMapper extends BaseMapper<BdAwardsRegionConfig> {
|
public interface BdAwardsRegionConfigMapper extends BaseMapper<BdAwardsRegionConfig> {
|
||||||
|
|
||||||
List<BdAwardsRegionConfig> getList();
|
List<BdAwardsRegionConfig> getList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配置+奖衔需要小区业绩
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<BdAwardsRegionConfigExt> listConfigAndAssess();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,13 +7,16 @@ import com.hzs.common.core.web.controller.BaseController;
|
||||||
import com.hzs.common.core.web.domain.AjaxResult;
|
import com.hzs.common.core.web.domain.AjaxResult;
|
||||||
import com.hzs.common.core.web.page.TableDataInfo;
|
import com.hzs.common.core.web.page.TableDataInfo;
|
||||||
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
||||||
|
import com.hzs.common.domain.system.config.ext.BdAwardsRegionConfigExt;
|
||||||
import com.hzs.system.base.IBdAwardsRegionConfigServiceApi;
|
import com.hzs.system.base.IBdAwardsRegionConfigServiceApi;
|
||||||
import com.hzs.system.base.service.IBdAwardsRegionConfigService;
|
import com.hzs.system.base.service.IBdAwardsRegionConfigService;
|
||||||
import org.apache.dubbo.config.annotation.DubboService;
|
import org.apache.dubbo.config.annotation.DubboService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -25,12 +28,25 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
@DubboService
|
@DubboService
|
||||||
public class BdAwardsRegionConfigServiceProvider implements IBdAwardsRegionConfigServiceApi {
|
public class BdAwardsRegionConfigServiceProvider implements IBdAwardsRegionConfigServiceApi {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
IBdAwardsRegionConfigService service;
|
private IBdAwardsRegionConfigService iBdAwardsRegionConfigService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<List<BdAwardsRegionConfig>> getMatchList(Integer value) {
|
public R<List<BdAwardsRegionConfig>> getMatchList(Integer value) {
|
||||||
LambdaQueryWrapper<BdAwardsRegionConfig> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<BdAwardsRegionConfig> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.le(BdAwardsRegionConfig::getAwardsValue, value);
|
queryWrapper.le(BdAwardsRegionConfig::getAwardsValue, value);
|
||||||
return R.ok(service.list(queryWrapper));
|
return R.ok(iBdAwardsRegionConfigService.list(queryWrapper));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Map<Integer, BdAwardsRegionConfigExt>> getAwardsRegionConfig() {
|
||||||
|
Map<Integer, BdAwardsRegionConfigExt> resultMap = new HashMap<>();
|
||||||
|
List<BdAwardsRegionConfigExt> configList = iBdAwardsRegionConfigService.listConfigAndAssess();
|
||||||
|
for (BdAwardsRegionConfigExt bdAwardsRegionConfig : configList) {
|
||||||
|
resultMap.put(bdAwardsRegionConfig.getAreaType(), bdAwardsRegionConfig);
|
||||||
|
}
|
||||||
|
return R.ok(resultMap);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.hzs.system.base.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
||||||
|
import com.hzs.common.domain.system.config.ext.BdAwardsRegionConfigExt;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -15,4 +16,13 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface IBdAwardsRegionConfigService extends IService<BdAwardsRegionConfig> {
|
public interface IBdAwardsRegionConfigService extends IService<BdAwardsRegionConfig> {
|
||||||
List<BdAwardsRegionConfig> getList();
|
List<BdAwardsRegionConfig> getList();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配置+奖衔需要小区业绩
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<BdAwardsRegionConfigExt> listConfigAndAssess();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,11 @@ package com.hzs.system.base.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
||||||
|
import com.hzs.common.domain.system.config.ext.BdAwardsRegionConfigExt;
|
||||||
import com.hzs.system.base.mapper.BdAwardsRegionConfigMapper;
|
import com.hzs.system.base.mapper.BdAwardsRegionConfigMapper;
|
||||||
import com.hzs.system.base.service.IBdAwardsRegionConfigService;
|
import com.hzs.system.base.service.IBdAwardsRegionConfigService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,4 +24,9 @@ public class BdAwardsRegionConfigServiceImpl extends ServiceImpl<BdAwardsRegionC
|
||||||
public List<BdAwardsRegionConfig> getList() {
|
public List<BdAwardsRegionConfig> getList() {
|
||||||
return baseMapper.getList();
|
return baseMapper.getList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BdAwardsRegionConfigExt> listConfigAndAssess() {
|
||||||
|
return baseMapper.listConfigAndAssess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,35 +2,19 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.hzs.system.base.mapper.BdAwardsRegionConfigMapper">
|
<mapper namespace="com.hzs.system.base.mapper.BdAwardsRegionConfigMapper">
|
||||||
|
|
||||||
<!-- 通用查询映射结果 -->
|
|
||||||
<resultMap id="BaseResultMap" type="com.hzs.common.domain.system.config.BdAwardsRegionConfig">
|
|
||||||
<id column="PK_ID" property="pkId" />
|
|
||||||
<result column="DEL_FLAG" property="delFlag" />
|
|
||||||
<result column="CREATION_TIME" property="creationTime" />
|
|
||||||
<result column="MODIFIED_TIME" property="modifiedTime" />
|
|
||||||
<result column="PK_CREATOR" property="pkCreator" />
|
|
||||||
<result column="PK_MODIFIED" property="pkModified" />
|
|
||||||
<result column="AREA_TYPE" property="areaType" />
|
|
||||||
<result column="PK_AWARDS" property="pkAwards" />
|
|
||||||
<result column="AWARDS_VALUE" property="awardsValue" />
|
|
||||||
<result column="RATE" property="rate" />
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
<!-- 通用查询结果列 -->
|
|
||||||
<sql id="Base_Column_List">
|
|
||||||
DEL_FLAG,
|
|
||||||
CREATION_TIME,
|
|
||||||
MODIFIED_TIME,
|
|
||||||
PK_CREATOR,
|
|
||||||
PK_MODIFIED,
|
|
||||||
PK_ID, AREA_TYPE, PK_AWARDS, AWARDS_VALUE, RATE
|
|
||||||
</sql>
|
|
||||||
<select id="getList" resultType="com.hzs.common.domain.system.config.BdAwardsRegionConfig">
|
<select id="getList" resultType="com.hzs.common.domain.system.config.BdAwardsRegionConfig">
|
||||||
select
|
select barc.*,
|
||||||
barc.*,
|
ba.AWARDS_NAME as awardsName
|
||||||
ba.AWARDS_NAME as awardsName
|
from BD_AWARDS_REGION_CONFIG barc
|
||||||
from BD_AWARDS_REGION_CONFIG barc
|
left join BD_AWARDS ba on ba.PK_ID = barc.PK_AWARDS
|
||||||
left join BD_AWARDS ba on ba.PK_ID = barc.PK_AWARDS
|
</select>
|
||||||
|
|
||||||
|
<!-- 配置+奖衔需要小区业绩 -->
|
||||||
|
<select id="listConfigAndAssess" resultType="com.hzs.common.domain.system.config.ext.BdAwardsRegionConfigExt">
|
||||||
|
select barc.area_type, barc.pk_awards, barc.awards_value, ba.small_assess
|
||||||
|
from BD_AWARDS_REGION_CONFIG barc
|
||||||
|
left join bd_awards ba
|
||||||
|
on ba.pk_id = barc.pk_awards
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -30,6 +30,19 @@ public enum EAssessmentType {
|
||||||
*/
|
*/
|
||||||
POINT_ASSESS(5, "见点收益考核", 0),
|
POINT_ASSESS(5, "见点收益考核", 0),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 6=区域收益省考核
|
||||||
|
*/
|
||||||
|
PROVINCE_ASSESS(6, "区域收益省考核", 0),
|
||||||
|
/**
|
||||||
|
* 7=区域收益市考核
|
||||||
|
*/
|
||||||
|
CITY_ASSESS(7, "区域收益市考核", 0),
|
||||||
|
/**
|
||||||
|
* 8=区域收益区考核
|
||||||
|
*/
|
||||||
|
COUNTY_ASSESS(8, "区域收益区考核", 0),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -307,7 +307,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得之前月份的最后一天
|
* 获得之前月份的最后一天(年月日)
|
||||||
*
|
*
|
||||||
* @param date 日期
|
* @param date 日期
|
||||||
* @return string
|
* @return string
|
||||||
|
@ -318,7 +318,6 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
return beforeMonthDate.with(TemporalAdjusters.lastDayOfMonth()).toString();
|
return beforeMonthDate.with(TemporalAdjusters.lastDayOfMonth()).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得指定月份的最后一天
|
* 获得指定月份的最后一天
|
||||||
*
|
*
|
||||||
|
@ -881,46 +880,4 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
return LocalDate.parse(date, fmt);
|
return LocalDate.parse(date, fmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
// System.out.println(Base64Encoder.encode("139676"));
|
|
||||||
System.out.println(parseStringToDateTime("2023-09-25 13:00:00"));
|
|
||||||
// System.out.println(DateUtils.getRecentlyMonday(DateUtils.parseStringToDate("2023-08-07")));
|
|
||||||
// System.out.println(DateUtils.getRecentlyMonday(DateUtils.parseStringToDate("2023-08-08")));
|
|
||||||
// System.out.println(DateUtils.getRecentlyMonday(DateUtils.parseStringToDate("2023-08-09")));
|
|
||||||
// System.out.println(DateUtils.getRecentlyMonday(DateUtils.parseStringToDate("2023-08-10")));
|
|
||||||
// System.out.println(getRecentlyMonday(DateUtils.parseStringToDate("2023-07-17")));
|
|
||||||
// System.out.println(parseDateToSecond());
|
|
||||||
// System.out.println(parseDateToSecond(currentDateTime()));
|
|
||||||
// System.out.println(compareDate(currentDate(), afterDate(10, ChronoUnit.DAYS)));
|
|
||||||
// System.out.println(compareDate(currentDate(), currentDate()));
|
|
||||||
// System.out.println(parseDateToStr(DateUtils.YYYY_MM_DD, beforeDate(7, ChronoUnit.DAYS)));
|
|
||||||
// System.out.println(compareDate(currentDate(), beforeDate(7, ChronoUnit.DAYS)));
|
|
||||||
// System.out.println(betweenMonth(currentDate(), beforeDate(17, ChronoUnit.DAYS)));
|
|
||||||
// System.out.println(beforeMonthFirstDateStr(12, currentDate()));
|
|
||||||
// System.out.println(beforeMonthLastDate());
|
|
||||||
// System.out.println(beforeMonthFirstDate());
|
|
||||||
// System.out.println(currentMonthFirstDate());
|
|
||||||
// System.out.println(currentMonthLastDate());
|
|
||||||
// System.out.println(parseDateTimeToStr(DateUtils.YAMMERERS));
|
|
||||||
// System.out.println(toLocalDate(currentDate()));
|
|
||||||
// System.out.println(toLocalDateTime(currentDateTime()));
|
|
||||||
// System.out.println(currentYear());
|
|
||||||
// System.out.println(currentMonth());
|
|
||||||
// System.out.println(currentDay());
|
|
||||||
// System.out.println(getDateByCondition(2022, 8, 2));
|
|
||||||
// System.out.println(compareDate(currentDate(), afterDate(10, ChronoUnit.DAYS)));
|
|
||||||
// System.out.println(compareDateEqual(currentDate(), currentDate()));
|
|
||||||
// System.out.println(compareDateAfter(currentDate(), afterDate(4, ChronoUnit.DAYS)));
|
|
||||||
// System.out.println(compareDateBefore(currentDate(), beforeDate(4, ChronoUnit.MONTHS)));
|
|
||||||
// System.out.println(isLeapYear());
|
|
||||||
// System.out.println(checkBirthDate(getDateByCondition(1989, 10, 11)));
|
|
||||||
// System.out.println(betweenDay(beforeDate(5, ChronoUnit.WEEKS)));
|
|
||||||
// System.out.println(betweenMonth(beforeDate(10, ChronoUnit.WEEKS)));
|
|
||||||
// System.out.println(parseStringToDate("2022-09-05"));
|
|
||||||
// System.out.println(parseDateToStr(DateUtils.YAMMER, currentDate()));
|
|
||||||
// System.out.println(parseDateToStr(DateUtils.YYYY_MM_DD, currentDate()));
|
|
||||||
// System.out.println(parseDateToStr(DateUtils.YYYY, currentDate()));
|
|
||||||
// System.out.println(parseDateToStr(DateUtils.YYYY_MM, currentDate()));
|
|
||||||
// System.out.println(parseDateTimeToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, currentDateTime()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class BdAwardsRegionConfig extends BaseEntity {
|
||||||
* 奖衔ID
|
* 奖衔ID
|
||||||
*/
|
*/
|
||||||
@TableField("PK_AWARDS")
|
@TableField("PK_AWARDS")
|
||||||
private Long pkAwards;
|
private Integer pkAwards;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 奖衔值
|
* 奖衔值
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.hzs.common.domain.system.config.ext;
|
||||||
|
|
||||||
|
import com.hzs.common.domain.system.config.BdAwardsRegionConfig;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
public class BdAwardsRegionConfigExt extends BdAwardsRegionConfig {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小区考核业绩
|
||||||
|
*/
|
||||||
|
private BigDecimal smallAssess;
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue