|
@ -1,18 +1,23 @@ |
|
|
package com.epmet.service.impl; |
|
|
package com.epmet.service.impl; |
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.excel.EasyExcel; |
|
|
|
|
|
import com.alibaba.excel.ExcelWriter; |
|
|
|
|
|
import com.alibaba.excel.write.metadata.WriteSheet; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
|
|
|
import com.epmet.commons.tools.constant.FieldConstant; |
|
|
import com.epmet.commons.tools.constant.ServiceConstant; |
|
|
import com.epmet.commons.tools.constant.ServiceConstant; |
|
|
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|
|
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|
|
|
|
|
import com.epmet.commons.tools.exception.EpmetException; |
|
|
|
|
|
import com.epmet.commons.tools.exception.ExceptionUtils; |
|
|
import com.epmet.commons.tools.feign.ResultDataResolver; |
|
|
import com.epmet.commons.tools.feign.ResultDataResolver; |
|
|
import com.epmet.commons.tools.page.PageData; |
|
|
import com.epmet.commons.tools.page.PageData; |
|
|
import com.epmet.commons.tools.redis.common.CustomerOrgRedis; |
|
|
import com.epmet.commons.tools.redis.common.CustomerOrgRedis; |
|
|
import com.epmet.commons.tools.redis.common.bean.GridInfoCache; |
|
|
|
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
import com.epmet.commons.tools.constant.FieldConstant; |
|
|
|
|
|
import com.epmet.commons.tools.utils.EpmetRequestHolder; |
|
|
import com.epmet.commons.tools.utils.EpmetRequestHolder; |
|
|
|
|
|
import com.epmet.commons.tools.utils.ExcelUtils; |
|
|
import com.epmet.commons.tools.utils.SpringContextUtils; |
|
|
import com.epmet.commons.tools.utils.SpringContextUtils; |
|
|
import com.epmet.dao.WorkdiaryServiceRecordDao; |
|
|
import com.epmet.dao.WorkdiaryServiceRecordDao; |
|
|
import com.epmet.dao.WorkdiaryServiceTypeDao; |
|
|
import com.epmet.dao.WorkdiaryServiceTypeDao; |
|
@ -20,18 +25,21 @@ import com.epmet.dto.IcResiUserDTO; |
|
|
import com.epmet.dto.WorkdiaryServiceTypeDTO; |
|
|
import com.epmet.dto.WorkdiaryServiceTypeDTO; |
|
|
import com.epmet.dto.result.WorkdiaryServiceRecordDTO; |
|
|
import com.epmet.dto.result.WorkdiaryServiceRecordDTO; |
|
|
import com.epmet.entity.WorkdiaryServiceRecordEntity; |
|
|
import com.epmet.entity.WorkdiaryServiceRecordEntity; |
|
|
import com.epmet.entity.WorkdiaryServiceTypeEntity; |
|
|
import com.epmet.excel.WorkdiaryServiceRecordExcel; |
|
|
import com.epmet.feign.EpmetUserOpenFeignClient; |
|
|
import com.epmet.feign.EpmetUserOpenFeignClient; |
|
|
import com.epmet.redis.WorkdiaryServiceRecordRedis; |
|
|
import com.epmet.redis.WorkdiaryServiceRecordRedis; |
|
|
import com.epmet.service.WorkdiaryServiceRecordService; |
|
|
import com.epmet.service.WorkdiaryServiceRecordService; |
|
|
import com.epmet.service.WorkdiaryServiceTypeService; |
|
|
import com.epmet.service.WorkdiaryServiceTypeService; |
|
|
import com.github.pagehelper.PageHelper; |
|
|
import com.github.pagehelper.PageHelper; |
|
|
import com.github.pagehelper.PageInfo; |
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
|
|
import org.apache.commons.collections4.CollectionUtils; |
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
|
import java.io.IOException; |
|
|
import java.util.Arrays; |
|
|
import java.util.Arrays; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import java.util.Map; |
|
|
import java.util.Map; |
|
@ -158,4 +166,47 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary |
|
|
return d; |
|
|
return d; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void export(String gridId, Short serviceType, String applicantName, String applicantAddress, |
|
|
|
|
|
String serviceContent, String applicantMobile, HttpServletResponse response) { |
|
|
|
|
|
|
|
|
|
|
|
ExcelWriter writer; |
|
|
|
|
|
try { |
|
|
|
|
|
writer = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("工作日志导出.xlsx", response)).build(); |
|
|
|
|
|
} catch (IOException e) { |
|
|
|
|
|
logger.error("【工作日志-服务】导出-response设置失败:{}", ExceptionUtils.getErrorStackTrace(e)); |
|
|
|
|
|
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
WriteSheet sheet = EasyExcel.writerSheet("工作日志") |
|
|
|
|
|
.head(WorkdiaryServiceRecordExcel.class) |
|
|
|
|
|
.build(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
//一次500条,分批导出
|
|
|
|
|
|
int pageSize = 500; |
|
|
|
|
|
for (int pageNo = 1; ; pageNo++) { |
|
|
|
|
|
PageData<WorkdiaryServiceRecordDTO> page = this.page(gridId, serviceType, applicantName, applicantAddress, serviceContent, applicantMobile, pageNo, pageSize); |
|
|
|
|
|
List<WorkdiaryServiceRecordDTO> list = page.getList(); |
|
|
|
|
|
if (CollectionUtils.isEmpty(list)) { |
|
|
|
|
|
// 空的,导出结束
|
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<WorkdiaryServiceRecordExcel> excelObjects = list.stream().map(e -> new WorkdiaryServiceRecordExcel(e)).collect(Collectors.toList()); |
|
|
|
|
|
writer.write(excelObjects, sheet); |
|
|
|
|
|
} |
|
|
|
|
|
} finally { |
|
|
|
|
|
writer.finish(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public Integer selectRecordCountOfType(Short serviceType) { |
|
|
|
|
|
LambdaQueryWrapper<WorkdiaryServiceRecordEntity> query = new LambdaQueryWrapper<>(); |
|
|
|
|
|
query.eq(WorkdiaryServiceRecordEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId()); |
|
|
|
|
|
query.eq(WorkdiaryServiceRecordEntity::getServiceType, serviceType); |
|
|
|
|
|
return baseDao.selectCount(query); |
|
|
|
|
|
} |
|
|
} |
|
|
} |