Merge branch 'feature/自定义筛选条件' into release/2.9.6.2310.01

# Conflicts:
#	src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java
This commit is contained in:
钱涛 2023-10-08 14:24:33 +08:00
commit 182e90676c
6 changed files with 144 additions and 1 deletions

View File

@ -46,4 +46,9 @@ public class SalarySendBaseInfoDTO {
// 能否发送
private Boolean canSend;
/**
* 是否支持导出工资单pdf
*/
private Boolean showPdfBtn;
}

View File

@ -2,6 +2,7 @@ package com.engine.salary.entity.salaryacct.param;
import com.engine.salary.common.BaseQueryParam;
import com.engine.salary.common.LocalDateRange;
import com.engine.salary.enums.common.FilterEnum;
import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum;
import com.engine.salary.util.valid.DataCheck;
import lombok.AllArgsConstructor;
@ -27,7 +28,7 @@ import java.util.List;
public class SalaryAcctResultQueryParam extends BaseQueryParam {
//薪资核算记录id
@DataCheck(require = true,message = "参数错误薪资核算记录ID不能为空")
@DataCheck(require = true, message = "参数错误薪资核算记录ID不能为空")
private Long salaryAcctRecordId;
//人员姓名
@ -63,4 +64,17 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam {
//薪资项目id
private Collection<Long> salaryItemIds;
//其他条件
private List<OtherCondition> otherConditions;
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class OtherCondition {
private Long itemId;
private FilterEnum filter;
private List<String> params;
}
}

View File

@ -60,6 +60,7 @@ public class SalaryFormulaEmployeeDTO {
private String dissmissdate;
//状态
@SalaryFormulaVar(defaultLabel = "状态", labelId = 98621, dataType = "string")
private String status;
@SalaryFormulaVar(defaultLabel = "状态", labelId = 98622, dataType = "string")

View File

@ -0,0 +1,120 @@
package com.engine.salary.enums.common;
import com.engine.salary.enums.BaseEnum;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import java.math.BigDecimal;
import java.util.List;
import java.util.function.Predicate;
public enum FilterEnum implements BaseEnum<String> {
BT("BT", "包含", 1) {
@Override
public Predicate<String> filter(List<String> params) {
return a -> a.contentEquals(params.get(0));
}
},
EQ("EQ", "等于", 1) {
@Override
public Predicate<String> filter(List<String> params) {
return a -> a.equals(params.get(0));
}
},
NE("NE", "不等于", 1) {
@Override
public Predicate<String> filter(List<String> params) {
return a -> !a.equals(params.get(0));
}
},
GT("GT", "大于", 1) {
@Override
public Predicate<String> filter(List<String> params) {
return a -> {
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) {
return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) > 0;
}
return false;
};
}
},
LT("LT", "小于", 1) {
@Override
public Predicate<String> filter(List<String> params) {
return a -> {
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) {
return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) < 0;
}
return false;
};
}
},
GE("GE", "大于等于", 1) {
@Override
public Predicate<String> filter(List<String> params) {
return a -> {
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) {
return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) >= 0;
}
return false;
};
}
},
LE("LE", "小于等于", 1) {
@Override
public Predicate<String> filter(List<String> params) {
return a -> {
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) {
return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) <= 0;
}
return false;
};
}
},
ISEMPTY("ISEMPTY", "为空", 1) {
@Override
public Predicate<String> filter(List<String> params) {
return StringUtils::isEmpty;
}
},
ISNOTEMPTY("ISNOTEMPTY", "包含", 1) {
@Override
public Predicate<String> filter(List<String> params) {
return StringUtils::isNotEmpty;
}
};
FilterEnum(String value, String defaultLabel, int labelId) {
this.value = value;
this.defaultLabel = defaultLabel;
this.labelId = labelId;
}
private String value;
private String defaultLabel;
private int labelId;
public abstract Predicate<String> filter(List<String> params);
@Override
public String getValue() {
return value;
}
@Override
public Integer getLabelId() {
return labelId;
}
@Override
public String getDefaultLabel() {
return defaultLabel;
}
}

View File

@ -23,6 +23,7 @@ import com.engine.salary.entity.salarysob.po.*;
import com.engine.salary.entity.taxagent.po.TaxAgentAdminPO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.SalaryValueTypeEnum;
import com.engine.salary.enums.common.FilterEnum;
import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.salaryaccounting.LockStatusEnum;
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;

View File

@ -87,6 +87,7 @@ import java.util.*;
import java.util.stream.Collectors;
import static com.engine.salary.cache.SalaryCacheKey.SALARY_CACHE_SMS_CODE;
import static com.engine.salary.constant.HrmSalaryPayrollConf.GEN_PDF;
/**
* @Description: 工资单发放
@ -455,6 +456,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
.sendNum(salarySend.getSendNum())
.sendTotal(salarySend.getSendTotal())
.canSend(canSend)
.showPdfBtn(GEN_PDF)
// .salaryAcctType(salarySend.getSalaryAcctType().toString())
// .haveBackCalc(haveBackCalc ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)
.build();