diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java index 657b37bb14..517b65938a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java @@ -215,6 +215,21 @@ public class IcResiUserEntity extends BaseEpmetEntity { */ private String isSpecial; + /** + * 是否租户【是:1 否:0】 + */ + private String isTenant; + + /** + * 是否流动人口【是:1 否:0】 + */ + private String isFloating; + + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; + /** * 文化程度【字典表】 */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java index 4a2260b045..7436847fd2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java @@ -225,6 +225,11 @@ public class IcResiUserEntity extends BaseEpmetEntity { */ private String isFloating; + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; + /** * 文化程度【字典表】 */ diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormDataAnalysisDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormDataAnalysisDTO.java new file mode 100644 index 0000000000..50553ab568 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcFormDataAnalysisDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author yzm + * @Date 2022/8/11 13:35 + */ +@Data +public class IcFormDataAnalysisDTO implements Serializable { + private String itemId; + private String label; + /** + * 分组ID,'默认,0' + */ + private String itemGroupId; + private String tableName; + /** + * 列名 + */ + private String columnName; + private Integer sort; +} + diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java index df9da799b0..fbc68cac11 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java @@ -97,4 +97,6 @@ public interface IcFormItemDao extends BaseDao { */ List getItemListByGroupId(@Param("customerId") String customerId, @Param("groupId") String groupId); List getItemListByGroupIdV2(@Param("customerId") String customerId, @Param("groupId") String groupId,@Param("policyFlag")String policyFlag); + + List selectDataAnalysisItem(String customerId); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java index a21534cdce..6bd45b6152 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/ResiCategoryStatsConfigServiceImpl.java @@ -1,20 +1,15 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.constant.StrConstant; -import com.epmet.constant.IcResiCategoryStatsConfigConstant; import com.epmet.dao.IcFormItemDao; -import com.epmet.dao.IcFormItemGroupDao; import com.epmet.dao.IcResiCategoryStatsConfigDao; import com.epmet.dao.IcResiCategoryWarnConfigDao; import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO; import com.epmet.dto.form.IcResiCategoryStatsConfigSortFormDTO; import com.epmet.dto.form.ResiCategoryStatsConfigListFormDTO; +import com.epmet.dto.result.IcFormDataAnalysisDTO; import com.epmet.dto.result.IcResiCategoryStatsConfigResultDTO; -import com.epmet.entity.IcFormItemEntity; -import com.epmet.entity.IcFormItemGroupEntity; import com.epmet.entity.IcResiCategoryStatsConfigEntity; import com.epmet.entity.IcResiCategoryWarnConfigEntity; import com.epmet.service.IcResiCategoryStatsConfigService; @@ -28,7 +23,10 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Slf4j @@ -40,8 +38,6 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf @Resource private IcFormItemDao icFormItemDao; @Resource - private IcFormItemGroupDao icFormItemGroupDao; - @Resource private IcResiCategoryStatsConfigDao icResiCategoryStatsConfigDao; @Resource private IcResiCategoryWarnConfigDao icResiCategoryWarnConfigDao; @@ -52,60 +48,39 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf @Transactional(rollbackFor = Exception.class) public List list(String customerId, ResiCategoryStatsConfigListFormDTO formDTO) { //1.获取IC_FORM_ITEM 中 用于数据分析字段的 id 和label - List icFormItemEntityList = icFormItemDao.selectList(new QueryWrapper().lambda().eq(IcFormItemEntity::getCustomerId,customerId).eq(IcFormItemEntity::getDataAnalyse, 1)); - if(CollectionUtils.isEmpty(icFormItemEntityList)){ - return new ArrayList<>(); - } - Set groupIds = icFormItemEntityList.stream().filter(item-> !"0".equals(item.getItemGroupId())).map(IcFormItemEntity::getItemGroupId).collect(Collectors.toSet()); - List icFormItemGroupEntityList = new ArrayList<>(); - if(!CollectionUtils.isEmpty(groupIds)){ - icFormItemGroupEntityList.addAll(icFormItemGroupDao.selectList(new QueryWrapper().lambda().eq(IcFormItemGroupEntity::getCustomerId,customerId).in(IcFormItemGroupEntity::getId, groupIds))); - } - - //获取tableName和COLUMN_NAME - Map tableColumnMap = new HashMap<>(); + List dataItemList=icFormItemDao.selectDataAnalysisItem(customerId); + //key:tableName-columnName value: ic_form_item + Map tableColumnMap = new HashMap<>(); + //key:ic_form_item.id value:对应的表名 Map idTableMap = new HashMap<>(); - icFormItemEntityList.forEach(item->{ - Map map = new HashMap<>(); - item.setColumnName(item.getColumnName().concat(NumConstant.ZERO == item.getColumnNum() ? StrConstant.EPMETY_STR : item.getColumnNum().toString())); - if("0".equals(item.getItemGroupId())){ - tableColumnMap.put(IcResiCategoryStatsConfigConstant.IC_RESI_USER+"-"+item.getColumnName(),item); - idTableMap.put(item.getId(),IcResiCategoryStatsConfigConstant.IC_RESI_USER); - }else{ - List collect = icFormItemGroupEntityList.stream().filter(i -> item.getItemGroupId().equals(i.getId())).collect(Collectors.toList()); - tableColumnMap.put(CollectionUtils.isEmpty(collect)?IcResiCategoryStatsConfigConstant.IC_RESI_USER:collect.get(0).getTableName()+"-"+item.getColumnName(),item); - idTableMap.put(item.getId(),CollectionUtils.isEmpty(collect)?IcResiCategoryStatsConfigConstant.IC_RESI_USER:collect.get(0).getTableName()); - } + dataItemList.forEach(item->{ + tableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item); + idTableMap.put(item.getItemId(),item.getTableName()); }); - //2.获取ic_resi_category_stats_config 和 ic_resi_category_warn_config 表中的数据 + //2.获取居民类别配置表ic_resi_category_stats_config 和 居民类别预警配置表ic_resi_category_warn_config 表中的数据 List statsConfigEntityList = icResiCategoryStatsConfigDao.selectList(new QueryWrapper().lambda().eq(IcResiCategoryStatsConfigEntity::getCustomerId,customerId)); - if (!CollectionUtils.isEmpty(statsConfigEntityList)){ - return icResiCategoryStatsConfigDao.listInfo(customerId,formDTO.getIsWarn(),formDTO.getLevel()); - } + List warnConfigEntityList = icResiCategoryWarnConfigDao.selectList(new QueryWrapper().lambda().eq(IcResiCategoryWarnConfigEntity::getCustomerId,customerId)); - //3.新增不存在的,删除不在tableColumnMap的 + //获取居民类别配置表 Map statsTableColumnMap = new HashMap<>(); statsConfigEntityList.forEach(item->{ statsTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item); }); - Map warnTableColumnMap = new HashMap<>(); - warnConfigEntityList.forEach(item->{ - warnTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item); - }); + + //3.新增不存在的,删除不在tableColumnMap的 //差集 - //新增 List newStatsList = tableColumnMap.keySet().stream().filter(item -> !statsTableColumnMap.containsKey(item)).collect(Collectors.toList()); List newStatsEntityList = new ArrayList<>(); newStatsList.forEach(item->{ - IcFormItemEntity icFormItemEntity = tableColumnMap.get(item); + IcFormDataAnalysisDTO icFormItemEntity = tableColumnMap.get(item); IcResiCategoryStatsConfigEntity entity = new IcResiCategoryStatsConfigEntity(); entity.setCustomerId(customerId); entity.setLabel(icFormItemEntity.getLabel()); - entity.setTableName(idTableMap.get(icFormItemEntity.getId())); + entity.setTableName(idTableMap.get(icFormItemEntity.getItemId())); entity.setColumnName(icFormItemEntity.getColumnName()); entity.setManagementIcon(""); entity.setDataIcon(""); @@ -115,16 +90,24 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf newStatsEntityList.add(entity); }); if(!CollectionUtils.isEmpty(newStatsEntityList)){ + //新增居民类别配置表 icResiCategoryStatsConfigService.insertBatch(newStatsEntityList); } + + //4、新增居民类别预警配置表 + Map warnTableColumnMap = new HashMap<>(); + warnConfigEntityList.forEach(item->{ + warnTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item); + }); + List newWarnList = tableColumnMap.keySet().stream().filter(item -> !warnTableColumnMap.containsKey(item)).collect(Collectors.toList()); List newWarnEntityList = new ArrayList<>(); newWarnList.forEach(item->{ - IcFormItemEntity icFormItemEntity = tableColumnMap.get(item); + IcFormDataAnalysisDTO icFormItemEntity = tableColumnMap.get(item); IcResiCategoryWarnConfigEntity entity = new IcResiCategoryWarnConfigEntity(); entity.setCustomerId(customerId); entity.setLabel(icFormItemEntity.getLabel()); - entity.setTableName(idTableMap.get(icFormItemEntity.getId())); + entity.setTableName(idTableMap.get(icFormItemEntity.getItemId())); entity.setColumnName(icFormItemEntity.getColumnName()); entity.setWarn("0"); entity.setSort(icFormItemEntity.getSort()); @@ -133,6 +116,8 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf if(!CollectionUtils.isEmpty(newWarnEntityList)){ icResiCategoryWarnConfigService.insertBatch(newWarnEntityList); } + + //5、原来用于数据分析,现在不用于数据分析的,要删除类别配置表和预警表 List delStatsEntityIdList = new ArrayList<>(); List delWarnEntityIdList = new ArrayList<>(); //需要删除的 @@ -151,7 +136,7 @@ public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConf icResiCategoryWarnConfigService.deleteBatchIds(delWarnEntityIdList); } - //4.返回数据 + //6.返回数据 return icResiCategoryStatsConfigDao.listInfo(customerId,formDTO.getIsWarn(),formDTO.getLevel()); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml index e2689c4c62..02070f1b63 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml @@ -322,4 +322,23 @@ ORDER BY ifi.SORT + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java index 2cd1167802..d4d3cbe812 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcResiUserDTO.java @@ -219,6 +219,21 @@ public class IcResiUserDTO implements Serializable { */ private String isSpecial; + /** + * 是否租户【是:1 否:0】 + */ + private String isTenant; + + /** + * 是否是流动人口【是:1 否:0】 + */ + private String isFloating; + + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; + /** * 文化程度【字典表】 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java index 5b70e7a653..f787399b23 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcResiUserEntity.java @@ -225,6 +225,10 @@ public class IcResiUserEntity extends BaseEpmetEntity { */ private String isFloating; + /** + * 是否新阶层人士【是:1 否:0】 + */ + private String isXjc; /** * 文化程度【字典表】 */ diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.64__resi_xjc.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.64__resi_xjc.sql new file mode 100644 index 0000000000..9ce60670d4 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.64__resi_xjc.sql @@ -0,0 +1 @@ +alter table ic_resi_user add COLUMN IS_XJC CHAR(1) DEFAULT'0' COMMENT '是否新阶层人士【是:1 否:0】'after IS_FLOATING; \ No newline at end of file