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); + } + } }