diff --git a/src/com/engine/salary/service/impl/SIImportServiceImpl.java b/src/com/engine/salary/service/impl/SIImportServiceImpl.java index 433e21392..621fd39f9 100644 --- a/src/com/engine/salary/service/impl/SIImportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIImportServiceImpl.java @@ -2,6 +2,7 @@ package com.engine.salary.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; +import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.SIArchivesBiz; @@ -25,6 +26,7 @@ import com.engine.salary.service.SIImportService; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.excel.ExcelUtil; +import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.hrm.User; @@ -81,6 +83,29 @@ public class SIImportServiceImpl extends Service implements SIImportService { // List> datas = buildTableData(insuranceArchivesEmployeePOS); //表头 excelSheetData.add(Arrays.asList(headers.toArray(new String[0]))); + Map dataMap = getSIArchivesService(user).listPage(param); + List> records = (List>)dataMap.get("datas"); + List columns = (List)dataMap.get("columns"); + List rowCloumn = Lists.newArrayList(); + List names = columns.stream().map(WeaTableColumn::getText).collect(Collectors.toList()); + headers.forEach(header -> { + if (names.contains(header)){ + columns.forEach(column -> { + //用来判断columns中是否包含header + if (header.equals(column.getText())){ + rowCloumn.add(column.getColumn()); + } + + }); + }else { + rowCloumn.add(null); + } + }); + records.forEach(record -> { + List row = Lists.newArrayList(); + rowCloumn.forEach(column -> row.add(record.get(column))); + excelSheetData.add(row); + }); // 3.表数据 //工作簿数据 return ExcelUtil.genWorkbookV2(excelSheetData, sheetName); diff --git a/src/com/engine/salary/web/SISchemeController.java b/src/com/engine/salary/web/SISchemeController.java index 78f1ffa59..3535ffc06 100644 --- a/src/com/engine/salary/web/SISchemeController.java +++ b/src/com/engine/salary/web/SISchemeController.java @@ -4,21 +4,26 @@ import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.siaccount.po.InsuranceAccountInspectPO; import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesEmployeePO; import com.engine.salary.entity.sischeme.dto.InsuranceSchemeListDTO; import com.engine.salary.entity.sischeme.param.InsuranceSchemeParam; import com.engine.salary.entity.sischeme.param.InsuranceSchemeReqParam; import com.engine.salary.entity.sischeme.param.SISchemaImportParam; import com.engine.salary.enums.sicategory.WelfareTypeEnum; +import com.engine.salary.mapper.siarchives.SocialSchemeMapper; import com.engine.salary.service.SIAccountService; import com.engine.salary.service.SISchemeService; import com.engine.salary.service.impl.SIAccountServiceImpl; import com.engine.salary.service.impl.SISchemeServiceImpl; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.wrapper.SISchemeWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.session.SqlSession; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import weaver.conn.mybatis.MyBatisFactory; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -31,10 +36,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.StreamingOutput; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -238,6 +240,15 @@ public class SISchemeController { List insuranceAccountInspectPOS = getSIAccountService(user).allInspects(param.getIds(), param.getBillMonth()); param.setEmployeeIds(insuranceAccountInspectPOS.stream().map(InsuranceAccountInspectPO::getEmployeeId).distinct().collect(Collectors.toList())); } + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + SocialSchemeMapper socialSchemeMapper = sqlSession.getMapper(SocialSchemeMapper.class); + List page = new ArrayList<>(); + SalaryPageUtil.start(param.getCurrent(), param.getPageSize()); + page = socialSchemeMapper.queryEmployeeList(param); + PageInfo pageInfo = new PageInfo<>(page, InsuranceArchivesEmployeePO.class); + int total = (int)pageInfo.getTotal(); + param.setPageSize(total); + param.setCurrent(1); XSSFWorkbook workbook = getService(user).exportTemplate(param); String fileName = null; try {