package com.ydtech.modules.largescreen.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ydtech.constants.enums.dict.InsOrderStatusEnum; import com.ydtech.modules.largescreen.dao.AgreementDataMapper; import com.ydtech.modules.largescreen.model.*; import com.ydtech.modules.largescreen.model.query.DataQuery; import com.ydtech.modules.largescreen.service.IAgreementDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; @Service public class AgreementDataService implements IAgreementDataService { @Autowired AgreementDataMapper agreementDataMapper; @Override public List getCompanySumData(DataQuery dataQuery) { return agreementDataMapper.getCompanySumData(dataQuery); } @Override public List getOrderStatusData(DataQuery dataQuery) { List orderStatusData = agreementDataMapper.getOrderStatusData(dataQuery); List newOrderStatusData = new ArrayList<>(); orderStatusData.forEach(item -> { InsOrderStatusEnum insOrderStatusEnum = InsOrderStatusEnum.matchKey(item.getOrderStatusCode()); if (insOrderStatusEnum != null) { item.setOrderStatusName(insOrderStatusEnum.getDesc()); newOrderStatusData.add(item); } }); return newOrderStatusData; } @Override public List getMapData(DataQuery dataQuery) { return agreementDataMapper.getMapData(dataQuery); } @Override public Integer getOrderNumber(DataQuery dataQuery) { return agreementDataMapper.getOrderNumber(dataQuery); } /** * 获取一周内的数据 * @return */ @Override public List getWeekData() { //获取一周内的起始日期 List weekDate = this.getWeekDate(); List resultList = new ArrayList<>(); weekDate.forEach(date -> { DataQuery dataQuery = new DataQuery(); dataQuery.startDate = date + " 00:00:00"; dataQuery.endDate = date + " 23:59:59"; dataQuery.orderStatus = "3"; List orderStatusData = agreementDataMapper.getOrderStatusData(dataQuery); if(orderStatusData.isEmpty()){ OrderStatusData orderStatusData1 = new OrderStatusData(); orderStatusData1.setOrderStatusName("已完成"); orderStatusData1.setOrderStatusCode("3"); orderStatusData1.setDate(date); orderStatusData.add(orderStatusData1); }else{ orderStatusData.get(0).setDate(date); } resultList.addAll(orderStatusData); }); return resultList; } @Override public List getCompanys() { List companys = agreementDataMapper.getCompanys(); List agreements = agreementDataMapper.getAgreements(); companys.forEach(companyData -> { List agreements1 = new ArrayList<>(); agreements.forEach(agreement -> { if(agreement.getCompanyId().equals(companyData.getCompanyId())){ agreements1.add(agreement); } }); companyData.setAgreementList(agreements1); }); return companys; } //获取一周内的日期 public static List getWeekDate(){ List list = new ArrayList<>(); //获取一周内的起始日期 // 获取当前日期 LocalDate currentDate = LocalDate.now(); // 获取前一周的起始日期 LocalDate oneWeekAgo = currentDate.minusWeeks(1); // 包括今天 去除1天 oneWeekAgo = oneWeekAgo.plusDays(1); // 输出前一周每天的起始日期 for (int i = 0; i < 6; i++) { // 获取每天的起始日期时间 LocalDateTime startOfDay = oneWeekAgo.atStartOfDay(); list.add(startOfDay.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); oneWeekAgo = oneWeekAgo.plusDays(1); } list.add(currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); return list; } }