人员动态列导出
This commit is contained in:
parent
853bf4b006
commit
8a3885db76
|
|
@ -33,11 +33,10 @@ public class DepartmentBO {
|
||||||
public static List<DepartmentListDTO> buildDeptDTOShowNames(Collection<DepartmentListDTO> list) {
|
public static List<DepartmentListDTO> buildDeptDTOShowNames(Collection<DepartmentListDTO> list) {
|
||||||
SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo();
|
SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo();
|
||||||
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
|
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
|
||||||
return list.stream().map(e -> {
|
return list.stream().peek(e -> {
|
||||||
e.setSubCompanyName(0 == e.getSubCompanyId1() ? "" : subCompanyComInfo.getSubCompanyname(Util.null2String(e.getSubCompanyId1())));
|
e.setSubCompanyName((null == e.getSubCompanyId1() || 0 == e.getSubCompanyId1()) ? "" : subCompanyComInfo.getSubCompanyname(Util.null2String(e.getSubCompanyId1())));
|
||||||
e.setSupDepName(0 == e.getSupDepId() ? "" : departmentComInfo.getDepartmentname(Util.null2String(e.getSupDepId())));
|
e.setSupDepName((null == e.getSupDepId() || 0 == e.getSupDepId()) ? "" : departmentComInfo.getDepartmentname(Util.null2String(e.getSupDepId())));
|
||||||
e.setBmfzr(getEmployeeNameById(e.getId()));
|
e.setBmfzr(getEmployeeNameById(e.getId()));
|
||||||
return e;
|
|
||||||
}
|
}
|
||||||
).collect(Collectors.toList());
|
).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
package com.engine.organization.service;
|
package com.engine.organization.service;
|
||||||
|
|
||||||
import com.engine.organization.entity.hrmresource.param.HrmResourceSearchParam;
|
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -19,4 +20,15 @@ public interface ExportCommonService {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
XSSFWorkbook resourceExport(List<Long> ids);
|
XSSFWorkbook resourceExport(List<Long> ids);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 花名册台账动态列Excel导出
|
||||||
|
*
|
||||||
|
* @param request request
|
||||||
|
* @param response response
|
||||||
|
* @param ids 选择批量导出的人员ID
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response, String ids);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,18 @@
|
||||||
package com.engine.organization.service.impl;
|
package com.engine.organization.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.api.browser.bean.SearchConditionGroup;
|
||||||
|
import com.api.browser.bean.SearchConditionItem;
|
||||||
|
import com.cloudstore.dev.api.service.Service_DevTable;
|
||||||
|
import com.cloudstore.eccom.constant.WeaBoolAttr;
|
||||||
|
import com.cloudstore.eccom.pc.table.WeaTableColumn;
|
||||||
|
import com.cloudstore.eccom.result.WeaResultMsg;
|
||||||
import com.engine.core.impl.Service;
|
import com.engine.core.impl.Service;
|
||||||
|
import com.engine.organization.component.OrganizationWeaTable;
|
||||||
|
import com.engine.organization.entity.hrmresource.po.SearchTemplatePO;
|
||||||
import com.engine.organization.entity.hrmresource.vo.HrmResourceVO;
|
import com.engine.organization.entity.hrmresource.vo.HrmResourceVO;
|
||||||
|
import com.engine.organization.mapper.resource.HrmResourceMapper;
|
||||||
import com.engine.organization.mapper.resource.ResourceMapper;
|
import com.engine.organization.mapper.resource.ResourceMapper;
|
||||||
import com.engine.organization.service.ExportCommonService;
|
import com.engine.organization.service.ExportCommonService;
|
||||||
import com.engine.organization.util.HrmI18nUtil;
|
import com.engine.organization.util.HrmI18nUtil;
|
||||||
|
|
@ -10,11 +21,13 @@ import com.engine.organization.util.detach.DetachUtil;
|
||||||
import com.engine.organization.util.excel.ExcelUtil;
|
import com.engine.organization.util.excel.ExcelUtil;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
|
import weaver.general.Util;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.Arrays;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.LinkedList;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.math.RoundingMode;
|
||||||
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -74,5 +87,119 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ
|
||||||
return ExcelUtil.genWorkbookV2(excelSheetData, sheetName);
|
return ExcelUtil.genWorkbookV2(excelSheetData, sheetName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response, String ids) {
|
||||||
|
List<String> headerList = new ArrayList<>();
|
||||||
|
List<Object> headerNameList = new ArrayList<>();
|
||||||
|
OrganizationWeaTable<HrmResourceVO> table = new OrganizationWeaTable<>(user, HrmResourceVO.class);
|
||||||
|
String sqlWhere = " where 1 = 1 and t.status < 4 and (t.accounttype is null or t.accounttype != 1)";
|
||||||
|
// 分权查询
|
||||||
|
DetachUtil detachUtil = new DetachUtil(user);
|
||||||
|
String parentCompanyIds = detachUtil.getJclRoleLevels();
|
||||||
|
if (detachUtil.isDETACH()) {
|
||||||
|
sqlWhere += " and t.subcompanyid1 in(" + parentCompanyIds + ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(StringUtils.isNotBlank(ids)){
|
||||||
|
sqlWhere += " and t.id in(" + ids + ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
table.setSqlwhere(sqlWhere);
|
||||||
|
List<WeaTableColumn> weaTableColumnList = new ArrayList<>();
|
||||||
|
List<String> fields = new ArrayList<>();
|
||||||
|
HrmResourceServiceImpl hrmResourceService = new HrmResourceServiceImpl();
|
||||||
|
List<SearchConditionGroup> allConditions = hrmResourceService.getAllConditions();
|
||||||
|
|
||||||
|
List<String> columnList;
|
||||||
|
|
||||||
|
// 查询当前台账定制列
|
||||||
|
SearchTemplatePO usedCustomTemplate = MapperProxyFactory.getProxy(HrmResourceMapper.class).getUsedCustomTemplateByUser(user.getUID());
|
||||||
|
if (null == usedCustomTemplate) {
|
||||||
|
// 默认列定制
|
||||||
|
String selectKeys = "-1_hrm_lastname,-1_hrm_departmentid,-1_hrm_jobtitle,-1_hrm_mobile,-1_hrm_telephone,-1_hrm_managerid";
|
||||||
|
columnList = Arrays.asList(selectKeys.split(","));
|
||||||
|
} else {
|
||||||
|
columnList = hrmResourceService.getSelectKeys(usedCustomTemplate);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BigDecimal decimal = new BigDecimal(100 / columnList.size());
|
||||||
|
for (SearchConditionGroup allCondition : allConditions) {
|
||||||
|
List<SearchConditionItem> items = allCondition.getItems();
|
||||||
|
for (SearchConditionItem item : items) {
|
||||||
|
String columnName = item.getDomkey()[0];
|
||||||
|
fields.add(hrmResourceService.buildTableSql(columnName) + " as " + hrmResourceService.buildTableSql(columnName).replace(".", "_"));
|
||||||
|
|
||||||
|
String scopeId = columnName.split("_")[0];
|
||||||
|
String fieldName = columnName.substring(columnName.lastIndexOf("_") + 1);
|
||||||
|
WeaTableColumn weaTableColumn = new WeaTableColumn();
|
||||||
|
weaTableColumn.setText(MapperProxyFactory.getProxy(HrmResourceMapper.class).queryLabelName(fieldName, scopeId));
|
||||||
|
weaTableColumn.setColumn(hrmResourceService.buildTableSql(columnName).replace(".", "_"));
|
||||||
|
weaTableColumn.setDisplay(columnList.contains(columnName) ? WeaBoolAttr.TRUE : WeaBoolAttr.FALSE);
|
||||||
|
weaTableColumn.setTransmethod("com.engine.organization.transmethod.HrmResourceTransMethod.getFieldTrueValue");
|
||||||
|
weaTableColumn.setOtherpara(columnName);
|
||||||
|
weaTableColumn.setWidth(decimal.setScale(2, RoundingMode.HALF_UP).doubleValue() + "%");
|
||||||
|
if (weaTableColumn.getDisplay().getBoolVal()) {
|
||||||
|
weaTableColumnList.add(weaTableColumn);
|
||||||
|
headerList.add(weaTableColumn.getColumn());
|
||||||
|
headerNameList.add(weaTableColumn.getText());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 增加id字段,跳转人员卡片
|
||||||
|
WeaTableColumn weaTableColumn = new WeaTableColumn();
|
||||||
|
weaTableColumn.setColumn("id");
|
||||||
|
weaTableColumn.setDisplay(WeaBoolAttr.FALSE);
|
||||||
|
weaTableColumnList.add(weaTableColumn);
|
||||||
|
fields.add("t.id");
|
||||||
|
|
||||||
|
// 增加分部字段
|
||||||
|
//WeaTableColumn weaTableColumn1 = new WeaTableColumn();
|
||||||
|
//weaTableColumn1.setText("分部");
|
||||||
|
//weaTableColumn1.setColumn("subcompanyid1");
|
||||||
|
//weaTableColumn1.setDisplay(WeaBoolAttr.TRUE);
|
||||||
|
//weaTableColumn1.setTransmethod("com.engine.organization.transmethod.HrmResourceTransMethod.getCompanyName");
|
||||||
|
//fields.add("t.subcompanyid1");
|
||||||
|
//headerList.add(0, weaTableColumn1.getColumn());
|
||||||
|
//headerNameList.add(0, weaTableColumn1.getText());
|
||||||
|
//weaTableColumnList.add(0, weaTableColumn1);
|
||||||
|
|
||||||
|
|
||||||
|
table.setBackfields(StringUtils.join(fields, ","));
|
||||||
|
table.setColumns(weaTableColumnList);
|
||||||
|
WeaResultMsg result = new WeaResultMsg(false);
|
||||||
|
result.putAll(table.makeDataResult());
|
||||||
|
result.success();
|
||||||
|
Map<String, Object> resultMap = result.getResultMap();
|
||||||
|
String dataKey = Util.null2String(resultMap.get("datas"));
|
||||||
|
|
||||||
|
String getcounts = new Service_DevTable().getcounts(request, response, dataKey);
|
||||||
|
JSONObject jsonObject = JSON.parseObject(getcounts);
|
||||||
|
String count = jsonObject.getString("count");
|
||||||
|
|
||||||
|
String datas = new Service_DevTable().datas(request, response, dataKey, count, "[]", "", "", "1", "");
|
||||||
|
jsonObject = JSON.parseObject(datas);
|
||||||
|
List<Map<String, Object>> datas1 = (List<Map<String, Object>>) jsonObject.get("datas");
|
||||||
|
|
||||||
|
List<List<Object>> rows = new LinkedList<>();
|
||||||
|
for (Map<String, Object> map : datas1) {
|
||||||
|
List<Object> row = new LinkedList<>();
|
||||||
|
for (String s : headerList) {
|
||||||
|
JSONObject o = (JSONObject) map;
|
||||||
|
String value = o.getString(s + "span");
|
||||||
|
row.add(Util.formatMultiLangForExpCustomLabel(value, String.valueOf(user.getLanguage())));
|
||||||
|
}
|
||||||
|
rows.add(row);
|
||||||
|
}
|
||||||
|
List<List<Object>> excelSheetData = new ArrayList<>();
|
||||||
|
|
||||||
|
excelSheetData.add(headerNameList);
|
||||||
|
|
||||||
|
excelSheetData.addAll(rows);
|
||||||
|
String sheetName = HrmI18nUtil.getI18nLabel(85368, "人员档案数据");
|
||||||
|
return ExcelUtil.genWorkbookV2(excelSheetData, sheetName);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1175,7 +1175,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
|
||||||
* @param key
|
* @param key
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private String buildTableSql(String key) {
|
public String buildTableSql(String key) {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
String[] s = key.split("_");
|
String[] s = key.split("_");
|
||||||
if (s.length < 3) {
|
if (s.length < 3) {
|
||||||
|
|
@ -1242,7 +1242,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
|
||||||
* @param searchTemplatePO
|
* @param searchTemplatePO
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private List<String> getSelectKeys(SearchTemplatePO searchTemplatePO) {
|
public List<String> getSelectKeys(SearchTemplatePO searchTemplatePO) {
|
||||||
List<String> selectKeys = new ArrayList<>();
|
List<String> selectKeys = new ArrayList<>();
|
||||||
String basicFields = searchTemplatePO.getBasicFields();
|
String basicFields = searchTemplatePO.getBasicFields();
|
||||||
String personalFields = searchTemplatePO.getPersonalFields();
|
String personalFields = searchTemplatePO.getPersonalFields();
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,6 @@ import javax.ws.rs.core.StreamingOutput;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author weaver_cl
|
* @Author weaver_cl
|
||||||
|
|
@ -43,13 +39,8 @@ public class ExportCommonController {
|
||||||
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
||||||
public Response resourceExport(@Context HttpServletRequest request, @Context HttpServletResponse response,
|
public Response resourceExport(@Context HttpServletRequest request, @Context HttpServletResponse response,
|
||||||
@QueryParam("ids") String ids) {
|
@QueryParam("ids") String ids) {
|
||||||
//HrmResourceSearchParam param = buildResourceParam(request);
|
|
||||||
List<Long> idList = new ArrayList<>();
|
|
||||||
if (StringUtils.isNotBlank(ids)){
|
|
||||||
idList = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
User user = HrmUserVarify.getUser(request, response);
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
XSSFWorkbook workbook = getExportCommonWrapper(user).resourceExport(idList);
|
XSSFWorkbook workbook = getExportCommonWrapper(user).resourceExport(request, response, ids);
|
||||||
String time = LocalDate.now().toString();
|
String time = LocalDate.now().toString();
|
||||||
String fileName = "人员导出" + time;
|
String fileName = "人员导出" + time;
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ import com.engine.organization.service.impl.ExportCommonServiceImpl;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
import weaver.hrm.User;
|
import weaver.hrm.User;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -24,4 +26,8 @@ public class ExportCommonWrapper extends Service {
|
||||||
public XSSFWorkbook resourceExport(List<Long> ids) {
|
public XSSFWorkbook resourceExport(List<Long> ids) {
|
||||||
return getExportCommonService(user).resourceExport(ids);
|
return getExportCommonService(user).resourceExport(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response, String ids) {
|
||||||
|
return getExportCommonService(user).resourceExport(request, response, ids);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue