package com.chuanghai.attendance.controller; import com.chuanghai.attendance.common.exception.BizCodeEnume; import com.chuanghai.attendance.common.exception.RRException; import com.chuanghai.attendance.common.utils.CommonResult; import com.chuanghai.attendance.dto.MonthlyDto; import com.chuanghai.attendance.entity.DayDetails; import com.chuanghai.attendance.entity.DownLoadExcel; import com.chuanghai.attendance.entity.MonitorFoldLineTable; import com.chuanghai.attendance.entity.MonthlySummary; import com.chuanghai.attendance.service.*; import com.chuanghai.attendance.utils.FileExportUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * 月度汇总 * * @Author: binguo * @Date: 2022/10/9 星期日 16:00 * @Description: com.chuanghai.attendance.controller * @Version: 1.0 */ @RestController @RequestMapping("month") @Slf4j public class MonthlySummaryController { @Autowired private MonthlySummaryService monthlySummaryService; @Autowired private OriginalDataService originalDataService; @Autowired private WorkerIdentityService workerIdentityService; @Autowired private CampusTimeService campusTimeService; @Autowired private DayDetailsService dayDetailsService; private static Boolean analyseStatu = Boolean.FALSE; /** * 读取钉钉考勤excel原始数据,添加至数据库 * * @param file * @throws Exception */ @PostMapping("importExcel") public CommonResult importMonthExcel(@RequestParam("file") MultipartFile file) { Boolean aBoolean; Boolean oBoolean; Boolean wBoolean; String msg = "执行失败"; try { aBoolean = monthlySummaryService.importMonthDataExcel(file); wBoolean = workerIdentityService.importWorkExcel(file); oBoolean = originalDataService.importOriginalDataExcel(file); if (aBoolean && oBoolean && wBoolean) { msg = "执行成功"; } } catch (Exception e) { e.printStackTrace(); throw new RRException(BizCodeEnume.FILE_IMPORT_ERROR); } return CommonResult.result("200", msg, aBoolean); } /** * 分析钉钉原始数据 * * @return */ @GetMapping("analyse") public CommonResult analyse() { List monthlyDtoList = monthlySummaryService.analyse(); MonthlyDto monthlyDto = monthlyDtoList.get(0); log.info("monthlyDtomonthlyDtomonthlyDtomonthlyDto",monthlyDto); if (monthlyDtoList.size() > 0) { analyseStatu = Boolean.TRUE; } return CommonResult.ok(); } /** * 查询解析是否完成 * @return */ @GetMapping("queryAnalyseStatu") public CommonResult queryAnalyseStatu() { Boolean statu; statu = analyseStatu; if (statu) { analyseStatu = Boolean.FALSE; } return CommonResult.ok().setResult(statu); } /** * 下载excel数据 * @return */ @GetMapping("downLoad") public CommonResult> downLoad() { List MonthlyDtoList = monthlySummaryService.analyse(); List monthlySummaryList = monthlySummaryService.queryAll(); List dayDetailsList = dayDetailsService.list(); List downLoadExcelList = new ArrayList<>(); for (int m = 0; m < MonthlyDtoList.size(); m++) { DownLoadExcel downLoadExcel = new DownLoadExcel(); MonthlyDto monthlyDto = MonthlyDtoList.get(m); MonthlySummary monthlySummary = monthlySummaryList.get(m); DayDetails dayDetails = dayDetailsList.get(m + 1); BeanUtils.copyProperties(monthlyDto, downLoadExcel); BeanUtils.copyProperties(monthlySummary, downLoadExcel); BeanUtils.copyProperties(dayDetails, downLoadExcel); downLoadExcelList.add(downLoadExcel); } // downLoadExcelList.forEach(downLoadExcel -> { // System.out.println(downLoadExcel); // }); return CommonResult.ok().setResult(downLoadExcelList); } @RequestMapping("te") public void test(HttpServletResponse response) { String[] titleStr = dayDetailsService.getTitleStr(); //假设这是需要导出的数据 List downLoadExcels = downLoad().getData(); List data = new ArrayList(); //调用导出工具类 FileExportUtil.testExcelDemo(downLoadExcels, response, titleStr); } /** * 获取月度 日标题 * * @return */ @GetMapping("title") public CommonResult getTitle() { String[] titleStr = dayDetailsService.getTitleStr(); for (int m = 0; m < titleStr.length; m++) { if (!StringUtils.hasText(titleStr[m])) { titleStr[m] = ""; } } return CommonResult.ok().setResult(titleStr); } }