package com.ycl.platform.service.impl;
|
|
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ycl.platform.domain.entity.DailyMonitorDemeritRecord;
|
|
import com.ycl.platform.domain.entity.DemeritRecord;
|
import com.ycl.platform.domain.entity.MonitorConstruction;
|
import com.ycl.platform.domain.excel.DailyMonitorDemeritRecordExp;
|
import com.ycl.platform.service.IDailyMonitorDemeritRecordService;
|
import com.ycl.platform.service.IDemeritRecordService;
|
import com.ycl.platform.service.IMonitorConstructionService;
|
import com.ycl.system.mapper.DailyMonitorDemeritRecordMapper;
|
import com.ycl.utils.DateUtils;
|
import enumeration.ConstructionTypeEnum;
|
import enumeration.general.AreaDeptEnum;
|
import jakarta.servlet.http.HttpServletResponse;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.stereotype.Service;
|
import pojo.ExcelExp;
|
import utils.poi.ExcelUtilManySheet;
|
|
import java.io.IOException;
|
import java.time.LocalDateTime;
|
import java.time.ZoneId;
|
import java.time.format.DateTimeFormatter;
|
import java.util.*;
|
|
/**
|
* zgyw
|
*
|
* @author : zxl
|
* @date : 2025-11-04 17:47
|
**/
|
@Service
|
@RequiredArgsConstructor
|
public class DailyMonitorDemeritRecordServiceImpl extends ServiceImpl<DailyMonitorDemeritRecordMapper,DailyMonitorDemeritRecord>
|
implements IDailyMonitorDemeritRecordService {
|
private final DailyMonitorDemeritRecordMapper dailyMonitorDemeritRecordMapper;
|
private final IDemeritRecordService demeritRecordService;
|
|
@Override
|
public void getExportInfo(HttpServletResponse httpServletResponse, Integer id) throws IOException {
|
DemeritRecord demeritRecord = demeritRecordService.getBaseMapper().selectById(id);
|
|
if (demeritRecord != null) {
|
|
//获得详情
|
Date recordTime = demeritRecord.getRecordTime();
|
LocalDateTime dateTime = LocalDateTime.ofInstant(recordTime.toInstant(), ZoneId.systemDefault());
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
String formatted = dateTime.format(formatter);
|
|
Integer deptId = demeritRecord.getDeptId();
|
ConstructionTypeEnum constructionTypeEnum = ConstructionTypeEnum.getEnumByName(demeritRecord.getConstructionType());
|
|
List<DailyMonitorDemeritRecord> list = new LambdaQueryChainWrapper<>(baseMapper)
|
.ge(DailyMonitorDemeritRecord::getRecordTime, DateUtils.getDayStart(recordTime))
|
.le(DailyMonitorDemeritRecord::getRecordTime, DateUtils.getDayEnd(recordTime))
|
.eq(DailyMonitorDemeritRecord::getDeptId, deptId)
|
.eq(DailyMonitorDemeritRecord::getConstructionType,constructionTypeEnum.getDesc())
|
.eq(DailyMonitorDemeritRecord::getDeleted, false)
|
.list();
|
AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(deptId);
|
List<DailyMonitorDemeritRecordExp> exps = new ArrayList<>();
|
List<ExcelExp> mySheet = new ArrayList<>();
|
for (DailyMonitorDemeritRecord dm : list) {
|
DailyMonitorDemeritRecordExp dailyMonitorDemeritRecordExp = new DailyMonitorDemeritRecordExp();
|
dailyMonitorDemeritRecordExp.setSerialNumber(dm.getSerialNumber());
|
dailyMonitorDemeritRecordExp.setConstructionType(constructionTypeEnum.getDesc());
|
|
if (areaDeptEnum != null) {
|
dailyMonitorDemeritRecordExp.setDept(areaDeptEnum.getName());
|
}else{
|
dailyMonitorDemeritRecordExp.setDept("未知区域");
|
}
|
|
dailyMonitorDemeritRecordExp.setDemerit(dm.getDemerit());
|
dailyMonitorDemeritRecordExp.setIsReport(dm.getIsReport() ? "已报备" :"未报备");
|
dailyMonitorDemeritRecordExp.setRecordTime(formatted);
|
dailyMonitorDemeritRecordExp.setDeviceName(dm.getDeviceName());
|
exps.add(dailyMonitorDemeritRecordExp);
|
}
|
ExcelExp excelExp = new ExcelExp(areaDeptEnum == null ? "未知" : areaDeptEnum.getName(),exps,DailyMonitorDemeritRecordExp.class);
|
mySheet.add(excelExp);
|
ExcelUtilManySheet<List<ExcelExp>> util = new ExcelUtilManySheet<>(mySheet);
|
util.exportExcelManySheet(httpServletResponse, mySheet);
|
}
|
|
|
|
}
|
}
|