From a3ee91db15f98a09258e1b93dab389dfaa7e6e13 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 16 May 2023 15:05:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E7=AE=97=E5=90=8E=E4=B8=8D=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E5=88=A0=E9=99=A4=E8=96=AA=E8=B5=84=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryAcctRecordBO.java | 4 +- .../salarybill/SalarySendInfoMapper.java | 2 + .../salarybill/SalarySendInfoMapper.xml | 9 ++++ .../mapper/salarybill/SalarySendMapper.java | 3 ++ .../mapper/salarybill/SalarySendMapper.xml | 8 ++++ .../salary/service/SalarySendService.java | 7 ++++ .../impl/SalaryAcctRecordServiceImpl.java | 3 ++ .../service/impl/SalarySendServiceImpl.java | 42 +++++++++++++++---- 8 files changed, 69 insertions(+), 9 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java index db327ce8a..6f40a8d19 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java @@ -63,7 +63,9 @@ public class SalaryAcctRecordBO { List btnList = new ArrayList<>(); if (SalaryAcctRecordStatusEnum.NOT_ARCHIVED == salaryAcctRecordStatusEnum) { btnList.add(new WeaTableOperate("核算", null, "0")); - btnList.add(new WeaTableOperate("删除", null, "0")); + if(!Objects.equals(salaryAcctRecordPO.getBackCalcStatus(),NumberUtils.INTEGER_ONE)){ + btnList.add(new WeaTableOperate("删除", null, "0")); + } btnList.add(new WeaTableOperate("归档", null, "0")); } else if (SalaryAcctRecordStatusEnum.ARCHIVED == salaryAcctRecordStatusEnum && ( salarySendMap.get(salaryAcctRecordPO.getId()) ==Boolean.TRUE ) ){ btnList.add(new WeaTableOperate("查看", null, "0")); diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.java b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.java index 0def86342..ab67d35c0 100644 --- a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.java +++ b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.java @@ -97,4 +97,6 @@ public interface SalarySendInfoMapper { * @param po */ void updateIgnoreNull(SalarySendInfoPO po); + + void deleteBySalaryAcctRecordIds(@Param("salaryAcctRecordId") Collection ids); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml index 6fbbfd5b8..9150f856f 100644 --- a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml +++ b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml @@ -37,6 +37,15 @@ , t.tenant_key , t.salary_acct_type + + update hrsa_salary_send_info + set delete_type = 1 + where salary_acct_record_id in + + #{id} + + + SELECT diff --git a/src/com/engine/salary/service/SalarySendService.java b/src/com/engine/salary/service/SalarySendService.java index 1a590970f..b55c5a560 100644 --- a/src/com/engine/salary/service/SalarySendService.java +++ b/src/com/engine/salary/service/SalarySendService.java @@ -8,6 +8,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.util.page.PageInfo; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; @@ -157,4 +158,10 @@ public interface SalarySendService { * @return */ Map sumRow(SalarySendInfoQueryParam queryParam); + + /** + * 根据薪资核算id删除 工资单 + * @param ids + */ + void deleteBySalaryAcctRecordIds(Collection ids); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index f3b6e671a..f45782315 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -496,6 +496,9 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe // salaryCheckResultDetailService.deleteBySalaryAcctRecordIds(ids); // 删除线下导入结果 getSalaryComparisonResultService(user).deleteBySalaryAcctRecordIds(ids); + // 删除回算前的工资单 +// getSalarySendService(user).deleteBySalaryAcctRecordIds(ids); + // 变更核算次数 List toUpdateAcctTimesRecordPOS = listBySalarySobIds(salarySobIds); diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index d2672d07c..ae8f6a539 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -496,12 +496,29 @@ public class SalarySendServiceImpl extends Service implements SalarySendService acctPo.setEmployeeId(currentEmployeeId); List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(acctPo); encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); - List> salaryAcctResultS = salaryAcctResultPOS.stream().map(m -> { - Map map = new LinkedHashMap<>(); - map.put("salaryItemId", m.getSalaryItemId()); - map.put("resultValue", m.getResultValue()); - return map; - }).collect(Collectors.toList()); + + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salarySendInfo.getSalaryAcctRecordId()); + if(salaryAcctRecordPO == null){ + throw new SalaryRunTimeException("薪资核算记录不存在!"); + } + List> salaryAcctResultS =null; + if(Objects.equals(salaryAcctRecordPO.getBackCalcStatus(),NumberUtils.INTEGER_ONE) && !isReplenish){ + // 该记录回算过,并且获取的不是回算后的工资单 + salaryAcctResultS = salaryAcctResultPOS.stream().map(m -> { + Map map = new LinkedHashMap<>(); + map.put("salaryItemId", m.getSalaryItemId()); + map.put("resultValue", m.getOriginResultValue()); + return map; + }).collect(Collectors.toList()); + }else{ + salaryAcctResultS = salaryAcctResultPOS.stream().map(m -> { + Map map = new LinkedHashMap<>(); + map.put("salaryItemId", m.getSalaryItemId()); + map.put("resultValue", m.getResultValue()); + return map; + }).collect(Collectors.toList()); + } + Map map = new LinkedHashMap<>(); map.put("tenantName", ""); @@ -510,13 +527,14 @@ public class SalarySendServiceImpl extends Service implements SalarySendService Optional optionalEmployeeInformation = listDTOS.stream().filter(e -> SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).findFirst(); SalaryTemplateSalaryItemSetListDTO employeeInformation = optionalEmployeeInformation.orElse(null); List itemSetListDTOS = listDTOS.stream().filter(e -> !SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).collect(Collectors.toList()); + List> finalSalaryAcctResultS = salaryAcctResultS; itemSetListDTOS.stream().forEach(item -> { item.getItems() .forEach(e -> { - if (CollectionUtils.isEmpty(salaryAcctResultS)) { + if (CollectionUtils.isEmpty(finalSalaryAcctResultS)) { e.setSalaryItemValue(""); } else { - Object o = salaryAcctResultS.stream() + Object o = finalSalaryAcctResultS.stream() .filter(f -> f.get("salaryItemId") != null && String.valueOf(f.get("salaryItemId")).equals(e.getSalaryItemId())).findFirst() .orElse(new HashMap<>()) .get("resultValue"); @@ -1309,4 +1327,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } return getSalaryAcctResultService(user).sumRow(SalaryAcctResultQueryParam.builder().salaryAcctRecordId(salarySendPO.getSalaryAccountingId()).build()); } + + @Override + public void deleteBySalaryAcctRecordIds(Collection ids) { + if(CollectionUtils.isNotEmpty(ids)){ + getSalarySendMapper().deleteBySalaryAcctRecordIds(ids); + getSalarySendInfoMapper().deleteBySalaryAcctRecordIds(ids); + } + } }