package com.engine.salary.service.impl;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.biz.*;
import com.engine.salary.common.LocalDateRange;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.datacollection.dto.*;
import com.engine.salary.entity.datacollection.param.AttendQuoteDataExportTemplateParam;
import com.engine.salary.entity.datacollection.param.AttendQuoteDataQueryParam;
import com.engine.salary.entity.datacollection.param.AttendQuoteDataSyncParam;
import com.engine.salary.entity.datacollection.param.AttendQuoteFieldSettingQueryParam;
import com.engine.salary.entity.datacollection.po.AttendQuoteDataPO;
import com.engine.salary.entity.datacollection.po.AttendQuoteDataValuePO;
import com.engine.salary.entity.datacollection.po.AttendQuoteFieldPO;
import com.engine.salary.entity.datacollection.po.AttendQuotePO;
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
import com.engine.salary.enums.datacollection.AttendQuoteSourceTypeEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.service.AttendQuoteDataService;
import com.engine.salary.service.AttendQuoteFieldSettingService;
import com.engine.salary.service.SalarySobService;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.excel.ExcelUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import weaver.hrm.User;
import java.time.YearMonth;
import java.util.*;
import java.util.stream.Collectors;
/**
* 数据采集-考勤引用数据
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDataService {
private AttendQuoteBiz quoteBiz = new AttendQuoteBiz();
private AttendQuoteDataBiz dataBiz = new AttendQuoteDataBiz();
private AttendQuoteDataValueBiz dataValueBiz = new AttendQuoteDataValueBiz();
private AttendQuoteFieldBiz fieldBiz = new AttendQuoteFieldBiz();
private EmployBiz employeeBiz = new EmployBiz();
// AttendQuoteFieldSettingBiz a= new AttendQuoteFieldSettingBiz();
private AttendQuoteFieldSettingService getFieldSettingService(User user) {
return (AttendQuoteFieldSettingService) ServiceUtil.getService(AttendQuoteFieldSettingServiceImpl.class, user);
}
private SalarySobService getSalarySobService(User user) {
return (SalarySobService) ServiceUtil.getService(AttendQuoteFieldSettingServiceImpl.class, user);
}
// @Resource
// private SalarySobMapper salarySobMapper;
// @Resource
// private SalarySobRangeMapper salarySobRangeMapper;
// @Resource
// private SalarySobService salarySobService;
// @Resource
// private HrmCommonEmployeeService employeeService;
// @Resource
// private SalaryBatchService salaryBatchService;
// @Resource
// private AttendQuoteFieldSettingService attendQuoteFieldSettingService;
// @RpcReference
// private RemoteAttend4SalaryService remoteAttend4SalaryService;
// @Autowired
// private ExecutorService taskExecutor;
// @Autowired
// private LoggerTemplate attendQuoteLoggerTemplate;
//
@Override
public Map view(AttendQuoteDataQueryParam queryParam) {
if (queryParam == null) {
throw new SalaryRunTimeException("参数不能为空");
}
Long id = queryParam.getAttendQuoteId();
if (id == null) {
throw new SalaryRunTimeException("考勤引用id不能为空");
}
// 考勤数据分页主数据
List attendQuoteDataBases = dataBiz.list(queryParam);
// 所有考勤字段
List attendQuoteFields = getAllAttendQuoteFields();
// 获取最终结果
List