diff --git a/src/com/engine/salary/service/impl/VariableItemServiceImpl.java b/src/com/engine/salary/service/impl/VariableItemServiceImpl.java index b7b197ebc..7ae749ae3 100644 --- a/src/com/engine/salary/service/impl/VariableItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/VariableItemServiceImpl.java @@ -9,13 +9,11 @@ import com.engine.salary.entity.datacollection.param.VariableItemSaveParam; import com.engine.salary.entity.datacollection.po.VariableItemPO; import com.engine.salary.entity.salaryformula.po.FormulaPO; import com.engine.salary.entity.salaryformula.po.FormulaVar; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.VariableItemMapper; -import com.engine.salary.service.SalaryFormulaService; -import com.engine.salary.service.SalaryItemService; -import com.engine.salary.service.VariableArchiveItemService; -import com.engine.salary.service.VariableItemService; +import com.engine.salary.service.*; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; @@ -24,16 +22,14 @@ import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidUtil; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.BeanUtils; import weaver.conn.util.IdGenerator; import weaver.hrm.User; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -60,6 +56,11 @@ public class VariableItemServiceImpl extends Service implements VariableItemServ return ServiceUtil.getService(VariableArchiveItemServiceImpl.class, user); } + private TaxAgentService getTaxAgentService(User user) { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + @Override public VariableItemPO getById(Long id) { if (id == null) { @@ -94,6 +95,20 @@ public class VariableItemServiceImpl extends Service implements VariableItemServ @Override public PageInfo listPage(VariableItemQueryParam queryParam) { List variableItemPOS = listAll(); + Long employeeId = Long.valueOf(user.getUID()); + // 判断是否是“总管理员” + Boolean isChief = getTaxAgentService(user).isChief(employeeId); + // 是否开启分权 + Boolean openDevolution = getTaxAgentService(user).isOpenDevolution(); + if (BooleanUtils.isTrue(openDevolution) && !isChief) { + Collection taxAgentPOS = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId); + List taxAgentIds = taxAgentPOS.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(taxAgentIds)) { + // 无权限 + return new PageInfo<>(); + } + } + if (StringUtils.isNotBlank(queryParam.getItemName())) { variableItemPOS = variableItemPOS.stream().filter(po -> po.getName().contains(queryParam.getItemName())).collect(Collectors.toList()); }