导入可以带出数据功能

This commit is contained in:
liuliang 2022-07-25 09:57:15 +08:00
parent 27c84676b7
commit 341b122fe7
2 changed files with 40 additions and 4 deletions

View File

@ -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<Map<String, Object>> datas = buildTableData(insuranceArchivesEmployeePOS);
//表头
excelSheetData.add(Arrays.asList(headers.toArray(new String[0])));
Map<String, Object> dataMap = getSIArchivesService(user).listPage(param);
List<Map<String, Object>> records = (List<Map<String, Object>>)dataMap.get("datas");
List<WeaTableColumn> columns = (List<WeaTableColumn>)dataMap.get("columns");
List<String> rowCloumn = Lists.newArrayList();
List<String> 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<Object> row = Lists.newArrayList();
rowCloumn.forEach(column -> row.add(record.get(column)));
excelSheetData.add(row);
});
// 3.表数据
//工作簿数据
return ExcelUtil.genWorkbookV2(excelSheetData, sheetName);

View File

@ -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<InsuranceAccountInspectPO> 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<InsuranceArchivesEmployeePO> page = new ArrayList<>();
SalaryPageUtil.start(param.getCurrent(), param.getPageSize());
page = socialSchemeMapper.queryEmployeeList(param);
PageInfo<InsuranceArchivesEmployeePO> 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 {