Forráskód Böngészése

Merge branch 'master' of http://39.106.8.246:3003/persagy/dmp

lixing 4 éve
szülő
commit
200c46a801
17 módosított fájl, 380 hozzáadás és 112 törlés
  1. 5 1
      dmp-common/src/main/java/com/persagy/dmp/common/SpringUtils.java
  2. 5 1
      dmp-dic/src/main/java/com/persagy/dmp/dic/DicApp.java
  3. 5 0
      dmp-org/src/main/java/com/persagy/dmp/org/OrgApp.java
  4. 4 4
      dmp-org/src/main/java/com/persagy/dmp/org/controller/InitController.java
  5. 5 1
      dmp-org/src/main/java/com/persagy/dmp/org/jms/JmsConfig.java
  6. 0 12
      dmp-org/src/main/java/com/persagy/dmp/org/jms/MessageProcesser.java
  7. 39 0
      dmp-org/src/main/java/com/persagy/dmp/org/jms/executor/GroupCreateExecutor.java
  8. 41 16
      dmp-org/src/main/java/com/persagy/dmp/org/service/CompanyService.java
  9. 22 27
      dmp-org/src/main/java/com/persagy/dmp/org/service/GroupService.java
  10. 24 15
      dmp-org/src/main/java/com/persagy/dmp/org/service/InitService.java
  11. 1 1
      dmp-rwd-funcid-parser/src/main/java/com/persagy/dmp/rwd/funcid/parse/parser/ParserUtils.java
  12. 25 9
      dmp-rwd-funcid-parser/src/main/java/com/persagy/dmp/rwd/funcid/parse/parser/impl/BooleanParser.java
  13. 4 12
      dmp-rwd-funcid-parser/src/main/java/com/persagy/dmp/rwd/funcid/parse/parser/impl/EnumParser.java
  14. 6 13
      dmp-rwd-funcid-parser/src/main/java/com/persagy/dmp/rwd/funcid/parse/parser/impl/MEnumParser.java
  15. 3 0
      dmp-rwd-funcid-parser/src/test/java/com/persagy/dmp/rwd/funcid/parse/parser/impl/TestBooleanParser.java
  16. 186 0
      dmp-rwd-funcid-parser/src/test/java/com/persagy/dmp/rwd/funcid/parse/parser/impl/TestBooleanParser2.java
  17. 5 0
      dmp-task/src/main/java/com/persagy/dmp/dpt/TaskApp.java

+ 5 - 1
dmp-common/src/main/java/com/persagy/dmp/common/SpringUtils.java

@@ -23,6 +23,10 @@ public class SpringUtils implements BeanFactoryPostProcessor {
 	}
 
 	public static <T> T getBean(String beanName, Class<T> aClass) {
-		return beanFactory.getBean(beanName, aClass);
+		if (beanFactory.containsBean(beanName)) {
+			return beanFactory.getBean(beanName, aClass);
+		} else {
+			return null;
+		}
 	}
 }

+ 5 - 1
dmp-dic/src/main/java/com/persagy/dmp/dic/DicApp.java

@@ -2,6 +2,7 @@ package com.persagy.dmp.dic;
 
 import com.persagy.common.criteria.CriteriaUtils;
 import com.persagy.common.criteria.JpaUtils;
+import com.persagy.dmp.common.SpringUtils;
 import com.querydsl.jpa.impl.JPAQueryFactory;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -46,5 +47,8 @@ public class DicApp {
 		return new JpaUtils(entityManager);
 	}
 
-
+	@Bean
+	public SpringUtils springUtils() {
+		return new SpringUtils();
+	}
 }

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

@@ -2,6 +2,7 @@ package com.persagy.dmp.org;
 
 import com.persagy.common.criteria.CriteriaUtils;
 import com.persagy.common.criteria.JpaUtils;
+import com.persagy.dmp.common.SpringUtils;
 import com.querydsl.jpa.impl.JPAQueryFactory;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,4 +45,8 @@ public class OrgApp {
 		return new JpaUtils(entityManager);
 	}
 
+	@Bean
+	public SpringUtils springUtils() {
+		return new SpringUtils();
+	}
 }

+ 4 - 4
dmp-org/src/main/java/com/persagy/dmp/org/controller/InitController.java

@@ -14,9 +14,9 @@ public class InitController {
     @Autowired
     private InitService initService;
 
-    @GetMapping("/group")
-    public MapResponse initGroup() {
-        return initService.initGroup();
-    }
+//    @GetMapping("/group")
+//    public MapResponse initGroup() {
+//        return initService.initGroup();
+//    }
 
 }

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

@@ -1,6 +1,7 @@
 package com.persagy.dmp.org.jms;
 
 import com.persagy.common.json.JacksonMapper;
+import com.persagy.dmp.org.service.GroupService;
 import com.persagy.dmp.rwd.model.DmpMessage;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.core.Binding;
@@ -34,6 +35,9 @@ public class JmsConfig {
 	@Autowired
 	private MessageProcesser messageProcesser;
 
+	@Autowired
+	private GroupService groupService;
+
 	@Bean
 	public TopicExchange exchange() {
 		return new TopicExchange(exchange);
@@ -45,7 +49,7 @@ public class JmsConfig {
 	}
 
 	@Bean
-	public Binding alarmBinding() {
+	public Binding orgBinding() {
 		return BindingBuilder.bind(queue()).to(exchange()).with(orgRoutingKey);
 	}
 

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

@@ -9,9 +9,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
-import java.util.HashSet;
-import java.util.Set;
-
 /**
  * @author: yaoll
  * @date: 2020-10-22
@@ -34,17 +31,8 @@ public class MessageProcesser {
 		rabbitTemplate.convertAndSend(exchange, orgRoutingKey, message);
 	}
 
-	private static final Set<String> beanNames = new HashSet<>();
-
-	static {
-//		beanNames.add(RabbitMQConstants.ALARM_TARGET_CREATE);
-	}
-
 	public void listen(DmpMessage message) {
 		String type = message.getType();
-		if (!beanNames.contains(type)) {
-			return;
-		}
 
 		String executorName = type + "Executor";
 		MessageExecutor executor = SpringUtils.getBean(executorName, MessageExecutor.class);

+ 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;
+	}
+
 }

+ 22 - 27
dmp-org/src/main/java/com/persagy/dmp/org/service/GroupService.java

@@ -1,25 +1,28 @@
 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.QDeptClassify;
+import com.persagy.dmp.org.entity.QGroup;
+import com.persagy.dmp.org.exception.OrgCURDRunTimeException;
+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
@@ -73,33 +76,25 @@ public class GroupService extends OrgBaseService {
 			response.setFail("code 不能为空!");
 			return response;
 		}
+		QGroup qGroup = QGroup.group;
+		// TODO code 不可重复
+		long codeFlag = groupRepository.count(qGroup.code.eq(entity.getCode()));
+		if (codeFlag > 0) {
+			response.setFail("集团 code 不能重复!");
+			throw new OrgCURDRunTimeException(response);
+		}
 		entity.setId(getUUID());
 		entity.setStatus(1);
 		entity.setCreateUser(orgParam.userId);
 		entity.setCreateTime(new Date());
 		groupRepository.save(entity);
 
-		initService.initGroup();
-
-		// TODO 创建集团时自动创建顶级公司
-		Company company = new Company();
-
-		company.setId(OrgUtils.getUUID());
-		company.setGroupCode(entity.getCode());
-		company.setCode(entity.getCode());
-		company.setName(entity.getName());
-		company.setParentId("0");
-		company.setStatus(1);
-		company.setCreateUser(orgParam.userId);
-		company.setCreateTime(new Date());
-
-		companyRepository.save(company);
-
 		response.add("id", entity.getId());
 
 		DmpMessage msg = new DmpMessage(OrgConstants.MESSAGE_GROUP_CREATE, entity.getId());
 		msg.setGroupCode(entity.getCode());
 		msg.setStr1(entity.getName());
+		msg.setUserId(orgParam.userId);
 		response.add(msg);
 
 		return response;

+ 24 - 15
dmp-org/src/main/java/com/persagy/dmp/org/service/InitService.java

@@ -1,7 +1,6 @@
 package com.persagy.dmp.org.service;
 
 import com.persagy.common.web.MapResponse;
-import com.persagy.dmp.config.DmpParameterStorage;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -20,9 +19,8 @@ public class InitService {
     private DataSource dataSource;
 
     @Transactional
-    public MapResponse initGroup() {
+    public MapResponse initGroup(String groupCode) {
         MapResponse resp = new MapResponse();
-        String groupCode = DmpParameterStorage.getGroupCode();
         String sql = null;
         Connection connection = null;
         Statement statement = null;
@@ -33,46 +31,57 @@ public class InitService {
             /** 人员权限 */
             /** 公司 */
             sql = getCreateOrgCompanySql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 部门 */
             sql = getCreateOrgDeptSql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 部门分类 */
             sql = getCreateOrgDeptClassifySql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 岗位 */
             sql = getCreateOrgJobSql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 岗位分类 */
             sql = getCreateOrgJobClassifySql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 岗位分类关系 */
             sql = getCreateOrgJobClassifyRelSql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 项目表 */
             sql = getCreateOrgProjectSql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 公司与项目关系表 */
             sql = getCreateOrgCompanyProjectRelSql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 人员表 */
             sql = getCreateOrgUserSql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 集团与应用关系表 */
             sql = getCreateOrgGroupAppRelSql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 集团与功能关系表 */
             sql = getCreateOrgGroupFunctionRelSql(groupCode);
+            log.info(sql);
             statement.executeUpdate(sql);
 
             /** 任务 */
@@ -114,7 +123,7 @@ public class InitService {
                 "  `update_time` timestamp default current_timestamp on update current_timestamp comment '更新时间', \n" +
                 "  `remark` varchar(500) DEFAULT NULL COMMENT '备注',\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公司';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公司'";
         return sql;
     }
 
@@ -131,7 +140,7 @@ public class InitService {
                 "  `project_id` varchar(60) NOT NULL COMMENT '项目ID',\n" +
                 "  `group_code` varchar(80) DEFAULT NULL COMMENT '集团编码',\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公司与项目关系';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公司与项目关系'";
         return sql;
     }
 
@@ -158,7 +167,7 @@ public class InitService {
                 "  `update_time` timestamp default current_timestamp on update current_timestamp comment '更新时间', \n" +
                 "  `remark` varchar(500) DEFAULT NULL,\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门'";
         return sql;
     }
 
@@ -182,7 +191,7 @@ public class InitService {
                 "  `update_time` timestamp default current_timestamp on update current_timestamp comment '更新时间', \n" +
                 "  `remark` varchar(500) DEFAULT NULL,\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门分类';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门分类'";
         return sql;
     }
 
@@ -208,7 +217,7 @@ public class InitService {
                 "  `update_time` timestamp default current_timestamp on update current_timestamp comment '更新时间', \n" +
                 "  `remark` varchar(500) DEFAULT NULL,\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位'";
         return sql;
     }
 
@@ -231,7 +240,7 @@ public class InitService {
                 "  `update_time` timestamp default current_timestamp on update current_timestamp comment '更新时间', \n" +
                 "  `remark` varchar(500) DEFAULT NULL,\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位分类';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位分类'";
         return sql;
     }
 
@@ -254,7 +263,7 @@ public class InitService {
                 "  `update_time` timestamp default current_timestamp on update current_timestamp comment '更新时间', \n" +
                 "  `remark` varchar(500) DEFAULT NULL,\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位分类与应用功能关系';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位分类与应用功能关系'";
         return sql;
     }
 
@@ -275,7 +284,7 @@ public class InitService {
                 "  `update_time` timestamp default current_timestamp on update current_timestamp comment '更新时间', \n" +
                 "  `remark` varchar(500) DEFAULT NULL,\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目'";
         return sql;
     }
 
@@ -310,7 +319,7 @@ public class InitService {
                 "  `remark` varchar(500) DEFAULT NULL,\n" +
                 "  `person_id` varchar(80) DEFAULT NULL,\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='人员账号';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='人员账号'";
         return sql;
     }
 
@@ -332,7 +341,7 @@ public class InitService {
                 "  `update_time` timestamp default current_timestamp on update current_timestamp comment '更新时间', \n" +
                 "  `remark` varchar(500) DEFAULT NULL COMMENT '备注',\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集团与应用关系';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集团与应用关系'";
         return sql;
     }
 
@@ -354,7 +363,7 @@ public class InitService {
                 "  `update_time` timestamp default current_timestamp on update current_timestamp comment '更新时间', \n" +
                 "  `remark` varchar(500) DEFAULT NULL COMMENT '备注',\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集团与功能关系';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集团与功能关系'";
         return sql;
     }
 
@@ -374,7 +383,7 @@ public class InitService {
                 "  `error_info` json NOT NULL COMMENT '错误信息',\n" +
                 "  `group_code` varchar(80) DEFAULT NULL COMMENT '集团编码',\n" +
                 "  PRIMARY KEY (`id`) USING BTREE\n" +
-                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务执行记录';";
+                ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务执行记录'";
         return sql;
     }
 

+ 1 - 1
dmp-rwd-funcid-parser/src/main/java/com/persagy/dmp/rwd/funcid/parse/parser/ParserUtils.java

@@ -29,7 +29,7 @@ public class ParserUtils {
 		} else if (type == FuncidDataType.DOUBLE) {
 			return ObjectNodeUtils.isDouble(node);
 		} else if (type == FuncidDataType.BOOLEAN) {
-			return ObjectNodeUtils.isBoolean(node);
+			return ObjectNodeUtils.isLong(node);
 		} else if (type == FuncidDataType.DATETIME) { // TODO
 			return ObjectNodeUtils.isString(node);
 		} else if (type == FuncidDataType.ENUM) { // TODO

+ 25 - 9
dmp-rwd-funcid-parser/src/main/java/com/persagy/dmp/rwd/funcid/parse/parser/impl/BooleanParser.java

@@ -15,10 +15,10 @@ import java.util.List;
  * 不支持区间
  * <p>
  * 假设信息点编码的值为Info01, 入参格式:<br/>
- * 单数 非区间: { "Info01": true }<br/>
- * 复数 非区间: { "Info01": [ true, false, false] }<br/>
+ * 单数 非区间: { "Info01": 0 }<br/>
+ * 复数 非区间: { "Info01": [ 0, 1, 0] }<br/>
  */
-public class BooleanParser extends AbstractParser<Boolean> {
+public class BooleanParser extends AbstractParser<Integer> {
 
 	@Override
 	public void checkDef(ParserContext context) {
@@ -28,7 +28,7 @@ public class BooleanParser extends AbstractParser<Boolean> {
 	}
 
 	@Override
-	public void checkValue(ParserContext<Boolean> context) {
+	public void checkValue(ParserContext<Integer> context) {
 		super.checkValue(context);
 		if (context.isHasError()) {
 			return;
@@ -37,33 +37,49 @@ public class BooleanParser extends AbstractParser<Boolean> {
 		FuncidDefModel def = context.getDef();
 		JsonNode source = context.getSource();
 		Boolean isMultiple = def.getIsMultiple();
+		Boolean isRegion = def.getIsRegion();
 		FuncidDataType dataType = def.getDataType();
 		String sourceStr = source.toString();
-		String error = "值错误, 需要[ true or false], 传入[" + sourceStr + "]";
+		if (isRegion) {
+			// 区间
+			context.addError("不支持[Boolean 区间]");
+			return;
+		}
 		if (isMultiple) {
+			String error = "值错误, 需要[ 0 / 1 ]数组, 传入[" + sourceStr + "]";
 			// 复数
 			if (!ParserUtils.isArray(source, dataType)) {
 				context.addError(error);
 				return;
 			}
-			List<Boolean> value = ParserUtils.parseToList(sourceStr, Boolean.class);
+			List<Integer> value = ParserUtils.parseToList(sourceStr, Integer.class);
 			if (value == null || value.size() == 0) {
 				context.addError(error);
 				return;
 			}
+			for (Integer v : value) {
+				if (v != 0 && v != 1) {
+					context.addError(error);
+					return;
+				}
+			}
 			context.setArrayValue(value);
-		}
-		if (!isMultiple) {
+		} else {
+			String error = "值错误, 需要[ 0 / 1 ], 传入[" + sourceStr + "]";
 			// 单数 非区间
 			if (!ParserUtils.is(source, dataType)) {
 				context.addError(error);
 				return;
 			}
-			Boolean value = ParserUtils.parse(sourceStr, Boolean.class);
+			Integer value = ParserUtils.parse(sourceStr, Integer.class);
 			if (value == null) {
 				context.addError(error);
 				return;
 			}
+			if (value != 0 && value != 1) {
+				context.addError(error);
+				return;
+			}
 			context.setValue(value);
 		}
 	}

+ 4 - 12
dmp-rwd-funcid-parser/src/main/java/com/persagy/dmp/rwd/funcid/parse/parser/impl/EnumParser.java

@@ -60,13 +60,13 @@ public class EnumParser extends AbstractParser<String> {
 
 		Boolean isMultiple = def.getIsMultiple();
 		Boolean isRegion = def.getIsRegion();
-		if (isMultiple && isRegion) {
+		if (isRegion) {
 			// 复数, 区间
-			context.addError("不支持[Enum 复数 区间]");
+			context.addError("不支持[ENUM]区间");
 			return;
 		}
 
-		if (isMultiple && !isRegion) {
+		if (isMultiple) {
 			// 复数 非区间
 			if (!ParserUtils.isArray(source, dataType)) {
 				context.addError(error);
@@ -85,15 +85,7 @@ public class EnumParser extends AbstractParser<String> {
 				}
 			}
 			context.setArrayValue(value);
-		}
-
-		if (!isMultiple && isRegion) {
-			// 单数, 区间
-			context.addError("不支持[Enum 单数 区间]");
-			return;
-		}
-
-		if (!isMultiple && !isRegion) {
+		} else {
 			// 单数 非区间
 			if (!ParserUtils.is(source, dataType)) {
 				context.addError(error);

+ 6 - 13
dmp-rwd-funcid-parser/src/main/java/com/persagy/dmp/rwd/funcid/parse/parser/impl/MEnumParser.java

@@ -47,17 +47,17 @@ public class MEnumParser extends AbstractParser<List<String>> {
 			return;
 		}
 
-		String error = "值错误, 需要[" + dataSourceStr + "], 传入[" + sourceStr + "]";
 
 		Boolean isMultiple = def.getIsMultiple();
 		Boolean isRegion = def.getIsRegion();
-		if (isMultiple && isRegion) {
+		if (isRegion) {
 			// 复数, 区间
-			context.addError("不支持[Enum 复数 区间]");
+			context.addError("不支持[MENUM]区间");
 			return;
 		}
 
-		if (isMultiple && !isRegion) {
+		if (isMultiple) {
+			String error = "值错误, 需要[MENUM]数组, 传入[" + sourceStr + "]";
 			// 复数 非区间 二维数组
 			if (!isMatrix(source, dataType)) {
 				context.addError(error);
@@ -78,15 +78,8 @@ public class MEnumParser extends AbstractParser<List<String>> {
 				}
 			}
 			context.setArrayValue(value);
-		}
-
-		if (!isMultiple && isRegion) {
-			// 单数, 区间
-			context.addError("不支持[Enum 单数 区间]");
-			return;
-		}
-
-		if (!isMultiple && !isRegion) {
+		} else {
+			String error = "值错误, 需要[MENUM], 传入[" + sourceStr + "]";
 			// 单数 非区间
 			if (!ParserUtils.isArray(source, dataType)) {
 				context.addError(error);

+ 3 - 0
dmp-rwd-funcid-parser/src/test/java/com/persagy/dmp/rwd/funcid/parse/parser/impl/TestBooleanParser.java

@@ -11,6 +11,9 @@ import org.junit.Test;
 import java.util.Arrays;
 
 /**
+ *
+ * 废弃, boolean值修改为0/1
+ *
  * @author: yaoll
  * @date: 2020-09-22
  * @verison: 1.0

+ 186 - 0
dmp-rwd-funcid-parser/src/test/java/com/persagy/dmp/rwd/funcid/parse/parser/impl/TestBooleanParser2.java

@@ -0,0 +1,186 @@
+package com.persagy.dmp.rwd.funcid.parse.parser.impl;
+
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.persagy.dmp.rwd.enums.FuncidCategory;
+import com.persagy.dmp.rwd.enums.FuncidDataType;
+import com.persagy.dmp.rwd.model.FuncidDefModel;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Arrays;
+
+/**
+ * @author: yaoll
+ * @date: 2020-09-22
+ * @verison: 1.0
+ */
+public class TestBooleanParser2 extends TestBaseParser{
+
+	FuncidDefModel def;
+	ArrayNode region;
+	Object param;
+
+	@Before
+	public void before() {
+		parser = new BooleanParser();
+
+		def = prepareModel(FuncidCategory.STATIC, FuncidDataType.BOOLEAN, false, false, null, null);
+		region = JsonNodeFactory.instance.arrayNode();
+		region.add(prepareRegion(10L, null, 50L, null));
+		region.add(prepareRegion(200L, null, 250L, null));
+	}
+
+	@Test
+	public void testParser() {
+
+		param = 0;
+		doAssert(def, false, false, null, param, true, 0); // 单数 非区间 无限制
+		doAssert(def, true, false, null, param, false, 0); // 复数 非区间 无限制
+
+		param = 0;
+		doAssert(def, false, false, null, param, true, 0); // 单数 非区间 无限制
+		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+		doAssert(def, false, true, null, param, false, null); // 单数 区间 无限制
+		doAssert(def, true, true, null, param, false, null);  // 复数 区间 无限制
+
+		param = Arrays.asList(0, 1, 0);
+		doAssert(def, false, false, null, param, false, null); // 单数 非区间 无限制
+		doAssert(def, true, false, null, param, true, null); // 复数 非区间 无限制
+
+		param = 2;
+		doAssert(def, false, false, null, param, false, 0); // 单数 非区间 无限制
+		doAssert(def, true, false, null, param, false, 0); // 复数 非区间 无限制
+
+		param = Arrays.asList(2, 1, 0);
+		doAssert(def, false, false, null, param, false, null); // 单数 非区间 无限制
+		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+
+		param = true;
+		doAssert(def, false, false, null, param, false, 0); // 单数 非区间 无限制
+		doAssert(def, true, false, null, param, false, 0); // 复数 非区间 无限制
+
+		param = "abc";
+		doAssert(def, false, false, null, param, false, 0); // 单数 非区间 无限制
+		doAssert(def, true, false, null, param, false, 0); // 复数 非区间 无限制
+
+
+//
+//		param = true;
+//		doAssert(def, false, false, null, param, true, true); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, false, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, false, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, true, true); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, false, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, false, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, false, null);// 复数 区间 有限制
+//
+//		param = Arrays.asList(true, false, true);
+//		doAssert(def, false, false, null, param, false, null); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, true, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, false, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, false, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, false, null); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, true, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, false, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, false, null);// 复数 区间 有限制
+//
+//		param = "true";
+//		doAssert(def, false, false, null, param, true, true); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, false, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, false, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, true, true); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, false, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, false, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, false, null);// 复数 区间 有限制
+//
+//		param = "false";
+//		doAssert(def, false, false, null, param, true, false); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, false, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, false, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, true, null); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, false, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, false, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, false, null);// 复数 区间 有限制
+//
+//		param = "abc";
+//		doAssert(def, false, false, null, param, false, null); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, false, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, false, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, false, null); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, false, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, false, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, false, null);// 复数 区间 有限制
+//
+//		param = "[\"abc\"]";
+//		param = Arrays.asList("abc");
+//		doAssert(def, false, false, null, param, false, null); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, false, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, false, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, false, null); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, false, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, false, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, false, null);// 复数 区间 有限制
+//
+//		param = "{\"$gt\": 12, \"$lt\": 44}";
+//		param = prepareRegion(12L, null, null, 44L);
+//		doAssert(def, false, false, null, param, false, null); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, true, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, false, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, false, null); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, false, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, true, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, false, null);// 复数 区间 有限制
+//
+//		param = "{\"$gt\": 112, \"$lt\": 144}";
+//		param = prepareRegion(112L, null, null, 144L);
+//		doAssert(def, false, false, null, param, false, null); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, true, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, false, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, false, null); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, false, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, false, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, false, null);// 复数 区间 有限制
+//
+//		param = "[{\"$gt\": 33, \"$lt\": 44}]";
+//		param = Arrays.asList(prepareRegion(33L, null, null, 44L));
+//		doAssert(def, false, false, null, param, false, null); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, false, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, true, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, false, null); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, false, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, false, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, true, null);// 复数 区间 有限制
+//
+//		param = "[{\"$gt\": 33, \"$lt\": 144}]";
+//		param = Arrays.asList(prepareRegion(33L, null, null, 144L));
+//		doAssert(def, false, false, null, param, false, null); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, false, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, true, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, false, null); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, false, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, false, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, false, null);// 复数 区间 有限制
+//
+//		param = "[{\"$gt\": 133, \"$lt\": 144}]";
+//		param = Arrays.asList(prepareRegion(133L, null, null, 144L));
+//		doAssert(def, false, false, null, param, false, null); // 单数 非区间 无限制
+//		doAssert(def, true, false, null, param, false, null); // 复数 非区间 无限制
+////		doAssert(def, false, true, null, param, false, null); // 单数 区间 无限制
+////		doAssert(def, true, true, null, param, true, null);  // 复数 区间 无限制
+//		doAssert(def, false, false, region, param, false, null); // 单数 非区间 有限制
+//		doAssert(def, true, false, region, param, false, null);// 复数 非区间 有限制
+////		doAssert(def, false, true, region, param, false, null);// 单数 区间 有限制
+////		doAssert(def, true, true, region, param, false, null);// 复数 区间 有限制
+
+	}
+}

+ 5 - 0
dmp-task/src/main/java/com/persagy/dmp/dpt/TaskApp.java

@@ -2,6 +2,7 @@ package com.persagy.dmp.dpt;
 
 import com.persagy.common.criteria.CriteriaUtils;
 import com.persagy.common.criteria.JpaUtils;
+import com.persagy.dmp.common.SpringUtils;
 import com.persagy.dmp.common.http.HttpUtils;
 import com.querydsl.jpa.impl.JPAQueryFactory;
 import lombok.extern.slf4j.Slf4j;
@@ -47,4 +48,8 @@ public class TaskApp {
 		return new HttpUtils();
 	}
 
+	@Bean
+	public SpringUtils springUtils() {
+		return new SpringUtils();
+	}
 }