Compare commits

...

5 Commits
master ... ybgc

@ -16,7 +16,7 @@ import lombok.NoArgsConstructor;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@OrganizationTable(pageId = "c0583f20-f10c-11ec-9947-00e04c680716",
@OrganizationTable(pageId = "959ae985-00e2-11ee-992b-00e04c680716",
fields = "t.id," +
"t.lastname," +
"t.departmentid," +

@ -1,8 +1,9 @@
package com.engine.organization.service;
import com.engine.organization.entity.hrmresource.param.HrmResourceSearchParam;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@ -19,4 +20,6 @@ public interface ExportCommonService {
* @return
*/
XSSFWorkbook resourceExport(List<Long> ids);
XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response,String ids);
}

@ -1,7 +1,17 @@
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.organization.component.OrganizationWeaTable;
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.service.ExportCommonService;
import com.engine.organization.util.HrmI18nUtil;
@ -10,11 +20,13 @@ import com.engine.organization.util.detach.DetachUtil;
import com.engine.organization.util.excel.ExcelUtil;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import weaver.general.Util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -73,5 +85,114 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ
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<>();
String columns = "";
List<String> fields = new ArrayList<>();
HrmResourceServiceImpl hrmResourceService = new HrmResourceServiceImpl();
List<SearchConditionGroup> allConditions = hrmResourceService.getAllConditions();
//初次使用,无模板初始值
columns = "-1_hrm_departmentid,-1_hrm_jobtitle,3_cus_field20,-1_hrm_jobactivity,-1_hrm_lastname,-1_hrm_sex,1_hrm_certificatenum,1_hrm_birthday,-1_hrm_jobcall,-1_cus_field7,1_cus_field18,-1_hrm_mobile,1_hrm_folk,1_hrm_nativeplace,1_hrm_regresidentplace,1_hrm_maritalstatus,1_hrm_policy,1_hrm_educationlevel,1_hrm_degree,1_cus_field8,1_cus_field9,1_cus_field10,1_cus_field11,1_cus_field12,3_hrm_companystartdate,3_hrm_probationenddate,3_hrm_startdate,3_hrm_enddate,1_cus_field14,1_cus_field15,3_cus_field21,-1_hrm_status,-1_cus_field6,3_cus_field19,-1_hrm_workcode";
List<String> columnList = Arrays.asList(columns.split(","));
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.setPageID(UUID.randomUUID().toString());
table.setPageUID(table.getPageID() + "_" + user.getUID());
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(value);
}
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);
}
}

@ -6,6 +6,7 @@ import com.api.browser.bean.SearchConditionOption;
import com.api.browser.util.ConditionType;
import com.api.hrm.bean.HrmFieldBean;
import com.api.hrm.util.HrmFieldSearchConditionComInfo;
import com.cloudstore.dev.api.util.Util_DataCache;
import com.cloudstore.eccom.constant.WeaBoolAttr;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.cloudstore.eccom.result.WeaResultMsg;
@ -141,6 +142,11 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
List<String> fields = new ArrayList<>();
List<SearchConditionGroup> allConditions = getAllConditions();
if (Util_DataCache.getObjVal("hmc_allDept") == null) {
Map<String, Map<String, String>> deptStr = getDeptMap();
Util_DataCache.setObjVal("hmc_allDept", deptStr, 7200);
}
if (jclOrgCustomTemplatePO != null) {
if (StringUtils.isNotBlank(jclOrgCustomTemplatePO.getBasicFields())) {
columns = jclOrgCustomTemplatePO.getBasicFields();
@ -466,7 +472,9 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
topMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新建人员").type("BTN_Addnew").build());
rightMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新建人员").type("BTN_Addnew").build());
}
topMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("customization").menuIcon("icon-coms-task-list").menuName("列定制").type("BTN_COLUMN").build());
//topMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("customization").menuIcon("icon-coms-task-list").menuName("列定制").type("BTN_COLUMN").build());
topMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("custom").menuIcon("icon-coms-task-list").menuName("列定制").type("BTN_COLUMN").build());
//rightMenuList.add(MenuBtn.builder().isBatch("0").isTop("0").menuFun("custom").menuIcon("icon-coms-task-list").menuName("显示列定制").type("BTN_COLUMN").build());
rightMenuList.add(MenuBtn.rightMenu_btnLog());
btnDatas.put("topMenu", topMenuList);
btnDatas.put("rightMenu", rightMenuList);
@ -1125,7 +1133,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
* @param key
* @return
*/
private String buildTableSql(String key) {
public String buildTableSql(String key) {
StringBuilder sb = new StringBuilder();
String[] s = key.split("_");
if (s.length < 3) {
@ -1143,9 +1151,9 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
return "t5.id";
}
// 姓名点击事件
if ("lastname".equalsIgnoreCase(fieldName)) {
return "lastname";
}
//if ("lastname".equalsIgnoreCase(fieldName)) {
// return "lastname";
//}
if ("hrm".equals(tableName)) {
return sb.append("t.").append(fieldName).toString();
@ -1209,4 +1217,23 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic
return selectKeys;
}
private static Map<String, Map<String, String>> getDeptMap() {
Map<String, Map<String, String>> data = new HashMap();
String sql = "select id,departmentname,supdepid from HrmDepartment where (canceled IS NULL OR canceled !='1')";
RecordSet rs = new RecordSet();
rs.execute(sql);
while(rs.next()) {
String id = Util.null2String(rs.getString("id"));
String departmentname = Util.null2String(rs.getString("departmentname"));
String supdepid = Util.null2String(rs.getString("supdepid"));
Map<String, String> obj = new HashMap();
obj.put("departmentname", departmentname);
obj.put("supdepid", supdepid);
data.put(id, obj);
}
return data;
}
}

@ -1,14 +1,20 @@
package com.engine.organization.transmethod;
import com.cloudstore.dev.api.util.Util_DataCache;
import com.engine.organization.entity.job.bo.JobBO;
import com.engine.organization.mapper.comp.CompMapper;
import com.engine.organization.mapper.department.DepartmentMapper;
import com.engine.organization.mapper.hrmresource.SystemDataMapper;
import com.engine.organization.util.db.MapperProxyFactory;
import org.json.JSONObject;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.hrm.definedfield.HrmFieldManager;
import javax.servlet.http.HttpSession;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2022/06/21
@ -18,14 +24,20 @@ public class HrmResourceTransMethod {
public static String getFieldTrueValue(String id, String para) {
HrmFieldManager hfm = new HrmFieldManager("HrmCustomFieldByInfoType", Integer.parseInt(para.split("_")[0]));
// hfm.getCustomFields();
String fieldName = para.substring(para.lastIndexOf("_") + 1);
JSONObject hrmFieldConf = hfm.getHrmFieldConf(fieldName);
User user = new User();
user.setUid(1);
try {
return hfm.getFieldvalue(null, user, null, hrmFieldConf.getString("dmlurl"), hrmFieldConf.getInt("id"), hrmFieldConf.getInt("fieldhtmltype"), hrmFieldConf.getInt("type"), id, 0, fieldName);
} catch (Exception e) {
if ("departmentid".equals(fieldName)) {
Map<String, Map<String, String>> dept = (Map) Util_DataCache.getObjVal("hmc_allDept");
return getAllDepartmentName(id, dept);
} else {
return hfm.getFieldvalue((HttpSession)null, user, (String)null, hrmFieldConf.getString("dmlurl"), hrmFieldConf.getInt("id"), hrmFieldConf.getInt("fieldhtmltype"), hrmFieldConf.getInt("type"), id, 0, fieldName);
}
} catch (Exception var7) {
(new BaseBean()).writeLog("getFieldTrueValue Exception:" + var7.getMessage());
return "";
}
}
@ -60,4 +72,26 @@ public class HrmResourceTransMethod {
}
return MapperProxyFactory.getProxy(SystemDataMapper.class).getScHrmResourceNameById(managerId);
}
private static String getAllDepartmentName(String id, Map<String, Map<String, String>> dept) {
String allname = "";
String departmentname = "";
try {
while(!"".equals(id) && !"0".equals(id)) {
Map<String, String> obj = (Map)dept.get(id);
id = Util.null2String((String)obj.get("supdepid"));
departmentname = Util.null2String((String)obj.get("departmentname"));
allname = departmentname + ">" + allname;
}
} catch (Exception var5) {
(new BaseBean()).writeLog("getAllDepartmentName Exception", var5.getMessage());
}
if (!"".equals(allname)) {
allname = allname.substring(0, allname.length() - 1);
}
return allname;
}
}

@ -49,7 +49,7 @@ public class ExportCommonController {
idList = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList());
}
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 fileName = "人员导出" + time;
try {

@ -7,6 +7,8 @@ import com.engine.organization.service.impl.ExportCommonServiceImpl;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import weaver.hrm.User;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@ -18,10 +20,14 @@ import java.util.List;
public class ExportCommonWrapper extends Service {
public ExportCommonService getExportCommonService(User user) {
return ServiceUtil.getService(ExportCommonServiceImpl.class,user);
return ServiceUtil.getService(ExportCommonServiceImpl.class, user);
}
public XSSFWorkbook resourceExport(List<Long> ids) {
return getExportCommonService(user).resourceExport(ids);
}
public XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response,String ids) {
return getExportCommonService(user).resourceExport(request,response,ids);
}
}

Loading…
Cancel
Save