ソースを参照

[bug-1306]编辑员工部门信息时,是否主部门信息未同步到到positions

szjbdgzl 2 年 前
コミット
6a31004c8d

+ 49 - 22
ibps-oauth-root/modules/oauth-server2-default/src/main/java/com/lc/ibps/cloud/oauth/server/provider/BaseProvider.java

@@ -1,25 +1,8 @@
 package com.lc.ibps.cloud.oauth.server.provider;
 
-import java.util.Date;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-import javax.annotation.Resource;
-
-import com.lc.ibps.base.framework.table.ICommonDao;
-import com.lc.ibps.cloud.oauth.exception.*;
-import com.lc.ibps.cloud.oauth.server.util.LicUtil;
-import com.lc.ibps.org.auth.persistence.entity.LoginLogPo;
-import com.lc.ibps.org.auth.persistence.entity.LoginLogTbl;
-import com.lc.ibps.org.auth.repository.LoginLogRepository;
-import com.lc.ibps.org.party.repository.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.util.Assert;
-
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.lang.UUID;
+import com.lc.ibps.api.org.constant.PartyRelType;
 import com.lc.ibps.api.org.constant.UserStatus;
 import com.lc.ibps.api.org.service.IPartyEmployeeMgrService;
 import com.lc.ibps.api.tenant.service.ITenantQueryService;
@@ -36,33 +19,49 @@ import com.lc.ibps.base.core.util.string.StringValidator;
 import com.lc.ibps.base.core.util.time.DateUtil;
 import com.lc.ibps.base.db.tenant.utils.TenantUtil;
 import com.lc.ibps.base.framework.model.OperatorParamter;
+import com.lc.ibps.base.framework.table.ICommonDao;
 import com.lc.ibps.base.web.context.RequestContext;
 import com.lc.ibps.cloud.identifier.IdGenerator;
 import com.lc.ibps.cloud.identifier.config.IdConfig;
 import com.lc.ibps.cloud.oauth.constants.RedisKey;
 import com.lc.ibps.cloud.oauth.entity.LoginVo;
+import com.lc.ibps.cloud.oauth.exception.*;
 import com.lc.ibps.cloud.oauth.helper.RegDataToUser;
 import com.lc.ibps.cloud.oauth.server.config.TokenConfig;
 import com.lc.ibps.cloud.oauth.server.config.UserConfig;
 import com.lc.ibps.cloud.oauth.server.config.UserLimitConfig;
+import com.lc.ibps.cloud.oauth.server.util.LicUtil;
 import com.lc.ibps.cloud.provider.GenericProvider;
 import com.lc.ibps.cloud.redis.config.AppConfig;
 import com.lc.ibps.cloud.redis.utils.RedisUtil;
 import com.lc.ibps.cloud.utils.RequestUtil;
 import com.lc.ibps.cloud.utils.SecrectUtil;
+import com.lc.ibps.org.auth.persistence.entity.LoginLogPo;
 import com.lc.ibps.org.auth.persistence.entity.UserSecurityPo;
+import com.lc.ibps.org.auth.repository.LoginLogRepository;
 import com.lc.ibps.org.auth.repository.UserSecurityRepository;
 import com.lc.ibps.org.party.persistence.entity.DefaultPartyUserPo;
+import com.lc.ibps.org.party.persistence.entity.PartyPositionPo;
+import com.lc.ibps.org.party.persistence.entity.PartyRelPo;
 import com.lc.ibps.org.party.persistence.entity.PartyUserPo;
+import com.lc.ibps.org.party.repository.*;
 import com.lc.ibps.org.spi.SpiUserService;
 import com.lc.ibps.org.spi.SpiUserServiceUtil;
 import com.lc.ibps.register.constants.RegDBConstants;
 import com.lc.ibps.register.domain.RegData;
 import com.lc.ibps.register.persistence.entity.RegDataPo;
 import com.lc.ibps.register.repository.RegDataRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.util.Assert;
 
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.lang.UUID;
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 public class BaseProvider extends GenericProvider {
 
@@ -106,6 +105,9 @@ public class BaseProvider extends GenericProvider {
 	@Resource
 	protected ITenantQueryService tenantQueryService;
 
+	@Resource
+	private PartyRelRepository partyRelRepository;
+
 	@Resource
 	protected ICommonDao<?> commonDao;
 	
@@ -119,6 +121,31 @@ public class BaseProvider extends GenericProvider {
 	protected UserLimitConfig userLimitConfig;
 	@Autowired
 	private IdConfig idConfig;
+
+	/**
+	 * 设置主岗位信息和主负责人信息
+	 * @param employeeId
+	 * @param partyPositions
+	 */
+	protected void setMainPostAndPrincipal(String employeeId, List<PartyPositionPo> partyPositions) {
+		for (PartyPositionPo partyPositionPo : partyPositions) {
+			partyPositionPo.setIsMainPost(isPartyRelBiz(partyPositionPo.getId(), employeeId, PartyRelType.MAIN_POST) ? StringPool.Y : StringPool.N);
+			partyPositionPo.setIsPrincipal(isPartyRelBiz(partyPositionPo.getId(), employeeId, PartyRelType.PRINCIPAL) ? StringPool.Y : StringPool.N);
+		}
+	}
+
+	/**
+	 * 岗位人员关系判断,主岗位、主负责人
+	 * @param posId
+	 * @param userId
+	 * @param biz
+	 * @return
+	 */
+	protected boolean isPartyRelBiz(String posId, String userId, PartyRelType biz) {
+		PartyRelType prt = PartyRelType.get(biz.key());
+		PartyRelPo rel = partyRelRepository.getByMainIdSubIdBiz(posId, userId, prt);
+		return rel != null;
+	}
 	
 	protected AuthClientPo validate(String clientId) {
 		AuthClientPo client = authClientRepository.getByClientId(clientId);

+ 2 - 0
ibps-oauth-root/modules/oauth-server2-default/src/main/java/com/lc/ibps/cloud/oauth/server/provider/UserProvider.java

@@ -5,6 +5,7 @@ import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
+import com.lc.ibps.api.org.constant.PartyRelType;
 import com.lc.ibps.cloud.oauth.server.util.IpUtil;
 import com.lc.ibps.org.auth.persistence.entity.LoginLogPo;
 import com.lc.ibps.org.auth.persistence.entity.LoginLogTbl;
@@ -731,6 +732,7 @@ public class UserProvider extends BaseProvider implements IUserService {
 				data.put("mainPosition", position);
 				if(BeanUtils.isNotEmpty(employee)) {
 					List<PartyPositionPo> positions = partyPositionRepository.findByUserId(employee.getId());
+					setMainPostAndPrincipal(employee.getId(),positions);
 					data.put("positions", positions);
 				}