|
@@ -12,11 +12,13 @@ import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.IndexErrorType;
|
|
|
import com.ym.mec.biz.dal.enums.InspectionItemEnum;
|
|
|
import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
|
|
|
+import com.ym.mec.biz.dal.page.IndexErrRecordQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.InspectionItemPlanQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.InspectionQueryInfo;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.common.page.PageInfo;
|
|
|
+import com.ym.mec.common.page.QueryInfo;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -237,6 +239,75 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public PageInfo<IndexErrorDataExportDto> queryRecord(IndexErrRecordQueryInfo queryInfo) {
|
|
|
+ PageInfo<IndexErrorDataExportDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<String, Object>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+ Set<Integer> queryOrganIds = null;
|
|
|
+ if(StringUtils.isNotBlank(queryInfo.getOrganIds())){
|
|
|
+ queryOrganIds = Arrays.stream(queryInfo.getOrganIds().split(",")).map(Integer::new).collect(Collectors.toSet());
|
|
|
+ }
|
|
|
+ params.put("queryOrganIds", queryOrganIds);
|
|
|
+
|
|
|
+ int count = indexErrDataRecordDao.queryErrStringsCount(params);
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ List<IndexErrorDataExportDto> dataList = new ArrayList<>();
|
|
|
+ List<String> strings = indexErrDataRecordDao.queryErrStrings(params);
|
|
|
+ if (!CollectionUtils.isEmpty(strings)) {
|
|
|
+ List<IndexErrDataRecord> errRecords = indexErrDataRecordDao.getWithOrganMonthUserStr(strings);
|
|
|
+ List<Integer> organIds = errRecords.stream().map(IndexErrDataRecord::getOrganId).collect(Collectors.toList());
|
|
|
+ List<Organization> organs = organizationDao.findOrgans(organIds);
|
|
|
+ Map<Integer, String> idOrganNameMap = organs.stream().collect(Collectors.toMap(Organization::getId, o -> o.getName()));
|
|
|
+
|
|
|
+ List<Integer> userIds = errRecords.stream().map(IndexErrDataRecord::getDealUserId).collect(Collectors.toList());
|
|
|
+ Map<Integer, SimpleUserDto> idUserMap = new HashMap<>();
|
|
|
+ if(!CollectionUtils.isEmpty(userIds)){
|
|
|
+ List<SimpleUserDto> users = teacherDao.getUsersSimpleInfo(userIds);
|
|
|
+ idUserMap = users.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, u->u, (u1, u2)->u1));
|
|
|
+ }
|
|
|
+ Map<Integer, List<IndexErrDataRecord>> organDataMap = errRecords.stream().collect(Collectors.groupingBy(IndexErrDataRecord::getOrganId));
|
|
|
+ for (Map.Entry<Integer, List<IndexErrDataRecord>> organDataMapEntry : organDataMap.entrySet()) {
|
|
|
+ Map<Date, Map<Integer, List<IndexErrDataRecord>>> dateUserRecordMap = organDataMapEntry.getValue().stream().collect(Collectors.groupingBy(IndexErrDataRecord::getGenerateTime, Collectors.groupingBy(IndexErrDataRecord::getDealUserId)));
|
|
|
+ for (Map.Entry<Date, Map<Integer, List<IndexErrDataRecord>>> dateUserRecordMapEntry : dateUserRecordMap.entrySet()) {
|
|
|
+ String generateTimeStr = DateUtil.dateToString(dateUserRecordMapEntry.getKey(), DateUtil.DATE_FORMAT_MIN);
|
|
|
+ for (Map.Entry<Integer, List<IndexErrDataRecord>> userRecordMapEntry : dateUserRecordMapEntry.getValue().entrySet()) {
|
|
|
+ IndexErrorDataExportDto record = new IndexErrorDataExportDto();
|
|
|
+ record.setGenerateTime(generateTimeStr);
|
|
|
+ record.setOrganName(idOrganNameMap.get(organDataMapEntry.getKey()));
|
|
|
+ if(idUserMap.containsKey(userRecordMapEntry.getKey())){
|
|
|
+ record.setDealUserName(idUserMap.get(userRecordMapEntry.getKey()).getUserName());
|
|
|
+ }
|
|
|
+ Map<IndexErrorType, Long> typeDataNumMap = userRecordMapEntry.getValue().stream().collect(Collectors.groupingBy(IndexErrDataRecord::getDataType, Collectors.counting()));
|
|
|
+ for (Map.Entry<IndexErrorType, Long> typeDataNumMapEntry : typeDataNumMap.entrySet()) {
|
|
|
+ switch (typeDataNumMapEntry.getKey()){
|
|
|
+ case MUSIC_PATROL_ITEM:
|
|
|
+ record.setMusicPatrolItem(typeDataNumMapEntry.getValue().intValue());
|
|
|
+ break;
|
|
|
+ case INSPECTION_ITEM_PLAN:
|
|
|
+ record.setInspectionItemPlan(typeDataNumMapEntry.getValue().intValue());
|
|
|
+ break;
|
|
|
+ case STUDENT_VISIT:
|
|
|
+ record.setStudentVisit(typeDataNumMapEntry.getValue().intValue());
|
|
|
+ break;
|
|
|
+ case TEACHER_EXCEPTION_ATTENDANCE:
|
|
|
+ record.setTeacherExceptionAttendance(typeDataNumMapEntry.getValue().intValue());
|
|
|
+ break;
|
|
|
+ case TEACHER_NOT_A_CLASS:
|
|
|
+ record.setTeacherNotAClass(typeDataNumMapEntry.getValue().intValue());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataList.add(record);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public PageInfo<InspectionItemPlan> queryErrInspectionData(InspectionItemPlanQueryInfo queryInfo) {
|
|
|
PageInfo<InspectionItemPlan> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
Map<String, Object> params = new HashMap<String, Object>();
|