Browse Source

org: 集团初始化逻辑

yaoll 4 years ago
parent
commit
bbdae9db6b

+ 0 - 5
dmp-org/src/main/java/com/persagy/dmp/org/jms/JmsConfig.java

@@ -1,7 +1,6 @@
 package com.persagy.dmp.org.jms;
 
 import com.persagy.common.json.JacksonMapper;
-import com.persagy.dmp.org.constant.OrgConstants;
 import com.persagy.dmp.org.service.GroupService;
 import com.persagy.dmp.rwd.model.DmpMessage;
 import lombok.extern.slf4j.Slf4j;
@@ -57,10 +56,6 @@ public class JmsConfig {
 	@RabbitListener(queues = "${persagy.dmp.org.queue}")    //监听器监听指定的Queue
 	public void processC(DmpMessage message) {
 		log.info("============================== Receive {}: {}", orgQueue, JacksonMapper.toSimpleJson(message));
-		// TODO 创建表
-		if (OrgConstants.MESSAGE_GROUP_CREATE.equals(message.getType())){
-			groupService.initGroupData(message);
-		}
 		messageProcesser.listen(message);
 	}
 

+ 0 - 1
dmp-org/src/main/java/com/persagy/dmp/org/jms/MessageProcesser.java

@@ -37,7 +37,6 @@ public class MessageProcesser {
 	private static final Set<String> beanNames = new HashSet<>();
 
 	static {
-//		beanNames.add(RabbitMQConstants.ALARM_TARGET_CREATE);
 	}
 
 	public void listen(DmpMessage message) {

+ 39 - 0
dmp-org/src/main/java/com/persagy/dmp/org/jms/executor/GroupCreateExecutor.java

@@ -0,0 +1,39 @@
+package com.persagy.dmp.org.jms.executor;
+
+import com.persagy.dmp.org.jms.MessageExecutor;
+import com.persagy.dmp.org.service.CompanyService;
+import com.persagy.dmp.org.service.InitService;
+import com.persagy.dmp.rwd.model.DmpMessage;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author: yaoll
+ * @date: 2020-12-13
+ * @verison: 1.0
+ */
+@Slf4j
+@Component
+public class GroupCreateExecutor implements MessageExecutor {
+
+	@Autowired
+	private InitService initService;
+
+	@Autowired
+	private CompanyService companyService;
+
+	@Override
+	public void execute(DmpMessage msg) {
+
+		// 初始化分表
+		String groupCode = msg.getGroupCode();
+		log.info("初始化分表: {}", groupCode);
+		initService.initGroup(groupCode);
+
+		// 创建顶级公司
+		log.info("创建顶级公司: {}", groupCode);
+		companyService.initCompony();
+
+	}
+}

+ 41 - 16
dmp-org/src/main/java/com/persagy/dmp/org/service/CompanyService.java

@@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.collect.Lists;
 import com.persagy.common.criteria.CriteriaUtils;
 import com.persagy.common.criteria.JacksonCriteria;
-import com.persagy.common.web.BaseResponse;
 import com.persagy.common.web.MapResponse;
 import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.config.DmpParameterStorage;
@@ -21,7 +20,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.transaction.Transactional;
-import javax.validation.Valid;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -105,7 +103,7 @@ public class CompanyService extends OrgBaseService {
 			return response;
 		}
 		if (orgParam != null) {
-			if (params == null || params.isEmpty()){
+			if (params == null || params.isEmpty()) {
 				response.setFail("传入数据为空!");
 				return response;
 			}
@@ -115,7 +113,7 @@ public class CompanyService extends OrgBaseService {
 				List<CompanyProjectRel> companyProjectRels = new ArrayList<>();
 				for (CompanyModel param : params) {
 					Company entity = Company.fromModel(param);
-					if (entity.getCode() == null || entity.getCode().isEmpty()){
+					if (entity.getCode() == null || entity.getCode().isEmpty()) {
 						response.setFail("公司 code 不可为空!");
 						return response;
 					}
@@ -127,7 +125,7 @@ public class CompanyService extends OrgBaseService {
 						response.setFail("公司 code 不能重复!");
 						throw new OrgCURDRunTimeException(response);
 					}
-					if (entity.getName() == null || entity.getName().isEmpty()){
+					if (entity.getName() == null || entity.getName().isEmpty()) {
 						response.setFail("公司 name 不可为空!");
 						throw new OrgCURDRunTimeException(response);
 					}
@@ -173,12 +171,12 @@ public class CompanyService extends OrgBaseService {
 						}
 					}
 				}
-				if (companies == null || companies.isEmpty()){
+				if (companies == null || companies.isEmpty()) {
 					response.setFail("无新建数据!");
 					throw new OrgCURDRunTimeException(response);
 				}
 				companyRepository.saveAll(companies);
-				if (companyProjectRels != null && !companyProjectRels.isEmpty()){
+				if (companyProjectRels != null && !companyProjectRels.isEmpty()) {
 					companyProjectRelRepository.saveAll(companyProjectRels);
 				}
 				List<String> returnValue = companies.stream().map(Company::getId).collect(Collectors.toList());
@@ -197,7 +195,7 @@ public class CompanyService extends OrgBaseService {
 			return response;
 		}
 		if (orgParam != null) {
-			if (params == null || params.isEmpty()){
+			if (params == null || params.isEmpty()) {
 				response.setFail("传入数据为空!");
 				throw new OrgCURDRunTimeException(response);
 			}
@@ -219,7 +217,7 @@ public class CompanyService extends OrgBaseService {
 					Company one = optional.get();
 
 					if (param.getCode() != null) {
-						if (param.getCode() != one.getCode()){
+						if (param.getCode() != one.getCode()) {
 							// TODO code 不可重复
 							long codeFlag = companyRepository.count(qCompany.code.eq(param.getCode())
 									.and(qCompany.groupCode.eq(orgParam.groupCode)));
@@ -231,7 +229,7 @@ public class CompanyService extends OrgBaseService {
 						one.setCode(param.getCode());
 					}
 					if (param.getName() != null) {
-						if (param.getName() != one.getName()){
+						if (param.getName() != one.getName()) {
 							// TODO name 不可重复
 							long nameFlag = companyRepository.count(qCompany.name.eq(param.getName())
 									.and(qCompany.groupCode.eq(orgParam.groupCode)));
@@ -294,18 +292,18 @@ public class CompanyService extends OrgBaseService {
 						}
 						saves.addAll(cprs);
 					}
-					if (companies == null || companies.isEmpty()){
+					if (companies == null || companies.isEmpty()) {
 						response.setFail("无可更新的数据!");
 						throw new OrgCURDRunTimeException(response);
 					}
 					/** 保存公司 */
 					companyRepository.saveAll(companies);
 					/** 删除公司关联的项目关系 */
-					if (deletes != null && !deletes.isEmpty()){
+					if (deletes != null && !deletes.isEmpty()) {
 						companyProjectRelRepository.deleteAll(deletes);
 					}
 					/** 保存公司关联的项目关系 */
-					if (saves != null && !saves.isEmpty()){
+					if (saves != null && !saves.isEmpty()) {
 						companyProjectRelRepository.saveAll(saves);
 					}
 					List<String> returnValue = params.stream().map(CompanyModel::getId).collect(Collectors.toList());
@@ -318,6 +316,7 @@ public class CompanyService extends OrgBaseService {
 
 	/**
 	 * TODO 确认删除公司后,部门\岗位\人员如何处理?
+	 *
 	 * @param params
 	 * @return
 	 */
@@ -330,7 +329,7 @@ public class CompanyService extends OrgBaseService {
 			return response;
 		}
 		if (orgParam != null) {
-			if (params == null || params.isEmpty()){
+			if (params == null || params.isEmpty()) {
 				response.setFail("传入数据为空!");
 				throw new OrgCURDRunTimeException(response);
 			}
@@ -365,12 +364,12 @@ public class CompanyService extends OrgBaseService {
 				}
 
 
-				if (companies == null || companies.isEmpty()){
+				if (companies == null || companies.isEmpty()) {
 					response.setFail("无可删除的数据!");
 					throw new OrgCURDRunTimeException(response);
 				}
 				companyRepository.saveAll(companies);
-				if (deletes != null && !deletes.isEmpty()){
+				if (deletes != null && !deletes.isEmpty()) {
 					companyProjectRelRepository.deleteAll(deletes);
 				}
 				List<String> returnValue = companies.stream().map(Company::getId).collect(Collectors.toList());
@@ -379,4 +378,30 @@ public class CompanyService extends OrgBaseService {
 		}
 		return response;
 	}
+
+	// 创建顶级公司
+	@Transactional
+	public MapResponse initCompony() {
+		MapResponse resp = new MapResponse();
+		String groupCode = DmpParameterStorage.getGroupCode();
+		QGroup qt = QGroup.group;
+		Optional<Group> opt = groupRepository.findOne(qt.code.eq(groupCode));
+		if (opt.isPresent()) {
+			Group group = opt.get();
+			Company company = new Company();
+			company.setId(OrgUtils.getUUID());
+			company.setGroupCode(groupCode);
+			company.setCode(groupCode);
+			company.setName(group.getName());
+			company.setParentId("0");
+			company.setStatus(1);
+			company.setCreateUser(DmpParameterStorage.getUserId());
+			company.setCreateTime(new Date());
+			companyRepository.save(company);
+		} else {
+			resp.setFail("集团[" + groupCode + "]不存在!");
+		}
+		return resp;
+	}
+
 }

+ 12 - 31
dmp-org/src/main/java/com/persagy/dmp/org/service/GroupService.java

@@ -1,25 +1,26 @@
 package com.persagy.dmp.org.service;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.common.criteria.CriteriaUtils;
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.web.MapResponse;
+import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.config.DmpParameterStorage;
-import com.persagy.dmp.org.common.OrgUtils;
 import com.persagy.dmp.org.constant.OrgConstants;
+import com.persagy.dmp.org.entity.Group;
+import com.persagy.dmp.org.entity.QGroup;
+import com.persagy.dmp.org.model.GroupModel;
 import com.persagy.dmp.org.repository.CompanyRepository;
+import com.persagy.dmp.org.repository.GroupRepository;
 import com.persagy.dmp.rwd.model.DmpMessage;
 import com.querydsl.core.types.dsl.BooleanExpression;
-import com.persagy.common.criteria.CriteriaUtils;
-import com.persagy.common.criteria.JacksonCriteria;
-import com.persagy.common.web.PagedResponse;
-import com.persagy.common.web.MapResponse;
-import javax.transaction.Transactional;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import javax.transaction.Transactional;
+import java.util.Date;
+import java.util.List;
 import java.util.stream.Collectors;
-import com.persagy.dmp.org.model.GroupModel;
-import org.springframework.beans.factory.annotation.Autowired;
-import com.persagy.dmp.org.entity.*;
-import com.persagy.dmp.org.repository.GroupRepository;
 
 /**
  * @author king
@@ -90,26 +91,6 @@ public class GroupService extends OrgBaseService {
 		return response;
 	}
 
-	public void initGroupData(DmpMessage msg){
-
-		String groupCode = msg.getGroupCode();
-		initService.initGroup(groupCode);
-
-		Company company = new Company();
-
-		company.setId(OrgUtils.getUUID());
-		company.setGroupCode(msg.getGroupCode());
-		company.setCode(msg.getGroupCode());
-		company.setName(msg.getStr1());
-		company.setParentId("0");
-		company.setStatus(1);
-		company.setCreateUser(msg.getUserId());
-		company.setCreateTime(new Date());
-
-		companyRepository.save(company);
-
-	}
-
 	@Transactional
 	public MapResponse update(GroupModel param) {
 		MapResponse response = new MapResponse();