From 10c1766501ba0e4ef85df2c1444c207d764415dc Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 25 Jan 2022 10:59:38 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=201.=E5=B1=85?= =?UTF-8?q?=E6=B0=91=E5=AF=BC=E5=85=A5excel=EF=BC=8C=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E3=80=81=E4=BB=A5=E5=8F=8A=E6=B3=A8=E9=87=8A=E7=9A=84=E4=B8=B0?= =?UTF-8?q?=E5=AF=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IcResiUserImportServiceImpl.java | 165 +++++++++--------- 1 file changed, 80 insertions(+), 85 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 7e8a5166e1..89e4161d90 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -17,9 +17,7 @@ import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.ResultDataResolver; -import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; -import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcResiUserDao; @@ -73,14 +71,14 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res public static final ThreadLocal>> skipedRows = new ThreadLocal<>(); /** - * 类别发生变更的居民 + * 导入的居民中,新增或者变动的居民 */ - public static final ThreadLocal categoryChangedResi = new ThreadLocal<>(); + public static final ThreadLocal newlyChangedResi = new ThreadLocal<>(); /** - * 居民类别items列表 + * 居民类别items列表。 */ - public static final ThreadLocal> resiCategoryItemsCache = new ThreadLocal<>(); + public static final ThreadLocal> resiCategoryColumnNameAndLabel = new ThreadLocal<>(); /** * key: itemId @@ -249,10 +247,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } // 执行人员类别变更记录 - Map newResis = categoryChangedResi.get().getNewResis(); - // todo 此处没测试 - Map categoryChangedResis = categoryChangedResi.get().getCategoryChangedResis(); - Map transferedResis = categoryChangedResi.get().getTransferedResis(); + Map newResis = newlyOrChangedResi.get().getNewResis(); + Map categoryChangedResis = newlyOrChangedResi.get().getCategoryChangedResis(); + Map transferedResis = newlyOrChangedResi.get().getTransferedResis(); //保存调动或者变更记录 saveNewResiCategoryRecord(newResis); @@ -267,8 +264,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } finally { skipedRows.remove(); errorRows.remove(); - categoryChangedResi.remove(); - resiCategoryItemsCache.remove(); + newlyOrChangedResi.remove(); + resiCategoryColumnNameAndLabel.remove(); itemIdAndOptionsCache.invalidateAll(); } } @@ -293,7 +290,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res // 居民类别信息 ResiImportResiCategoryChangedCache c = new ResiImportResiCategoryChangedCache(); - categoryChangedResi.set(c); + newlyOrChangedResi.set(c); List resiCategoryItems = getResultDataOrThrowsException(operCustomizeOpenFeignClient.listResiCategoryItems(customerId), ServiceConstant.OPER_CUSTOMIZE_SERVER, @@ -303,7 +300,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res Map columnNameAndLabel = resiCategoryItems.stream().collect(Collectors.toMap((o) -> o.getColumnName(), (o) -> o.getLabel())); - resiCategoryItemsCache.set(columnNameAndLabel); + resiCategoryColumnNameAndLabel.set(columnNameAndLabel); } /** @@ -326,16 +323,17 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res List> headList = readListener.getHeadList(); List> dataList = readListener.getDataList(); - Map> headers = mergeHead(headList); + // 合并多级表头到一个list中,key为列序号 + Map> headers = mergeMultiLevelHeadLabels(headList); - // 清洗表头数据 - Map abandonedHeaders = washHeaders(headers, formItemList); + // 清洗表头数据,通过items剔除,并且得到options + Map abandonedHeaders = removeAndGetOptionsFromHeaders(headers, formItemList); - //合并多级表头 - HashMap> combinedHeaders = combineHeaders(headers); + // 交换表头信息,以label连起来的string作为key,列号的列表作为value + HashMap> combinedHeaders = exchangeKeyAndValueOfHeaders(headers); - // 得到客户配置item数据 - Map formItemMap = formItemList.stream().collect( + // 得到客户配置item数据。<"兴趣爱好:兴趣特长", item对象> + Map customizedLabelCompbinedItemsMap = formItemList.stream().collect( Collectors.toMap(formItem -> { String groupLabel = formItem.getGroupLabel(); String label = formItem.getLabel(); @@ -346,10 +344,11 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } }, formItem -> formItem) ); - Map headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders); + + Map itemIdAndColumnWrapper = convertExcelHeaders2DBColumnWrappers(customizedLabelCompbinedItemsMap, combinedHeaders); // 持久化 - persistIcResiBaseInfo(headerColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, currUserAgencyPids, currentUserId, tableName); + persistIcResiBaseInfo(itemIdAndColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, currUserAgencyPids, currentUserId, tableName); return headers; } @@ -374,15 +373,12 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res List> headList = readListener.getHeadList(); List> dataList = readListener.getDataList(); - Map> headers = mergeHead(headList); + Map> headers = mergeMultiLevelHeadLabels(headList); - // 清洗表头数据 - Map abandonedHeaders = washHeaders(headers, formItemList); + Map abandonedHeaders = removeAndGetOptionsFromHeaders(headers, formItemList); - //合并多级表头 - HashMap> combinedHeaders = combineHeaders(headers); + HashMap> combinedHeaders = exchangeKeyAndValueOfHeaders(headers); - // 得到客户配置item数据 Map formItemMap = formItemList.stream().collect( Collectors.toMap(formItem -> { String groupLabel = formItem.getGroupLabel(); @@ -394,19 +390,19 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } }, formItem -> formItem) ); - Map headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders); + Map headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders); persistIcResiExtraInfo(headerColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, currentUserId, targetTableName, customerId); return headerColumnWrapper; } /** * 持久化IC居民基础信息 - * @param headerColumnWrapper 数据库列包装信息 + * @param itemIdAndColumnWrapper 数据库列包装信息 * @param dataRows 数据行集合 * @param currUserAgencyId 当前用户的组织id * @param checkBoxOptionColumnIdxAndLabel 复选框的列号&label中文 */ - private void persistIcResiBaseInfo(Map headerColumnWrapper, List> dataRows, + private void persistIcResiBaseInfo(Map itemIdAndColumnWrapper, List> dataRows, String currUserAgencyId, Map checkBoxOptionColumnIdxAndLabel, String currUserAgencyPids, String currentUserId, String tableName) { @@ -415,8 +411,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res LinkedHashMap columnAndValues = new LinkedHashMap<>(); try { - convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues); + convertColumnWrappers2Map4Persist(itemIdAndColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues); + // 因为还没有读取子sheet,所以这些居民类别没有办法获取,先默认设置成0,后面读取子sheet的时候再更新 columnAndValues.put("IS_ENSURE_HOUSE", "0"); columnAndValues.put("IS_OLD_PEOPLE", "0"); columnAndValues.put("IS_PARTY", "0"); @@ -447,12 +444,12 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res // 任意组织维度一个发生变化,则放到调动居民缓存中 ResiImportChangedData transferData; if ((transferData = this.getResiImportTrasferData(existingResiMap, columnAndValues)) != null) { - categoryChangedResi.get().getTransferedResis().put(existingResiMap.get("ID"), transferData); + newlyOrChangedResi.get().getTransferedResis().put(existingResiMap.get("ID"), transferData); } else { // 组织维度没有发生变化,看是否有居民类型变更 ResiImportChangedData d = getResiImportCategoryChangedData(existingResiMap, columnAndValues); if (d != null) { - categoryChangedResi.get().getCategoryChangedResis().put(existingResiMap.get("ID"), d); + newlyOrChangedResi.get().getCategoryChangedResis().put(existingResiMap.get("ID"), d); } } } else { @@ -461,19 +458,20 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); icResiUserDao.add(tableName, columnAndValues); - Map categories = resiCategoryItemsCache.get().keySet() + // 过滤出本居民含有哪些类别 + Map resiCategories = resiCategoryColumnNameAndLabel.get().keySet() .stream() .filter((categoryColumnName) -> "1".equals(columnAndValues.get(categoryColumnName))) .collect(Collectors.toMap((k) -> k, (k) -> columnAndValues.get(k))); - categoryChangedResi.get().getNewResis().put(columnAndValues.get("ID"), + newlyOrChangedResi.get().getNewResis().put(columnAndValues.get("ID"), new ResiImportCategoryData(columnAndValues.get("AGENCY_ID"), columnAndValues.get("GRID_ID"), columnAndValues.get("VILLAGE_ID"), columnAndValues.get("BUILD_ID"), columnAndValues.get("UNIT_ID"), columnAndValues.get("HOME_ID"), - categories)); + resiCategories)); } } catch (Exception e) { @@ -604,13 +602,13 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res /** * 将当前行数据转化成LinkedHashMap,供后续插入 - * @param headerColumnWrapper 当前行的ColumnWrapper,每一个ColumnWrapper元素都是当前行中的一个列 + * @param itemIdAndColumnWrappers 当前行的ColumnWrapper,每一个ColumnWrapper元素都是当前行中的一个列,key:itemId * @param row 当前行数据 * @param currUserAgencyId 当前用户所属机构ID * @param checkBoxOptionColumnIdxAndLabel 复选框options列表。key:列号,value:复选框中文 * @param target 要将数据放到哪个对象中 */ - private void convertColumnWrappers2Map4Persist(Map headerColumnWrapper, Map row, + private void convertColumnWrappers2Map4Persist(Map itemIdAndColumnWrappers, Map row, String currUserAgencyId, Map checkBoxOptionColumnIdxAndLabel, LinkedHashMap target) { @@ -618,9 +616,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res List errorColumnNames = new LinkedList<>(); - for (Map.Entry columnWrapperEntry : headerColumnWrapper.entrySet()) { + for (Map.Entry itemIdAndColumnWrapper : itemIdAndColumnWrappers.entrySet()) { - ColumnWrapper columnWrapper = columnWrapperEntry.getValue(); + ColumnWrapper columnWrapper = itemIdAndColumnWrapper.getValue(); if ("input".equals(columnWrapper.getItemType()) || "textarea".equals(columnWrapper.getItemType()) || "datepicker".equals(columnWrapper.getItemType()) @@ -646,10 +644,10 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res columnWrapper.setColValue(colValue); } else { // remote类型。优先从缓存取 - Map optionsOfItem = itemIdAndOptionsCache.getIfPresent(columnWrapperEntry.getKey()); + Map optionsOfItem = itemIdAndOptionsCache.getIfPresent(itemIdAndColumnWrapper.getKey()); if (optionsOfItem == null || optionsOfItem.size() == 0) { - optionsOfItem = listRemoteOptions(headerColumnWrapper, columnWrapper.getOptionSourceValue(), currUserAgencyId, "saveorupdate"); - itemIdAndOptionsCache.put(columnWrapperEntry.getKey(), optionsOfItem); + optionsOfItem = listRemoteOptions(itemIdAndColumnWrappers, columnWrapper.getOptionSourceValue(), currUserAgencyId, "saveorupdate"); + itemIdAndOptionsCache.put(itemIdAndColumnWrapper.getKey(), optionsOfItem); } String colValue = optionsOfItem.get(cellContent); columnWrapper.setColValue(colValue); @@ -674,22 +672,22 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } /** - * @description 合并头 + * @description 调换表头信息。将中文label做key,列号list作value(因为复选框的原因,会出现相同的label对应多个列号,以兴趣特长为例) * - * @param headers - * @return + * @param headers 例: <38:[兴趣爱好,兴趣特长]> <39:[兴趣爱好,兴趣特长]> <40:[兴趣爱好,兴趣特长]>... + * @return <"兴趣爱好,兴趣特长":[38,39,40...]> * @author wxz * @date 2021.10.28 21:27:18 */ - private HashMap> combineHeaders(Map> headers) { + private HashMap> exchangeKeyAndValueOfHeaders(Map> headers) { HashMap> itemAndColIndexs = new LinkedHashMap<>(); headers.forEach((k, v) -> { - String tempKey = String.join(":", v); - List colIndexs = itemAndColIndexs.get(tempKey); + String combinedHeaderLabels = String.join(":", v); + List colIndexs = itemAndColIndexs.get(combinedHeaderLabels); if (colIndexs == null) { colIndexs = new ArrayList<>(); - itemAndColIndexs.put(tempKey, colIndexs); + itemAndColIndexs.put(combinedHeaderLabels, colIndexs); } colIndexs.add(k); }); @@ -698,56 +696,54 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } /** - * @description 洗头 + * @description 复选框在excel中体现为多个列,他们在oper_customize.items表中不存在,所以要从headers中剔除这部分。然后将剔除的部分返回 * - * @param headers - * @param items - * @return + * @param headers excel表头。 <列号:中文label列表> + * @param items customize库中查询出来的,items的列表 + * @return 被移除的options * @author wxz * @date 2021.10.28 21:07:12 */ - private Map washHeaders(Map> headers, List items) { + private Map removeAndGetOptionsFromHeaders(Map> headers, List items) { List itemLabels = items.stream().map(i -> i.getLabel()).collect(Collectors.toList()); - Map abandonedHeaders = new HashMap<>(); + Map abandonedOptions = new HashMap<>(); for (Map.Entry> entry:headers.entrySet()) { - Integer colIdx = entry.getKey(); - List v = entry.getValue(); - int lastPartIndex = v.size() - 1; - String lastValuePart = v.get(lastPartIndex); - if (!itemLabels.contains(lastValuePart)) { + Integer columnIndex = entry.getKey(); + List headerLabels = entry.getValue(); + int lastLevelHeaderLevel = headerLabels.size() - 1; + // 最后一集header的中文label + String lastLevelHeaderLabel = headerLabels.get(lastLevelHeaderLevel); + if (!itemLabels.contains(lastLevelHeaderLabel)) { // 该部分为options,它的上一级是item,那么去掉options这一级 - v.remove(lastPartIndex); - abandonedHeaders.put(colIdx, lastValuePart); + headerLabels.remove(lastLevelHeaderLevel); + abandonedOptions.put(columnIndex, lastLevelHeaderLabel); } } - return abandonedHeaders; + return abandonedOptions; } /** * @description 数据整合,将excel表头汉字信息转化成ColumnWrapper列封装数据 * * key:itemId * * value:ColumnWrapper列包装信息 - * @param formItemMap item map + * @param customizedLabelCompbinedItemsMap item map * key:itemId; * value: 合并之后的head字符串,例如:健康信息:监护人 * @param combinedHeaders 合并之后的head信息。 * key:合并之后head字符串(例如:党员信息:入党时间); * value:列号组成的列表(例如[1,2,3]) - * @param datas - * @param abandonedHeaders - * @return + * @return key:itemId;value:columnWrapper */ - private Map convertExcelHeaders2DBColumnWrappers(Map formItemMap, Map> combinedHeaders, - List> datas, Map abandonedHeaders) { + private Map convertExcelHeaders2DBColumnWrappers(Map customizedLabelCompbinedItemsMap, Map> combinedHeaders) { // HashMap> tables = new HashMap<>(); Map columns = new LinkedHashMap<>(combinedHeaders.size()); - for (Map.Entry> entry : combinedHeaders.entrySet()) { - String combinedHeader = entry.getKey(); + for (Map.Entry> labelAndColumnIndexs : combinedHeaders.entrySet()) { + String combinedHeader = labelAndColumnIndexs.getKey(); - FormItemResult item = formItemMap.get(combinedHeader); + FormItemResult item = customizedLabelCompbinedItemsMap.get(combinedHeader); if (item == null) { // 如果数据库中没有该项,可能是用户自己定义的项,忽略 @@ -766,7 +762,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res String combinedLabel = StringUtils.isBlank(groupLabel) ? item.getLabel() : groupLabel.concat(":").concat(item.getLabel()); columnWrapper.setCombinedLabel(combinedLabel); columnWrapper.setColumnName((columnNum == null || columnNum == 0) ? columnName : columnName + columnNum); - columnWrapper.setColIndex(entry.getValue()); + columnWrapper.setColIndex(labelAndColumnIndexs.getValue()); columnWrapper.setRequired(item.getRequired()); columnWrapper.setOptionSourceType(item.getOptionSourceType()); @@ -802,15 +798,14 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } /** - * @description 合并表头 - * Map> + * @description 合并多级表头,竖着将多级表头放入同一个list,然后以列号为key,list为value,放入map * - * @param headList - * @return + * @param headList 表头列表,每一个元素都是一行表头。Map结构:<列号:某级表头中文> + * @return 表头列表,Map结构:<列号:[一级表头中文,二级表头中文,三级表头中文]> * @author wxz * @date 2021.10.27 16:17:34 */ - private Map> mergeHead(List> headList) { + private Map> mergeMultiLevelHeadLabels(List> headList) { Map lastNotNullHeads = new LinkedHashMap<>(); @@ -1045,7 +1040,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res HashMap existingResiCategories = new HashMap<>(); HashMap newResiCategories = new HashMap<>(); - for (String categoryColumnName : resiCategoryItemsCache.get().keySet()) { + for (String categoryColumnName : resiCategoryColumnNameAndLabel.get().keySet()) { String oldCategoryValue = existingResiMap.get(categoryColumnName); String newCategoryValue = newResiMap.get(categoryColumnName); @@ -1091,7 +1086,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res HashMap oldCategories = new HashMap<>(); HashMap newCategories = new HashMap<>(); - Set categoryColumnNames = resiCategoryItemsCache.get().keySet(); + Set categoryColumnNames = resiCategoryColumnNameAndLabel.get().keySet(); for (String categoryColumnName : categoryColumnNames) { String existingColumnValue = existingResiMap.get(categoryColumnName); String newColumnValue = newResiMap.get(categoryColumnName); @@ -1142,7 +1137,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res */ private void saveSubTableInfoToCategoryChangedResiCache(String icResiId, String columnName) { - ResiImportResiCategoryChangedCache cc = categoryChangedResi.get(); + ResiImportResiCategoryChangedCache cc = newlyOrChangedResi.get(); Map newResis = cc.getNewResis(); Map categoryChangedResis = cc.getCategoryChangedResis(); Map transferedResis = cc.getTransferedResis(); @@ -1224,7 +1219,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res String beforeValueName = "0".equals(oldColumnValue) ? "否" : "是"; String newValueName = "0".equals(newColumnValue) ? "否" : "是"; - String label = resiCategoryItemsCache.get().get(columnName); + String label = resiCategoryColumnNameAndLabel.get().get(columnName); sbBefore.append(label).append(":").append(beforeValueName).append("\n"); sbAfter.append(label).append(":").append(newValueName).append("\n"); From 2f6548cfef060b377cdf4a49b3150f6e255c8c68 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 25 Jan 2022 11:06:03 +0800 Subject: [PATCH 2/7] =?UTF-8?q?/gov/org/building/treelist=E8=BF=94?= =?UTF-8?q?=E5=8F=82=E5=A2=9E=E5=8A=A0showNum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/BuildingTreeLevelDTO.java | 9 ++++-- .../service/impl/BuildingServiceImpl.java | 31 ++++++++++++++++++- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/BuildingTreeLevelDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/BuildingTreeLevelDTO.java index 4ffa533faf..1ffb1b94c1 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/BuildingTreeLevelDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/BuildingTreeLevelDTO.java @@ -20,7 +20,6 @@ package com.epmet.dto; import lombok.Data; import java.io.Serializable; -import java.util.Date; import java.util.List; @@ -49,7 +48,13 @@ public class BuildingTreeLevelDTO implements Serializable { private String longitude; private String latitude; - + /** + * 选中组织:展示下级有children,例如,山东路街道(7)表示几个社区 + * 选中网格:展示下级有几个小区 + * 选中小区:展示有几栋楼 + * 选中具体某个楼栋:1号楼(70/100)表示共有100户,有70户住人了 + */ + private String showNum; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java index c51ffbb4f1..15224eca5d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; @@ -126,6 +128,8 @@ public class BuildingServiceImpl implements BuildingService { buildingTreeLevelDTO.setLongitude(item.getLongitude()); buildingTreeLevelDTO.setLatitude(item.getLatitude()); buildingTreeLevelDTO.setChildren(new ArrayList<>()); + //当前组织有几个下级组织 + buildingTreeLevelDTO.setShowNum(StrConstant.EPMETY_STR); return buildingTreeLevelDTO; }).collect(Collectors.toList()); @@ -149,6 +153,8 @@ public class BuildingServiceImpl implements BuildingService { buildingTreeLevelDTO.setLongitude(item.getLongitude()); buildingTreeLevelDTO.setLatitude(item.getLatitude()); buildingTreeLevelDTO.setChildren(new ArrayList<>()); + //当前网格下有几个小区 + buildingTreeLevelDTO.setShowNum(StrConstant.EPMETY_STR); return buildingTreeLevelDTO; }).collect(Collectors.toList()); @@ -172,6 +178,8 @@ public class BuildingServiceImpl implements BuildingService { buildingTreeLevelDTO.setLongitude(item.getLongitude()); buildingTreeLevelDTO.setLatitude(item.getLatitude()); buildingTreeLevelDTO.setChildren(new ArrayList<>()); + //当前小区下,有几栋楼 + buildingTreeLevelDTO.setShowNum(StrConstant.EPMETY_STR); return buildingTreeLevelDTO; }).collect(Collectors.toList()); @@ -198,6 +206,25 @@ public class BuildingServiceImpl implements BuildingService { buildingTreeLevelDTO.setLongitude(item.getLongitude()); buildingTreeLevelDTO.setLatitude(item.getLatitude()); buildingTreeLevelDTO.setChildren(new ArrayList<>()); + //当前楼栋共有多少户,有多少户有人住 + buildingTreeLevelDTO.setShowNum(StrConstant.EPMETY_STR); + // 总单元数 + Integer totalUnitNum = null == item.getTotalUnitNum() ? NumConstant.ZERO : item.getTotalUnitNum(); + // 总楼层总数 + Integer totalFloorNum = null == item.getTotalFloorNum() ? NumConstant.ZERO : item.getTotalFloorNum(); + // *总户数 + Integer totalHouseNum = null == item.getTotalHouseNum() ? NumConstant.ZERO : item.getTotalHouseNum(); + //总户数=以上三个数相乘 + Integer total=totalUnitNum*totalFloorNum*totalHouseNum; + //已经添加了多少户 + LambdaQueryWrapper icHouseEntityWrapper = new QueryWrapper().lambda() + .in(IcHouseEntity::getBuildingId, item.getId()); + int count= icHouseDao.selectCount(icHouseEntityWrapper); + if(NumConstant.ZERO==total){ + buildingTreeLevelDTO.setShowNum(String.format("%s/%s",count,count)); + }else{ + buildingTreeLevelDTO.setShowNum(String.format("%s/%s",count,total)); + } return buildingTreeLevelDTO; }).collect(Collectors.toList()); @@ -400,7 +427,9 @@ public class BuildingServiceImpl implements BuildingService { recursionCovertToTree(agencyEntity,customerAgencyList); } parent.setChildren(subList); - + if(!"building".equals(parent.getLevel())){ + parent.setShowNum(CollectionUtils.isEmpty(subList) ? NumConstant.ZERO_STR : String.valueOf(subList.size())); + } } From cf5f86dd793607e1788608297af4978b25c3a6c8 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 25 Jan 2022 11:06:48 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=94=99=E8=AF=AF=EF=BC=8C=E7=BC=96=E8=AF=91=E4=B8=8D?= =?UTF-8?q?=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/service/impl/IcResiUserImportServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 89e4161d90..8bc57fdc3b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -73,7 +73,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res /** * 导入的居民中,新增或者变动的居民 */ - public static final ThreadLocal newlyChangedResi = new ThreadLocal<>(); + public static final ThreadLocal newlyOrChangedResi = new ThreadLocal<>(); /** * 居民类别items列表。 From 1add5cff17fc361904d9c1e5a0ef10230c3979b5 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 25 Jan 2022 11:22:49 +0800 Subject: [PATCH 4/7] =?UTF-8?q?/gov/org/building/treelist=E8=BF=94?= =?UTF-8?q?=E5=8F=82=E5=A2=9E=E5=8A=A0showName?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/BuildingTreeLevelDTO.java | 2 +- .../main/java/com/epmet/service/impl/BuildingServiceImpl.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/BuildingTreeLevelDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/BuildingTreeLevelDTO.java index 1ffb1b94c1..195336b46e 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/BuildingTreeLevelDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/BuildingTreeLevelDTO.java @@ -55,6 +55,6 @@ public class BuildingTreeLevelDTO implements Serializable { * 选中具体某个楼栋:1号楼(70/100)表示共有100户,有70户住人了 */ private String showNum; - + private String showName; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java index 15224eca5d..ed8b1b7b85 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java @@ -430,6 +430,7 @@ public class BuildingServiceImpl implements BuildingService { if(!"building".equals(parent.getLevel())){ parent.setShowNum(CollectionUtils.isEmpty(subList) ? NumConstant.ZERO_STR : String.valueOf(subList.size())); } + parent.setShowName(String.format("%s(%s)",parent.getLabel(),parent.getShowNum())); } From caf71e1e3b8fcac51c5187e9b1a6a6f18754346f Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 25 Jan 2022 19:33:48 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=201.=E8=B0=83?= =?UTF-8?q?=E5=8A=A8=E5=B1=85=E6=B0=91=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C?= =?UTF-8?q?=E5=8F=AA=E5=A2=9E=E5=8A=A0=E4=BA=86=E8=B0=83=E5=8A=A8=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=EF=BC=8C=E6=B2=A1=E5=A2=9E=E5=8A=A0=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E8=AE=B0=E5=BD=95=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IcResiUserImportServiceImpl.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 8bc57fdc3b..fa540e5334 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -1406,32 +1406,38 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res newAgencyId, newGridId, newvillageId, newBuildId, newUnitId, newHomeId, oldOrg, newOrg); icUserTransferRecordDao.insert(transferRecord); - // 保存 changeRecord - IcUserChangeRecordEntity changeRecord = fillChangeRecord(customerId, resiId, resiInfo.getName(), transferRecord.getId(), operator.getStaffId(), + // 保存 调动changeRecord + IcUserChangeRecordEntity transferChangeRecord = fillChangeRecord(customerId, resiId, resiInfo.getName(), transferRecord.getId(), operator.getStaffId(), operator.getRealName(), sbBefore.toString(), sbAfter.toString(), "transfer", "调动", "", now); - icUserChangeRecordDao.insert(changeRecord); + icUserChangeRecordDao.insert(transferChangeRecord); + + // 保存 类别变更changeRecord + IcUserChangeRecordEntity categoryChangeRecord = fillChangeRecord(customerId, resiId, resiInfo.getName(), transferRecord.getId(), operator.getStaffId(), + operator.getRealName(), sbBefore.toString(), sbAfter.toString(), "category", "类别", "", now); + icUserChangeRecordDao.insert(categoryChangeRecord); // 保存 changeDetail for (Map.Entry oldCategories : oldData.getCategories().entrySet()) { String key = oldCategories.getKey(); - String value = oldCategories.getValue(); + // String value = oldCategories.getValue(); // 之前是这个类型,那这个类型需要-1 - IcUserChangeDetailedEntity changeDetail = fillChangeDetail(customerId, resiId, changeRecord.getId(), oldData.getAgencyId(), + IcUserChangeDetailedEntity changeDetail = fillChangeDetail(customerId, resiId, categoryChangeRecord.getId(), oldData.getAgencyId(), oldData.getGridId(), oldData.getVillageId(), oldData.getBuildId(), oldData.getUnitId(), - oldData.getHomeId(), "category", "调动", key, -1, resiInfo.getPids()); + oldData.getHomeId(), categoryChangeRecord.getType(), categoryChangeRecord.getTypeName(), key, -1, resiInfo.getPids()); icUserChangeDetailedDao.insert(changeDetail); } + // 保存 changeDetail for (Map.Entry newCategories : newData.getCategories().entrySet()) { String key = newCategories.getKey(); - String value = newCategories.getValue(); + // String value = newCategories.getValue(); // 现在是这个类型,这个类型要+1 - IcUserChangeDetailedEntity changeDetail = fillChangeDetail(customerId, resiId, changeRecord.getId(), newData.getAgencyId(), + IcUserChangeDetailedEntity changeDetail = fillChangeDetail(customerId, resiId, categoryChangeRecord.getId(), newData.getAgencyId(), newData.getGridId(), newData.getVillageId(), newData.getBuildId(), newData.getUnitId(), - newData.getHomeId(), "category", "调动", key, 1, resiInfo.getPids()); + newData.getHomeId(), categoryChangeRecord.getType(), categoryChangeRecord.getTypeName(), key, 1, resiInfo.getPids()); icUserChangeDetailedDao.insert(changeDetail); } From fd4cccef307739285b78862ec2ca3f950ee9aaab Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 25 Jan 2022 20:13:19 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=201.=E5=B1=85?= =?UTF-8?q?=E6=B0=91=E4=BF=A1=E6=81=AF=E5=AF=BC=E5=85=A5=EF=BC=8C=E6=8E=92?= =?UTF-8?q?=E9=99=A4=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E5=88=97=E7=9A=84?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IcResiUserImportServiceImpl.java | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 0b554c980e..c44cce4b73 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -85,6 +85,13 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res @Autowired private IcResiUserDao icResiUserDao; + /** + * 字表中不需要的列 + */ + private List subTableNeedlessColumns = Arrays.asList("GRID_ID", "VILLAGE_ID", "BUILD_ID", "UNIT_ID", "HOME_ID", + "IS_BDHJ", "NAME", "MOBILE", "GENDER", "ID_CARD", + "BIRTHDAY", "CONTACTS", "CONTACTS_MOBILE"); + /** * @description 列信息封装 * @@ -353,7 +360,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res LinkedHashMap columnAndValues = new LinkedHashMap<>(); try { - convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues); + convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues, true); columnAndValues.put("IS_ENSURE_HOUSE", "0"); columnAndValues.put("IS_OLD_PEOPLE", "0"); @@ -434,12 +441,16 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res for (Map row : dataRows) { try { - convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues); + convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues, false); // 检验身份证号 String idCard = columnAndValues.get("ID_CARD"); if (StringUtils.isBlank(idCard)) { - throw new RenException(EpmetErrorCode.IDCARDNO_ERROR.getCode(), String.format("用户【%s】身份证号未填写或格式错误", columnAndValues.get("NAME"))); + String resiName = columnAndValues.get("NAME"); + if (resiName == null) { + resiName = ""; + } + throw new RenException(EpmetErrorCode.IDCARDNO_ERROR.getCode(), String.format("用户【%s】身份证号未填写或格式错误", resiName)); } // 检查用户是否存在 @@ -538,10 +549,11 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * @param currUserAgencyId 当前用户所属机构ID * @param checkBoxOptionColumnIdxAndLabel 复选框options列表。key:列号,value:复选框中文 * @param target 要将数据放到哪个对象中 + * @param isPrimaryTable 是否是主表 */ private void convertColumnWrappers2Map4Persist(Map headerColumnWrapper, Map row, String currUserAgencyId, Map checkBoxOptionColumnIdxAndLabel, - LinkedHashMap target) { + LinkedHashMap target, boolean isPrimaryTable) { boolean interupt = false; @@ -588,10 +600,21 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res columnWrapper.setColValue(checkBoxColValue); } - // requiredColumns中的值为必填项 - if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.colValue)) { - interupt = true; - errorColumnNames.add(columnWrapper.combinedLabel); + // requiredColumns中的值不在排除字段中 && 是必填 && 未填写 + if (isPrimaryTable) { + // 主表没有需要排除的列 + if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.colValue)) { + interupt = true; + errorColumnNames.add(columnWrapper.combinedLabel); + } + } else { + // 从表需要排除掉一些不必要校验的列 + if (!subTableNeedlessColumns.contains(columnWrapper.columnName) + && columnWrapper.getRequired() == 1 + && StringUtils.isBlank(columnWrapper.colValue)) { + interupt = true; + errorColumnNames.add(columnWrapper.combinedLabel); + } } target.put(columnWrapper.columnName, columnWrapper.colValue); From 4623a8fe8e6b136bc6060f656e0d2d9fc200eedc Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 26 Jan 2022 08:36:48 +0800 Subject: [PATCH 7/7] =?UTF-8?q?/heart/serviceitem/dict-list=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=8F=82type?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/demand/ServiceItemSelectFormDTO.java | 24 ++++++++++++++++++ .../IcServiceItemDictController.java | 7 ++++-- .../service/IcServiceItemDictService.java | 8 ++++++ .../impl/IcServiceItemDictServiceImpl.java | 25 +++++++++++++++++++ 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ServiceItemSelectFormDTO.java diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ServiceItemSelectFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ServiceItemSelectFormDTO.java new file mode 100644 index 0000000000..1d836fd259 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ServiceItemSelectFormDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dto.form.demand; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +@Data +public class ServiceItemSelectFormDTO implements Serializable { + private static final long serialVersionUID = 1689002457565460495L; + + public interface AddUserInternalGroup { + } + /** + * all:查询全部 + * usable:可用的 + * 默认查询全部 + */ + private String type; + + @NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class) + private String customerId; +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceItemDictController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceItemDictController.java index d6234d4a2c..12b617b6bc 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceItemDictController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceItemDictController.java @@ -8,6 +8,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.demand.ServiceItemAddFormDTO; import com.epmet.dto.form.demand.ServiceItemPageFormDTO; +import com.epmet.dto.form.demand.ServiceItemSelectFormDTO; import com.epmet.dto.form.demand.StatusFormDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.ServiceItemResultDTO; @@ -79,7 +80,9 @@ public class IcServiceItemDictController { * @return */ @PostMapping("dict-list") - public Result> queryDictList(@LoginUser TokenDto tokenDto){ - return new Result>().ok(icServiceItemDictService.queryDictList(tokenDto.getCustomerId())); + public Result> queryDictList(@LoginUser TokenDto tokenDto,@RequestBody ServiceItemSelectFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,ServiceItemSelectFormDTO.AddUserInternalGroup.class); + return new Result>().ok(icServiceItemDictService.queryDictListForSelect(formDTO)); } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceItemDictService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceItemDictService.java index fc671c3cdc..4e704aff54 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceItemDictService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceItemDictService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.form.demand.ServiceItemAddFormDTO; import com.epmet.dto.form.demand.ServiceItemPageFormDTO; +import com.epmet.dto.form.demand.ServiceItemSelectFormDTO; import com.epmet.dto.form.demand.StatusFormDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.ServiceItemResultDTO; @@ -62,4 +63,11 @@ public interface IcServiceItemDictService extends BaseService queryDictList(String customerId); + + /** + * 前端调用此接口 + * @param formDTO + * @return + */ + List queryDictListForSelect(ServiceItemSelectFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceItemDictServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceItemDictServiceImpl.java index 2d5e5a530d..76e431aa44 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceItemDictServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceItemDictServiceImpl.java @@ -27,6 +27,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.dao.IcServiceItemDictDao; import com.epmet.dto.form.demand.ServiceItemAddFormDTO; import com.epmet.dto.form.demand.ServiceItemPageFormDTO; +import com.epmet.dto.form.demand.ServiceItemSelectFormDTO; import com.epmet.dto.form.demand.StatusFormDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.ServiceItemResultDTO; @@ -146,5 +147,29 @@ public class IcServiceItemDictServiceImpl extends BaseServiceImpl queryDictListForSelect(ServiceItemSelectFormDTO formDTO) { + List resultList = new ArrayList<>(); + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcServiceItemDictEntity::getCustomerId, formDTO.getCustomerId()) + .eq(StringUtils.isNotBlank(formDTO.getType()) && "usable".equals(formDTO.getType()), IcServiceItemDictEntity::getUsableFlag, true) + .orderByAsc(IcServiceItemDictEntity::getSort); + List list=baseDao.selectList(query); + for(IcServiceItemDictEntity entity:list){ + OptionDTO optionDTO=new OptionDTO(); + optionDTO.setLabel(entity.getCategoryName()); + optionDTO.setValue(entity.getCategoryCode()); + optionDTO.setAwardPoint(entity.getAwardPoint()); + resultList.add(optionDTO); + } + return resultList; + } + } \ No newline at end of file