package com.mes.largenscreen.service.impl; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mes.largenscreen.entity.DailyProductionData; import com.mes.largenscreen.entity.DailyProductionVO; import com.mes.largenscreen.entity.DateRequest; import com.mes.largenscreen.mapper.LargenScreenMapper; import com.mes.largenscreen.service.LargenScreenService; import com.mes.tools.PageUtil; import com.mes.utils.excel.CustomCellWriteWidthConfig; import com.mes.utils.excel.ExcelMergeStrategy; import com.mes.utils.excel.ExcelUtil; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; /** * @Author : zhoush * @Date: 2025/3/12 14:28 * @Description: */ @Service public class LargenScreenServiceImpl implements LargenScreenService { @Resource private LargenScreenMapper largenScreenMapper; @Resource private HttpServletResponse response; @Override public Page queryDailyProduction(DateRequest query) { if (StringUtils.isEmpty(query.getBeginDate())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); query.setBeginDate(sdf.format(new Date())); query.setEndDate(sdf.format(new Date())); } List list = largenScreenMapper.queryDailyProduction(query.getBeginDate(), query.getEndDate()); return (Page) PageUtil.listToPage(list, query.getPageNo(), query.getPageSize()); } @Override public List querySameDayProduction(DateRequest query) { if (StringUtils.isEmpty(query.getBeginDate())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -6); query.setBeginDate(sdf.format(calendar.getTime())); query.setEndDate(sdf.format(new Date())); } List list = largenScreenMapper.queryDailyProduction(query.getBeginDate(), query.getEndDate()); return list; } @Override public void exportDailyProduction() { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -10); ExcelUtil.setExcelResponseProp(response, "MES试生产记录" + sdf.format(new Date())); List providerList = largenScreenMapper.exportDailyProduction(sdf.format(calendar.getTime()), sdf.format(new Date())); EasyExcel.write(response.getOutputStream()) .head(DailyProductionData.class) .registerWriteHandler(new ExcelMergeStrategy(DailyProductionData.class)) .registerWriteHandler(new CustomCellWriteWidthConfig()) .excelType(ExcelTypeEnum.XLSX).sheet("生产记录").doWrite(providerList); } catch (IOException e) { throw new RuntimeException(e); } } @Override public List queryProduction(DateRequest query) { if (StringUtils.isEmpty(query.getBeginDate())) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, -6); query.setBeginDate(sdf.format(calendar.getTime())); query.setEndDate(sdf.format(new Date())); } return largenScreenMapper.exportDailyProduction(query.getBeginDate(), query.getEndDate()); } }