From 1a739e297f1b757314b1e87442a16d3287ee048b Mon Sep 17 00:00:00 2001 From: chuang <994001556@qq.com> Date: Sat, 15 Apr 2023 10:38:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E6=96=87=E4=BB=B6=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E9=83=A8=E9=97=A8=E4=B8=8D=E5=87=86=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PaymentdocServiceImpl.java | 16 +++++-- .../impl/PurchaseorderitemServiceImpl.java | 17 +++++-- .../service/UserRelationService.java | 3 +- .../service/impl/UserRelationServiceImpl.java | 45 ++++++++++++++----- 4 files changed, 63 insertions(+), 18 deletions(-) diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/impl/PaymentdocServiceImpl.java b/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/impl/PaymentdocServiceImpl.java index d32349e7..bfcd258a 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/impl/PaymentdocServiceImpl.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/impl/PaymentdocServiceImpl.java @@ -26,12 +26,14 @@ import jnpf.paymentdoc.service.PaymentdocItem0Service; import jnpf.paymentdoc.service.PaymentdocItem1Service; import jnpf.paymentdoc.service.PaymentdocItem2Service; import jnpf.paymentdoc.service.PaymentdocService; +import jnpf.permission.constant.PermissionConst; import jnpf.permission.entity.UserEntity; import jnpf.permission.mapper.UserMapper; import jnpf.permission.model.authorize.AuthorizeConditionModel; import jnpf.permission.service.AuthorizeService; import jnpf.permission.service.OrganizeService; -import jnpf.permission.util.PermissionUtil; +import jnpf.permission.service.UserRelationService; +import jnpf.permission.service.UserService; import jnpf.supplier.entity.SupplierEntity; import jnpf.supplier.service.SupplierService; import jnpf.util.*; @@ -387,7 +389,10 @@ public class PaymentdocServiceImpl extends ServiceImpl userEntityQueryWrapper = new QueryWrapper<>(); + userEntityQueryWrapper.lambda().eq(UserEntity::getId,id1); + List userEntities = userMapper.selectList(userEntityQueryWrapper); + UserEntity userEntity = userEntities.get(0); // 获取组织 if(StringUtil.isNotNull(userInfo.getOrganizeId())){ - fullName= PermissionUtil.getLinkInfoByOrgId(userInfo.getOrganizeId(), organizeService,false); +// fullName= PermissionUtil.getLinkInfoByOrgId(userInfo.getOrganizeId(), organizeService,false); + fullName= userRelationService.getObjectVoList(PermissionConst.ORGANIZE,userEntity).get(0).getFullName(); } } System.out.println("这是账号信息"+fullName); diff --git a/SC-boot/linkage-system/src/main/java/jnpf/permission/service/UserRelationService.java b/SC-boot/linkage-system/src/main/java/jnpf/permission/service/UserRelationService.java index 4c2d1e41..74014929 100644 --- a/SC-boot/linkage-system/src/main/java/jnpf/permission/service/UserRelationService.java +++ b/SC-boot/linkage-system/src/main/java/jnpf/permission/service/UserRelationService.java @@ -1,9 +1,9 @@ package jnpf.permission.service; import com.baomidou.mybatisplus.extension.service.IService; +import jnpf.permission.entity.UserEntity; import jnpf.permission.entity.UserRelationEntity; import jnpf.permission.model.permission.PermissionModel; -import jnpf.permission.model.permission.PermissionVoBase; import jnpf.permission.model.userrelation.UserRelationForm; import java.util.List; @@ -125,6 +125,7 @@ public interface UserRelationService extends IService { * @param objectType 归属类型 */ List getObjectVoList(String objectType); + List getObjectVoList(String objectType, UserEntity userEntity); /** * 判断岗位/角色与用户是否存在关联关系 diff --git a/SC-boot/linkage-system/src/main/java/jnpf/permission/service/impl/UserRelationServiceImpl.java b/SC-boot/linkage-system/src/main/java/jnpf/permission/service/impl/UserRelationServiceImpl.java index 3d6ac98e..382e1d8b 100644 --- a/SC-boot/linkage-system/src/main/java/jnpf/permission/service/impl/UserRelationServiceImpl.java +++ b/SC-boot/linkage-system/src/main/java/jnpf/permission/service/impl/UserRelationServiceImpl.java @@ -1,30 +1,27 @@ package jnpf.permission.service.impl; -import cn.hutool.core.util.ArrayUtil; +import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.sun.org.apache.xpath.internal.operations.Bool; import jnpf.base.UserInfo; import jnpf.permission.constant.PermissionConst; -import jnpf.permission.entity.*; +import jnpf.permission.entity.PermissionEntityBase; +import jnpf.permission.entity.PositionEntity; +import jnpf.permission.entity.UserEntity; +import jnpf.permission.entity.UserRelationEntity; import jnpf.permission.mapper.UserRelationMapper; import jnpf.permission.model.permission.PermissionModel; -import jnpf.permission.model.permission.PermissionVoBase; import jnpf.permission.model.userrelation.UserRelationForm; import jnpf.permission.service.*; import jnpf.permission.util.PermissionUtil; -import jnpf.util.JsonUtil; import jnpf.util.RandomUtil; -import jnpf.util.StringUtil; import jnpf.util.UserProvider; -import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Isolation; -import org.springframework.transaction.annotation.Propagation; -import com.baomidou.dynamic.datasource.annotation.DSTransactional; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.stream.Collectors; /** @@ -259,6 +256,32 @@ public class UserRelationServiceImpl extends ServiceImpl getObjectVoList(String objectType, UserEntity userEntity) { + String userId = userEntity.getId(); + String majorOrgId = userEntity.getOrganizeId(); + + // 组装对应组织/岗位/角色对象 + switch (objectType) { + case PermissionConst.ORGANIZE: + // 使用in查询减少数据库查询次数 + List ids = new ArrayList<>(); + this.getListByObjectType(userId, objectType).forEach(r -> ids.add(r.getObjectId())); + List permissionModels = setModel(organizeService.getOrgEntityList(ids, false), majorOrgId); + permissionModels.forEach(p->p.setFullName(PermissionUtil.getLinkInfoByOrgId(p.getId(), organizeService, false))); + return permissionModels; + case PermissionConst.POSITION: + // 岗位遵循一对多关系 + List positionList = positionService.getListByUserId(userId); + if (positionList.size() > 0) { + return setModel(positionList.stream().filter(p -> p.getOrganizeId().equals(majorOrgId)) + .collect(Collectors.toList()), userEntity.getPositionId()); + } + default: + return null; + } + } + /** * 设置返回模型 *