档案批量发薪、停薪权限控制
This commit is contained in:
parent
383562c9cf
commit
46f94ddd3d
|
|
@ -21,7 +21,6 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
|
||||||
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
|
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
|
||||||
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO;
|
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO;
|
||||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||||
import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO;
|
|
||||||
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO;
|
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO;
|
||||||
import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO;
|
import com.engine.salary.entity.taxagent.po.TaxAgentEmpChangePO;
|
||||||
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
||||||
|
|
@ -369,36 +368,12 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SalaryArchiveListDTO> list(SalaryArchiveQueryParam queryParam) {
|
public List<SalaryArchiveListDTO> list(SalaryArchiveQueryParam queryParam) {
|
||||||
long currentEmployeeId = user.getUID();
|
|
||||||
|
|
||||||
//排序配置
|
//排序配置
|
||||||
OrderRuleVO orderRule = getSalarySysConfService(user).orderRule();
|
OrderRuleVO orderRule = getSalarySysConfService(user).orderRule();
|
||||||
queryParam.setOrderRule(orderRule);
|
queryParam.setOrderRule(orderRule);
|
||||||
|
|
||||||
Boolean needAuth = getTaxAgentService(user).isNeedAuth(currentEmployeeId);
|
List<SalaryArchiveListDTO> list = getSalaryArchiveList(queryParam);
|
||||||
if (needAuth) {
|
return getAuthService(user).auth(list, queryParam.getFilterType(), SalaryArchiveListDTO.class);
|
||||||
|
|
||||||
Boolean adminEnable = getTaxAgentService(user).isAdminEnable(currentEmployeeId);
|
|
||||||
//不是管理员看不到数据,返回空
|
|
||||||
if (!adminEnable) {
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取管理的人员范围
|
|
||||||
List<TaxAgentEmployeeDTO> taxAgentEmployeeDTOS = getTaxAgentService(user).listTaxAgentAndEmployee(currentEmployeeId);
|
|
||||||
Set<Long> employeeId = SalaryEntityUtil.properties(taxAgentEmployeeDTOS, TaxAgentEmployeeDTO::getEmployeeId);
|
|
||||||
|
|
||||||
Collection<TaxAgentPO> taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(currentEmployeeId);
|
|
||||||
Set<Long> taxAgentIds = SalaryEntityUtil.properties(taxAgentPOS, TaxAgentPO::getId);
|
|
||||||
|
|
||||||
//获取所有薪资档案
|
|
||||||
List<SalaryArchiveListDTO> list = getSalaryArchiveList(queryParam);
|
|
||||||
List<SalaryArchiveListDTO> finalAllArchive = list.stream().filter(dto -> employeeId.contains(dto.getEmployeeId()) && taxAgentIds.contains(dto.getTaxAgentId())).collect(Collectors.toList());
|
|
||||||
|
|
||||||
return finalAllArchive;
|
|
||||||
} else {
|
|
||||||
return getSalaryArchiveList(queryParam);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1053,7 +1028,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
||||||
|
|
||||||
List<SalaryArchivePO> list = getSalaryArchiveMapper().listAll();
|
List<SalaryArchivePO> list = getSalaryArchiveMapper().listAll();
|
||||||
|
|
||||||
list = getAuthService(user).auth(list,AuthFilterTypeEnum.QUERY_DATA,SalaryArchivePO.class);
|
list = getAuthService(user).auth(list, AuthFilterTypeEnum.QUERY_DATA, SalaryArchivePO.class);
|
||||||
|
|
||||||
long pendingTotal = 0L;
|
long pendingTotal = 0L;
|
||||||
long fixedTotal = 0L;
|
long fixedTotal = 0L;
|
||||||
|
|
@ -1176,8 +1151,8 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> allGotoFixed(SalaryArchiveQueryParam queryParam) {
|
public Map<String, Object> allGotoFixed(SalaryArchiveQueryParam queryParam) {
|
||||||
queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.PENDING.getValue()));
|
queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.PENDING.getValue()));
|
||||||
List<Long> salaryArchiveIds = this.list(queryParam)
|
queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA);
|
||||||
.stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList());
|
List<Long> salaryArchiveIds = this.list(queryParam).stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList());
|
||||||
return this.gotoFixed(salaryArchiveIds);
|
return this.gotoFixed(salaryArchiveIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1230,6 +1205,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> allGotoStop(SalaryArchiveQueryParam queryParam) {
|
public Map<String, Object> allGotoStop(SalaryArchiveQueryParam queryParam) {
|
||||||
queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.SUSPEND.getValue()));
|
queryParam.setRunStatusList(Arrays.asList(SalaryArchiveStatusEnum.SUSPEND.getValue()));
|
||||||
|
queryParam.setFilterType(AuthFilterTypeEnum.ADMIN_DATA);
|
||||||
List<Long> salaryArchiveIds = this.list(queryParam)
|
List<Long> salaryArchiveIds = this.list(queryParam)
|
||||||
.stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList());
|
.stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList());
|
||||||
return this.gotoStop(salaryArchiveIds);
|
return this.gotoStop(salaryArchiveIds);
|
||||||
|
|
@ -1300,24 +1276,14 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
|
||||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
|
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<SalaryArchivePO> oldList = listSome(
|
SalaryArchivePO param = SalaryArchivePO.builder()
|
||||||
SalaryArchivePO.builder()
|
.ids(ids)
|
||||||
.ids(ids)
|
.runStatusList(Arrays.asList(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue()))
|
||||||
.runStatusList(Arrays.asList(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue()))
|
.build();
|
||||||
.build());
|
List<SalaryArchivePO> oldList = listSome(param);
|
||||||
|
oldList = getAuthService(user).auth(oldList, AuthFilterTypeEnum.ADMIN_DATA, SalaryArchivePO.class);
|
||||||
|
|
||||||
|
ids = SalaryEntityUtil.properties(oldList, SalaryArchivePO::getId);
|
||||||
if (CollectionUtils.isEmpty(oldList)) {
|
|
||||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(145969, "档案不存在!"));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
List<TaxAgentEmployeeDTO> taxAgentManageRangeEmployees = getTaxAgentService(user).listAllTaxAgentAndEmployee();
|
|
||||||
List<SalaryArchivePO> oldPendingList = oldList.stream().filter(f -> f.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue())).collect(Collectors.toList());
|
|
||||||
boolean isNotExist = oldPendingList.stream().anyMatch(te -> taxAgentManageRangeEmployees.stream().noneMatch(p -> p.getEmployeeId() != null && p.getEmployeeId().equals(te.getEmployeeId()) && p.getTaxAgentId().equals(te.getTaxAgentId())));
|
|
||||||
if (isNotExist) {
|
|
||||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(116196, "不在当前个税扣缴义人的人员范围中,不可取消停薪"));
|
|
||||||
}
|
|
||||||
// 从停薪到待定薪
|
// 从停薪到待定薪
|
||||||
getSalaryArchiveMapper().gotoPendingFromStop(ids);
|
getSalaryArchiveMapper().gotoPendingFromStop(ids);
|
||||||
// 从停薪到定薪
|
// 从停薪到定薪
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue