diff --git a/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/comf/module/service/impl/MdmServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/comf/module/service/impl/MdmServiceImpl.java index d59f1ce7..d44b9691 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/comf/module/service/impl/MdmServiceImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/comf/module/service/impl/MdmServiceImpl.java @@ -96,7 +96,8 @@ public class MdmServiceImpl implements IMdmService { if ("typeOptionRuleForm".equals(filedRule.getFormName()) && "service".equals(filedRule.getRuleCode())) { System.out.println(filedRule.getRuleValue()); //根据db_name查询字段 - queryFiledsByDbname(dbEntity, filedRule); +// queryFiledsByDbname(dbEntity, filedRule); + queryFiledssByDbname(dbEntity, filedRule); } } @@ -105,6 +106,56 @@ public class MdmServiceImpl implements IMdmService { return mdmModuleDbEntityList; } + + /** + * 字段规则挂在字段上,不重新封装 + */ + public void queryFiledssByDbname(MdmModuleDbFiledsEntity dbfiledEntity, MdmModuleDbFiledsRuleEntity filedRule){ + if (i >= 5) { + Assert.state(false, "字段:{},关联层数超过5层,请查询是否存在死循环嵌套", dbfiledEntity.getChName()); + } + i++; + //查询表,再查询字段 + MdmModuleDbEntity mdmModuleDbEntity = new MdmModuleDbEntity(); + mdmModuleDbEntity.setDbName(filedRule.getRuleValue()); + List mdmModuleDbEntityList = mdmModuleDbDao.query(mdmModuleDbEntity); + if (mdmModuleDbEntityList.size() == 0) { + Assert.state(false, "查询表:{}。失败", filedRule.getRuleValue()); + } + dbfiledEntity.setMdmModuleDbEntity(mdmModuleDbEntityList.get(0)); + + //查询字段 + MdmModuleDbFiledsEntity mdmModuleDbFiledsEntity = new MdmModuleDbFiledsEntity(); + mdmModuleDbFiledsEntity.setDbId(mdmModuleDbEntityList.get(0).getId()); + List filedList = mdmModuleDbFiledsDao.query(mdmModuleDbFiledsEntity); + + //过滤viewType1 + List filedType1 = filedList.stream().filter(dbField -> "1".equals(dbField.getViewType())).collect(Collectors.toList()); + mdmModuleDbEntityList.get(0).setSublistMdmModuleDbFileds(filedType1); + dbfiledEntity.setSublistMdmModuleDbFileds(filedType1); + + //查询rule + for (MdmModuleDbFiledsEntity dbFiledsEntity : filedType1) { + MdmModuleDbFiledsRuleEntity ruleEntity = new MdmModuleDbFiledsRuleEntity(); + ruleEntity.setMdmId(dbFiledsEntity.getMdmId()); + ruleEntity.setFiledId(dbFiledsEntity.getId()); + List mdmModuleDbFiledsRuleEntities = mdmModuleDbFiledsRuleDao.queryBase(ruleEntity); + dbFiledsEntity.setMdmModuleDbFiledsRules(mdmModuleDbFiledsRuleEntities); + } + //在再判断filedType1中的rule是否有form_name='typeOptionRuleForm' rule_code='service' + for (MdmModuleDbFiledsEntity dbFiledEntity : filedType1) { + for (MdmModuleDbFiledsRuleEntity mdmModuleDbFiledsRule : dbFiledEntity.getMdmModuleDbFiledsRules()) { + if ("typeOptionRuleForm".equals(mdmModuleDbFiledsRule.getFormName()) && "service".equals(mdmModuleDbFiledsRule.getRuleCode())) { + System.out.println(mdmModuleDbFiledsRule); + queryFiledssByDbname(dbFiledEntity, mdmModuleDbFiledsRule); + + } + } + } + + } + + /** * 根据db_name查询字段,注意循环嵌套 * 根据rule form_name='typeOptionRuleForm' rule_code='service' diff --git a/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/comf/template/service/impl/AeConfVoucherTemplateServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/comf/template/service/impl/AeConfVoucherTemplateServiceImpl.java index c8af62bc..717fd7e9 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/comf/template/service/impl/AeConfVoucherTemplateServiceImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/voucher/ae/comf/template/service/impl/AeConfVoucherTemplateServiceImpl.java @@ -1,14 +1,10 @@ package com.hzya.frame.voucher.ae.comf.template.service.impl; import cn.hutool.core.lang.Assert; -import com.hzya.frame.mdm.mdmModule.dao.IMdmModuleDao; -import com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity; -import com.hzya.frame.mdm.mdmModule.service.IMdmModuleService; import com.hzya.frame.mdm.mdmModuleDb.dao.IMdmModuleDbDao; import com.hzya.frame.mdm.mdmModuleDb.entity.MdmModuleDbEntity; import com.hzya.frame.mdm.mdmModuleDbFileds.dao.IMdmModuleDbFiledsDao; import com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity; -import com.hzya.frame.mdm.mdmModuleDbFileds.service.IMdmModuleDbFiledsService; import com.hzya.frame.mdm.mdmModuleDbFiledsRule.dao.IMdmModuleDbFiledsRuleDao; import com.hzya.frame.mdm.mdmModuleDbFiledsRule.entity.MdmModuleDbFiledsRuleEntity; import com.hzya.frame.voucher.ae.comf.subject.dao.IAeConfSubjectClassificationDao; @@ -25,8 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; import com.hzya.frame.basedao.service.impl.BaseService; import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; + /** * (AeConfVoucherTemplate)表服务实现类 @@ -43,8 +38,6 @@ public class AeConfVoucherTemplateServiceImpl extends BaseService ruleList = mdmModuleDbFiledsRuleDao.query(mdmModuleDbFiledsRuleEntity); - - + for (MdmModuleDbFiledsRuleEntity filedRule : ruleList) { + if ("typeOptionRuleForm".equals(filedRule.getFormName()) && "service".equals(filedRule.getRuleCode())) { + String ruleValue = filedRule.getRuleValue(); + MdmModuleDbEntity mdmModuleDbEntity = new MdmModuleDbEntity(); + mdmModuleDbEntity.setDbName(ruleValue); + List dbList = mdmModuleDbDao.query(mdmModuleDbEntity); + if(dbList.size()==0||dbList.size()>1){ + return null; + } + return dbList.get(0); + } + } return null; }