weaver-hrm-salary/src/com/engine/salary/wrapper/AttendQuoteDataWrapper.java

152 lines
5.4 KiB
Java
Raw Normal View History

2022-04-21 14:15:56 +08:00
package com.engine.salary.wrapper;
import com.cloudstore.eccom.pc.table.WeaTable;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.cloudstore.eccom.result.WeaResultMsg;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.entity.datacollection.dto.AttendQuoteDataBaseDTO;
import com.engine.salary.entity.datacollection.param.AttendQuoteDataExportTemplateParam;
2022-04-22 15:46:03 +08:00
import com.engine.salary.entity.datacollection.param.AttendQuoteDataImportParam;
2022-04-21 14:15:56 +08:00
import com.engine.salary.entity.datacollection.param.AttendQuoteDataQueryParam;
import com.engine.salary.entity.datacollection.param.AttendQuoteDataSyncParam;
import com.engine.salary.entity.datacollection.po.AttendQuoteFieldPO;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.service.AttendQuoteDataService;
import com.engine.salary.service.AttendQuoteFieldService;
import com.engine.salary.service.impl.AttendQuoteDataServiceImpl;
import com.engine.salary.service.impl.AttendQuoteFieldServiceImpl;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.page.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import weaver.hrm.User;
2022-06-13 10:52:32 +08:00
import java.util.*;
2022-04-21 14:15:56 +08:00
/**
* 考勤数据
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public class AttendQuoteDataWrapper extends Service {
private AttendQuoteDataService getAttendQuoteDataService(User user) {
2022-06-28 16:46:42 +08:00
return ServiceUtil.getService(AttendQuoteDataServiceImpl.class, user);
2022-04-21 14:15:56 +08:00
}
2022-04-22 15:46:03 +08:00
2022-04-21 14:15:56 +08:00
private AttendQuoteFieldService getAttendQuoteFieldService(User user) {
2022-06-28 16:46:42 +08:00
return ServiceUtil.getService(AttendQuoteFieldServiceImpl.class, user);
2022-04-21 14:15:56 +08:00
}
2022-04-22 15:46:03 +08:00
2022-04-21 14:15:56 +08:00
/**
* 同步考勤引用数据
*
* @param syncParam
* @return
*/
public String syncAttendQuoteData(AttendQuoteDataSyncParam syncParam) {
return getAttendQuoteDataService(user).syncAttendQuoteData(syncParam);
}
/**
* 查看考勤引用数据
*
* @param queryParam
* @return
*/
2022-04-22 15:46:03 +08:00
public Map<String, Object> view(AttendQuoteDataQueryParam queryParam) {
2022-04-21 14:15:56 +08:00
Long id = queryParam.getAttendQuoteId();
if (id == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100253, "考勤引用id不能为空"));
}
// 考勤数据分页主数据
PageInfo<AttendQuoteDataBaseDTO> page = getAttendQuoteDataService(user).listPage(queryParam);
List<AttendQuoteDataBaseDTO> attendQuoteDataBases = page.getList();
// 所有考勤字段
List<AttendQuoteFieldPO> attendQuoteFields = getAttendQuoteFieldService(user).getAllAttendQuoteFields();
// 获取最终结果
List<Map<String, Object>> listMaps = getAttendQuoteDataService(user).getListMaps(attendQuoteDataBases);
2022-06-23 14:08:55 +08:00
PageInfo<Map<String, Object>> listPage = new PageInfo<>(listMaps);
listPage.setPageNum(page.getPageNum());
listPage.setPageSize(page.getPageSize());
listPage.setTotal(page.getTotal());
2022-04-21 14:15:56 +08:00
// 表格表头
List<WeaTableColumn> columns = new ArrayList<>();
2022-04-25 16:31:33 +08:00
columns.add(new WeaTableColumn("150", SalaryI18nUtil.getI18nLabel(85429, "姓名"), "username"));
columns.add(new WeaTableColumn("150", SalaryI18nUtil.getI18nLabel(86185, "部门"), "departmentName"));
columns.add(new WeaTableColumn("150", SalaryI18nUtil.getI18nLabel(86186, "手机号"), "mobile"));
columns.add(new WeaTableColumn("150", SalaryI18nUtil.getI18nLabel(86317, "工号"), "jobNum"));
2022-04-21 14:15:56 +08:00
// 动态列
if (CollectionUtils.isNotEmpty(listMaps)) {
2022-06-13 10:52:32 +08:00
Map<String, Object> map = listMaps.stream().max(Comparator.comparingInt(m -> m.keySet().size())).get();
2022-04-21 14:15:56 +08:00
for (AttendQuoteFieldPO attendQuoteField : attendQuoteFields) {
if (map.containsKey(attendQuoteField.getId() + "_attendQuoteData")) {
2022-04-25 16:31:33 +08:00
columns.add(new WeaTableColumn("150", attendQuoteField.getFieldName(), attendQuoteField.getId() + "_attendQuoteData"));
2022-04-21 14:15:56 +08:00
}
}
}
WeaTable weaTable = new WeaTable();
weaTable.setColumns(columns);
WeaResultMsg result = new WeaResultMsg(false);
result.putAll(weaTable.makeDataResult());
result.success();
2022-04-22 15:46:03 +08:00
Map<String, Object> datas = new HashMap<>();
2022-04-21 14:15:56 +08:00
datas.put("pageInfo", listPage);
2022-04-22 15:46:03 +08:00
datas.put("dataKey", result.getResultMap());
2022-04-21 14:15:56 +08:00
return datas;
}
/**
* 下载导入模板
*
* @param templateParam
* @return
*/
public XSSFWorkbook downloadTemplate(AttendQuoteDataExportTemplateParam templateParam) {
2022-04-22 15:46:03 +08:00
return getAttendQuoteDataService(user).downloadTemplate(templateParam);
2022-04-21 14:15:56 +08:00
}
/**
2022-06-23 14:08:55 +08:00
* 导出考勤引用数据
2022-04-21 14:15:56 +08:00
*
* @param queryParam
* @return
*/
public XSSFWorkbook export(AttendQuoteDataQueryParam queryParam) {
return getAttendQuoteDataService(user).export(queryParam);
}
2022-04-22 15:46:03 +08:00
/**
* 预览
*
* @param param
* @return
*/
public Map<String, Object> preview(AttendQuoteDataImportParam param) {
return getAttendQuoteDataService(user).preview(param);
}
/**
* 导入
*
* @param param
* @return
*/
public Map<String, Object> importAttendQuoteData(AttendQuoteDataImportParam param) {
return getAttendQuoteDataService(user).importAttendQuoteData(param);
}
2022-04-21 14:15:56 +08:00
}