diff --git a/resource/sql/初始化系统薪资项目及对应的公式.sql b/resource/sql/初始化系统薪资项目及对应的公式.sql index 1860dac7a..e9a5aba0d 100644 --- a/resource/sql/初始化系统薪资项目及对应的公式.sql +++ b/resource/sql/初始化系统薪资项目及对应的公式.sql @@ -185,3 +185,12 @@ INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_t INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1651801587794, '累计公积金个人合计', 1651801586972, 'addUpSituation_addUpAccumulationFundTotal', '{往期累计情况.累计公积金个人合计}', 'number', 'addUpSituation', 1, 1, 0, '2022-05-06 09:46:27', '2022-05-06 09:46:27'); INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1651801669969, '其他福利个人合计', 1651801667770, 'welfare_otherPerSum', '{社保福利.其他福利个人合计}', 'number', 'welfare', 0, 1, 0, '2022-05-06 09:47:48', '2022-05-06 09:47:48'); INSERT INTO hrsa_formula_var(id, name, formula_id, field_id, field_name, field_type, source, order_index, creator, delete_type, create_time, update_time) VALUES (1651801670474, '累计企业(职业)年金及其他福利', 1651801667770, 'addUpSituation_addUpEnterpriseAndOther', '{往期累计情况.累计企业(职业)年金及其他福利}', 'number', 'addUpSituation', 1, 1, 0, '2022-05-06 09:47:48', '2022-05-06 09:47:48'); + + + + +INSERT INTO hrsa_sob_default_emp_field(id, field_code, sorted_index, can_delete, creator, create_time, update_time, delete_type, tenant_key) VALUES (681983911359291652, 'taxAgentName', 0, 0, 0, '2022-02-23 17:32:08', '2022-02-23 17:32:08', 0, 'all_teams'); +INSERT INTO hrsa_sob_default_emp_field(id, field_code, sorted_index, can_delete, creator, create_time, update_time, delete_type, tenant_key) VALUES (681983911359291653, 'username', 1, 0, 0, '2022-02-23 17:32:08', '2022-02-23 17:32:08', 0, 'all_teams'); +INSERT INTO hrsa_sob_default_emp_field(id, field_code, sorted_index, can_delete, creator, create_time, update_time, delete_type, tenant_key) VALUES (681983911359291654, 'departmentName', 2, 0, 0, '2022-02-23 17:32:08', '2022-02-23 17:32:08', 0, 'all_teams'); + + diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml index d99ac809d..62c19a594 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml @@ -79,9 +79,7 @@ - + INSERT INTO hrsa_salary_archive diff --git a/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml b/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml index 337ba0f95..bfda99fc8 100644 --- a/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/AttendQuoteDataMapper.xml @@ -269,8 +269,6 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid WHERE t1.delete_type = 0 - WHERE - t1.delete_type = 0 ORDER BY t1.id DESC @@ -283,8 +281,6 @@ LEFT JOIN hrmdepartment d ON d.id = e.departmentid WHERE t1.delete_type = 0 - WHERE - t1.delete_type = 0 ORDER BY t1.id DESC diff --git a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java index ad8f79af1..45b73929a 100644 --- a/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java +++ b/src/com/engine/salary/remote/attend/service/impl/RemoteAttend4SalaryServiceImpl.java @@ -50,8 +50,18 @@ public class RemoteAttend4SalaryServiceImpl extends Service implements RemoteAtt } } //加班 - else if (dataIndex.equals("overtime")) { - + else if (dataIndex.equals("overtime")&& column.get("children") != null) { + List list = (List) column.get("children"); + if (CollectionUtils.isNotEmpty(list)) { + list.stream() + .filter(leave -> leave.get("dataIndex") != null && StringUtils.isNotBlank(leave.get("dataIndex").toString())) + .forEach(leave -> { + Map map = Maps.newHashMapWithExpectedSize(2); + map.put("code", leave.get("dataIndex").toString()); + map.put("name", leave.get("title") + "(" + leave.get("unit").toString() + ")"); + columns.add(map); + }); + } } //普通考勤 else { diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index 43722d16f..283b81a2c 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -101,13 +101,12 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa // private HrmCommonEmployeeService employeeService; -// private AttendQuoteFieldSettingService attendQuoteFieldSettingService; - private RemoteAttend4SalaryService getRemoteAttend4SalaryService(User user){ + // private AttendQuoteFieldSettingService attendQuoteFieldSettingService; + private RemoteAttend4SalaryService getRemoteAttend4SalaryService(User user) { return (RemoteAttend4SalaryService) ServiceUtil.getService(RemoteAttend4SalaryServiceImpl.class, user); } - // private ExecutorService taskExecutor; // private LoggerTemplate attendQuoteLoggerTemplate; // @@ -414,7 +413,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa attend4Salary.setBeginDate(attendCycleRange.getFromDate()); attend4Salary.setEndDate(attendCycleRange.getEndDate()); attend4Salary.setOnlyEmpIds(part); - List> attendResult = getRemoteAttend4SalaryService(user).getDatas(attend4Salary); + List> attendResult = getRemoteAttend4SalaryService(user).getDatas(attend4Salary); log.info("考勤数据:{}", JSONUtils.toJSONString(attendResult)); AttendQuoteDataBO.buildAttendDataFromRemote(attendResult, attendQuoteFields, attendQuoteSyncData); // attend4Salary.setUnit("day"); @@ -460,55 +459,59 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa @Override public XSSFWorkbook downloadTemplate(AttendQuoteDataExportTemplateParam exportParam) { - // 考勤主数据 - Date salaryYearMonth = SalaryDateUtil.localDateToDate(exportParam.getSalaryYearMonth().atDay(1)); - List attendQuotePOS = quoteBiz.listSome(AttendQuotePO.builder() - .salarySobId(exportParam.getSalarySobId()) - .salaryYearMonth(salaryYearMonth) - .ids(exportParam.getIds()).build()); - AttendQuotePO po = CollectionUtils.isNotEmpty(attendQuotePOS) ? attendQuotePOS.get(0) : null; - AttendQuoteDataQueryParam queryParam = AttendQuoteDataQueryParam.builder().attendQuoteId(po == null ? 0L : po.getId()).build(); - List attendQuoteDataBases = dataBiz.list(queryParam); + try { + // 考勤主数据 + Date salaryYearMonth = SalaryDateUtil.localDateToDate(exportParam.getSalaryYearMonth().atDay(1)); + List attendQuotePOS = quoteBiz.listSome(AttendQuotePO.builder() + .salarySobId(exportParam.getSalarySobId()) + .salaryYearMonth(salaryYearMonth) + .ids(exportParam.getIds()).build()); + AttendQuotePO po = CollectionUtils.isNotEmpty(attendQuotePOS) ? attendQuotePOS.get(0) : null; + AttendQuoteDataQueryParam queryParam = AttendQuoteDataQueryParam.builder().attendQuoteId(po == null ? 0L : po.getId()).build(); + List attendQuoteDataBases = dataBiz.list(queryParam); - // 获取已设置的可同步的字段 - List attendQuoteFields = getAttendQuoteSetFields(AttendQuoteSourceTypeEnum.IMPORT); - // 获取最终结果 - List> listMaps = getListMaps(attendQuoteDataBases); + // 获取已设置的可同步的字段 + List attendQuoteFields = getAttendQuoteSetFields(AttendQuoteSourceTypeEnum.IMPORT); + // 获取最终结果 + List> listMaps = getListMaps(attendQuoteDataBases); - // 1.工作簿名称 - String sheetName = SalaryI18nUtil.getI18nLabel(101606, "考勤引用导入模板"); - List header = new ArrayList<>(); - header.add(SalaryI18nUtil.getI18nLabel(85429, "姓名")); - header.add(SalaryI18nUtil.getI18nLabel(86185, "部门")); - header.add(SalaryI18nUtil.getI18nLabel(86186, "手机号")); - header.add(SalaryI18nUtil.getI18nLabel(86317, "工号")); - // 动态列 - for (AttendQuoteFieldPO attendQuoteField : attendQuoteFields) { - header.add(attendQuoteField.getFieldName()); - } + // 1.工作簿名称 + String sheetName = SalaryI18nUtil.getI18nLabel(101606, "考勤引用导入模板"); + List header = new ArrayList<>(); + header.add(SalaryI18nUtil.getI18nLabel(85429, "姓名")); + header.add(SalaryI18nUtil.getI18nLabel(86185, "部门")); + header.add(SalaryI18nUtil.getI18nLabel(86186, "手机号")); + header.add(SalaryI18nUtil.getI18nLabel(86317, "工号")); + // 动态列 + for (AttendQuoteFieldPO attendQuoteField : attendQuoteFields) { + header.add(attendQuoteField.getFieldName()); + } // // 2.表头 // excelSheetData.setHeaders(Collections.singletonList(header.toArray(new String[]{}))); - List> rows = new ArrayList<>(); - rows.add(header); - for (Map dto : listMaps) { - List row = new ArrayList<>(); - row.add(dto.get("username")); - row.add(dto.get("departmentName")); - row.add(dto.get("mobile")); - row.add(dto.get("jobNum")); + List> rows = new ArrayList<>(); + rows.add(header); + for (Map dto : listMaps) { + List row = new ArrayList<>(); + row.add(dto.get("username")); + row.add(dto.get("departmentName")); + row.add(dto.get("mobile")); + row.add(dto.get("jobNum")); - // 动态列 - Map map = listMaps.get(0); - for (AttendQuoteFieldPO attendQuoteField : attendQuoteFields) { - row.add(map.containsKey(attendQuoteField.getId() + "_attendQuoteData") ? dto.get(attendQuoteField.getId() + "_attendQuoteData") : ""); + // 动态列 + Map map = listMaps.get(0); + for (AttendQuoteFieldPO attendQuoteField : attendQuoteFields) { + row.add(map.containsKey(attendQuoteField.getId() + "_attendQuoteData") ? dto.get(attendQuoteField.getId() + "_attendQuoteData") : ""); + } + // 2.表头 + rows.add(row); } - // 2.表头 - rows.add(row); + + return ExcelUtil.genWorkbookV2(rows, sheetName); + } catch (Exception e) { + log.error("下载模板失败", e); } - - return ExcelUtil.genWorkbookV2(rows, sheetName); - + return null; } /** diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index f16679be2..0b3c2c99a 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -55,8 +55,8 @@ public class SalarySobWrapper extends Service { String fields = " t.id" + " , t.name" + - " , t.income_category as salaryCycle" + - " , t.salary_cycle_type" + + " , t.income_category" + + " , t.salary_cycle_type as salaryCycle" + " , t.salary_cycle_from_day as salaryCycleFromDay" + " , t.tax_cycle_type" + " , t.attend_cycle_type" +