package com.sercurityControl.proteam.dutyTask.service; import com.securityControl.common.core.web.domain.AjaxResult; import com.sercurityControl.proteam.dutyTask.domain.HistoryDto; import com.sercurityControl.proteam.dutyTask.mapper.HistoryMapper; import com.sercurityControl.proteam.util.DateTimeHelper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; /** * @author 10488 * 综合展示 历史数据 */ @Service("HistoryService") @Slf4j public class HistoryServiceImpl implements HistoryService { @Resource(name = "HistoryMapper") private HistoryMapper mapper; @Override public AjaxResult getHistoryByDateType(HistoryDto dto) { String type = Objects.isNull(dto.getDateType()) ? "1" : dto.getDateType(); switch (type) { case "2": return getHistoryByWeek(dto); case "3": return getHistoryByMonth(dto); default: return getHistoryByDay(dto); } } public AjaxResult getHistoryByDay(HistoryDto dto) { Map map = new HashMap<>(3); List valueList = new ArrayList<>(); List valueList2 = new ArrayList<>(); int num = 30; String type = "3"; if(Objects.equals(dto.getType(),type)){ // 作业票 num = 7; } List dateList = DateTimeHelper.getDateList(num); dateList.forEach(date -> { dto.setStartTime(date); dto.setEndTime(date); try { List> dataMap = mapper.getHistoryByDateType(dto); valueList.add(Integer.parseInt(String.valueOf(dataMap.get(0).get("num")))); valueList2.add(Integer.parseInt(String.valueOf(dataMap.get(1).get("num")))); } catch (NumberFormatException e) { log.error("历史记录-日",e); valueList.add(0); valueList2.add(0); } }); map.put("nameList", dateList); map.put("valueList", valueList); map.put("valueList2", valueList2); return AjaxResult.success(map); } public AjaxResult getHistoryByWeek(HistoryDto dto) { Map map = new HashMap<>(3); List timeList = com.securityControl.common.core.utils.aes.DateTimeHelper.getWeekList(); List collect = timeList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); List times = new ArrayList<>(); List valueList = new ArrayList<>(); List valueList2 = new ArrayList<>(); collect.forEach(time -> { String startWeek = com.securityControl.common.core.utils.aes.DateTimeHelper.getWeekStartOrEndTime(time, true); String endWeek = com.securityControl.common.core.utils.aes.DateTimeHelper.getWeekStartOrEndTime(time, false); times.add(com.securityControl.common.core.utils.aes.DateTimeHelper.getWeekTimes(time)); dto.setStartTime(startWeek); dto.setEndTime(endWeek); try { List> dataMap = mapper.getHistoryByDateType(dto); valueList.add(Integer.parseInt(String.valueOf(dataMap.get(0).get("num")))); valueList2.add(Integer.parseInt(String.valueOf(dataMap.get(1).get("num")))); } catch (Exception e) { log.error("历史记录-周",e); valueList.add(0); valueList2.add(0); } }); map.put("nameList", times); map.put("valueList", valueList); map.put("valueList2", valueList2); return AjaxResult.success(map); } public AjaxResult getHistoryByMonth(HistoryDto dto) { Map map = new HashMap<>(3); List times = new ArrayList<>(); List valueList = new ArrayList<>(); List valueList2 = new ArrayList<>(); List monthList = DateTimeHelper.getMonthList(); monthList.forEach(month -> { String[] monthArr = month.split("~"); times.add(monthArr[0].substring(0, 7)); dto.setStartTime(monthArr[0]); dto.setEndTime(monthArr[1]); try { List> dataMap = mapper.getHistoryByDateType(dto); valueList.add(Integer.parseInt(String.valueOf(dataMap.get(0).get("num")))); valueList2.add(Integer.parseInt(String.valueOf(dataMap.get(1).get("num")))); } catch (NumberFormatException e) { log.error("历史记录-月",e); valueList.add(0); valueList2.add(0); } }); map.put("nameList", times); map.put("valueList", valueList); map.put("valueList2", valueList2); return AjaxResult.success(map); } }