|
@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dto.IndexBaseDto;
|
|
|
import com.ym.mec.biz.dal.entity.IndexErrInfoDto;
|
|
|
import com.ym.mec.biz.dal.entity.Organization;
|
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
|
+import com.ym.mec.biz.dal.page.IndexDataQueryInfo;
|
|
|
import com.ym.mec.common.constant.CommonConstants;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
@@ -23,6 +24,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -62,7 +64,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<IndexBaseDto> getIndexBaseData(String dataTypesStr, String organIdsStr, Integer year) {
|
|
|
+ public List<IndexBaseDto> getIndexBaseData(IndexDataQueryInfo queryInfo) {
|
|
|
List<IndexBaseDto> result = new ArrayList<>();
|
|
|
|
|
|
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM");
|
|
@@ -71,24 +73,22 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
Date currentMonth = Date.from(nowDate.atStartOfDay(DateUtil.zoneId).toInstant());
|
|
|
|
|
|
LocalDate startDate = LocalDate.now();
|
|
|
- if(Objects.nonNull(year)){
|
|
|
- startDate = startDate.withYear(year);
|
|
|
+ if(Objects.nonNull(queryInfo.getStartDate())){
|
|
|
+ startDate = LocalDateTime.ofInstant(queryInfo.getStartDate().toInstant(), DateUtil.zoneId).toLocalDate();
|
|
|
}
|
|
|
- startDate = startDate.withMonth(1);
|
|
|
- startDate = startDate.withDayOfMonth(1);
|
|
|
|
|
|
LocalDate endDate = startDate.withMonth(12);
|
|
|
- if(nowDate.getYear()>endDate.getYear()){
|
|
|
- currentMonth = Date.from(endDate.atStartOfDay(DateUtil.zoneId).toInstant());
|
|
|
+ if(Objects.nonNull(queryInfo.getEndDate())){
|
|
|
+ endDate = LocalDateTime.ofInstant(queryInfo.getEndDate().toInstant(), DateUtil.zoneId).toLocalDate();
|
|
|
}
|
|
|
|
|
|
Set<Integer> organIds = null;
|
|
|
- if(StringUtils.isNotBlank(organIdsStr)){
|
|
|
- organIds = Arrays.stream(organIdsStr.split(",")).map(Integer::new).collect(Collectors.toSet());
|
|
|
+ if(StringUtils.isNotBlank(queryInfo.getOrganId())){
|
|
|
+ organIds = Arrays.stream(queryInfo.getOrganId().split(",")).map(Integer::new).collect(Collectors.toSet());
|
|
|
}
|
|
|
Set<String> dataTypes = null;
|
|
|
- if(StringUtils.isNotBlank(dataTypesStr)){
|
|
|
- dataTypes = Arrays.stream(dataTypesStr.split(",")).collect(Collectors.toSet());
|
|
|
+ if(StringUtils.isNotBlank(queryInfo.getDataTypes())){
|
|
|
+ dataTypes = Arrays.stream(queryInfo.getDataTypes().split(",")).collect(Collectors.toSet());
|
|
|
}
|
|
|
|
|
|
List<IndexBaseMonthData> indexBaseDatas = indexBaseMonthDataDao.getIndexBaseData(organIds, dataTypes, df.format(startDate), df.format(endDate));
|
|
@@ -136,10 +136,9 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public Map<String, List<IndexBaseDto>> indexBaseDataTask(String month) {
|
|
|
+ public Map<String, List<IndexBaseDto>> indexBaseDataTask(String dayStr) {
|
|
|
Map<String, List<IndexBaseDto>> result = new HashMap<>();
|
|
|
|
|
|
- DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM");
|
|
|
LocalDate nowDate = LocalDate.now();
|
|
|
|
|
|
List<Organization> allOrgans = organizationDao.findAllOrgans();
|
|
@@ -148,57 +147,57 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
this.organIds.get().addAll(allOrgans.stream().map(Organization::getId).collect(Collectors.toSet()));
|
|
|
}
|
|
|
|
|
|
- if(StringUtils.isBlank(month)){
|
|
|
- month = df.format(nowDate);
|
|
|
+ if(StringUtils.isBlank(dayStr)){
|
|
|
+ dayStr = nowDate.toString();
|
|
|
}
|
|
|
|
|
|
//运营数据
|
|
|
- saveData(indexBaseMonthDataDao.getSchoolData(month), month, IndexDataType.SCHOOL);
|
|
|
- saveData(indexBaseMonthDataDao.getMusicData(month), month, IndexDataType.MUSIC_GROUP_NUM);
|
|
|
- saveData(indexBaseMonthDataDao.getMusicStudentData(month, null), month, IndexDataType.MUSIC_GROUP_STUDENT);
|
|
|
- saveData(indexBaseMonthDataDao.getOtherStudentData(month), month, IndexDataType.OTHER_STUDENT);
|
|
|
+ saveData(indexBaseMonthDataDao.getSchoolData(dayStr), dayStr, IndexDataType.SCHOOL);
|
|
|
+ saveData(indexBaseMonthDataDao.getMusicData(dayStr), dayStr, IndexDataType.MUSIC_GROUP_NUM);
|
|
|
+ saveData(indexBaseMonthDataDao.getMusicStudentData(dayStr, null), dayStr, IndexDataType.MUSIC_GROUP_STUDENT);
|
|
|
+ saveData(indexBaseMonthDataDao.getOtherStudentData(dayStr), dayStr, IndexDataType.OTHER_STUDENT);
|
|
|
|
|
|
//业务数据
|
|
|
- saveData(indexBaseMonthDataDao.getStudentSignUpData(month), month, IndexDataType.ACTIVATION_RATE);
|
|
|
- saveData(indexBaseMonthDataDao.getHomeworkData(month, null), month, IndexDataType.HOMEWORK_CREATE_RATE);
|
|
|
- saveData(indexBaseMonthDataDao.getHomeworkData(month, "submit"), month, IndexDataType.HOMEWORK_SUBMIT_RATE);
|
|
|
- saveData(indexBaseMonthDataDao.getHomeworkData(month, "comment"), month, IndexDataType.HOMEWORK_COMMENT_RATE);
|
|
|
+ saveData(indexBaseMonthDataDao.getStudentSignUpData(dayStr), dayStr, IndexDataType.ACTIVATION_RATE);
|
|
|
+ saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, null), dayStr, IndexDataType.HOMEWORK_CREATE_RATE);
|
|
|
+ saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "submit"), dayStr, IndexDataType.HOMEWORK_SUBMIT_RATE);
|
|
|
+ saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "comment"), dayStr, IndexDataType.HOMEWORK_COMMENT_RATE);
|
|
|
|
|
|
//经营数据
|
|
|
- saveData(null, month, IndexDataType.SHOULD_INCOME_MONEY);
|
|
|
- saveData(null, month, IndexDataType.ANTICIPATED_INCOME_MONEY);
|
|
|
- saveData(null, month, IndexDataType.SHOULD_EXPEND_MONEY);
|
|
|
- saveData(null, month, IndexDataType.ANTICIPATED_EXPEND_MONEY);
|
|
|
- saveData(null, month, IndexDataType.REVENUE_MONEY);
|
|
|
+ saveData(null, dayStr, IndexDataType.SHOULD_INCOME_MONEY);
|
|
|
+ saveData(null, dayStr, IndexDataType.ANTICIPATED_INCOME_MONEY);
|
|
|
+ saveData(null, dayStr, IndexDataType.SHOULD_EXPEND_MONEY);
|
|
|
+ saveData(null, dayStr, IndexDataType.ANTICIPATED_EXPEND_MONEY);
|
|
|
+ saveData(null, dayStr, IndexDataType.REVENUE_MONEY);
|
|
|
|
|
|
//人事数据
|
|
|
- saveData(indexBaseMonthDataDao.getTeacherData(month, null, null), month, IndexDataType.TEACHER_NUM);
|
|
|
- saveData(indexBaseMonthDataDao.getTeacherData(month, JobNatureEnum.FULL_TIME, null), month, IndexDataType.FULL_TIME_NUM);
|
|
|
- saveData(indexBaseMonthDataDao.getTeacherData(month, JobNatureEnum.PART_TIME, null), month, IndexDataType.PART_TIME_NUM);
|
|
|
- saveData(indexBaseMonthDataDao.getTeacherData(month, null, true), month, IndexDataType.DIMISSION_NUM);
|
|
|
+ saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, null), dayStr, IndexDataType.TEACHER_NUM);
|
|
|
+ saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.FULL_TIME, null), dayStr, IndexDataType.FULL_TIME_NUM);
|
|
|
+ saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.PART_TIME, null), dayStr, IndexDataType.PART_TIME_NUM);
|
|
|
+ saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, true), dayStr, IndexDataType.DIMISSION_NUM);
|
|
|
|
|
|
//学员变动
|
|
|
- saveData(indexBaseMonthDataDao.getMusicStudentData(month, "ADD"), month, IndexDataType.NEWLY_STUDENT_NUM);
|
|
|
- saveData(indexBaseMonthDataDao.getMusicStudentData(month, "QUIT"), month, IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
|
|
|
- saveData(indexBaseMonthDataDao.getMusicGroupPreRegistrationStudentData(month), month, IndexDataType.STUDENT_CONVERSION_PRE_STUDENT_NUM);
|
|
|
- saveData(indexBaseMonthDataDao.getMusicGroupStudentFromPreData(month, null), month, IndexDataType.STUDENT_CONVERSION_STUDENT_NUM);
|
|
|
- saveData(indexBaseMonthDataDao.getMusicGroupStudentFromPreData(month, PaymentStatusEnum.YES), month, IndexDataType.STUDENT_CONVERSION_PAYMENT_STUDENT_NUM);
|
|
|
- List<Integer> studentIds = indexBaseMonthDataDao.getMusicGroupStudentIdFromPre(month, PaymentStatusEnum.YES);
|
|
|
+ saveData(indexBaseMonthDataDao.getMusicStudentData(dayStr, "ADD"), dayStr, IndexDataType.NEWLY_STUDENT_NUM);
|
|
|
+ saveData(indexBaseMonthDataDao.getMusicStudentData(dayStr, "QUIT"), dayStr, IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
|
|
|
+ saveData(indexBaseMonthDataDao.getMusicGroupPreRegistrationStudentData(dayStr), dayStr, IndexDataType.STUDENT_CONVERSION_PRE_STUDENT_NUM);
|
|
|
+ saveData(indexBaseMonthDataDao.getMusicGroupStudentFromPreData(dayStr, null), dayStr, IndexDataType.STUDENT_CONVERSION_STUDENT_NUM);
|
|
|
+ saveData(indexBaseMonthDataDao.getMusicGroupStudentFromPreData(dayStr, PaymentStatusEnum.YES), dayStr, IndexDataType.STUDENT_CONVERSION_PAYMENT_STUDENT_NUM);
|
|
|
+ List<Integer> studentIds = indexBaseMonthDataDao.getMusicGroupStudentIdFromPre(dayStr, PaymentStatusEnum.YES);
|
|
|
List<IndexBaseMonthData> convertStudentNum = new ArrayList<>();
|
|
|
if(!CollectionUtils.isEmpty(studentIds)){
|
|
|
- convertStudentNum = indexBaseMonthDataDao.getStudentConversionData(month, studentIds);
|
|
|
+ convertStudentNum = indexBaseMonthDataDao.getStudentConversionData(dayStr, studentIds);
|
|
|
}
|
|
|
- saveData(convertStudentNum, month, IndexDataType.STUDENT_CONVERSION_VIP_PRACTICE_STUDENT_NUM);
|
|
|
+ saveData(convertStudentNum, dayStr, IndexDataType.STUDENT_CONVERSION_VIP_PRACTICE_STUDENT_NUM);
|
|
|
|
|
|
//课程数据
|
|
|
- saveData(indexBaseMonthDataDao.getGroupCourseData(month, GroupType.MUSIC), month, IndexDataType.MUSIC_GROUP_COURSE);
|
|
|
- saveData(indexBaseMonthDataDao.getGroupCourseData(month, GroupType.VIP), month, IndexDataType.VIP_GROUP_COURSE);
|
|
|
- saveData(indexBaseMonthDataDao.getGroupCourseData(month, GroupType.PRACTICE), month, IndexDataType.PRACTICE_GROUP_COURSE);
|
|
|
+ saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.MUSIC), dayStr, IndexDataType.MUSIC_GROUP_COURSE);
|
|
|
+ saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.VIP), dayStr, IndexDataType.VIP_GROUP_COURSE);
|
|
|
+ saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.PRACTICE), dayStr, IndexDataType.PRACTICE_GROUP_COURSE);
|
|
|
|
|
|
//财务数据
|
|
|
-// saveData(indexBaseMonthDataDao.getFinancePayData(),month,IndexDataType.FINANCE_PAY);
|
|
|
-// saveData(indexBaseMonthDataDao.getFinanceBalanceData(),month,IndexDataType.FINANCE_BALANCE_AMOUNT);
|
|
|
-// saveData(indexBaseMonthDataDao.getFinanceActualData(),month,IndexDataType.FINANCE_AMOUNT);
|
|
|
+ saveData(indexBaseMonthDataDao.getFinancePayData(dayStr),dayStr,IndexDataType.FINANCE_PAY);
|
|
|
+ saveData(indexBaseMonthDataDao.getFinanceBalanceData(dayStr),dayStr,IndexDataType.FINANCE_BALANCE_AMOUNT);
|
|
|
+ saveData(indexBaseMonthDataDao.getFinanceActualData(dayStr),dayStr,IndexDataType.FINANCE_AMOUNT);
|
|
|
|
|
|
return result;
|
|
|
}
|
|
@@ -290,14 +289,13 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @describe 处理并保存每月数据
|
|
|
+ * @describe 处理并保存每日数据
|
|
|
* @author Joburgess
|
|
|
* @date 2021/1/11 0011
|
|
|
* @return void
|
|
|
*/
|
|
|
- private void saveData(List<IndexBaseMonthData> dataList, String startMonth, IndexDataType indexDataType){
|
|
|
- startMonth = startMonth+"-01";
|
|
|
- Date date = DateUtil.stringToDate(startMonth, "yyyy-MM-dd");
|
|
|
+ private void saveData(List<IndexBaseMonthData> dataList, String dayStr, IndexDataType indexDataType){
|
|
|
+ Date date = DateUtil.stringToDate(dayStr, "yyyy-MM-dd");
|
|
|
if(Objects.isNull(dataList)){
|
|
|
dataList = new ArrayList<>();
|
|
|
}
|
|
@@ -308,7 +306,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
}
|
|
|
dataList.add(new IndexBaseMonthData(date, organId));
|
|
|
}
|
|
|
- indexBaseMonthDataDao.deleteWithMonthAndType(Arrays.asList(startMonth), indexDataType);
|
|
|
+ indexBaseMonthDataDao.deleteWithMonthAndType(Arrays.asList(dayStr), indexDataType);
|
|
|
indexBaseMonthDataDao.batchInsertWithDataType(dataList, indexDataType);
|
|
|
}
|
|
|
|
|
@@ -341,7 +339,6 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
two.setDesc(IndexErrorType.STUDENT_INFO.getMsg());
|
|
|
List<IndexErrInfoDto> twoChild = new ArrayList<>();
|
|
|
|
|
|
-
|
|
|
Date firstDayOfMonth = DateUtil.getFirstDayOfMonth(DateUtil.addMonths(date, -1));
|
|
|
|
|
|
twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_NOT_PAYMENT, IndexErrorType.STUDENT_NOT_PAYMENT.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIds), indexBaseMonthDataDao.getNoPaymentMusicGroup(organIds)));
|