## 每月区域考核数据生成;

This commit is contained in:
cabbage 2025-07-01 14:53:45 +08:00
parent 06263cebbe
commit f887de2082
13 changed files with 277 additions and 325 deletions

View File

@ -5,11 +5,7 @@ import com.hzs.common.core.domain.R;
import java.util.List; import java.util.List;
/** /**
* @Description: 新零售会员dubbo服务 * 新零售会员dubbo服务
* @Author: jiang chao
* @Time: 2024/12/31 13:40
* @Classname: IMemberRetailApi
* @PackageName: com.hzs.retail.member
*/ */
public interface IMemberRetailApi { public interface IMemberRetailApi {
@ -20,7 +16,6 @@ public interface IMemberRetailApi {
*/ */
R<?> checkRegion(); R<?> checkRegion();
/** /**
* 取消收益区域 * 取消收益区域
* *

View File

@ -8,78 +8,51 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* <p>
* 新零售会员区域考核明细表 Mapper 接口 * 新零售会员区域考核明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2025-01-13
*/ */
public interface CuRegionAssessDetailMapper extends BaseMapper<CuRegionAssessDetail> { public interface CuRegionAssessDetailMapper extends BaseMapper<CuRegionAssessDetail> {
/* /*
* @description: 考核开始日期 * 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
**/ **/
void deleteAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod); void deleteAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod);
/* /*
* @description: 删除重复的数据 * 删除重复的数据
* @author: sui q
* @date: 2025/1/15 16:11
* @param: null null
**/ **/
void updateAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate); void updateAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate);
/**
* 批量生成考核明细seq
*
* @param rowNum
* @return
*/
List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum); List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum);
/* /*
* @description: 批量插入区域考核数据 * 批量插入区域考核数据
* @author: sui q
* @date: 2025/1/14 14:31
* @param: null null
**/ **/
void batchInsertCuRegionAssessDetail(@Param("cuRegionAssessDetailList") List<?> cuRegionAssessDetailList); void batchInsertCuRegionAssessDetail(@Param("cuRegionAssessDetailList") List<?> cuRegionAssessDetailList);
/* /*
* @description: 根据上月数据更新考核明细数据 * 根据上月数据更新考核明细数据
* @author: sui q
* @date: 2025/1/14 16:44
* @param: null null
**/ **/
void mergeCuRegionAssessDetailTeamPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate); void mergeCuRegionAssessDetailTeamPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate);
/* /*
* @description: 根据上月数据更新考核明细数据 * 根据上月数据更新考核明细数据
* @author: sui q
* @date: 2025/1/14 16:44
* @param: null null
**/ **/
void mergeCuRegionAssessDetailSmallAreaPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate); void mergeCuRegionAssessDetailSmallAreaPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate);
/* /*
* @description: 初始化考核先置为考核失败 * 初始化考核先置为考核失败
* @author: sui q
* @date: 2025/1/14 17:30
* @param: null null
**/ **/
void updateCuRegionAssessDetailInit(@Param("assessDate") Date assessDate); void updateCuRegionAssessDetailInit(@Param("assessDate") Date assessDate);
/* /*
* @description: 根据月后业绩考核汇总满足30w小区10w * 根据月后业绩考核汇总满足30w小区10w
* @author: sui q
* @date: 2025/1/14 17:36
* @param: null null
**/ **/
void updateCuRegionAssessDetailByPv(@Param("assessDate") Date assessDate); void updateCuRegionAssessDetailByPv(@Param("assessDate") Date assessDate);
/*
* @description: 根据月后业绩考核汇总满足30w小区10w
* @author: sui q
* @date: 2025/1/14 17:36
* @param: null null
**/
void updateCuRegionAssessDetailByHand(@Param("assessDate") Date assessDate);
} }

View File

@ -11,36 +11,22 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* <p>
* 新零售会员区域考核 Mapper 接口 * 新零售会员区域考核 Mapper 接口
* </p>
*
* @author hzs
* @since 2025-01-13
*/ */
public interface CuRegionAssessMapper extends BaseMapper<CuRegionAssess> { public interface CuRegionAssessMapper extends BaseMapper<CuRegionAssess> {
/* /*
* @description: 查询考核结果 * 查询考核结果
* @author: sui q
* @date: 2025/1/15 17:22
* @param: null null
**/ **/
List<CuRegionAssessExt> queryRegionAssessByCondition(@Param("regionAssessParam") CuRegionAssessParam regionAssessParam); List<CuRegionAssessExt> queryRegionAssessByCondition(@Param("regionAssessParam") CuRegionAssessParam regionAssessParam);
/* /*
* @description: 考核开始日期 * 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
**/ **/
void deleteAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod); void deleteAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod);
/* /*
* @description: 考核开始日期 * 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
**/ **/
void updateAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate); void updateAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate);
@ -48,49 +34,31 @@ public interface CuRegionAssessMapper extends BaseMapper<CuRegionAssess> {
* 批量获取cuMemberBonus主键 * 批量获取cuMemberBonus主键
* *
* @param rowNum 数量 * @param rowNum 数量
* @return: List<Integer>
* @Author: sui q
* @Date: 2022/12/13 13:47
*/ */
List<Long> batchQueryCuRegionAssessSeq(Integer rowNum); List<Long> batchQueryCuRegionAssessSeq(Integer rowNum);
/* /*
* @description: 批量插入区域考核数据 * 批量插入区域考核数据
* @author: sui q
* @date: 2025/1/14 14:31
* @param: null null
**/ **/
void batchInsertCuRegionAssess(@Param("cuRegionAssessList") List<?> cuRegionAssessList); void batchInsertCuRegionAssess(@Param("cuRegionAssessList") List<?> cuRegionAssessList);
/* /*
* @description: 更新达标次数 * 更新达标次数
* @author: sui q
* @date: 2025/1/15 10:44
* @param: null null
**/ **/
void mergeCuRegionAssess(@Param("assessDate") Date assessDate); void mergeCuRegionAssess(@Param("assessDate") Date assessDate);
/* /*
* @description: 查询待考核的区域 * 查询待考核的区域
* @author: sui q
* @date: 2025/1/13 17:31
* @param: null null
**/ **/
List<CuMemberRetailRegion> queryCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate); List<CuMemberRetailRegion> queryCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/* /*
* @description: 查询到期日期是上个月的区域 * 查询到期日期是上个月的区域
* @author: sui q
* @date: 2025/2/25 15:45
* @param: null null
**/ **/
List<CuMemberRetailRegion> queryDueCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate); List<CuMemberRetailRegion> queryDueCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/* /*
* @description: 查询手动设置考核的近6个月考核记录 * 查询手动设置考核的近6个月考核记录
* @author: sui q
* @date: 2025/2/26 9:21
* @param: null null
**/ **/
List<CuRegionAssessExt> queryRegionAssessByDate(@Param("memberRetailRegionList") List<CuMemberRetailRegion> memberRetailRegionList, @Param("startDate") Date startDate, @Param("endDate") Date endDate); List<CuRegionAssessExt> queryRegionAssessByDate(@Param("memberRetailRegionList") List<CuMemberRetailRegion> memberRetailRegionList, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
} }

View File

@ -7,46 +7,29 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* <p>
* 新零售会员区域考核明细表 服务类 * 新零售会员区域考核明细表 服务类
* </p>
*
* @author hzs
* @since 2025-01-13
*/ */
public interface ICuRegionAssessDetailService extends IService<CuRegionAssessDetail> { public interface ICuRegionAssessDetailService extends IService<CuRegionAssessDetail> {
/* /*
* @description: 考核开始日期 * 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
**/ **/
void deleteAssessRegionDetailByDate(Date assessStartDate, Integer assessPeriod); void deleteAssessRegionDetailByDate(Date assessStartDate, Integer assessPeriod);
/* /*
* @description: 删除重复的数据 * 删除重复的数据
* @author: sui q
* @date: 2025/1/15 16:11
* @param: null null
**/ **/
void updateAssessRegionDetailByDate(Date assessStartDate, Date assessEndDate); void updateAssessRegionDetailByDate(Date assessStartDate, Date assessEndDate);
List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum); List<Long> batchQueryCuRegionAssessDetailSeq(Integer rowNum);
/* /*
* @description: 批量插入区域考核数据 * 批量插入区域考核数据
* @author: sui q
* @date: 2025/1/14 14:31
* @param: null null
**/ **/
void batchInsertCuRegionAssessDetail(List<?> cuRegionAssessDetailList); void batchInsertCuRegionAssessDetail(List<?> cuRegionAssessDetailList);
/* /*
* @description: 根据上月数据考核区域 * 根据上月数据考核区域
* @author: sui q
* @date: 2025/1/14 16:44
* @param: null null
**/ **/
void assessCuRegionAssessDetail(String rangeTableName, Date assessDate); void assessCuRegionAssessDetail(String rangeTableName, Date assessDate);
} }

View File

@ -5,51 +5,34 @@ import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam; import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.domain.member.detail.CuRegionAssess; import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt; import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import org.apache.ibatis.annotations.Param;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* <p>
* 新零售会员区域考核 服务类 * 新零售会员区域考核 服务类
* </p>
*
* @author hzs
* @since 2025-01-13
*/ */
public interface ICuRegionAssessService extends IService<CuRegionAssess> { public interface ICuRegionAssessService extends IService<CuRegionAssess> {
/* /*
* @description: 每月考核区域是否达标 * 每月考核区域是否达标
* @author: sui q
* @date: 2025/1/13 16:46
* @param: null null
**/ **/
void assessRegionByEveryMonth(String settleDate, String rangeTableName); void assessRegionByEveryMonth(String settleDate, String rangeTableName);
/** /**
* @description: 定时处理会员收益区域处理前三天 * 定时处理会员收益区域处理前三天
* @author: zhang jing *
* @date: 2025/3/7 10:08
* @param: [startDate]
* @return: void * @return: void
**/ **/
void validateHandAreaAssess(Date startDate,Date endDate); void validateHandAreaAssess(Date startDate, Date endDate);
/* /*
* @description: 考核开始日期 * 考核开始日期
* @author: sui q
* @date: 2025/1/13 17:13
* @param: null null
**/ **/
void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod); void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod);
/* /*
* @description: 查询考核结果 * 查询考核结果
* @author: sui q
* @date: 2025/1/15 17:22
* @param: null null
**/ **/
List<CuRegionAssessExt> queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam); List<CuRegionAssessExt> queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam);

View File

@ -10,12 +10,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* <p>
* 新零售会员区域考核明细表 服务实现类 * 新零售会员区域考核明细表 服务实现类
* </p>
*
* @author hzs
* @since 2025-01-13
*/ */
@Service @Service
public class CuRegionAssessDetailServiceImpl extends ServiceImpl<CuRegionAssessDetailMapper, CuRegionAssessDetail> implements ICuRegionAssessDetailService { public class CuRegionAssessDetailServiceImpl extends ServiceImpl<CuRegionAssessDetailMapper, CuRegionAssessDetail> implements ICuRegionAssessDetailService {
@ -50,8 +45,5 @@ public class CuRegionAssessDetailServiceImpl extends ServiceImpl<CuRegionAssessD
baseMapper.updateCuRegionAssessDetailInit(assessDate); baseMapper.updateCuRegionAssessDetailInit(assessDate);
// 验证汇总业绩和小区业绩是否满足条件汇总业绩满足30000小区满足100000变更为考核通过 // 验证汇总业绩和小区业绩是否满足条件汇总业绩满足30000小区满足100000变更为考核通过
baseMapper.updateCuRegionAssessDetailByPv(assessDate); baseMapper.updateCuRegionAssessDetailByPv(assessDate);
// 手动开区域由免考修改为正常考核到期后验证近6个月的考核结果达标3次继续有奖衔否则没有
// baseMapper.updateCuRegionAssessDetailByHand(assessDate);
// 更新主表更新达标次数
} }
} }

View File

@ -1,9 +1,8 @@
package com.hzs.bonus.detail.service.impl; package com.hzs.bonus.detail.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle; import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.bonus.detail.mapper.CuRegionAssessMapper; import com.hzs.bonus.detail.mapper.CuRegionAssessMapper;
import com.hzs.bonus.detail.service.ICuRegionAssessDetailService; import com.hzs.bonus.detail.service.ICuRegionAssessDetailService;
@ -12,14 +11,13 @@ import com.hzs.bonus.detail.vo.CuRegionAssessDetailVO;
import com.hzs.bonus.detail.vo.CuRegionAssessVO; import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam; import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.core.constant.MagicNumberConstants; import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.constant.TableNameConstants;
import com.hzs.common.core.enums.EDataSource;
import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.detail.CuRegionAssess; import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail; import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt; import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import com.hzs.retail.member.IMemberRetailApi; import com.hzs.retail.member.IMemberRetailApi;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference; 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;
@ -29,21 +27,17 @@ import java.time.temporal.ChronoUnit;
import java.util.*; import java.util.*;
/** /**
* <p>
* 新零售会员区域考核 服务实现类 * 新零售会员区域考核 服务实现类
* </p>
*
* @author hzs
* @since 2025-01-13
*/ */
@Slf4j
@Service @Service
public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper, CuRegionAssess> implements ICuRegionAssessService { public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper, CuRegionAssess> implements ICuRegionAssessService {
@DubboReference @DubboReference
private IMemberRetailApi memberRetailApi; IMemberRetailApi iMemberRetailApi;
@Autowired @Autowired
private ICuRegionAssessDetailService cuRegionAssessDetailService; private ICuRegionAssessDetailService iCuRegionAssessDetailService;
@Autowired @Autowired
private CuMemberBonusSettle cuMemberBonusSettle; private CuMemberBonusSettle cuMemberBonusSettle;
@ -54,14 +48,23 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
// 每月1号进行考核结算上月最后一期的时候进行区域达标考核 // 每月1号进行考核结算上月最后一期的时候进行区域达标考核
Date assDate = DateUtils.parseStringToDate(settleDate); Date assDate = DateUtils.parseStringToDate(settleDate);
Date assessDate = DateUtils.afterDate(1, ChronoUnit.DAYS, assDate); Date assessDate = DateUtils.afterDate(1, ChronoUnit.DAYS, assDate);
log.info("assDate : {}", DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, assDate));
log.info("assessDate : {}", DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, assessDate));
if (DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, assessDate).endsWith("01")) { if (DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, assessDate).endsWith("01")) {
// 当月第一天
Date startDate = DateUtils.currentMonthFirstDate(assDate); Date startDate = DateUtils.currentMonthFirstDate(assDate);
// 清空数据7天内重算查找结算开始日期相同的是第一次考核,清空明细表主表
// 清空数据之前有区域然后掉区域了新的月份又有了 update log.info("startDate : {}", DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, startDate));
cuRegionAssessDetailService.updateAssessRegionDetailByDate(startDate, assessDate);
// 清空 1 号到 今天 的考核数据
iCuRegionAssessDetailService.updateAssessRegionDetailByDate(startDate, assessDate);
baseMapper.updateAssessRegionByDate(startDate, assessDate); baseMapper.updateAssessRegionByDate(startDate, assessDate);
deleteAssessRegionByDate(assessDate, 1); deleteAssessRegionByDate(assessDate, 1);
// 生成6期待考核数据查询上月的区域第一次考核的时候明细生成6期 // 生成6期待考核数据查询上月的区域第一次考核的时候明细生成6期
// 查询目前有效的区域配置
List<CuMemberRetailRegion> memberRetailRegionList = baseMapper.queryCuMemberRetailRegion(startDate, assessDate); List<CuMemberRetailRegion> memberRetailRegionList = baseMapper.queryCuMemberRetailRegion(startDate, assessDate);
if (memberRetailRegionList.size() > 0) { if (memberRetailRegionList.size() > 0) {
Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>(); Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>();
@ -92,18 +95,19 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
} }
saveCuRegionAssess(regionAssessMap, regionAssessDetailList); saveCuRegionAssess(regionAssessMap, regionAssessDetailList);
} }
cuRegionAssessDetailService.assessCuRegionAssessDetail(rangeTableName, assessDate); iCuRegionAssessDetailService.assessCuRegionAssessDetail(rangeTableName, assessDate);
baseMapper.mergeCuRegionAssess(assessDate); baseMapper.mergeCuRegionAssess(assessDate);
// 取消区域列表
List<Long> cancelRegionList = new ArrayList<>();
// 开始考核 上月最后一天奖衔业绩同步到考核表中 // 开始考核 上月最后一天奖衔业绩同步到考核表中
// 查询主表考核结束日期=考核日期的这部分需要生成下6期,最后一期结算完验证是否达标达标后继续生成下一期不达标取消区域 // 查询主表考核结束日期=考核日期的这部分需要生成下6期,最后一期结算完验证是否达标达标后继续生成下一期不达标取消区域
// 查询考核结束日期次数不达标的区域进行区域取消处理 // 查询考核结束日期次数不达标的区域进行区域取消处理
List<CuRegionAssess> cuRegionAssessList = queryCuRegionAssessByEndDate(assessDate); List<CuRegionAssess> cuRegionAssessList = queryCuRegionAssessByEndDate(assessDate);
List<Long> cancelRegionList = new ArrayList<>();
Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>(); Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>();
List<CuRegionAssessDetail> regionAssessDetailList = new ArrayList<>(); List<CuRegionAssessDetail> regionAssessDetailList = new ArrayList<>();
for (CuRegionAssess cuRegionAssess : cuRegionAssessList) { for (CuRegionAssess cuRegionAssess : cuRegionAssessList) {
// 手动开区域的不参与考核,只有会员端选区域的参与考核 if (cuRegionAssess.getReachNum() < 3) {
if (cuRegionAssess.getReachNum() < 3 && cuRegionAssess.getSource() == 1) {
cancelRegionList.add(cuRegionAssess.getPkRegion()); cancelRegionList.add(cuRegionAssess.getPkRegion());
continue; continue;
} }
@ -136,16 +140,13 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
// 查询到期日期的区域验证近6个月的达标次数不达标取消 // 查询到期日期的区域验证近6个月的达标次数不达标取消
// validateHandAreaAssess(assessDate, startDate, cancelRegionList); // validateHandAreaAssess(assessDate, startDate, cancelRegionList);
if (cancelRegionList.size() > 0) { if (cancelRegionList.size() > 0) {
if (!memberRetailApi.cancelRegion(cancelRegionList).isSuccess()) { if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败"); throw new RuntimeException("区域更新失败");
} }
} }
} }
} }
/**
* 定时处理会员收益区域处理前三天
**/
@Override @Override
public void validateHandAreaAssess(Date startDate, Date endDate) { public void validateHandAreaAssess(Date startDate, Date endDate) {
List<Long> cancelRegionList = new ArrayList<>(); List<Long> cancelRegionList = new ArrayList<>();
@ -169,7 +170,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
} }
} }
if (cancelRegionList.size() > 0) { if (cancelRegionList.size() > 0) {
if (!memberRetailApi.cancelRegion(cancelRegionList).isSuccess()) { if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败"); throw new RuntimeException("区域更新失败");
} }
} }
@ -193,21 +194,20 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
} }
// 主表 // 主表
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuRegionAssessList); List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuRegionAssessList);
lists.forEach(list -> lists.forEach(list -> baseMapper.batchInsertCuRegionAssess(list));
baseMapper.batchInsertCuRegionAssess(list));
List<Long> idList = cuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size()); List<Long> idList = iCuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size());
for (int j = 0; j < regionAssessDetailList.size(); j++) { for (int j = 0; j < regionAssessDetailList.size(); j++) {
regionAssessDetailList.get(j).setPkId(idList.get(j)); regionAssessDetailList.get(j).setPkId(idList.get(j));
} }
// 明细表 // 明细表
List<List<?>> detailList = cuMemberBonusSettle.handleCutList(regionAssessDetailList); List<List<?>> detailList = cuMemberBonusSettle.handleCutList(regionAssessDetailList);
detailList.forEach(detail -> detailList.forEach(detail -> iCuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail));
cuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail));
} }
List<CuRegionAssess> queryCuRegionAssessByEndDate(Date settleDate) { List<CuRegionAssess> queryCuRegionAssessByEndDate(Date settleDate) {
QueryWrapper<CuRegionAssess> queryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<CuRegionAssess> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq("ASSESS_END_DATE", settleDate); queryWrapper.eq(CuRegionAssess::getAssessEndDate, settleDate);
return baseMapper.selectList(queryWrapper); return baseMapper.selectList(queryWrapper);
} }
@ -215,7 +215,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod) { public void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod) {
// 7天内重算 // 7天内重算
cuRegionAssessDetailService.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod); iCuRegionAssessDetailService.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod);
baseMapper.deleteAssessRegionByDate(assessStartDate, assessPeriod); baseMapper.deleteAssessRegionByDate(assessStartDate, assessPeriod);
} }

View File

@ -4,101 +4,133 @@
<!-- 通用查询映射结果 --> <!-- 通用查询映射结果 -->
<resultMap id="CuRegionAssessDetail" type="com.hzs.common.domain.member.detail.CuRegionAssessDetail"> <resultMap id="CuRegionAssessDetail" type="com.hzs.common.domain.member.detail.CuRegionAssessDetail">
<id column="PK_ID" property="pkId" /> <id column="PK_ID" property="pkId"/>
<result column="PK_MEMBER" property="pkMember" /> <result column="PK_MEMBER" property="pkMember"/>
<result column="DEL_FLAG" property="delFlag" /> <result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry" /> <result column="PK_COUNTRY" property="pkCountry"/>
<result column="CREATION_TIME" property="creationTime" /> <result column="CREATION_TIME" property="creationTime"/>
<result column="PK_CREATOR" property="pkCreator" /> <result column="PK_CREATOR" property="pkCreator"/>
<result column="MODIFIED_TIME" property="modifiedTime" /> <result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_MODIFIED" property="pkModified" /> <result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_REGION_ASSESS" property="pkRegionAssess" /> <result column="PK_REGION_ASSESS" property="pkRegionAssess"/>
<result column="ASSESS_DATE" property="assessDate" /> <result column="ASSESS_DATE" property="assessDate"/>
<result column="PK_AWARDS" property="pkAwards" /> <result column="PK_AWARDS" property="pkAwards"/>
<result column="TEAM_MONTH_PV" property="teamMonthPv" /> <result column="TEAM_MONTH_PV" property="teamMonthPv"/>
<result column="SMALL_AREA_PV" property="smallAreaPv" /> <result column="SMALL_AREA_PV" property="smallAreaPv"/>
<result column="ASSESS_STATUS" property="assessStatus" /> <result column="ASSESS_STATUS" property="assessStatus"/>
</resultMap> </resultMap>
<insert id="batchInsertCuRegionAssessDetail"> <insert id="batchInsertCuRegionAssessDetail">
insert ALL insert ALL
<foreach item="item" index="index" collection="cuRegionAssessDetailList" separator=" " > <foreach item="item" index="index" collection="cuRegionAssessDetailList" separator=" ">
into cu_region_assess_detail(pk_id,pk_member,pk_region_assess,assess_date,pk_creator,pk_country) values into cu_region_assess_detail (
( pk_id, pk_member, pk_region_assess, assess_date,
#{item.pkId},#{item.pkMember},#{item.pkRegionAssess},#{item.assessDate},#{item.pkCreator},#{item.pkCountry} pk_creator, pk_country)
) values (
#{item.pkId}, #{item.pkMember}, #{item.pkRegionAssess}, #{item.assessDate},
#{item.pkCreator}, #{item.pkCountry})
</foreach> </foreach>
SELECT 1 FROM dual SELECT 1 FROM dual
</insert> </insert>
<update id="mergeCuRegionAssessDetailTeamPv"> <update id="mergeCuRegionAssessDetailTeamPv">
merge into cu_region_assess_detail a merge into cu_region_assess_detail a
using( using (
select cd.pk_id,cr.pk_member,cr.pk_awards, select cd.pk_id,
(cr.month_consume_pv+cr.team_month_pv) team_month_pv from cu_region_assess_detail cd cr.pk_member,
inner join ${rangeTableName} cr cr.pk_awards,
on cd.pk_member=cr.pk_member (cr.month_consume_pv + cr.team_month_pv) team_month_pv
where cd.del_flag=0 and cd.assess_date = #{assessDate, jdbcType=DATE} from cu_region_assess_detail cd
inner join ${rangeTableName} cr
on cd.pk_member = cr.pk_member
where cd.del_flag = 0
and cd.assess_date = #{assessDate, jdbcType=DATE}
) b ) b
on(a.pk_id=b.pk_id) on (a.pk_id = b.pk_id)
when matched then when matched then
update set a.pk_awards=b.pk_awards,a.team_month_pv=b.team_month_pv update set a.pk_awards = b.pk_awards, a.team_month_pv = b.team_month_pv
WHERE a.pk_awards != b.pk_awards OR a.team_month_pv != b.team_month_pv WHERE a.pk_awards != b.pk_awards
OR a.team_month_pv != b.team_month_pv
</update> </update>
<update id="mergeCuRegionAssessDetailSmallAreaPv"> <update id="mergeCuRegionAssessDetailSmallAreaPv">
merge into cu_region_assess_detail a merge into cu_region_assess_detail a
using( using (
select pk_id,max(big_area_pv) big_area_pv from( select pk_id, max(big_area_pv) big_area_pv
select cd.pk_id,b.* from cu_region_assess_detail cd from (
inner join( select cd.pk_id, b.*
select pk_parent pk_member,(month_consume_pv+team_month_pv) big_area_pv from ${rangeTableName} from cu_region_assess_detail cd
union inner join (
select pk_member,month_consume_pv big_area_pv from ${rangeTableName}) b select pk_parent pk_member, (month_consume_pv + team_month_pv) big_area_pv
on cd.pk_member=b.pk_member from ${rangeTableName}
where cd.del_flag=0 and cd.assess_date = #{assessDate, jdbcType=DATE} union
) select pk_member, month_consume_pv big_area_pv
from ${rangeTableName}
) b
on cd.pk_member = b.pk_member
where cd.del_flag = 0
and cd.assess_date = #{assessDate, jdbcType=DATE}
)
group by pk_id group by pk_id
) b ) b
on(a.pk_id=b.pk_id) on (a.pk_id = b.pk_id)
when matched then when matched then
update set a.small_area_pv=a.team_month_pv-b.big_area_pv update set a.small_area_pv = a.team_month_pv - b.big_area_pv
</update> </update>
<update id="updateCuRegionAssessDetailInit"> <update id="updateCuRegionAssessDetailInit">
update cu_region_assess_detail set assess_status=2 where del_flag=0 and assess_date=#{assessDate, jdbcType=DATE} update cu_region_assess_detail
</update> set assess_status = 2
<update id="updateCuRegionAssessDetailByPv"> where del_flag = 0
update cu_region_assess_detail set assess_status=0
where del_flag=0 and team_month_pv>=46875 and small_area_pv>=15625
and assess_date = #{assessDate, jdbcType=DATE} and assess_date = #{assessDate, jdbcType=DATE}
</update> </update>
<update id="updateCuRegionAssessDetailByHand">
update cu_region_assess_detail set assess_status=0 <update id="updateCuRegionAssessDetailByPv">
where del_flag=0 and assess_date = #{assessDate, jdbcType=DATE} update cu_region_assess_detail
and pk_region_assess in(select pk_id from cu_region_assess where del_flag=0 and source=2) set assess_status = 0
where del_flag = 0
and team_month_pv >= 300000
and small_area_pv >= 100000
and assess_date = #{assessDate, jdbcType=DATE}
</update> </update>
<update id="updateAssessRegionDetailByDate"> <update id="updateAssessRegionDetailByDate">
update cu_region_assess_detail set del_flag=1,modified_time=sysdate where pk_region_assess in( update cu_region_assess_detail
select ca.pk_id from cu_region_assess ca set del_flag = 1,
inner join ( modified_time = sysdate
select pk_id from cu_member_retail_region where pk_region_assess in (
where effective=0 and del_flag=0 select ca.pk_id
and nvl(modified_time,creation_time)>= #{assessStartDate,jdbcType=DATE} from cu_region_assess ca
and nvl(modified_time,creation_time) &lt; #{assessEndDate,jdbcType=DATE} inner join (
) b select pk_id
on ca.pk_region =b.pk_id from cu_member_retail_region
where ca.del_flag=0 and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE}) where effective = 0
and del_flag = 0
and nvl(modified_time, creation_time) >= #{assessStartDate, jdbcType=DATE}
and nvl(modified_time, creation_time) &lt; #{assessEndDate, jdbcType=DATE}
) b
on ca.pk_region = b.pk_id
where ca.del_flag = 0
and ca.assess_start_date != #{assessEndDate,jdbcType=DATE})
</update> </update>
<delete id="deleteAssessRegionDetailByDate"> <delete id="deleteAssessRegionDetailByDate">
delete from cu_region_assess_detail where del_flag=0 and delete from cu_region_assess_detail
pk_region_assess in( where del_flag = 0 and
select pk_id from cu_region_assess where del_flag=0 and pk_region_assess in (
assess_start_date=#{assessStartDate, jdbcType=DATE} select pk_id from cu_region_assess
<choose> where del_flag = 0
<when test="assessPeriod == 1">and assess_period=#{assessPeriod}</when> and assess_start_date = #{assessStartDate, jdbcType=DATE}
<otherwise>and assess_period >= #{assessPeriod}</otherwise> <choose>
</choose> <when test="assessPeriod == 1">and assess_period = #{assessPeriod}</when>
<otherwise>and assess_period >= #{assessPeriod}</otherwise>
</choose>
) )
</delete> </delete>
<select id="batchQueryCuRegionAssessDetailSeq" resultType="java.lang.Long"> <select id="batchQueryCuRegionAssessDetailSeq" resultType="java.lang.Long">
select cu_region_assess_detail_seq.nextval from dual connect by rownum &lt;= #{rowNum} select cu_region_assess_detail_seq.nextval
from dual connect by rownum &lt;= #{rowNum}
</select> </select>
</mapper> </mapper>

View File

@ -4,96 +4,119 @@
<!-- 通用查询映射结果 --> <!-- 通用查询映射结果 -->
<resultMap id="CuRegionAssessExt" type="com.hzs.common.domain.member.detail.ext.CuRegionAssessExt"> <resultMap id="CuRegionAssessExt" type="com.hzs.common.domain.member.detail.ext.CuRegionAssessExt">
<id column="PK_ID" property="pkId" /> <id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag" /> <result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry" /> <result column="PK_COUNTRY" property="pkCountry"/>
<result column="CREATION_TIME" property="creationTime" /> <result column="CREATION_TIME" property="creationTime"/>
<result column="PK_CREATOR" property="pkCreator" /> <result column="PK_CREATOR" property="pkCreator"/>
<result column="MODIFIED_TIME" property="modifiedTime" /> <result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_MODIFIED" property="pkModified" /> <result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_MEMBER" property="pkMember" /> <result column="PK_MEMBER" property="pkMember"/>
<result column="PK_REGION" property="pkRegion" /> <result column="PK_REGION" property="pkRegion"/>
<result column="ASSESS_PERIOD" property="assessPeriod" /> <result column="ASSESS_PERIOD" property="assessPeriod"/>
<result column="ASSESS_START_DATE" property="assessStartDate" /> <result column="ASSESS_START_DATE" property="assessStartDate"/>
<result column="ASSESS_END_DATE" property="assessEndDate" /> <result column="ASSESS_END_DATE" property="assessEndDate"/>
<result column="REACH_NUM" property="reachNum" /> <result column="REACH_NUM" property="reachNum"/>
<result column="SOURCE" property="source" /> <result column="SOURCE" property="source"/>
<result column="MEMBER_CODE" property="memberCode" /> <result column="MEMBER_CODE" property="memberCode"/>
<result column="MEMBER_NAME" property="memberName" /> <result column="MEMBER_NAME" property="memberName"/>
<result column="PROVINCE_NAME" property="provinceName" /> <result column="PROVINCE_NAME" property="provinceName"/>
<result column="CITY_NAME" property="cityName" /> <result column="CITY_NAME" property="cityName"/>
<result column="COUNTY_NAME" property="countyName" /> <result column="COUNTY_NAME" property="countyName"/>
<result column="ASSESS_ADDRESS" property="assessAddress" /> <result column="ASSESS_ADDRESS" property="assessAddress"/>
<collection property="cuRegionAssessDetailList" ofType="com.hzs.common.domain.member.detail.CuRegionAssessDetail"> <collection property="cuRegionAssessDetailList" ofType="com.hzs.common.domain.member.detail.CuRegionAssessDetail">
<result column="ASSESS_DATE" property="assessDate" /> <result column="ASSESS_DATE" property="assessDate"/>
<result column="PK_AWARDS" property="pkAwards" /> <result column="PK_AWARDS" property="pkAwards"/>
<result column="TEAM_MONTH_PV" property="teamMonthPv" /> <result column="TEAM_MONTH_PV" property="teamMonthPv"/>
<result column="SMALL_AREA_PV" property="smallAreaPv" /> <result column="SMALL_AREA_PV" property="smallAreaPv"/>
<result column="ASSESS_STATUS" property="assessStatus" /> <result column="ASSESS_STATUS" property="assessStatus"/>
</collection> </collection>
</resultMap> </resultMap>
<insert id="batchInsertCuRegionAssess"> <insert id="batchInsertCuRegionAssess">
insert ALL insert ALL
<foreach item="item" index="index" collection="cuRegionAssessList" separator=" " > <foreach item="item" index="index" collection="cuRegionAssessList" separator=" ">
into cu_region_assess(pk_id,pk_member,assess_period,pk_region,assess_start_date,assess_end_date, into cu_region_assess (
source,pk_creator,pk_country) values pk_id, pk_member, assess_period, pk_region,
( assess_start_date, assess_end_date,
#{item.pkId},#{item.pkMember},#{item.assessPeriod},#{item.pkRegion},#{item.assessStartDate},#{item.assessEndDate}, source, pk_creator, pk_country)
#{item.source},#{item.pkCreator},#{item.pkCountry} values (
) #{item.pkId}, #{item.pkMember}, #{item.assessPeriod}, #{item.pkRegion},
#{item.assessStartDate}, #{item.assessEndDate},
#{item.source}, #{item.pkCreator}, #{item.pkCountry})
</foreach> </foreach>
SELECT 1 FROM dual SELECT 1 FROM dual
</insert> </insert>
<update id="mergeCuRegionAssess"> <update id="mergeCuRegionAssess">
merge into CU_REGION_ASSESS a merge into CU_REGION_ASSESS a
using( using (
select cd.pk_region_assess,sum(1) REACH_NUM from cu_region_assess_detail cd select cd.pk_region_assess, sum(1) REACH_NUM
inner join cu_region_assess ca from cu_region_assess_detail cd
on cd.pk_region_assess=ca.pk_id inner join cu_region_assess ca
where cd.ASSESS_STATUS=0 and cd.del_flag=0 and ca.del_flag=0 on cd.pk_region_assess = ca.pk_id
and ca.assess_start_date &lt;= #{assessDate,jdbcType=DATE} where cd.ASSESS_STATUS = 0
and ca.assess_end_date >= #{assessDate,jdbcType=DATE} and cd.del_flag = 0
and ca.del_flag = 0
and ca.assess_start_date &lt;= #{assessDate,jdbcType=DATE}
and ca.assess_end_date >= #{assessDate,jdbcType=DATE}
group by cd.pk_region_assess group by cd.pk_region_assess
) b ) b
on (a.pk_id=b.pk_region_assess) on (a.pk_id = b.pk_region_assess)
when matched then when matched then
update set a.REACH_NUM=b.REACH_NUM update set a.REACH_NUM = b.REACH_NUM
</update> </update>
<update id="updateAssessRegionByDate"> <update id="updateAssessRegionByDate">
update cu_region_assess set del_flag=1,modified_time=sysdate where pk_id in( update cu_region_assess
select ca.pk_id from cu_region_assess ca set del_flag = 1,
inner join ( modified_time = sysdate
select pk_id from cu_member_retail_region where pk_id in (
where effective=0 and del_flag=0 select ca.pk_id
and nvl(modified_time,creation_time)>= #{assessStartDate,jdbcType=DATE} from cu_region_assess ca
and nvl(modified_time,creation_time) &lt; #{assessEndDate,jdbcType=DATE} inner join (
) b select pk_id
on ca.pk_region =b.pk_id from cu_member_retail_region
where ca.del_flag=0 and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE}) where effective = 0
and del_flag = 0
and nvl(modified_time, creation_time) >= #{assessStartDate,jdbcType=DATE}
and nvl(modified_time, creation_time) &lt; #{assessEndDate,jdbcType=DATE}
) b
on ca.pk_region = b.pk_id
where ca.del_flag = 0
and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE})
</update> </update>
<delete id="deleteAssessRegionByDate"> <delete id="deleteAssessRegionByDate">
delete from cu_region_assess where del_flag=0 and delete from cu_region_assess where del_flag=0 and
assess_start_date=#{assessStartDate, jdbcType=DATE} assess_start_date=#{assessStartDate, jdbcType=DATE}
<choose> <choose>
<when test="assessPeriod == 1">and assess_period=#{assessPeriod}</when> <when test="assessPeriod == 1">and assess_period=#{assessPeriod}</when>
<otherwise>and assess_period >= #{assessPeriod}</otherwise> <otherwise>and assess_period >= #{assessPeriod}</otherwise>
</choose> </choose>
</delete> </delete>
<select id="queryCuMemberRetailRegion" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion"> <select id="queryCuMemberRetailRegion" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion">
select * from cu_member_retail_region where effective=0 and del_flag=0 select *
and nvl(modified_time,creation_time)>= #{startDate, jdbcType=DATE} from cu_member_retail_region
and nvl(modified_time,creation_time) &lt; #{endDate, jdbcType=DATE} where effective = 0
and del_flag = 0
and nvl(modified_time, creation_time) >= #{startDate, jdbcType=DATE}
and nvl(modified_time, creation_time) &lt; #{endDate, jdbcType=DATE}
</select> </select>
<select id="batchQueryCuRegionAssessSeq" resultType="java.lang.Long"> <select id="batchQueryCuRegionAssessSeq" resultType="java.lang.Long">
select cu_region_assess_seq.nextval from dual connect by rownum &lt;= #{rowNum} select cu_region_assess_seq.nextval
from dual connect by rownum &lt;= #{rowNum}
</select> </select>
<select id="queryRegionAssessByCondition" resultMap="CuRegionAssessExt"> <select id="queryRegionAssessByCondition" resultMap="CuRegionAssessExt">
select cm.member_code,cm.member_name,ca.reach_num,ca.assess_period, select cm.member_code,cm.member_name,ca.reach_num,ca.assess_period,
ca.assess_start_date,ca.assess_end_date,ca.reach_num, ca.assess_start_date,ca.assess_end_date,ca.reach_num,
(province.name||city.name||county.name) assess_address, (province.name||city.name||county.name) assess_address,
cd.assess_date,cd.assess_status,cd.team_month_pv,cd.small_area_pv, cd.assess_date,cd.assess_status,cd.team_month_pv,cd.small_area_pv,
cd.assess_status /* province.name,city.name,county.name,*/ cd.assess_status /* province.name,city.name,county.name,*/
from cu_region_assess ca from cu_region_assess ca
inner join cu_region_assess_detail cd inner join cu_region_assess_detail cd
on ca.pk_id=cd.pk_region_assess on ca.pk_id=cd.pk_region_assess
inner join cu_member cm inner join cu_member cm
@ -103,7 +126,7 @@
left join bd_area province on province.PK_ID=cr.province left join bd_area province on province.PK_ID=cr.province
left join bd_area city on city.PK_ID=cr.city left join bd_area city on city.PK_ID=cr.city
left join bd_area county on county.PK_ID=cr.county left join bd_area county on county.PK_ID=cr.county
where ca.del_flag=0 and cd.del_flag=0 and cm.del_flag=0 and cr.del_flag=0 where ca.del_flag=0 and cd.del_flag=0 and cm.del_flag=0 and cr.del_flag=0
<if test="regionAssessParam.assessDate != null"> <if test="regionAssessParam.assessDate != null">
and cd.assess_date &lt;= #{regionAssessParam.assessDate,jdbcType=DATE} and cd.assess_date &lt;= #{regionAssessParam.assessDate,jdbcType=DATE}
</if> </if>
@ -121,22 +144,25 @@
</if> </if>
</select> </select>
<select id="queryDueCuMemberRetailRegion" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion"> <select id="queryDueCuMemberRetailRegion" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion">
select * from cu_member_retail_region where effective=0 and del_flag=0 select *
and effective_end_date>= #{startDate, jdbcType=DATE} from cu_member_retail_region
and effective_end_date &lt; #{endDate, jdbcType=DATE} where effective = 0
and del_flag = 0
and effective_end_date >= #{startDate, jdbcType=DATE}
and effective_end_date &lt; #{endDate, jdbcType=DATE}
</select> </select>
<select id="queryRegionAssessByDate" <select id="queryRegionAssessByDate"
resultType="com.hzs.common.domain.member.detail.ext.CuRegionAssessExt"> resultType="com.hzs.common.domain.member.detail.ext.CuRegionAssessExt">
select cd.pk_member,count(cd.pk_id) pk_id from cu_region_assess ca select cd.pk_member,count(cd.pk_id) pk_id from cu_region_assess ca
inner join cu_region_assess_detail cd inner join cu_region_assess_detail cd
on ca.pk_id=cd.pk_region_assess on ca.pk_id=cd.pk_region_assess
where ca.del_flag=0 and cd.del_flag=0 where ca.del_flag=0 and cd.del_flag=0
and cd.assess_date>=#{startDate, jdbcType=DATE} and cd.assess_date &lt;=#{endDate, jdbcType=DATE} and cd.assess_date>=#{startDate, jdbcType=DATE} and cd.assess_date &lt;=#{endDate, jdbcType=DATE}
and assess_status=0 and ca.pk_member in and assess_status=0 and ca.pk_member in
<foreach collection="memberRetailRegionList" item="item" open="(" close=")" separator=","> <foreach collection="memberRetailRegionList" item="item" open="(" close=")" separator=",">
#{item.pkMember} #{item.pkMember}
</foreach> </foreach>
group by cd.pk_member group by cd.pk_member
</select> </select>
</mapper> </mapper>

View File

@ -10,11 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.util.List; import java.util.List;
/** /**
* @Description: 新零售会员dubbo服务 * 新零售会员dubbo服务
* @Author: jiang chao
* @Time: 2024/12/31 13:40
* @Classname: MemberRetailProvider
* @PackageName: com.hzs.retail.member.provider
*/ */
@Slf4j @Slf4j
@DubboService @DubboService

View File

@ -2,7 +2,9 @@ package com.hzs.common.domain.member.detail;
import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date; import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.hzs.common.core.web.domain.BaseEntity; import com.hzs.common.core.web.domain.BaseEntity;
@ -10,12 +12,7 @@ import lombok.*;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
* <p>
* 新零售会员区域考核 * 新零售会员区域考核
* </p>
*
* @author hzs
* @since 2025-01-13
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.hzs.common.core.web.domain.BaseEntity; import com.hzs.common.core.web.domain.BaseEntity;
@ -12,12 +13,7 @@ import lombok.*;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
* <p>
* 新零售会员区域考核明细表 * 新零售会员区域考核明细表
* </p>
*
* @author hzs
* @since 2025-01-13
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ -56,7 +52,7 @@ public class CuRegionAssessDetail extends BaseEntity {
private Date assessDate; private Date assessDate;
/** /**
* 会员等级 * 会员奖衔
*/ */
@TableField("PK_AWARDS") @TableField("PK_AWARDS")
private Integer pkAwards; private Integer pkAwards;

View File

@ -4,19 +4,20 @@ import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.hzs.bonus.settle.IMemberSettleBonusApi;
import com.hzs.common.core.domain.R; import com.hzs.common.core.domain.R;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.member.account.IMemberJobServiceApi; import com.hzs.member.account.IMemberJobServiceApi;
import com.hzs.system.base.IAreaServiceApi; import com.hzs.system.base.IAreaServiceApi;
import com.hzs.system.base.dto.AreaDTO; import com.hzs.system.base.dto.AreaDTO;
import com.hzs.third.job.OrderJob;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.time.temporal.ChronoUnit;
import java.util.*; import java.util.*;
/** /**
@ -32,6 +33,16 @@ public class JobTestController {
@DubboReference @DubboReference
IMemberJobServiceApi iMemberJobServiceApi; IMemberJobServiceApi iMemberJobServiceApi;
@DubboReference
IMemberSettleBonusApi iMemberSettleBonusApi;
@GetMapping("/test-settle")
public AjaxResult testSettle() {
Date startDate = DateUtils.beforeDate(1, ChronoUnit.DAYS, DateUtils.currentDate());
iMemberSettleBonusApi.autoCalculateBonus(startDate);
return AjaxResult.success();
}
/** /**
* 测试行政区划更新 * 测试行政区划更新