账套删除前校验是否存在工资单模板

This commit is contained in:
Harryxzy 2023-04-07 16:06:47 +08:00
parent cb46fccb16
commit d9f041c9bb
5 changed files with 33 additions and 1 deletions

View File

@ -5,6 +5,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
import java.util.Date;
/**
@ -135,4 +136,6 @@ public class SalaryTemplatePO {
* 租户ID
*/
private String tenantKey;
private Collection<Long> salarySobIds;
}

View File

@ -307,6 +307,12 @@
<if test="deleteType != null and deleteType != ''">
AND delete_type = #{deleteType}
</if>
<if test="salarySobIds != null and salarySobIds.size() > 0">
AND salary_sob_id IN
<foreach collection="salarySobIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>

View File

@ -95,4 +95,11 @@ public interface SalaryTemplateService {
* @return
*/
List<SalaryTemplatePO> getDefaultTemplates(List<Long> salarySobIds);
/**
* 根据薪资账套id获取工资单模板
* @param ids
* @return
*/
List<SalaryTemplatePO> getBySalarySobIds(Collection<Long> ids);
}

View File

@ -4,6 +4,7 @@ import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.biz.*;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import com.engine.salary.entity.salaryitem.bo.SysSalaryItemBO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
@ -23,7 +24,6 @@ import com.engine.salary.enums.SalarySystemTypeEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.salarysob.SalarySobDefaultItemMapper;
import com.engine.salary.mapper.salarysob.SalarySobMapper;
import com.engine.salary.service.*;
import com.engine.salary.util.SalaryEntityUtil;
@ -113,6 +113,10 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
return ServiceUtil.getService(SalarySobBackItemServiceImpl.class, user);
}
private SalaryTemplateService getSalaryTemplateService(User user) {
return ServiceUtil.getService(SalaryTemplateServiceImpl.class, user);
}
@Override
@ -544,6 +548,13 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
if (CollectionUtils.isNotEmpty(salaryAcctRecordPOS)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(99713, "账套已用于薪资核算,不能删除"));
}
// 根据薪资账套id查询工资单模板存在该账套下的工资单模板就不能删除账套了
List<SalaryTemplatePO> salaryTemplatePOS = getSalaryTemplateService(user).getBySalarySobIds(ids);
if(CollectionUtils.isNotEmpty(salaryTemplatePOS)){
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(99713, "账套存在工资单模板,不能删除,请先删除该账套所对应的工资单模板"));
}
//关联其他的删除
// 删除薪资账套
salarySobMapper.deleteByIds(ids);

View File

@ -274,4 +274,9 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate
public List<SalaryTemplatePO> getDefaultTemplates(List<Long> salarySobIds) {
return mapper.listDefaultTemplates(salarySobIds);
}
@Override
public List<SalaryTemplatePO> getBySalarySobIds(Collection<Long> ids) {
return mapper.listSome(SalaryTemplatePO.builder().salarySobIds(ids).build());
}
}