@ -27,8 +27,12 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant ;
import com.epmet.commons.tools.dto.result.DictTreeResultDTO ;
import com.epmet.commons.tools.enums.DictTypeEnum ;
import com.epmet.commons.tools.enums.OrgTypeEnum ;
import com.epmet.commons.tools.exception.EpmetErrorCode ;
import com.epmet.commons.tools.exception.EpmetException ;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis ;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache ;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache ;
import com.epmet.commons.tools.security.user.LoginUserUtil ;
import com.epmet.commons.tools.utils.ConvertUtils ;
import com.epmet.commons.tools.utils.ExcelUtils ;
@ -63,6 +67,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils ;
import javax.servlet.http.HttpServletResponse ;
import java.beans.Encoder ;
import java.net.URLEncoder ;
import java.util.ArrayList ;
import java.util.HashMap ;
import java.util.List ;
@ -198,25 +204,30 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
@Override
public void pcWorkListExport ( PcWorkListFormDTO formDTO , HttpServletResponse response ) throws Exception {
String name = "zxc.xlsx" ;
String fileName = getFileName ( formDTO ) ;
ExcelWriter excelWriter = null ;
try {
// 这里 需要指定写用哪个class去写
excelWriter = EasyExcel . write ( ExcelUtils . getOutputStreamForExcel ( name , response ) ) . build ( ) ;
// 这里注意 如果同一个sheet只要创建一次
WriteSheet writeSheet = EasyExcel . writerSheet ( "模板" ) . build ( ) ;
String name = URLEncoder . encode ( fileName , "UTF-8" ) ;
response . setCharacterEncoding ( "UTF-8" ) ;
response . setHeader ( "Content-disposition" , "attachment;" ) ;
excelWriter = EasyExcel . write ( ExcelUtils . getOutputStreamForExcel ( name , response ) , PcWorkListExport . class ) . build ( ) ;
// 如果同一个sheet只要创建一次
WriteSheet writeSheet = EasyExcel . writerSheet ( name ) . build ( ) ;
Integer pageNo = NumConstant . ONE ;
Integer pageSize = NumConstant . ONE_HUNDRED ;
Integer num = NumConstant . ZERO ;
do {
formDTO . setPageNo ( pageNo ) ;
formDTO . setPageSize ( pageSize ) ;
List < PcWorkListExport > data = ConvertUtils . sourceToTarget ( pcWorkList ( formDTO ) . getList ( ) , PcWorkListExport . class ) ;
List < PcWorkListResultDTO . PcWorkListResult > dtos = pcWorkList ( formDTO ) . getList ( ) ;
dtos . forEach ( d - > {
d . setWorkTypeNames ( d . getWorkTypeName ( ) . toString ( ) ) ;
} ) ;
List < PcWorkListExport > data = ConvertUtils . sourceToTarget ( dtos , PcWorkListExport . class ) ;
num = data . size ( ) ;
excelWriter . write ( data , writeSheet ) ;
pageNo + + ;
} while ( num > NumConstant . ZERO & & num . compareTo ( pageSize ) = = NumConstant . ZERO ) ;
} finally {
if ( excelWriter ! = null ) {
excelWriter . finish ( ) ;
@ -224,6 +235,31 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
}
}
public String getFileName ( PcWorkListFormDTO formDTO ) {
StringBuilder name = new StringBuilder ( ) ;
if ( formDTO . getOrgType ( ) . equals ( OrgTypeEnum . GRID . getCode ( ) ) ) {
GridInfoCache gridInfo = CustomerOrgRedis . getGridInfo ( formDTO . getOrgId ( ) ) ;
if ( null = = gridInfo ) {
throw new EpmetException ( "查询网格信息失败..." ) ;
}
name . append ( gridInfo . getGridName ( ) ) ;
} else {
AgencyInfoCache agencyInfo = CustomerOrgRedis . getAgencyInfo ( formDTO . getOrgId ( ) ) ;
if ( null = = agencyInfo ) {
throw new EpmetException ( "查询组织信息失败..." ) ;
}
name . append ( agencyInfo . getOrganizationName ( ) ) ;
}
name . append ( "例行工作列表" ) ;
if ( StringUtils . isNotBlank ( formDTO . getStartTime ( ) ) ) {
name . append ( formDTO . getStartTime ( ) ) . append ( "-" ) . append ( formDTO . getEndTime ( ) ) . append ( "区间新增值" ) ;
} else {
name . append ( formDTO . getEndTime ( ) ) . append ( "截止累计值" ) ;
}
name . append ( ".xlsx" ) ;
return name . toString ( ) ;
} ;
/ * *
* @Description 处理 workTypeName
* @param workTypeList