回算后不允许删除薪资核算记录

This commit is contained in:
Harryxzy 2023-05-16 15:05:02 +08:00
parent e28ca6a2d0
commit a3ee91db15
8 changed files with 69 additions and 9 deletions

View File

@ -63,7 +63,9 @@ public class SalaryAcctRecordBO {
List<WeaTableOperate> 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"));

View File

@ -97,4 +97,6 @@ public interface SalarySendInfoMapper {
* @param po
*/
void updateIgnoreNull(SalarySendInfoPO po);
void deleteBySalaryAcctRecordIds(@Param("salaryAcctRecordId") Collection<Long> ids);
}

View File

@ -37,6 +37,15 @@
, t.tenant_key
, t.salary_acct_type
</sql>
<update id="deleteBySalaryAcctRecordIds">
update hrsa_salary_send_info
set delete_type = 1
where salary_acct_record_id in
<foreach collection="salaryAcctRecordId" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</update>
<select id="getById" resultType="com.engine.salary.entity.salaryBill.po.SalarySendInfoPO">
SELECT

View File

@ -5,6 +5,7 @@ import com.engine.salary.entity.salaryBill.param.SalarySendQueryParam;
import com.engine.salary.entity.salaryBill.po.SalarySendPO;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@ -60,4 +61,6 @@ public interface SalarySendMapper {
void batchHandleSendStatusHistory();
void batchHandleSalaryAcctTypeHistory();
void deleteBySalaryAcctRecordIds(@Param("salaryAcctRecordId") Collection<Long> ids);
}

View File

@ -63,6 +63,14 @@
</foreach>
</if>
</sql>
<update id="deleteBySalaryAcctRecordIds">
update hrsa_salary_send
set delete_type = 1
where salary_accounting_id in
<foreach collection="salaryAcctRecordId" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</update>
<select id="list" resultType="com.engine.salary.entity.salaryBill.dto.SalarySendListDTO">
SELECT

View File

@ -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<String, Object> sumRow(SalarySendInfoQueryParam queryParam);
/**
* 根据薪资核算id删除 工资单
* @param ids
*/
void deleteBySalaryAcctRecordIds(Collection<Long> ids);
}

View File

@ -496,6 +496,9 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
// salaryCheckResultDetailService.deleteBySalaryAcctRecordIds(ids);
// 删除线下导入结果
getSalaryComparisonResultService(user).deleteBySalaryAcctRecordIds(ids);
// 删除回算前的工资单
// getSalarySendService(user).deleteBySalaryAcctRecordIds(ids);
// 变更核算次数
List<SalaryAcctRecordPO> toUpdateAcctTimesRecordPOS = listBySalarySobIds(salarySobIds);

View File

@ -496,12 +496,29 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
acctPo.setEmployeeId(currentEmployeeId);
List<SalaryAcctResultPO> salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(acctPo);
encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class);
List<Map<String, Object>> salaryAcctResultS = salaryAcctResultPOS.stream().map(m -> {
Map<String, Object> 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<Map<String, Object>> salaryAcctResultS =null;
if(Objects.equals(salaryAcctRecordPO.getBackCalcStatus(),NumberUtils.INTEGER_ONE) && !isReplenish){
// 该记录回算过,并且获取的不是回算后的工资单
salaryAcctResultS = salaryAcctResultPOS.stream().map(m -> {
Map<String, Object> 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<String, Object> map = new LinkedHashMap<>();
map.put("salaryItemId", m.getSalaryItemId());
map.put("resultValue", m.getResultValue());
return map;
}).collect(Collectors.toList());
}
Map<String, Object> map = new LinkedHashMap<>();
map.put("tenantName", "");
@ -510,13 +527,14 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
Optional<SalaryTemplateSalaryItemSetListDTO> optionalEmployeeInformation = listDTOS.stream().filter(e -> SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).findFirst();
SalaryTemplateSalaryItemSetListDTO employeeInformation = optionalEmployeeInformation.orElse(null);
List<SalaryTemplateSalaryItemSetListDTO> itemSetListDTOS = listDTOS.stream().filter(e -> !SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).collect(Collectors.toList());
List<Map<String, Object>> 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<Long> ids) {
if(CollectionUtils.isNotEmpty(ids)){
getSalarySendMapper().deleteBySalaryAcctRecordIds(ids);
getSalarySendInfoMapper().deleteBySalaryAcctRecordIds(ids);
}
}
}