账套支持sql范围

This commit is contained in:
钱涛 2024-08-15 10:37:41 +08:00
parent ff00de206c
commit f74ec99644
26 changed files with 416 additions and 206 deletions

View File

@ -0,0 +1,10 @@
ALTER TABLE hrsa_tax_agent_manage_range ADD (
target varchar2(4000) NULL
);
/
ALTER TABLE hrsa_salary_sob_range ADD (
target varchar2(4000) NULL
);
/

View File

@ -0,0 +1,10 @@
ALTER TABLE hrsa_tax_agent_manage_range ADD (
target varchar2(4000) NULL
);
/
ALTER TABLE hrsa_salary_sob_range ADD (
target varchar2(4000) NULL
);
/

View File

@ -0,0 +1,10 @@
ALTER TABLE hrsa_tax_agent_manage_range ADD (
target varchar2(4000) NULL
);
/
ALTER TABLE hrsa_salary_sob_range ADD (
target varchar2(4000) NULL
);
/

View File

@ -0,0 +1,2 @@
ALTER TABLE hrsa_tax_agent_manage_range ADD COLUMN target varchar(4000) NULL ;
ALTER TABLE hrsa_salary_sob_range ADD COLUMN target varchar(4000) NULL ;

View File

@ -0,0 +1,10 @@
ALTER TABLE hrsa_tax_agent_manage_range ADD (
target varchar2(4000) NULL
)
/
ALTER TABLE hrsa_salary_sob_range ADD (
target varchar2(4000) NULL
)
/

View File

@ -0,0 +1,3 @@
alter table hrsa_tax_agent_manage_range add target VARCHAR(4000) null ;
alter table hrsa_salary_sob_range add target VARCHAR(4000) null ;

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_tax_agent_manage_range ADD target varchar(4000) NULL
GO
ALTER TABLE hrsa_salary_sob_range ADD target varchar(4000) NULL
GO

View File

@ -0,0 +1,10 @@
ALTER TABLE hrsa_tax_agent_manage_range ADD (
target varchar2(4000) NULL
);
/
ALTER TABLE hrsa_salary_sob_range ADD (
target varchar2(4000) NULL
);
/

View File

@ -51,6 +51,7 @@ public class SalarySobRangeBO {
SalarySobRangeEmpQueryParam queryParam = SalarySobRangeEmpQueryParam.builder()
.targetType(Optional.ofNullable(targetTypeEnum).map(TargetTypeEnum::name).orElse(StringUtils.EMPTY))
.targetIds(Arrays.asList(item.getTargetId()))
.target(item.getTarget())
.employeeStatus(employeeStatus)
.build();
resultParams.add(queryParam);
@ -58,8 +59,6 @@ public class SalarySobRangeBO {
return resultParams;
// Map<Integer, List<SalarySobRangePO>> rangeMap = SalaryEntityUtil.group2Map(salarySobRanges, SalarySobRangePO::getTargetType);
// List<SalarySobRangeEmpQueryParam> resultParams = Lists.newArrayListWithExpectedSize(rangeMap.size());
// rangeMap.forEach((targetType, salarySobRangePOS) -> {
@ -123,7 +122,8 @@ public class SalarySobRangeBO {
.map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
.orElse(StringUtils.EMPTY))
.targetId(salarySobRangePO.getTargetId())
.targetName(buildTargetName(salarySobRangePO, employeeComInfoMap, departmentComInfoMap, subCompanyComInfoMap,positionComInfoMap))
.target(salarySobRangePO.getTarget())
.targetName(buildTargetName(salarySobRangePO, employeeComInfoMap, departmentComInfoMap, subCompanyComInfoMap, positionComInfoMap))
.employeeStatus(employeeStatusesStr)
.build();
})
@ -132,17 +132,18 @@ public class SalarySobRangeBO {
/**
* 转换employeeStatuses
*
* @param employeeStatuses
* @return
*/
private static String parseByEmployeeStatuses(String employeeStatuses) {
String[] split = employeeStatuses.split(",");
List<Integer> enumsList = Arrays.asList(split).stream().map(item-> Integer.valueOf(item)).collect(Collectors.toList());
List<Integer> enumsList = Arrays.asList(split).stream().map(item -> Integer.valueOf(item)).collect(Collectors.toList());
List<SalaryEmployeeStatusEnum> salaryEmployeeStatusEnums = SalaryEmployeeStatusEnum.parseByValues(enumsList);
StringBuilder sb = new StringBuilder();
for(int i=0 ; i<salaryEmployeeStatusEnums.size();i++){
for (int i = 0; i < salaryEmployeeStatusEnums.size(); i++) {
sb.append(salaryEmployeeStatusEnums.get(i).getDefaultLabel());
if(i+1!=salaryEmployeeStatusEnums.size()){
if (i + 1 != salaryEmployeeStatusEnums.size()) {
sb.append(",");
}
}
@ -176,6 +177,8 @@ public class SalarySobRangeBO {
return subCompanyComInfoMap.getOrDefault(salarySobRange.getTargetId(), StringUtils.EMPTY);
case POSITION:
return positionComInfoMap.getOrDefault(salarySobRange.getTargetId(), StringUtils.EMPTY);
case SQL:
return salarySobRange.getTarget();
default:
return StringUtils.EMPTY;
}

View File

@ -4,6 +4,7 @@ import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.salarysob.param.SalarySobRangeSaveParam;
import com.engine.salary.entity.salarysob.po.SalarySobRangePO;
import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum;
import com.engine.salary.enums.salarysob.TargetTypeEnum;
import com.engine.salary.util.SalaryEntityUtil;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
@ -46,39 +47,65 @@ public class SalarySobRangeSaveBO {
}
Map<String, SalarySobRangePO> salarySobRangeMap = SalaryEntityUtil.convert2Map(salarySobRanges, e -> e.getIncludeType() + "-" + e.getTargetType() + "-" + e.getTargetId());
for (SalarySobRangeSaveParam.SalarySobRangeTargetParam targetParam : saveParam.getTargetParams()) {
String key = saveParam.getIncludeType() + "-" + targetParam.getTargetType().getValue() + "-" + targetParam.getTargetId();
if (salarySobRangeMap.containsKey(key)) {
SalarySobRangePO salarySobRangePO = salarySobRangeMap.get(key);
if(isImport){
salarySobRangePO.setEmployeeStatuses(parseEnumListToStr(targetParam.getEmployeeStatus()));
}else {
salarySobRangePO.setEmployeeStatuses(parseEnumListToStr(saveParam.getEmployeeStatus()));
}
salarySobRangePO.setUpdateTime(now);
handleResult.getNeedUpdateSalarySobRanges().add(salarySobRangePO);
continue;
}
SalarySobRangePO salarySobRangePO = SalarySobRangePO.builder()
.salarySobId(saveParam.getSalarySobId())
.targetType(targetParam.getTargetType().getValue())
.targetId(targetParam.getTargetId())
if (targetParam.getTargetType() == TargetTypeEnum.SQL) {
SalarySobRangePO salarySobRangePO = SalarySobRangePO.builder()
.salarySobId(saveParam.getSalarySobId())
.targetType(targetParam.getTargetType().getValue())
.targetId(0L)
.target(targetParam.getTarget())
// .employeeStatuses(parseEnumListToStr(saveParam.getEmployeeStatus()))
// .employeeStatus(saveParam.getEmployeeStatus().getValue())
.includeType(saveParam.getIncludeType())
.creator(employeeId)
.createTime(now)
.updateTime(now)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.deleteType(0)
.build();
.includeType(saveParam.getIncludeType())
.creator(employeeId)
.createTime(now)
.updateTime(now)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.deleteType(0)
.build();
if(isImport){
salarySobRangePO.setEmployeeStatuses(parseEnumListToStr(targetParam.getEmployeeStatus()));
}else{
salarySobRangePO.setEmployeeStatuses(parseEnumListToStr(saveParam.getEmployeeStatus()));
if (isImport) {
salarySobRangePO.setEmployeeStatuses(parseEnumListToStr(targetParam.getEmployeeStatus()));
} else {
salarySobRangePO.setEmployeeStatuses(parseEnumListToStr(saveParam.getEmployeeStatus()));
}
handleResult.getNeedInsertSalarySobRanges().add(salarySobRangePO);
}else {
String key = saveParam.getIncludeType() + "-" + targetParam.getTargetType().getValue() + "-" + targetParam.getTargetId();
if (salarySobRangeMap.containsKey(key)) {
SalarySobRangePO salarySobRangePO = salarySobRangeMap.get(key);
if (isImport) {
salarySobRangePO.setEmployeeStatuses(parseEnumListToStr(targetParam.getEmployeeStatus()));
} else {
salarySobRangePO.setEmployeeStatuses(parseEnumListToStr(saveParam.getEmployeeStatus()));
}
salarySobRangePO.setUpdateTime(now);
handleResult.getNeedUpdateSalarySobRanges().add(salarySobRangePO);
continue;
}
SalarySobRangePO salarySobRangePO = SalarySobRangePO.builder()
.salarySobId(saveParam.getSalarySobId())
.targetType(targetParam.getTargetType().getValue())
.targetId(targetParam.getTargetId())
.target(targetParam.getTarget())
// .employeeStatuses(parseEnumListToStr(saveParam.getEmployeeStatus()))
// .employeeStatus(saveParam.getEmployeeStatus().getValue())
.includeType(saveParam.getIncludeType())
.creator(employeeId)
.createTime(now)
.updateTime(now)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.deleteType(0)
.build();
if (isImport) {
salarySobRangePO.setEmployeeStatuses(parseEnumListToStr(targetParam.getEmployeeStatus()));
} else {
salarySobRangePO.setEmployeeStatuses(parseEnumListToStr(saveParam.getEmployeeStatus()));
}
handleResult.getNeedInsertSalarySobRanges().add(salarySobRangePO);
}
handleResult.getNeedInsertSalarySobRanges().add(salarySobRangePO);
}
return handleResult;
}
@ -100,11 +127,11 @@ public class SalarySobRangeSaveBO {
private Collection<SalarySobRangePO> needInsertSalarySobRanges;
}
public static String parseEnumListToStr(SalaryEmployeeStatusEnum[] salaryEmployeeStatusEnums){
public static String parseEnumListToStr(SalaryEmployeeStatusEnum[] salaryEmployeeStatusEnums) {
StringBuilder sb = new StringBuilder();
for(int i=0;i<salaryEmployeeStatusEnums.length;i++){
for (int i = 0; i < salaryEmployeeStatusEnums.length; i++) {
sb.append(salaryEmployeeStatusEnums[i].getValue().toString());
if(i+1 != salaryEmployeeStatusEnums.length){
if (i + 1 != salaryEmployeeStatusEnums.length) {
sb.append(",");
}
}

View File

@ -49,6 +49,7 @@ public class SalarySobRangeListDTO {
//对象
private Long targetId;
private String target;
@SalaryTableColumn(text = "员工状态", width = "10%", column = "employeeStatus")
@TableTitle(title = "员工状态", dataIndex = "employeeStatus", key = "employeeStatus")

View File

@ -22,6 +22,7 @@ public class SalarySobRangeEmpQueryParam {
//对象类型")
private String targetType;
private String target;
//对象id")
private Collection<Long> targetIds;

View File

@ -52,9 +52,11 @@ public class SalarySobRangeSaveParam {
private TargetTypeEnum targetType;
//对象id
//@DataCheck(require = true, message = "对象不能为空")
@ElogTransform( name="对象id" )
private Long targetId;
@ElogTransform( name="SQL" )
private String target;
//员工状态 -- 导入使用
// @DataCheck(require = true, message = "员工状态不允许为空")

View File

@ -52,6 +52,11 @@ public class SalarySobRangePO {
@ElogTransform(name="对象id")
private Long targetId;
/**
* 对象id
*/
@ElogTransform(name="SQL")
private String target;
/**
* 人员状态
* @see SalaryEmployeeStatusEnum

View File

@ -298,6 +298,7 @@ public class TaxAgentBO {
.map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()))
.orElse(StringUtils.EMPTY))
.targetId(taxAgentManageRange.getTargetId())
.target(taxAgentManageRange.getTarget())
.targetName(buildTargetName(taxAgentManageRange, employeeComInfoMap, departmentComInfoMap, subDepartmentComInfoMap, positionComInfoMap))
.employeeStatus(buildEmployeeStatus(hrmStatusNameMap, taxAgentManageRange.getEmployeeStatus()))
.build();
@ -340,6 +341,8 @@ public class TaxAgentBO {
return subDepartmentComInfoMap.getOrDefault(taxAgentManageRange.getTargetId(), StringUtils.EMPTY);
case POSITION:
return positionComInfoMap.getOrDefault(taxAgentManageRange.getTargetId(), StringUtils.EMPTY);
case SQL:
return taxAgentManageRange.getTarget();
default:
return StringUtils.EMPTY;
}
@ -349,11 +352,6 @@ public class TaxAgentBO {
return handleManageRange(taxAgentManageRanges, saveParam, TaxAgentRangeTypeEnum.TAXAGENT, taxAgentId, 0L, employeeId, isImport);
}
public static Result handleSubAdminRange(List<TaxAgentManageRangePO> taxAgentManageRanges, TaxAgentManageRangeSaveParam saveParam, Long taxAgentId, Long subAdminId,
Long employeeId, boolean isImport) {
return handleManageRange(taxAgentManageRanges, saveParam, TaxAgentRangeTypeEnum.SUBADMIN, taxAgentId, subAdminId, employeeId, isImport);
}
/**
* 处理前端传回的保存参数转换成对应的po如果保存参数中的人员部门岗位等之前就已经添加过了就不需要再次保存了
*
@ -377,39 +375,64 @@ public class TaxAgentBO {
Map<String, TaxAgentManageRangePO> taxAgentManageRangeMap = SalaryEntityUtil.convert2Map(taxAgentManageRanges,
e -> e.getIncludeType() + "-" + e.getTargetType() + "-" + e.getTargetId() + "-" + e.getRangeType());
for (TaxAgentSubAdminRangeSaveParam.TaxAgentSubAdminRangeTargetParam targetParam : saveParam.getTargetParams()) {
String key = saveParam.getIncludeType() + "-" + targetParam.getTargetType().getValue() + "-" + targetParam.getTargetId() + "-" + rangeTypeEnum.getValue();
if (taxAgentManageRangeMap.containsKey(key)) {
TaxAgentManageRangePO taxAgentManageRange = taxAgentManageRangeMap.get(key);
if(isImport){
if (targetParam.getTargetType() == TargetTypeEnum.SQL) {
TaxAgentManageRangePO taxAgentManageRange = TaxAgentManageRangePO.builder()
.id(IdGenerator.generate())
.taxAgentId(taxAgentId)
.taxAgentSubAdminId(subAdminId)
.rangeType(rangeTypeEnum.getValue())
.targetType(targetParam.getTargetType().getValue())
.targetId(0L)
.target(targetParam.getTarget())
.includeType(saveParam.getIncludeType())
.creator(employeeId)
.createTime(now)
.updateTime(now)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.deleteType(0)
.build();
if (isImport) {
taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(targetParam.getEmployeeStatus()));
}else {
} else {
taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(saveParam.getEmployeeStatus()));
}
taxAgentManageRange.setUpdateTime(now);
handleResult.getNeedUpdateTaxAgentManageRanges().add(taxAgentManageRange);
continue;
handleResult.getNeedInsertTaxAgentManageRanges().add(taxAgentManageRange);
} else {
String key = saveParam.getIncludeType() + "-" + targetParam.getTargetType().getValue() + "-" + targetParam.getTargetId() + "-" + rangeTypeEnum.getValue();
if (taxAgentManageRangeMap.containsKey(key)) {
TaxAgentManageRangePO taxAgentManageRange = taxAgentManageRangeMap.get(key);
if (isImport) {
taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(targetParam.getEmployeeStatus()));
} else {
taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(saveParam.getEmployeeStatus()));
}
taxAgentManageRange.setUpdateTime(now);
handleResult.getNeedUpdateTaxAgentManageRanges().add(taxAgentManageRange);
continue;
}
TaxAgentManageRangePO taxAgentManageRange = TaxAgentManageRangePO.builder()
.id(IdGenerator.generate())
.taxAgentId(taxAgentId)
.taxAgentSubAdminId(subAdminId)
.rangeType(rangeTypeEnum.getValue())
.targetType(targetParam.getTargetType().getValue())
.targetId(targetParam.getTargetId())
.includeType(saveParam.getIncludeType())
.creator(employeeId)
.createTime(now)
.updateTime(now)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.deleteType(0)
.build();
if (isImport) {
taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(targetParam.getEmployeeStatus()));
} else {
taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(saveParam.getEmployeeStatus()));
}
handleResult.getNeedInsertTaxAgentManageRanges().add(taxAgentManageRange);
}
TaxAgentManageRangePO taxAgentManageRange = TaxAgentManageRangePO.builder()
.id(IdGenerator.generate())
.taxAgentId(taxAgentId)
.taxAgentSubAdminId(subAdminId)
.rangeType(rangeTypeEnum.getValue())
.targetType(targetParam.getTargetType().getValue())
.targetId(targetParam.getTargetId())
.includeType(saveParam.getIncludeType())
.creator(employeeId)
.createTime(now)
.updateTime(now)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.deleteType(0)
.build();
if(isImport){
taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(targetParam.getEmployeeStatus()));
}else {
taxAgentManageRange.setEmployeeStatus(JsonUtil.toJsonString(saveParam.getEmployeeStatus()));
}
handleResult.getNeedInsertTaxAgentManageRanges().add(taxAgentManageRange);
}
return handleResult;
}

View File

@ -49,6 +49,7 @@ public class TaxAgentManageRangeListDTO {
//对象id")
private Long targetId;
private String target;
@SalaryTableColumn(
text = "员工状态",

View File

@ -2,6 +2,8 @@ package com.engine.salary.entity.taxagent.param;
import com.engine.salary.enums.salarysob.TargetTypeEnum;
import com.engine.salary.util.valid.DataCheck;
import com.engine.salary.util.valid.Modify;
import com.engine.salary.util.valid.ModifyTypeEnum;
import lombok.Data;
import java.util.Collection;
@ -51,9 +53,14 @@ public class TaxAgentManageRangeSaveParam {
/**
* 对象不能为空
*/
@DataCheck(require = true,message = "对象不能为空")
private Long targetId;
/**
* sql
*/
@Modify(modifyType = ModifyTypeEnum.RESTORE_SQL)
private String target;
/**
* 导入使用员工状态
*/

View File

@ -64,6 +64,9 @@ public class TaxAgentManageRangePO {
@ElogTransform( name ="对象id")
private Long targetId;
@ElogTransform( name ="SQL")
private String target;
/**
* 人员状态
*/

View File

@ -20,10 +20,8 @@ public enum TargetTypeEnum implements BaseEnum<Integer> {
DEPT(2, "部门", 86185),
SUBCOMPANY(3, "分部", 107369),
POSITION(4, "岗位", 90633),
ALL(5, "所有人", 107729);
// SECLEVE(6, "安全级别", 90382),;
// EXT_EMPLOYEE(100, "外部人员", 0);
ALL(5, "所有人", 107729),
SQL(6, "SQL", 107729);
private int value;
private String defaultLabel;

View File

@ -6,6 +6,7 @@
<result column="salary_sob_id" property="salarySobId"/>
<result column="target_type" property="targetType"/>
<result column="target_id" property="targetId"/>
<result column="target" property="target"/>
<result column="employee_status" property="employeeStatus"/>
<result column="include_type" property="includeType"/>
<result column="creator" property="creator"/>
@ -23,6 +24,7 @@
, t.salary_sob_id
, t.target_type
, t.target_id
, t.target
, t.employee_status
, t.include_type
, t.creator
@ -68,6 +70,9 @@
<if test="targetId != null and targetId != ''">
AND target_id = #{targetId}
</if>
<if test="target != null and target != ''">
AND target = #{target}
</if>
<if test="employeeStatus != null and employeeStatus != ''">
AND employee_status = #{employeeStatus}
</if>
@ -118,6 +123,9 @@
<if test="targetId != null">
target_id,
</if>
<if test="target != null">
target,
</if>
<if test="employeeStatus != null">
employee_status,
</if>
@ -153,6 +161,9 @@
<if test="targetId != null">
#{targetId},
</if>
<if test="target != null">
#{target},
</if>
<if test="employeeStatus != null">
#{employeeStatus},
</if>
@ -197,6 +208,9 @@
<if test="targetId != null">
target_id,
</if>
<if test="target != null">
target,
</if>
<if test="employeeStatus != null">
employee_status,
</if>
@ -232,6 +246,9 @@
<if test="targetId != null">
#{targetId},
</if>
<if test="target != null">
#{target},
</if>
<if test="employeeStatus != null">
#{employeeStatus},
</if>
@ -263,6 +280,7 @@
salary_sob_id=#{salarySobId},
target_type=#{targetType},
target_id=#{targetId},
target=#{target},
employee_status=#{employeeStatus},
include_type=#{includeType},
creator=#{creator},
@ -288,6 +306,9 @@
<if test="targetId != null">
target_id=#{targetId},
</if>
<if test="target != null">
target=#{target},
</if>
<if test="employeeStatuses != null">
employee_statuses=#{employeeStatuses},
</if>
@ -324,7 +345,7 @@
<insert id="batchInsert">
INSERT INTO hrsa_salary_sob_range(salary_sob_id, target_type, target_id, employee_status, include_type,
INSERT INTO hrsa_salary_sob_range(salary_sob_id, target_type, target_id,target, employee_status, include_type,
creator, create_time, update_time, delete_type, tenant_key,employee_statuses)
VALUES
<foreach collection="collection" item="item" separator=",">
@ -332,6 +353,7 @@
#{item.salarySobId},
#{item.targetType.value},
#{item.targetId},
#{item.target},
#{item.employeeStatus.value},
#{item.includeType},
#{item.creator},
@ -344,7 +366,7 @@
</foreach>
</insert>
<insert id="batchInsert" databaseId="oracle">
INSERT INTO hrsa_salary_sob_range(salary_sob_id, target_type, target_id, employee_status, include_type,
INSERT INTO hrsa_salary_sob_range(salary_sob_id, target_type, target_id,target, employee_status, include_type,
creator, create_time, update_time, delete_type, tenant_key,employee_statuses)
<foreach collection="collection" item="item" separator="union all">
@ -352,6 +374,7 @@
#{item.salarySobId,jdbcType=DOUBLE},
#{item.targetType.value,jdbcType=INTEGER},
#{item.targetId,jdbcType=DOUBLE},
#{item.target,jdbcType=VARCHAR},
#{item.employeeStatus.value,jdbcType=INTEGER},
#{item.includeType,jdbcType=INTEGER},
#{item.creator,jdbcType=DOUBLE},
@ -365,13 +388,14 @@
</insert>
<insert id="batchInsert" databaseId="sqlserver">
<foreach collection="collection" item="item" separator=";">
INSERT INTO hrsa_salary_sob_range( salary_sob_id, target_type, target_id, employee_status, include_type,
INSERT INTO hrsa_salary_sob_range( salary_sob_id, target_type, target_id,target, employee_status, include_type,
creator, create_time, update_time, delete_type, tenant_key,employee_statuses)
VALUES
(
#{item.salarySobId},
#{item.targetType.value},
#{item.targetId},
#{item.target},
#{item.employeeStatus.value},
#{item.includeType},
#{item.creator},

View File

@ -11,6 +11,7 @@
<result column="include_type" property="includeType" />
<result column="range_type" property="rangeType" />
<result column="target_id" property="targetId" />
<result column="target" property="target" />
<result column="target_type" property="targetType" />
<result column="tax_agent_id" property="taxAgentId" />
<result column="tax_agent_sub_admin_id" property="taxAgentSubAdminId" />
@ -29,6 +30,7 @@
, t.include_type
, t.range_type
, t.target_id
, t.target
, t.target_type
, t.tax_agent_id
, t.tax_agent_sub_admin_id
@ -85,6 +87,9 @@
<if test="targetId != null">
AND target_id = #{targetId}
</if>
<if test="target != null">
AND target = #{target}
</if>
<if test="targetType != null">
AND target_type = #{targetType}
</if>
@ -154,6 +159,9 @@
<if test="targetId != null">
target_id,
</if>
<if test="target != null">
target,
</if>
<if test="targetType != null">
target_type,
</if>
@ -198,6 +206,9 @@
<if test="targetId != null" >
#{targetId},
</if>
<if test="target != null" >
#{target},
</if>
<if test="targetType != null" >
#{targetType},
</if>
@ -228,6 +239,7 @@
include_type=#{includeType},
range_type=#{rangeType},
target_id=#{targetId},
target=#{target},
target_type=#{targetType},
tax_agent_id=#{taxAgentId},
tax_agent_sub_admin_id=#{taxAgentSubAdminId},
@ -266,6 +278,9 @@
<if test="targetId != null" >
target_id=#{targetId},
</if>
<if test="target != null" >
target=#{target},
</if>
<if test="targetType != null" >
target_type=#{targetType},
</if>

View File

@ -64,6 +64,10 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
return ServiceUtil.getService(SalarySobRangeServiceImpl.class, user);
}
private SalaryEmployeeService getSalaryEmployeeService(User user) {
return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user);
}
private SalarySysConfMapper getSalarySysConfMapper() {
return SqlProxyHandle.getProxy(SalarySysConfMapper.class);
}
@ -349,23 +353,36 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
if (CollectionUtils.isEmpty(includeQueryParams)) {
return Collections.emptyList();
}
List<DataCollectionEmployee> result = employBiz.listByParams(includeQueryParams);
List<SalarySobRangeEmpQueryParam> queryParams = includeQueryParams.stream().filter(param -> !param.getTargetType().equals(TargetTypeEnum.SQL.name())).collect(Collectors.toList());
List<DataCollectionEmployee> result = employBiz.listByParams(queryParams);
if (openExtEmp) {
result.addAll(getExtEmpService(user).listByParams(includeQueryParams));
result.addAll(getExtEmpService(user).listByParams(queryParams));
}
// 查询虚拟部门分部人员信息
List<SalarySobRangeEmpQueryParam> virtualParams = includeQueryParams.stream().filter(param ->
List<SalarySobRangeEmpQueryParam> virtualParams = queryParams.stream().filter(param ->
(param.getTargetType().equals(TargetTypeEnum.SUBCOMPANY.name()) || param.getTargetType().equals(TargetTypeEnum.DEPT.name())) && ((List<Long>) param.getTargetIds()).get(0).compareTo(0L) < 0
).collect(Collectors.toList());
result.addAll(employBiz.listByVirtualParams(virtualParams));
List<Long> empIds = new ArrayList<>();
includeQueryParams.stream()
.filter(param -> param.getTargetType().equals(TargetTypeEnum.SQL.name()))
.forEach(param -> {
String sql = param.getTarget();
RecordSet rs = new RecordSet();
if (rs.execute(sql)) {
while (rs.next()) {
empIds.add((long) rs.getInt("id"));
}
}
});
List<DataCollectionEmployee> employees = getSalaryEmployeeService(user).getEmployeeByIds(empIds);
result.addAll(employees);
// 从hrmresource和hrmresourcevirtual可能获取到重复人员数据需要根据人员id去重
result = result.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparingLong(DataCollectionEmployee::getEmployeeId))), ArrayList::new));
//部门分部等信息备份到核算人员表中不进行多语言处理
// return SalaryI18nUtil.i18nList(result);
return result;
}

View File

@ -440,6 +440,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
.salarySobId(salarySobID)
.targetType(item.getTargetType().getValue())
.targetId(item.getTargetId())
.target(item.getTarget())
.employeeStatuses(item.getEmployeeStatus())
.includeType(1)
.creator(Long.valueOf(user.getUID()))

View File

@ -48,6 +48,7 @@ import org.apache.commons.lang3.Validate;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.poi.util.IOUtils;
import org.springframework.beans.BeanUtils;
import weaver.conn.RecordSet;
import weaver.file.ImageFileManager;
import weaver.general.Util;
import weaver.hrm.User;
@ -177,57 +178,77 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
return Collections.emptyList();
}
// 获取虚拟部门下人员信息
List<Long> virtualDepartmentIds = taxAgentManageRanges.stream().filter(manageRange -> manageRange.getTargetType().equals(TargetTypeEnum.DEPT.getValue()) && manageRange.getTargetId().compareTo(0L) < 0)
.map(TaxAgentManageRangePO::getTargetId).collect(Collectors.toList());
List<Long> virtualDepartmentIds = taxAgentManageRanges.stream().filter(manageRange -> manageRange.getTargetType().equals(TargetTypeEnum.DEPT.getValue()) && manageRange.getTargetId().compareTo(0L) < 0).map(TaxAgentManageRangePO::getTargetId).collect(Collectors.toList());
List<DataCollectionEmployee> virtualEmpListByDep = getSalaryEmployeeService(user).getVirtualEmpByVirtualDepIds(virtualDepartmentIds);
Map<Long, Set<Long>> virtualDepMap = SalaryEntityUtil.group2Map(virtualEmpListByDep, DataCollectionEmployee::getDepartmentId, DataCollectionEmployee::getEmployeeId);
// 获取虚拟分部下人员信息
List<Long> virtualSubCompanyIds = taxAgentManageRanges.stream().filter(manageRange -> manageRange.getTargetType().equals(TargetTypeEnum.SUBCOMPANY.getValue()) && manageRange.getTargetId().compareTo(0L) < 0)
.map(TaxAgentManageRangePO::getTargetId).collect(Collectors.toList());
List<Long> virtualSubCompanyIds = taxAgentManageRanges.stream().filter(manageRange -> manageRange.getTargetType().equals(TargetTypeEnum.SUBCOMPANY.getValue()) && manageRange.getTargetId().compareTo(0L) < 0).map(TaxAgentManageRangePO::getTargetId).collect(Collectors.toList());
List<DataCollectionEmployee> virtualEmpListBySubCom = getSalaryEmployeeService(user).getVirtualEmpByVirtualSubCompanyIds(virtualSubCompanyIds);
Map<Long, Set<Long>> virtualSubCompanyMap = SalaryEntityUtil.group2Map(virtualEmpListBySubCom, DataCollectionEmployee::getSubcompanyid, DataCollectionEmployee::getEmployeeId);
List<DataCollectionEmployee> salaryEmployeeList = Lists.newArrayList();
for (TaxAgentManageRangePO manageRange : taxAgentManageRanges) {
boolean isVirtual = manageRange.getTargetId().compareTo(0L) < 0 ? true : false;
salaryEmployeeList.addAll(salaryEmployees.stream().filter(salaryEmployee -> {
if (StringUtils.isEmpty(manageRange.getEmployeeStatus()) || !manageRange.getEmployeeStatus().contains("\"" + salaryEmployee.getStatus() + "\"")) {
if (!TargetTypeEnum.SQL.getValue().equals(manageRange.getTargetType())) {
boolean isVirtual = manageRange.getTargetId().compareTo(0L) < 0 ? true : false;
List<DataCollectionEmployee> employees = salaryEmployees.stream().filter(salaryEmployee -> {
if (StringUtils.isEmpty(manageRange.getEmployeeStatus()) || !manageRange.getEmployeeStatus().contains("\"" + salaryEmployee.getStatus() + "\"")) {
return false;
}
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.ALL.getValue())) {
return true;
}
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.EMPLOYEE.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getEmployeeId())) {
return true;
}
if (isVirtual) {
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.DEPT.getValue())) {
Set<Long> empIds = virtualDepMap.get(manageRange.getTargetId());
if (CollectionUtils.isNotEmpty(empIds) && empIds.contains(salaryEmployee.getEmployeeId())) {
return true;
}
}
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.SUBCOMPANY.getValue())) {
Set<Long> empIds = virtualSubCompanyMap.get(manageRange.getTargetId());
if (CollectionUtils.isNotEmpty(empIds) && empIds.contains(salaryEmployee.getEmployeeId())) {
return true;
}
}
} else {
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.DEPT.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getDepartmentId())) {
return true;
}
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.SUBCOMPANY.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getSubcompanyid())) {
return true;
}
}
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.POSITION.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getJobtitleId())) {
return true;
}
return false;
}
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.ALL.getValue())) {
return true;
}
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.EMPLOYEE.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getEmployeeId())) {
return true;
}
if (isVirtual) {
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.DEPT.getValue())) {
Set<Long> empIds = virtualDepMap.get(manageRange.getTargetId());
if (CollectionUtils.isNotEmpty(empIds) && empIds.contains(salaryEmployee.getEmployeeId())) {
return true;
}
}
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.SUBCOMPANY.getValue())) {
Set<Long> empIds = virtualSubCompanyMap.get(manageRange.getTargetId());
if (CollectionUtils.isNotEmpty(empIds) && empIds.contains(salaryEmployee.getEmployeeId())) {
return true;
}
}
} else {
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.DEPT.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getDepartmentId())) {
return true;
}
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.SUBCOMPANY.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getSubcompanyid())) {
return true;
}
}
if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.POSITION.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getJobtitleId())) {
return true;
}
return false;
}).collect(Collectors.toList()));
}).collect(Collectors.toList());
salaryEmployeeList.addAll(employees);
}
}
for (TaxAgentManageRangePO manageRange : taxAgentManageRanges) {
if (TargetTypeEnum.SQL.getValue().equals(manageRange.getTargetType())) {
String sql = manageRange.getTarget();
List<Long> empIds = new ArrayList<>();
RecordSet rs = new RecordSet();
if (rs.execute(sql)) {
while (rs.next()) {
empIds.add((long) rs.getInt("id"));
}
}
List<DataCollectionEmployee> employees = getSalaryEmployeeService(user).getEmployeeByIds(empIds);
if (StringUtils.isNotBlank(manageRange.getEmployeeStatus())) {
employees = employees.stream().filter(salaryEmployee -> manageRange.getEmployeeStatus().contains("\"" + salaryEmployee.getStatus() + "\"")).collect(Collectors.toList());
}
salaryEmployeeList.addAll(employees);
}
}
// 去重
salaryEmployeeList = salaryEmployeeList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DataCollectionEmployee::getEmployeeId))), ArrayList::new));
return salaryEmployeeList;
@ -338,13 +359,19 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
if (target.getTargetType() == null) {
throw new SalaryRunTimeException("对象类型不能为空");
}
if (target.getTargetId() == null) {
throw new SalaryRunTimeException("对象不能为空");
if (target.getTargetType() == TargetTypeEnum.SQL) {
if (target.getTarget() == null) {
throw new SalaryRunTimeException("sql不能为空");
}
target.setTargetId(0L);
} else {
if (target.getTargetId() == null) {
throw new SalaryRunTimeException("对象不能为空");
}
}
});
}
// 查询个税扣缴义务人
TaxAgentPO taxAgent = getTaxAgentService(user).getById(saveParam.getTaxAgentId());
if (Objects.isNull(taxAgent)) {
@ -379,13 +406,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
getTaxAgentManageRangeMapper().insertIgnoreNull(range);
// 记录操作日志
String name = taxAgent.getName() + "_" + TargetTypeEnum.parseByValue(range.getTargetType()).getDefaultLabel() + "_" + range.getTargetId();
SalaryLoggerUtil.recordAddSingleLog(SalaryElogConfig.taxAgentLoggerTemplate,
range.getTaxAgentId(),
name,
SalaryI18nUtil.getI18nLabel(0, "新增人员范围"),
SalaryI18nUtil.getI18nLabel(0, "新增人员范围") + name,
range,
user);
SalaryLoggerUtil.recordAddSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, range.getTaxAgentId(), name, SalaryI18nUtil.getI18nLabel(0, "新增人员范围"), SalaryI18nUtil.getI18nLabel(0, "新增人员范围") + name, range, user);
});
}
@ -396,14 +417,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
// 记录操作日志
TaxAgentManageRangePO oldPO = oldMap.getOrDefault(range.getId(), TaxAgentManageRangePO.builder().build());
String name = taxAgent.getName() + "_" + TargetTypeEnum.parseByValue(range.getTargetType()).getDefaultLabel() + "_" + range.getTargetId();
SalaryLoggerUtil.recordUpdateSingleLog(SalaryElogConfig.taxAgentLoggerTemplate,
range.getTaxAgentId(),
name,
SalaryI18nUtil.getI18nLabel(0, "更新人员范围"),
SalaryI18nUtil.getI18nLabel(0, "更新人员范围") + name,
oldPO,
range,
user);
SalaryLoggerUtil.recordUpdateSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, range.getTaxAgentId(), name, SalaryI18nUtil.getI18nLabel(0, "更新人员范围"), SalaryI18nUtil.getI18nLabel(0, "更新人员范围") + name, oldPO, range, user);
});
}
@ -439,7 +453,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
//开始同步中....
Util_DataCache.setObjVal("salaryArchiveChangeSign", "1");
getSalaryArchiveService(user).handleChangeData(1L);
}finally {
} finally {
//同步结束....
Util_DataCache.setObjVal("salaryArchiveChangeSign", "0");
}
@ -486,28 +500,12 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
List<TaxAgentExtRangePO> oldPO = listAllExtBytaxAgentId(taxAgentId);
List<Long> oldIds = SalaryEntityUtil.properties(oldPO, TaxAgentExtRangePO::getTargetId, Collectors.toList());
targetIds.stream().filter(targetId -> !oldIds.contains(targetId)).forEach(targetId -> {
TaxAgentExtRangePO po = TaxAgentExtRangePO.builder()
.id(IdGenerator.generate())
.taxAgentId(taxAgentId)
.targetId(targetId)
.creator((long) user.getUID())
.createTime(now)
.updateTime(now)
.deleteType(0)
.targetType(1)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build();
TaxAgentExtRangePO po = TaxAgentExtRangePO.builder().id(IdGenerator.generate()).taxAgentId(taxAgentId).targetId(targetId).creator((long) user.getUID()).createTime(now).updateTime(now).deleteType(0).targetType(1).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).build();
getTaxAgentExtRangeMapper().insertIgnoreNull(po);
// 记录日志
String name = taxAgent.getName() + "_" + saveParam.getTaxAgentId();
SalaryLoggerUtil.recordAddSingleLog(SalaryElogConfig.taxAgentLoggerTemplate,
taxAgent.getId(),
name,
SalaryI18nUtil.getI18nLabel(0, "新增非系统人员范围"),
SalaryI18nUtil.getI18nLabel(0, "新增非系统人员范围") + name,
po,
user);
SalaryLoggerUtil.recordAddSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, taxAgent.getId(), name, SalaryI18nUtil.getI18nLabel(0, "新增非系统人员范围"), SalaryI18nUtil.getI18nLabel(0, "新增非系统人员范围") + name, po, user);
});
List<DataCollectionEmployee> oldEmpList = getExtEmpService(user).getEmployeeByIds(oldIds);
employees.addAll(oldEmpList);
@ -556,13 +554,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
// 删除管理范围
getTaxAgentExtRangeMapper().deleteByIds(ids);
// 记录日志
SalaryLoggerUtil.recordDeleteSingleLog(SalaryElogConfig.taxAgentLoggerTemplate,
taxAgentManageRanges.get(0).getTaxAgentId(),
ids.toString(),
SalaryI18nUtil.getI18nLabel(0, "删除非系统人员范围"),
SalaryI18nUtil.getI18nLabel(0, "删除非系统人员范围") + ids.toString(),
null,
user);
SalaryLoggerUtil.recordDeleteSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, taxAgentManageRanges.get(0).getTaxAgentId(), ids.toString(), SalaryI18nUtil.getI18nLabel(0, "删除非系统人员范围"), SalaryI18nUtil.getI18nLabel(0, "删除非系统人员范围") + ids.toString(), null, user);
}
private void syncLocalExtEmp(Long taxAgentId, List<DataCollectionEmployee> allSalaryEmployees) {
@ -648,13 +640,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
// 记录操作日志
taxAgentManageRangeList.stream().forEach(range -> {
String name = taxAgentPO.getName() + "_" + TargetTypeEnum.parseByValue(range.getTargetType()).getDefaultLabel() + "_" + range.getTargetId();
SalaryLoggerUtil.recordDeleteSingleLog(SalaryElogConfig.taxAgentLoggerTemplate,
range.getTaxAgentId(),
name,
SalaryI18nUtil.getI18nLabel(0, "删除人员范围"),
SalaryI18nUtil.getI18nLabel(0, "删除人员范围") + name,
range,
user);
SalaryLoggerUtil.recordDeleteSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, range.getTaxAgentId(), name, SalaryI18nUtil.getI18nLabel(0, "删除人员范围"), SalaryI18nUtil.getI18nLabel(0, "删除人员范围") + name, range, user);
});
@ -669,7 +655,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
}
List<TaxAgentExtRangePO> taxAgentExtRangePOS = getTaxAgentExtRangeMapper().list(TaxAgentExtRangePO.builder().taxAgentId(param.getTaxAgentId()).build());
if(StringUtils.isNotBlank(param.getTargetName())) {
if (StringUtils.isNotBlank(param.getTargetName())) {
taxAgentExtRangePOS = taxAgentExtRangePOS.stream().filter(po -> po.getTargetName().contains(param.getTargetName())).collect(Collectors.toList());
}
return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), taxAgentExtRangePOS, TaxAgentExtRangePO.class);
@ -873,25 +859,17 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
List<Long> employeeSameIds = new ArrayList<>();
//筛选导入人员信息可以在人力资源池中匹配到的人员信息
List<DataCollectionEmployee> emps = getSalaryEmployeeService()
.matchImportEmployee(confValue,employees, userName, deparmentName, mobile, workcode,idNo, null);
List<DataCollectionEmployee> emps = getSalaryEmployeeService().matchImportEmployee(confValue, employees, userName, deparmentName, mobile, workcode, idNo, null);
if (CollectionUtils.isNotEmpty(emps)) {
employeeSameIds = emps.stream()
.map(DataCollectionEmployee::getEmployeeId)
.collect(Collectors.toList());
employeeSameIds = emps.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList());
}
//含在职和离职选在职数据
if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) {
employeeSameIds = emps.stream()
.filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus()))
.map(DataCollectionEmployee::getEmployeeId)
.collect(Collectors.toList());
employeeSameIds = emps.stream().filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())).map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList());
}
if (CollectionUtils.isNotEmpty(emps) && emps.size() == 1) {
employeeSameIds = emps.stream()
.map(DataCollectionEmployee::getEmployeeId)
.collect(Collectors.toList());
employeeSameIds = emps.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList());
}
//当人员信息导入筛选的全局配置为"0"姓名才是必填项
@ -980,7 +958,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
// 去重
allRanges = allRanges.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getTaxAgentId() + "." + f.getRangeType() + "." + f.getTargetType() + "." + f.getTargetId() + "." + f.getEmployeeStatus() + "." + f.getIncludeType()))), ArrayList::new));
List<DataCollectionEmployee> salaryEmployees = getSalaryEmployeeService().listAll(UseEmployeeTypeEnum.ALL);
List<DataCollectionEmployee> salaryEmployees = getSalaryEmployeeService().listAll(UseEmployeeTypeEnum.ALL);
List<DataCollectionEmployee> allSalaryEmployees = this.getManageRangeSalaryEmployees(taxAgentId, allRanges, salaryEmployees);
/* 检查当前个税扣缴义务人的所有人员范围与所有分管理员的管理范围===========================end */
@ -989,13 +967,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
getTaxAgentManageRangeMapper().insertIgnoreNull(range);
// 记录操作日志
String name = taxAgent.getName() + "_" + TargetTypeEnum.parseByValue(range.getTargetType()).getDefaultLabel() + "_" + range.getTargetId();
SalaryLoggerUtil.recordAddSingleLog(SalaryElogConfig.taxAgentLoggerTemplate,
range.getTaxAgentId(),
name,
SalaryI18nUtil.getI18nLabel(0, "新增人员范围"),
SalaryI18nUtil.getI18nLabel(0, "新增人员范围") + name,
range,
user);
SalaryLoggerUtil.recordAddSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, range.getTaxAgentId(), name, SalaryI18nUtil.getI18nLabel(0, "新增人员范围"), SalaryI18nUtil.getI18nLabel(0, "新增人员范围") + name, range, user);
});
}
if (CollectionUtils.isNotEmpty(result.getNeedUpdateTaxAgentManageRanges())) {
@ -1005,14 +977,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM
// 记录操作日志
TaxAgentManageRangePO oldPO = oldMap.getOrDefault(range.getId(), TaxAgentManageRangePO.builder().build());
String name = taxAgent.getName() + "_" + TargetTypeEnum.parseByValue(range.getTargetType()).getDefaultLabel() + "_" + range.getTargetId();
SalaryLoggerUtil.recordUpdateSingleLog(SalaryElogConfig.taxAgentLoggerTemplate,
range.getTaxAgentId(),
name,
SalaryI18nUtil.getI18nLabel(0, "更新人员范围"),
SalaryI18nUtil.getI18nLabel(0, "更新人员范围") + name,
oldPO,
range,
user);
SalaryLoggerUtil.recordUpdateSingleLog(SalaryElogConfig.taxAgentLoggerTemplate, range.getTaxAgentId(), name, SalaryI18nUtil.getI18nLabel(0, "更新人员范围"), SalaryI18nUtil.getI18nLabel(0, "更新人员范围") + name, oldPO, range, user);
});
}

View File

@ -1,5 +1,6 @@
package com.engine.salary.wrapper;
import cn.hutool.core.util.StrUtil;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.entity.SalarySobExtRangePO;
@ -17,8 +18,10 @@ import org.apache.commons.lang.math.NumberUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import weaver.hrm.User;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
/**
* 薪资账套的人员范围
@ -73,6 +76,31 @@ public class SalarySobRangeWrapper extends Service {
* @param saveParam 保存参数
*/
public void save(SalarySobRangeSaveParam saveParam) {
Optional.ofNullable(saveParam.getTargetParams()).orElse(new ArrayList<>())
.forEach(targetParam -> {
if (StrUtil.isNotBlank(targetParam.getTarget())) {
targetParam.setTarget(targetParam.getTarget()
.replace("", "select")
.replace("", "SELECT")
.replace("", "join")
.replace("", "JOIN")
.replace("", "and")
.replace("", "AND")
.replace("", "or")
.replace("", "OR")
.replace("", "in")
.replace("", "IN")
.replace("", "like")
.replace("", "LIKE")
.replace("", "exists")
.replace("", "EXISTS")
.replace("", "between")
.replace("", "BETWEEN")
.replace("", "union")
.replace("", "UNION"));
}
});
getSalarySobRangeService(user).save(saveParam);
}

View File

@ -1,5 +1,6 @@
package com.engine.salary.wrapper;
import cn.hutool.core.util.StrUtil;
import com.cloudstore.dev.api.util.Util_DataCache;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
@ -341,6 +342,34 @@ public class TaxAgentWrapper extends Service {
* @return
*/
public String saveRange(TaxAgentRangeSaveParam saveParam) {
//将select因XSS过滤造成的异常字符转换回来
Optional.ofNullable(saveParam.getTargetParams()).orElse(new ArrayList<>())
.forEach(targetParam -> {
if (StrUtil.isNotBlank(targetParam.getTarget())) {
targetParam.setTarget(targetParam.getTarget()
.replace("", "select")
.replace("", "SELECT")
.replace("", "join")
.replace("", "JOIN")
.replace("", "and")
.replace("", "AND")
.replace("", "or")
.replace("", "OR")
.replace("", "in")
.replace("", "IN")
.replace("", "like")
.replace("", "LIKE")
.replace("", "exists")
.replace("", "EXISTS")
.replace("", "between")
.replace("", "BETWEEN")
.replace("", "union")
.replace("", "UNION"));
}
});
getTaxAgentManageRangeService(user).save(saveParam);
return StringUtils.EMPTY;
}