diff --git a/client/src/main/java/com/small/client/dao/SxDataDao.java b/client/src/main/java/com/small/client/dao/SxDataDao.java index ab583823..b8835ee8 100644 --- a/client/src/main/java/com/small/client/dao/SxDataDao.java +++ b/client/src/main/java/com/small/client/dao/SxDataDao.java @@ -612,7 +612,7 @@ public class SxDataDao extends BaseDao{ public Integer getNewActiveCount(DataBaseInfo dataBaseInfo){ String where=dataBaseInfo.getWhere()+" and rule_no in('DD','PS','PM') and range_flag='I'"; return getBaseTotal(dataBaseInfo.getIp(),dataBaseInfo.getUserName(),dataBaseInfo.getPassword(),dataBaseInfo.getDbPort(),dataBaseInfo.getDataBaseName(), - T_PUB_PLAN_MASTER,where); + T_PUB_PLAN_MASTER+" b",where); } /** diff --git a/client/src/main/java/com/small/client/service/SxDataAbst/SxDataAbstService.java b/client/src/main/java/com/small/client/service/SxDataAbst/SxDataAbstService.java index 2883f31b..b955ec57 100644 --- a/client/src/main/java/com/small/client/service/SxDataAbst/SxDataAbstService.java +++ b/client/src/main/java/com/small/client/service/SxDataAbst/SxDataAbstService.java @@ -74,15 +74,18 @@ public abstract class SxDataAbstService { sxCategoryModel.setCategory_name(sxSyncCategory.getItem_clsname()); sxCategoryModel.setBrandName(clsBrandMap.get(sxSyncCategory.getItem_clsname())); //寻找父级 - if(null!=sxSyncCategory.getCls_parent()){ + if(StringUtils.isNotEmpty(sxSyncCategory.getCls_parent())){ SxSyncCategory firstNode=getParentNode(allSxSyncCategories,sxSyncCategory.getCls_parent()); if(null==firstNode){ sxCategoryModel.setFirst_category_name(""); + sxCategoryModel.setProduct_type(sxCategoryModel.getCategory_name()); + sxCategoryModels.add(sxCategoryModel); + continue; } sxCategoryModel.setParent_name(firstNode.getItem_clsname());//todo 暂时无用 //如何存在上级的上级,则上级为第二层,上上及为第一层 - if(null!=firstNode.getCls_parent()) {//还存在上级 - SxSyncCategory secondNode=getParentNode(allSxSyncCategories,sxSyncCategory.getCls_parent()); + if(StringUtils.isNotEmpty(firstNode.getCls_parent())) {//还存在上级 + SxSyncCategory secondNode=getParentNode(allSxSyncCategories,firstNode.getCls_parent()); if(null!=secondNode && secondNode.getItem_clsno().equals(firstNode.getCls_parent())){ sxCategoryModel.setFirst_category_name(secondNode.getItem_clsname()); sxCategoryModel.setSecond_category_name(firstNode.getItem_clsname()); @@ -98,9 +101,28 @@ public abstract class SxDataAbstService { sxCategoryModel.setProduct_type(sxCategoryModel.getCategory_name()); sxCategoryModels.add(sxCategoryModel); } + sxCategoryModels=filterCategories(sxCategoryModels); return sxCategoryModels; } + public static List filterCategories(List categories) { + // 步骤1: 收集所有作为父类出现的名称 + Set parentNames = categories.stream() + .map(SxCategoryModel::getFirst_category_name) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + Set rootParents = categories.stream() + .map(SxCategoryModel::getSecond_category_name) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + + // 步骤2: 保留叶子节点(没有作为父类出现的节点) + return categories.stream() + .filter(category -> !parentNames.contains(category.getCategory_name())) + .filter(category -> !rootParents.contains(category.getCategory_name())) + .collect(Collectors.toList()); + } + /** * 通过流查找父节点 * @param sxSyncCategories diff --git a/client/src/main/java/com/small/client/service/imp/SxDataServiceImp.java b/client/src/main/java/com/small/client/service/imp/SxDataServiceImp.java index be756656..c6ff1ea0 100644 --- a/client/src/main/java/com/small/client/service/imp/SxDataServiceImp.java +++ b/client/src/main/java/com/small/client/service/imp/SxDataServiceImp.java @@ -728,7 +728,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService String where="where 1=1"; Integer total =0; if(StringUtils.isNotEmpty(commentModel.getSyncTime())){ - where+=" and b.start_date>'"+commentModel.getSyncTime()+"' "; + where+=" and b.oper_date>'"+commentModel.getSyncTime()+"' "; // where+=" or b.oper_date>'"+commentModel.getSyncTime()+"') "; } dataBaseInfo.setWhere(where);