2022-04-21 14:15:56 +08:00
|
|
|
package com.engine.salary.wrapper;
|
|
|
|
|
|
|
|
|
|
import com.engine.common.util.ServiceUtil;
|
|
|
|
|
import com.engine.core.impl.Service;
|
|
|
|
|
import com.engine.salary.entity.datacollection.dto.AttendQuoteDataBaseDTO;
|
2022-10-28 16:15:51 +08:00
|
|
|
import com.engine.salary.entity.datacollection.param.*;
|
2022-04-21 14:15:56 +08:00
|
|
|
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;
|
2023-03-07 11:36:45 +08:00
|
|
|
import com.engine.salary.util.page.Column;
|
2022-04-21 14:15:56 +08:00
|
|
|
import com.engine.salary.util.page.PageInfo;
|
2023-03-07 11:36:45 +08:00
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
2022-04-21 14:15:56 +08:00
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
2023-06-20 17:00:14 +08:00
|
|
|
import weaver.general.Util;
|
2022-04-21 14:15:56 +08:00
|
|
|
import weaver.hrm.User;
|
|
|
|
|
|
2023-06-20 17:00:14 +08:00
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
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) {
|
2023-02-06 16:28:56 +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) {
|
2023-02-06 16:28:56 +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);
|
|
|
|
|
|
2023-06-20 17:00:14 +08:00
|
|
|
//当前引用的值
|
|
|
|
|
List<String> effectiveColumns = listMaps.stream()
|
|
|
|
|
.map(Map::keySet)
|
|
|
|
|
.max(Comparator.comparingInt(Set::size))
|
|
|
|
|
.orElse(new HashSet<>())
|
|
|
|
|
.stream()
|
|
|
|
|
.map(key -> key.split("_")[0])
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
|
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());
|
2023-03-07 11:36:45 +08:00
|
|
|
List<Column> columns = new ArrayList<>();
|
|
|
|
|
columns.add(Column.builder().title("姓名").dataIndex("username").key("username").display(Boolean.TRUE).build());
|
|
|
|
|
columns.add(Column.builder().title("部门").dataIndex("departmentName").key("departmentName").display(Boolean.TRUE).build());
|
|
|
|
|
columns.add(Column.builder().title("手机号").dataIndex("mobile").key("mobile").display(Boolean.TRUE).build());
|
|
|
|
|
columns.add(Column.builder().title("工号").dataIndex("jobNum").key("jobNum").display(Boolean.TRUE).build());
|
2024-05-29 16:53:51 +08:00
|
|
|
columns.add(Column.builder().title("证件号码").dataIndex("idNo").key("idNo").display(Boolean.TRUE).build());
|
2022-04-21 14:15:56 +08:00
|
|
|
if (CollectionUtils.isNotEmpty(listMaps)) {
|
2023-06-20 17:00:14 +08:00
|
|
|
attendQuoteFields.stream()
|
|
|
|
|
.filter(attendQuoteField->effectiveColumns.contains(Util.null2String(attendQuoteField.getId())))
|
|
|
|
|
.forEach(attendQuoteField -> {
|
|
|
|
|
columns.add(Column.builder().title(attendQuoteField.getFieldName())
|
|
|
|
|
.dataIndex(attendQuoteField.getId() + "_attendQuoteData")
|
|
|
|
|
.key(attendQuoteField.getId() + "_attendQuoteData").display(Boolean.TRUE).build());
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
2022-04-21 14:15:56 +08:00
|
|
|
}
|
2023-03-07 11:36:45 +08:00
|
|
|
listPage.setColumns(columns);
|
|
|
|
|
// 表格表头
|
|
|
|
|
// List<WeaTableColumn> columns = new ArrayList<>();
|
|
|
|
|
// 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"));
|
|
|
|
|
// 动态列
|
|
|
|
|
// if (CollectionUtils.isNotEmpty(listMaps)) {
|
|
|
|
|
// for (AttendQuoteFieldPO attendQuoteField : attendQuoteFields) {
|
|
|
|
|
// columns.add(new WeaTableColumn("150", attendQuoteField.getFieldName(), attendQuoteField.getId() + "_attendQuoteData"));
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// WeaTable weaTable = new WeaTable();
|
|
|
|
|
// weaTable.setColumns(columns);
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// WeaResultMsg result = new WeaResultMsg(false);
|
|
|
|
|
// result.putAll(weaTable.makeDataResult());
|
|
|
|
|
// result.success();
|
2022-04-21 14:15:56 +08:00
|
|
|
|
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);
|
2023-03-07 11:36:45 +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-10-28 16:15:51 +08:00
|
|
|
|
|
|
|
|
public void editData(AttendQuoteDataEditParam attendQuoteDataEditParam) {
|
|
|
|
|
getAttendQuoteDataService(user).editData(attendQuoteDataEditParam);
|
|
|
|
|
}
|
2022-10-31 14:50:54 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取数据
|
|
|
|
|
*/
|
2023-02-06 16:28:56 +08:00
|
|
|
public Map<String, Object> getData(AttendQuoteDataEditParam attendQuoteDataEditParam) {
|
2022-10-31 14:50:54 +08:00
|
|
|
return getAttendQuoteDataService(user).getData(attendQuoteDataEditParam);
|
|
|
|
|
}
|
2022-04-21 14:15:56 +08:00
|
|
|
}
|