diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.java index 117880b0..147d6867 100644 --- a/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.java +++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.java @@ -52,6 +52,27 @@ public class ComparisonEntity extends BaseEntity { private List fields; private List returnField; + /** 显示类型 1、树2、列表*/ + private String viewName; + //下级结构树 + private List comparisonEntities; + + public List getComparisonEntities() { + return comparisonEntities; + } + + public void setComparisonEntities(List comparisonEntities) { + this.comparisonEntities = comparisonEntities; + } + + public String getViewName() { + return viewName; + } + + public void setViewName(String viewName) { + this.viewName = viewName; + } + public List getReturnField() { return returnField; } diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java index 72718c51..a4948dd0 100644 --- a/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java @@ -3,13 +3,14 @@ package com.hzya.frame.sysnew.comparison.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.dynamic.datasource.annotation.DS; import com.github.pagehelper.PageInfo; import com.hzya.frame.basedao.service.impl.BaseService; import com.hzya.frame.mdm.mdmModule.dao.IMdmModuleDao; import com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity; import com.hzya.frame.mdm.mdmModuleDb.entity.MdmModuleDbEntity; import com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity; +import com.hzya.frame.mdm.mdmModuleView.dao.IMdmModuleViewDao; +import com.hzya.frame.mdm.mdmModuleView.entity.MdmModuleViewEntity; import com.hzya.frame.mdm.service.impl.MdmServiceCache; import com.hzya.frame.sysnew.application.entity.SysApplicationEntity; import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; @@ -20,15 +21,10 @@ import com.hzya.frame.sysnew.comparison.entity.ComparisonDetailsEntity; import com.hzya.frame.sysnew.comparison.entity.ComparisonEntity; import com.hzya.frame.sysnew.comparison.service.IComparisonService; import com.hzya.frame.uuid.UUIDLong; -import com.hzya.frame.uuid.UUIDUtils; -import com.hzya.frame.web.entity.BaseEntity; import com.hzya.frame.web.entity.BaseResult; -import com.hzya.frame.web.entity.JsonResultEntity; import org.apache.commons.collections.CollectionUtils; -import org.apache.ivy.Main; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import sun.java2d.pipe.AAShapePipe; import java.util.*; import java.util.stream.Collectors; @@ -49,6 +45,9 @@ public class ComparisonServiceImpl extends BaseService @Autowired private MdmServiceCache mdmServiceCache; + @Autowired + private IMdmModuleViewDao mdmModuleViewDao; + @Autowired public void setGeneralDataDao(IComparisonDao dao) { this.comparisonDao = dao; @@ -105,6 +104,12 @@ public class ComparisonServiceImpl extends BaseService comparisonEntity.setFields(fields); //查询主表数据 List> comparisonEntitiePages = comparisonDao.queryComparisonPage(comparisonEntity); + + //递归查询组织树 + if(comparisonEntities.get(0).getViewName().equals("1")){ + return recursiveQueryComparison(comparisonEntitiePages,comparisonEntity); + } + if(CollectionUtils.isNotEmpty(comparisonEntitiePages)){ for (Map comparisonEntitiePage : comparisonEntitiePages) { JSONObject jsonObjects=new JSONObject(); @@ -224,6 +229,23 @@ public class ComparisonServiceImpl extends BaseService //return BaseResult.getFailureMessageEntity(comparisonEntity.getDbName()+"表中已经存在data_id为:"+jsonObjectMain.getString("data_id")+"的数据"); return updateEntity(json); } else { + + //如果是树形结构,查询不存在,新增时候需要得到parent_id,根据parent_id查询data_id是否有,之后将查询得父id设置到mdm_up_id中 + if(comparisonEntities.get(0).getViewName().equals("1")){ + List fieldParent = getFields(comparisonEntity); + Map mapParentId = new HashMap<>(); + mapDataId.put("data_id", jsonObjectMain.getString("parent_id")); + ComparisonEntity comparisonParentId = new ComparisonEntity(); + comparisonParentId.setMap(mapParentId); + comparisonParentId.setDbName(comparisonEntity.getDbName()); + comparisonParentId.setFields(fieldParent); + List> listParentId = comparisonDao.queryComparisonPage(comparisonDataId); + //如果根据parentid查询数据不为空,将dataid为parenti得id值设置到mdm_up_id中 + if(CollectionUtils.isNotEmpty(listParentId)){ + map.put("mdm_up_id",listParentId.get(0).get("id")); + } + } + //判断输入的主表字段是否是必填项 for (ComparisonEntity entity : comparisonEntities) { //如果必填字段不为空 @@ -440,6 +462,22 @@ public class ComparisonServiceImpl extends BaseService if(CollectionUtils.isEmpty(comparisonEntitiePages)){ return BaseResult.getFailureMessageEntity("根据data_id查询id数据为空,请检查data_id"); } + + //判断是否是树形结构 + if(comparisonEntities.get(0).getViewName().equals("1")){ + //根据data_id查询出parent_id,再根据parent_id得值查询data_id字段中为这个得值,如果有,将data_id为parent_id得id值保存到mdm_up_id中 + Map mapParent=new HashMap<>(); + mapParent.put("data_id",comparisonEntitiePages.get(0).get("parent_id")); + ComparisonEntity comparisonParent=new ComparisonEntity(); + comparisonParent.setDbName(comparisonEntity.getDbName()); + comparisonParent.setMap(mapId); + comparisonParent.setFields(fields); + List> comparisonEntitieParent = comparisonDao.queryComparisonPage(comparisonParent); + if(!CollectionUtils.isEmpty(comparisonEntitieParent)){ + map.put("mdm_up_id",comparisonEntitieParent.get(0).get("id")); + } + } + String id = String.valueOf(comparisonEntitiePages.get(0).get("id")); map.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443"); map.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443"); @@ -583,6 +621,12 @@ public class ComparisonServiceImpl extends BaseService if(CollectionUtils.isEmpty(comparisonEntitiePages)){ return BaseResult.getFailureMessageEntity("根据data_id查询id数据为空,请检查data_id"); } + + //递归删除树结构 1.树 2.列表 + if(comparisonEntities.get(0).getViewName().equals("1")){ + return recursiveDeleteComparison(comparisonEntitiePages,comparisonEntity); + } + String id = String.valueOf(comparisonEntitiePages.get(0).get("id")); map.remove("id"); @@ -615,6 +659,58 @@ public class ComparisonServiceImpl extends BaseService return BaseResult.getFailureMessageEntity("删除失败","请检查传递参数"); } + //递归删除组织树 + private Object recursiveDeleteComparison(List> list,ComparisonEntity comparisonEntity){ + for(int i=0;i fields = getFields(comparisonEntity); + Map mapId=new HashMap<>(); + mapId.put("mdm_up_id",list.get(0).get("id")); + ComparisonEntity comparison=new ComparisonEntity(); + comparison.setDbName(comparisonEntity.getDbName()); + comparison.setMap(mapId); + comparison.setFields(fields); + List> comparisonEntitiePages = comparisonDao.queryComparisonPage(comparison); + if(CollectionUtils.isNotEmpty(comparisonEntitiePages)){ + recursiveDeleteComparison(comparisonEntitiePages,comparisonEntity); + } + comparisonEntity.setId(String.valueOf(list.get(0).get("id"))); + Integer integer = comparisonDao.deleteComparison(comparisonEntity); + JSONObject json1 = new JSONObject(); + json1.put("status","200"); + json1.put("integer",integer); + return json1; + } + return null; + } + + //递归查询组织树 + private Object recursiveQueryComparison(List> list,ComparisonEntity comparisonEntity){ + if(CollectionUtils.isNotEmpty(list)) { + for (int i = 0; i < list.size(); i++) { + List fields = getFields(comparisonEntity); + Map mapId=new HashMap<>(); + mapId.put("mdm_up_id",list.get(0).get("id")); + ComparisonEntity comparison=new ComparisonEntity(); + comparison.setDbName(comparisonEntity.getDbName()); + comparison.setMap(mapId); + comparison.setFields(fields); + List> comparisonEntitiePages = comparisonDao.queryComparisonPage(comparison); + if(CollectionUtils.isNotEmpty(comparisonEntitiePages)){ + recursiveQueryComparison(comparisonEntitiePages,comparisonEntity); + for (Map map : list) { + map.put("comparisonEntities",comparisonEntitiePages); + } + } + PageInfo pageInfo = new PageInfo(list); + JSONObject json1=new JSONObject(); + json1.put("status","200"); + json1.put("pageInfo",pageInfo); + return json1; + } + } + return null; + } + //根据应用key和应用密钥获取应用编码和应用名称 @Override public SysExtensionApiEntity getAppNameAndCode(SysExtensionApiEntity sysExtensionApiEntity) { @@ -704,6 +800,11 @@ public class ComparisonServiceImpl extends BaseService comparisonEntity.setmId(mdmModuleEntity.getId()); List comparisonEntitiesFieldRule = comparisonDao.queryComparisonBymdmIdDbIdFiledId(comparisonEntity); + //根据mdm_module得id判断是树结构还是列表结构 + MdmModuleViewEntity mdmModuleViewEntity=new MdmModuleViewEntity(); + mdmModuleViewEntity.setMdmId(mdmModuleEntity.getId()); + List mdmModuleViewEntities = mdmModuleViewDao.query(mdmModuleViewEntity); + //根据mdm_id查询mdm_module_db的信息 MdmModuleDbEntity mdmModuleDbEntity = new MdmModuleDbEntity(); mdmModuleDbEntity.setMdmId(mdmModuleEntity.getId()); @@ -736,6 +837,7 @@ public class ComparisonServiceImpl extends BaseService comparisonEntityFile.setmId(mdmModuleEntity.getId()); comparisonEntityFile.setMdmName(mdmModuleEntity.getMdmName()); comparisonEntityFile.setMdmCode(String.valueOf(mdmModuleEntity.getMdmCode())); + comparisonEntityFile.setViewName(CollectionUtils.isNotEmpty(mdmModuleViewEntities)?mdmModuleViewEntities.get(0).getViewName():null); if(CollectionUtils.isNotEmpty(comparisonEntitiesFieldRule)){ for (ComparisonEntity entity : comparisonEntitiesFieldRule) { if(entity.getEnName().equals(moduleDbFiledsEntity.getEnName()) && entity.getDbType().equals(moduleDbEntity.getDbType())){