## 区域月度考核数据处理;
This commit is contained in:
parent
7a9e91e218
commit
75f4633805
|
@ -70,28 +70,59 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
|
|||
Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>();
|
||||
List<CuRegionAssessDetail> regionAssessDetailList = new ArrayList<>();
|
||||
for (CuMemberRetailRegion cuMemberRetailRegion : memberRetailRegionList) {
|
||||
CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
|
||||
.pkMember(cuMemberRetailRegion.getPkMember())
|
||||
.pkRegion(cuMemberRetailRegion.getPkId())
|
||||
.assessPeriod(1)
|
||||
.assessStartDate(assessDate)
|
||||
.assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(5, assessDate)))
|
||||
.source(cuMemberRetailRegion.getSource())
|
||||
.build();
|
||||
cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
|
||||
regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
|
||||
// 保存明细
|
||||
for (int i = 0; i < 6; i++) {
|
||||
CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
|
||||
.pkRegionAssess(cuRegionAssess.getPkMember())
|
||||
.assessDate(DateUtils.afterMonthDate(i, assessDate))
|
||||
.pkMember(cuRegionAssess.getPkMember())
|
||||
|
||||
if (null != cuMemberRetailRegion.getEffectiveEndDate()) {
|
||||
// 设置过生效结束时间
|
||||
CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
|
||||
.pkMember(cuMemberRetailRegion.getPkMember())
|
||||
.pkRegion(cuMemberRetailRegion.getPkId())
|
||||
.assessPeriod(1)
|
||||
.assessStartDate(assessDate)
|
||||
// 考核结束期
|
||||
.assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(1, cuMemberRetailRegion.getEffectiveEndDate())))
|
||||
.source(cuMemberRetailRegion.getSource())
|
||||
.build();
|
||||
cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
|
||||
regionAssessDetailList.add(cuRegionAssessDetail);
|
||||
cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
|
||||
regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
|
||||
while (assessDate.compareTo(cuRegionAssess.getAssessEndDate()) <= 0) {
|
||||
CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
|
||||
.pkRegionAssess(cuRegionAssess.getPkMember())
|
||||
.assessDate(assessDate)
|
||||
.pkMember(cuRegionAssess.getPkMember())
|
||||
.build();
|
||||
cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
|
||||
regionAssessDetailList.add(cuRegionAssessDetail);
|
||||
|
||||
assessDate = DateUtils.afterMonthDate(1, assessDate);
|
||||
}
|
||||
} else {
|
||||
CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
|
||||
.pkMember(cuMemberRetailRegion.getPkMember())
|
||||
.pkRegion(cuMemberRetailRegion.getPkId())
|
||||
.assessPeriod(1)
|
||||
.assessStartDate(assessDate)
|
||||
// 考核结束期
|
||||
.assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(5, assessDate)))
|
||||
.source(cuMemberRetailRegion.getSource())
|
||||
.build();
|
||||
cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
|
||||
regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
|
||||
// 保存明细
|
||||
for (int i = 0; i < 6; i++) {
|
||||
CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
|
||||
.pkRegionAssess(cuRegionAssess.getPkMember())
|
||||
.assessDate(DateUtils.afterMonthDate(i, assessDate))
|
||||
.pkMember(cuRegionAssess.getPkMember())
|
||||
.build();
|
||||
cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
|
||||
regionAssessDetailList.add(cuRegionAssessDetail);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
saveCuRegionAssess(regionAssessMap, regionAssessDetailList);
|
||||
}
|
||||
|
|
|
@ -55,11 +55,29 @@
|
|||
from cu_region_assess_detail cd
|
||||
inner join cu_region_assess ca
|
||||
on cd.pk_region_assess = ca.pk_id
|
||||
inner join cu_member_retail_region cmrr
|
||||
on cmrr.pk_id = ca.pk_region
|
||||
where cd.ASSESS_STATUS = 0
|
||||
and cd.del_flag = 0
|
||||
and ca.del_flag = 0
|
||||
and ca.assess_start_date <= #{assessDate,jdbcType=DATE}
|
||||
and ca.assess_end_date >= #{assessDate,jdbcType=DATE}
|
||||
and cmrr.del_flag = 0
|
||||
and cmrr.effective_end_date is null
|
||||
group by cd.pk_region_assess
|
||||
union
|
||||
<!-- 手动开通的,只查询手效期前6个月的数据 -->
|
||||
select cd.pk_region_assess, sum(1) REACH_NUM
|
||||
from cu_region_assess_detail cd
|
||||
inner join cu_region_assess ca
|
||||
on cd.pk_region_assess = ca.pk_id
|
||||
inner join CU_MEMBER_RETAIL_REGION cmrr
|
||||
on cmrr.pk_id = ca.pk_region
|
||||
where cd.del_flag = 0
|
||||
and ca.del_flag = 0
|
||||
and cmrr.del_flag = 0
|
||||
and cmrr.effective_end_date is not null
|
||||
and cd.assess_date > ADD_MONTHS(cmrr.effective_end_date, -6)
|
||||
group by cd.pk_region_assess
|
||||
) b
|
||||
on (a.pk_id = b.pk_region_assess)
|
||||
|
|
|
@ -535,24 +535,16 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||
LocalDate today = getLocalDate(date);
|
||||
return ((Long) toLocalDate(date1).until(today, ChronoUnit.DAYS)).intValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算2个日期之间的天数
|
||||
* 获得2个日期总共差的天数
|
||||
*
|
||||
* @param date1 日期
|
||||
* @param date 日期2
|
||||
* @param date1 第一个日期
|
||||
* @param date 第二个日期
|
||||
* @return Integer
|
||||
*/
|
||||
public static Boolean betweenMonth(Date date1, Date... date) {
|
||||
LocalDate localDate = LocalDate.now();
|
||||
if (date.length > 0) {
|
||||
localDate = toLocalDate(date[0]);
|
||||
}
|
||||
LocalDate localDate1 = toLocalDate(date1);
|
||||
if (localDate.getMonth() == localDate1.getMonth()) {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
return Boolean.FALSE;
|
||||
public static Integer betweenMonth(Date date1, Date... date) {
|
||||
LocalDate today = getLocalDate(date);
|
||||
return ((Long) toLocalDate(date1).until(today, ChronoUnit.MONTHS)).intValue();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue