package com.ssj.statistics.service.impl; import com.ssj.api.domain.vo.homework.CheckDetailVO; import com.ssj.api.domain.vo.statistics.ListVO; import com.ssj.api.domain.vo.statistics.TeacherSalarysVO; import com.ssj.bean.statistics.PlatTeacherStatistics; import com.ssj.framework.core.common.service.BaseServiceImpl; import com.ssj.framework.weixin.util.DateUtil; import com.ssj.statistics.dao.IStatisticsDao; import com.ssj.statistics.dao.IStatisticsQueryDao; import com.ssj.statistics.service.IStatisticsService; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Service; import java.util.*; /** * @author sh * @className StatisticsServiceImpl * @description 数据统计service * @date 2021/2/27 */ @Service public class StatisticsServiceImpl extends BaseServiceImpl implements IStatisticsService { @Autowired private IStatisticsDao dao; @Autowired private IStatisticsQueryDao queryDao; @Override public PagingAndSortingRepository getDao() { return dao; } @Override public Page> statisticsList(Map params, Pageable initPage) { return queryDao.statisticsList(params,initPage); } @Override public Map errorList(Map params, Pageable initPage) { Page> page = queryDao.errorList(params,initPage); Map data = new HashMap<>(2); data.put("pages",page.getTotalElements()); List> list = page.getContent(); List> listLast = new ArrayList<>(); String teacherId = MapUtils.getString(params,"teacherId"); String subject = MapUtils.getString(params,"subject"); if(Objects.nonNull(list) && list.size()>0){ for(Map map:list){ Map map2 = new HashMap<>(); map2.put("workDate",map.get("workDate")); map2.put("dateList",queryDao.findStudentErrorList(MapUtils.getString(map,"year_1"),teacherId,subject)); listLast.add(map2); } } data.put("list",listLast); return data; } @Override public Map findTotalData(Map params) { return queryDao.findTotalData(params); } @Override public List checkDetailList(String homeworkId) { return queryDao.checkDetailList(homeworkId); } @Override public void addStatisticsData(String dataDate) { if(StringUtils.isBlank(dataDate)){ dataDate = DateUtil.format_yyyyMMdd(DateUtil.addDays(new Date(), -1)); } List list = queryDao.statisticsDataList(dataDate); if(Objects.nonNull(list)){ String finalDataDate = dataDate; list.forEach(o->{ PlatTeacherStatistics plat = new PlatTeacherStatistics(); BeanUtils.copyProperties(o,plat); plat.setCalculateDate(finalDataDate); plat.setCreateTime(new Date()); this.save(plat); }); } } @Override public void addTeacherSalarysData(String month) { if(StringUtils.isBlank(month)){ month = DateUtil.format_yyyyMMdd(DateUtil.addMonth(-1)); } List list = queryDao.addTeacherSalarysData(month); } }