2022-03-28 16:36:40 +08:00
|
|
|
package com.engine.salary.entity.salaryarchive.param;
|
|
|
|
|
|
|
|
|
|
import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum;
|
|
|
|
|
import com.engine.salary.exception.SalaryRunTimeException;
|
|
|
|
|
import com.engine.salary.util.SalaryI18nUtil;
|
|
|
|
|
import lombok.AllArgsConstructor;
|
|
|
|
|
import lombok.Builder;
|
|
|
|
|
import lombok.Data;
|
|
|
|
|
import lombok.NoArgsConstructor;
|
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
2022-03-29 17:10:59 +08:00
|
|
|
import java.util.Date;
|
2022-03-28 16:36:40 +08:00
|
|
|
import java.util.HashSet;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 薪资项目调整保存参数
|
|
|
|
|
* <p>Copyright: Copyright (c) 2022</p>
|
|
|
|
|
* <p>Company: 泛微软件</p>
|
|
|
|
|
*
|
|
|
|
|
* @author qiantao
|
|
|
|
|
* @version 1.0
|
|
|
|
|
**/
|
|
|
|
|
@Data
|
|
|
|
|
@Builder
|
|
|
|
|
@NoArgsConstructor
|
|
|
|
|
@AllArgsConstructor
|
|
|
|
|
//薪资项目调整保存参数")
|
|
|
|
|
public class SalaryArchiveItemSaveParam {
|
|
|
|
|
|
2025-07-17 11:40:42 +08:00
|
|
|
private String requestId;
|
|
|
|
|
|
2022-11-14 21:03:24 +08:00
|
|
|
// 主键id
|
|
|
|
|
private Long salaryArchiveItemId;
|
|
|
|
|
|
2022-04-01 10:26:28 +08:00
|
|
|
//薪资档案id
|
2022-03-28 16:36:40 +08:00
|
|
|
private Long salaryArchiveId;
|
|
|
|
|
|
2022-04-01 10:26:28 +08:00
|
|
|
//生效时间
|
2022-03-29 17:10:59 +08:00
|
|
|
private Date effectiveTime;
|
2022-03-28 16:36:40 +08:00
|
|
|
|
2022-11-16 17:22:22 +08:00
|
|
|
// 是否允许编辑
|
|
|
|
|
private Boolean canOperator;
|
|
|
|
|
|
2022-04-01 10:26:28 +08:00
|
|
|
/**
|
|
|
|
|
* 调整原因
|
|
|
|
|
*
|
|
|
|
|
* @see SalaryArchiveItemAdjustReasonEnum
|
|
|
|
|
*/
|
|
|
|
|
private String adjustReason;
|
2022-03-28 16:36:40 +08:00
|
|
|
|
2022-04-01 10:26:28 +08:00
|
|
|
//备注
|
2022-03-28 16:36:40 +08:00
|
|
|
private String description;
|
|
|
|
|
|
2025-05-30 15:02:54 +08:00
|
|
|
private String taxAgentName;
|
|
|
|
|
|
|
|
|
|
private Long employeeId;
|
|
|
|
|
|
2025-07-23 21:06:17 +08:00
|
|
|
private String idNo;
|
|
|
|
|
|
2025-05-30 15:02:54 +08:00
|
|
|
private String salaryStartDate;
|
|
|
|
|
|
|
|
|
|
private String salaryEndDate;
|
|
|
|
|
|
2022-04-01 10:26:28 +08:00
|
|
|
//薪资项目
|
2022-03-28 16:36:40 +08:00
|
|
|
private List<SalaryArchiveItemDetailSaveParam> salaryArchiveItems;
|
|
|
|
|
|
2022-11-16 17:22:22 +08:00
|
|
|
|
|
|
|
|
|
2022-03-29 17:10:59 +08:00
|
|
|
public static void checkParam(SalaryArchiveItemSaveParam saveParam) {
|
2022-03-28 16:36:40 +08:00
|
|
|
if (saveParam.getSalaryArchiveId() == null) {
|
|
|
|
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100305, "薪资档案id必传"));
|
|
|
|
|
}
|
|
|
|
|
if (saveParam.getAdjustReason() == null) {
|
|
|
|
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100306, "请选择调整原因"));
|
|
|
|
|
}
|
2022-11-14 21:03:24 +08:00
|
|
|
// if (SalaryArchiveItemAdjustReasonEnum.parseByValue(saveParam.getAdjustReason()) == null) {
|
|
|
|
|
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100306, "调整原因不在范围内"));
|
|
|
|
|
// }
|
2022-03-28 16:36:40 +08:00
|
|
|
if (saveParam.getEffectiveTime() == null) {
|
|
|
|
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100307, "请选择生效日期"));
|
|
|
|
|
}
|
|
|
|
|
if (CollectionUtils.isEmpty(saveParam.getSalaryArchiveItems())) {
|
|
|
|
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100308, "请输入薪资项目明细"));
|
|
|
|
|
}
|
|
|
|
|
Set<Long> salaryItemIds = new HashSet<>();
|
|
|
|
|
for (SalaryArchiveItemDetailSaveParam e : saveParam.getSalaryArchiveItems()) {
|
|
|
|
|
if (e.getSalaryItemId() == null || StringUtils.isEmpty((e.getAdjustValue() + "").trim())) {
|
|
|
|
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100309, "明细中的薪资项目不能为空并且调整后必须输入值"));
|
|
|
|
|
}
|
|
|
|
|
salaryItemIds.add(e.getSalaryItemId());
|
|
|
|
|
}
|
|
|
|
|
if (saveParam.getSalaryArchiveItems().size() != salaryItemIds.size()) {
|
|
|
|
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100310, "明细中的薪资项目不能重复"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|