diff --git a/src/com/engine/salary/entity/cbs/param/CBSPushParam.java b/src/com/engine/salary/entity/cbs/param/CBSPushParam.java index 822d6a3ef..3cd1aff4e 100644 --- a/src/com/engine/salary/entity/cbs/param/CBSPushParam.java +++ b/src/com/engine/salary/entity/cbs/param/CBSPushParam.java @@ -28,4 +28,6 @@ public class CBSPushParam { // 姓名 private String username; + + private String workcode; } diff --git a/src/com/engine/salary/entity/cbs/param/SalaryCBSInfoQueryParam.java b/src/com/engine/salary/entity/cbs/param/SalaryCBSInfoQueryParam.java index 3b36f3674..738998acb 100644 --- a/src/com/engine/salary/entity/cbs/param/SalaryCBSInfoQueryParam.java +++ b/src/com/engine/salary/entity/cbs/param/SalaryCBSInfoQueryParam.java @@ -81,6 +81,7 @@ public class SalaryCBSInfoQueryParam extends BaseQueryParam { private String gzkkhh; + private String workcode; public static String checkParam(SalaryCBSInfoQueryParam saveParam) { if (saveParam.getSalaryCbsId() == null) { diff --git a/src/com/engine/salary/mapper/cbs/SalaryCbsInfoMapper.java b/src/com/engine/salary/mapper/cbs/SalaryCbsInfoMapper.java index 7168d4641..21cecdcd9 100644 --- a/src/com/engine/salary/mapper/cbs/SalaryCbsInfoMapper.java +++ b/src/com/engine/salary/mapper/cbs/SalaryCbsInfoMapper.java @@ -69,7 +69,7 @@ public interface SalaryCbsInfoMapper { List list(@Param("param")SalaryCBSInfoQueryParam queryParam); - List listByCbsIdAndIds(@Param("cbsIds")List salaryCbsIds, @Param("ids")List part); + List listByCbsIdAndIds(@Param("cbsIds")List salaryCbsIds, @Param("ids")List part, @Param("workcode") String workcode); void updatePushStatusByCbsIdsAndEmpIds(@Param("cbsIds")List cbsIdList, @Param("empIds")List part, @Param("pushStatus")Integer value); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/cbs/SalaryCbsInfoMapper.xml b/src/com/engine/salary/mapper/cbs/SalaryCbsInfoMapper.xml index db0b1f9d2..8bca6f19b 100644 --- a/src/com/engine/salary/mapper/cbs/SalaryCbsInfoMapper.xml +++ b/src/com/engine/salary/mapper/cbs/SalaryCbsInfoMapper.xml @@ -282,6 +282,10 @@ AND t1.push_status = #{param.pushStatusVal} + + + AND e.workcode = #{param.workcode} + @@ -312,6 +316,10 @@ AND t1.push_status = #{param.pushStatusVal} + + + AND e.workcode = #{param.workcode} + AND e.subcompanyid1 IN @@ -340,6 +348,10 @@ AND t1.push_status = #{param.pushStatusVal} + + + AND e.workcode = #{param.workcode} + @@ -358,6 +370,7 @@ SELECT FROM hrsa_salary_cbs_info t + left join hrmresource h on t.employee_id=h.id WHERE delete_type = 0 @@ -372,6 +385,9 @@ #{id} + + AND h.workcode = #{workcode} + ORDER BY id DESC diff --git a/src/com/engine/salary/service/impl/SalaryCbsInfoServiceImpl.java b/src/com/engine/salary/service/impl/SalaryCbsInfoServiceImpl.java index 7b451e877..728dd1a7a 100644 --- a/src/com/engine/salary/service/impl/SalaryCbsInfoServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryCbsInfoServiceImpl.java @@ -316,21 +316,31 @@ public class SalaryCbsInfoServiceImpl extends Service implements com.engine.sala throw new SalaryRunTimeException("无权限"); } + if (StringUtils.isNotBlank(cbsPushParam.getSalaryCbsId()) && NumberUtils.isCreatable(cbsPushParam.getSalaryCbsId())) { + cbsPushParam.setSalaryCbsIds(Collections.singletonList(Long.valueOf(cbsPushParam.getSalaryCbsId()))); + } if (CollectionUtils.isEmpty(cbsPushParam.getIds()) && CollectionUtils.isEmpty(cbsPushParam.getSalaryCbsIds())) { throw new SalaryRunTimeException("请选择需要推送至CBS的数据"); } - List infoList = listByCbsIdsAndIds(cbsPushParam.getSalaryCbsIds(), cbsPushParam.getIds()); - // if (StringUtils.isNotBlank(cbsPushParam.getGzkkhh())){ - // String gzkkhhField = baseBean.getPropValue("ltSalary", "gzkkhh_field"); - // RecordSet rs = new RecordSet(); - // rs.execute("select id,"+gzkkhhField+ " from cus_fielddata " + - // "where SCOPE='HrmCustomFieldByInfoType' and scopeid=3 and "+gzkkhhField+" = '" +cbsPushParam.getGzkkhh()+ "'"); - // List empIdsByGzkkhh = new ArrayList<>(); - // while (rs.next()) { - // empIdsByGzkkhh.add(Long.valueOf(rs.getInt("id"))); - // } - // infoList = infoList.stream().filter(po -> empIdsByGzkkhh.contains(po.getEmployeeId())).collect(Collectors.toList()); - // } + List infoList = listByCbsIdsAndIds(cbsPushParam.getSalaryCbsIds(), cbsPushParam.getIds(), cbsPushParam.getWorkcode()); + // 过滤姓名 + if (StringUtils.isNotBlank(cbsPushParam.getUsername())) { + List employeeList = getSalaryEmployeeService(user).listByKeyword(cbsPushParam.getUsername()); + List empIdsByName = employeeList.stream().filter(emp -> emp.getUsername().contains(cbsPushParam.getUsername())).map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList()); + infoList = infoList.stream().filter(po -> empIdsByName.contains(po.getEmployeeId())).collect(Collectors.toList()); + } + // 过滤工资卡开户行 + if (StringUtils.isNotBlank(cbsPushParam.getGzkkhh())){ + String gzkkhhField = baseBean.getPropValue("ltSalary", "gzkkhh_field"); + RecordSet rs = new RecordSet(); + rs.execute("select id,"+gzkkhhField+ " from cus_fielddata " + + "where SCOPE='HrmCustomFieldByInfoType' and scopeid=3 and "+gzkkhhField+" = '" +cbsPushParam.getGzkkhh()+ "'"); + List empIdsByGzkkhh = new ArrayList<>(); + while (rs.next()) { + empIdsByGzkkhh.add(Long.valueOf(rs.getInt("id"))); + } + infoList = infoList.stream().filter(po -> empIdsByGzkkhh.contains(po.getEmployeeId())).collect(Collectors.toList()); + } // 过滤未推送的 infoList = infoList.stream().filter(info -> info.getPushStatus().equals(CbsPushStatusEnum.NOT_PUSHED.getValue())).collect(Collectors.toList()); if (CollectionUtils.isEmpty(infoList)) { @@ -486,19 +496,19 @@ public class SalaryCbsInfoServiceImpl extends Service implements com.engine.sala return resultMap; } - private List listByCbsIdsAndIds(List salaryCbsIds, List ids) { + private List listByCbsIdsAndIds(List salaryCbsIds, List ids, String workcode) { List resultList = new ArrayList<>(); if (CollectionUtils.isEmpty(salaryCbsIds) && CollectionUtils.isEmpty(ids)) { return Collections.emptyList(); } if (CollectionUtils.isEmpty(ids)) { - List salaryCbsInfoPOS = getSalaryCbsInfoMapper().listByCbsIdAndIds(salaryCbsIds, ids); + List salaryCbsInfoPOS = getSalaryCbsInfoMapper().listByCbsIdAndIds(salaryCbsIds, ids, workcode); encryptUtil.decryptList(salaryCbsInfoPOS, SalaryCbsInfoPO.class); resultList.addAll(salaryCbsInfoPOS); } else { List> partition = Lists.partition(ids, 1000); partition.forEach(part -> { - List salaryCbsInfoPOS = getSalaryCbsInfoMapper().listByCbsIdAndIds(salaryCbsIds, part); + List salaryCbsInfoPOS = getSalaryCbsInfoMapper().listByCbsIdAndIds(salaryCbsIds, part, workcode); encryptUtil.decryptList(salaryCbsInfoPOS, SalaryCbsInfoPO.class); resultList.addAll(salaryCbsInfoPOS); }); diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 6af87b45c..6695dff06 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -646,6 +646,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee if (openExtEmp) { result.addAll(getExtEmpService(user).listByKeyword(keyword)); } + SalaryI18nUtil.i18nList(result); return result; }