Merge branch 'release/2.9.6.2310.01' into release/个税版本
This commit is contained in:
commit
d5f5cb07ba
|
|
@ -46,4 +46,9 @@ public class SalarySendBaseInfoDTO {
|
|||
|
||||
// 能否发送
|
||||
private Boolean canSend;
|
||||
|
||||
/**
|
||||
* 是否支持导出工资单pdf
|
||||
*/
|
||||
private Boolean showPdfBtn;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -24,6 +24,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;
|
||||
|
|
@ -46,6 +47,7 @@ import com.engine.salary.util.SalaryEntityUtil;
|
|||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.engine.salary.util.db.MapperProxyFactory;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.engine.salary.util.page.SalaryPageUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
|
|
@ -310,8 +312,35 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
|
||||
@Override
|
||||
public PageInfo<Map<String, Object>> listPageByParam(SalaryAcctResultQueryParam queryParam) {
|
||||
// 查询薪资核算人员(分页)
|
||||
PageInfo<SalaryAcctEmployeePO> page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam);
|
||||
PageInfo<SalaryAcctEmployeePO> page = null;
|
||||
//其他条件
|
||||
List<SalaryAcctResultQueryParam.OtherCondition> otherConditions = queryParam.getOtherConditions();
|
||||
if (CollectionUtils.isNotEmpty(otherConditions)) {
|
||||
List<Long> items = SalaryEntityUtil.properties(otherConditions, SalaryAcctResultQueryParam.OtherCondition::getItemId, Collectors.toList());
|
||||
List<SalaryAcctResultPO> list = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), items);
|
||||
for (int i = 0; i < otherConditions.size(); i++) {
|
||||
SalaryAcctResultQueryParam.OtherCondition otherCondition = otherConditions.get(i);
|
||||
Long itemId = otherCondition.getItemId();
|
||||
FilterEnum filter = otherCondition.getFilter();
|
||||
List<String> params = otherCondition.getParams();
|
||||
list = list.stream().filter(a -> Objects.equals(a.getSalaryItemId(), itemId)).filter(a -> filter.filter(params).test(a.getResultValue())).collect(Collectors.toList());
|
||||
}
|
||||
List<Long> salaryAcctEmpId = SalaryEntityUtil.properties(list, SalaryAcctResultPO::getSalaryAcctEmpId, Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isEmpty(salaryAcctEmpId)) {
|
||||
//条件不满足直接返回空列表
|
||||
page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), new ArrayList<>(), SalaryAcctEmployeePO.class);
|
||||
} else {
|
||||
queryParam.setIds(salaryAcctEmpId);
|
||||
// 查询薪资核算人员(分页)
|
||||
page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam);
|
||||
}
|
||||
} else {
|
||||
// 查询薪资核算人员(分页)
|
||||
page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam);
|
||||
}
|
||||
|
||||
|
||||
// 查询薪资核算结果
|
||||
List<Map<String, Object>> data = listBySalaryAcctEmployees(page.getList(), queryParam);
|
||||
// 薪资核算结果的分页结果
|
||||
|
|
@ -404,9 +433,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
// 查询人员信息
|
||||
List<Long> employeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList());
|
||||
List<DataCollectionEmployee> simpleEmployees = getSalaryEmployeeService(user).getEmployeeByIdsAll(employeeIds);
|
||||
simpleEmployees.forEach(e->{
|
||||
simpleEmployees.forEach(e -> {
|
||||
UserStatusEnum userStatusEnum = UserStatusEnum.parseByValue(Integer.parseInt(e.getStatus()));
|
||||
if(userStatusEnum != null){
|
||||
if (userStatusEnum != null) {
|
||||
e.setStatusName(userStatusEnum.getDefaultLabel());
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in New Issue