diff --git a/src/com/engine/salary/mapper/dzreport/DzSalaryReportMapper.java b/src/com/engine/salary/mapper/dzreport/DzSalaryReportMapper.java index 3f6fc0d30..6d5a6cf0e 100644 --- a/src/com/engine/salary/mapper/dzreport/DzSalaryReportMapper.java +++ b/src/com/engine/salary/mapper/dzreport/DzSalaryReportMapper.java @@ -18,7 +18,7 @@ public interface DzSalaryReportMapper { * * @return */ - List getReportList(@Param("month") String month, @Param("deptIds") Set deptIds); + List getReportList(@Param("month") String month, @Param("productGrouping") String productGrouping, @Param("deptIds") Set deptIds); /** diff --git a/src/com/engine/salary/mapper/dzreport/DzSalaryReportMapper.xml b/src/com/engine/salary/mapper/dzreport/DzSalaryReportMapper.xml index 0a8b54da9..6180ad4f3 100644 --- a/src/com/engine/salary/mapper/dzreport/DzSalaryReportMapper.xml +++ b/src/com/engine/salary/mapper/dzreport/DzSalaryReportMapper.xml @@ -10,12 +10,17 @@ and record.delete_type = 0 inner join hrsa_salary_item item on result.salary_item_id = item.id and item.delete_type = 0 inner join hrmresource e on e.id= result.employee_id + inner join cus_fielddata cus on cus.id = e.id and cus.SCOPE ='HrmCustomFieldByInfoType' and cus.SCOPEID = -1 where 1=1 and record.salary_month = #{month} + + and cus.field21 = #{productGrouping} + + - and e.id in + and e.departmentid in #{id} diff --git a/src/com/engine/salary/service/impl/DzSalaryReportServiceImpl.java b/src/com/engine/salary/service/impl/DzSalaryReportServiceImpl.java index 932d3134f..292d68585 100644 --- a/src/com/engine/salary/service/impl/DzSalaryReportServiceImpl.java +++ b/src/com/engine/salary/service/impl/DzSalaryReportServiceImpl.java @@ -41,24 +41,43 @@ public class DzSalaryReportServiceImpl extends Service implements DzSalaryReport String firstLevelDepartment = queryParam.getFirstDepartment(); String secondaryDepartment = queryParam.getSecondaryDepartment(); String thirdDepartment = queryParam.getThirdDepartment(); + String productGrouping = queryParam.getProductGrouping(); String month = queryParam.getMonth(); + if (StringUtils.isNotBlank(month) && month.length() == 7) { + month = month + "-01"; + } Set departmentIds = new HashSet<>(); if (StringUtils.isNotBlank(thirdDepartment)) { - departmentIds.add(thirdDepartment); + String[] split = thirdDepartment.split(","); + if (split.length > 0) { + departmentIds.addAll(Arrays.asList(split)); + } } else { if (StringUtils.isNotBlank(secondaryDepartment)) { - ArrayList allChildDeptByDepId = departmentComInfo.getAllChildDeptByDepId(new ArrayList(), secondaryDepartment); - departmentIds.addAll(allChildDeptByDepId); + String[] split = secondaryDepartment.split(","); + if (split.length > 0) { + for (String s : split) { + ArrayList allChildDeptByDepId = departmentComInfo.getAllChildDeptByDepId(new ArrayList(), s); + departmentIds.addAll(allChildDeptByDepId); + departmentIds.add(s); + } + } } else { if (StringUtils.isNotBlank(firstLevelDepartment)) { - ArrayList allChildDeptByDepId = departmentComInfo.getAllChildDeptByDepId(new ArrayList(), firstLevelDepartment); - departmentIds.addAll(allChildDeptByDepId); + String[] split = firstLevelDepartment.split(","); + if (split.length > 0) { + for (String s : split) { + ArrayList allChildDeptByDepId = departmentComInfo.getAllChildDeptByDepId(new ArrayList(), s); + departmentIds.addAll(allChildDeptByDepId); + departmentIds.add(s); + } + } } } } - List dzSalaryReportDTOS = getDzSalaryReportMapper().getReportList(month, departmentIds); + List dzSalaryReportDTOS = getDzSalaryReportMapper().getReportList(month, productGrouping,departmentIds); PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), dzSalaryReportDTOS, DzSalaryReportDTO.class); // 遍历List 填充报表数据 List list = pageInfo.getList(); @@ -173,7 +192,7 @@ public class DzSalaryReportServiceImpl extends Service implements DzSalaryReport rs.executeQuery("SELECT MAX(changedate) as dismissdate FROM HrmStatusHistory WHERE resourceid= ? and type_n=5", userId); if (rs.next()) { String dismissDate = rs.getString("dismissdate"); - if(StringUtils.isBlank(dismissDate)){ + if (StringUtils.isBlank(dismissDate)) { dismissDate = resourceComInfo.getEndDate(userId); } report.setTerminationDate(dismissDate);