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