diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml index 8c4d55e2a5..3fd2eae45e 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml @@ -232,7 +232,8 @@ fi.LIST_DISPLAY, fi.DATA_ANALYSE, fi.COLUMN_NAME, - fi.COLUMN_NUM + fi.COLUMN_NUM, + fi.MULTI_SELECT FROM ic_form_item fi left join ic_form_item_group g on (fi.ITEM_GROUP_ID = g.ID and fi.DEL_FLAG = 0 and g.DEL_FLAG = 0) left join ic_form_item pitem on (pitem.DEL_FLAG = 0 and fi.PARENT_ITEM_ID = pitem.ID) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index d8b61f1937..607d749942 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -414,10 +414,10 @@ public class IcResiUserController implements ResultDataResolver { */ @NoRepeatSubmit @RequestMapping(value = "/exportExcelCustom") - public void exportExcelCustom(/*@LoginUser*/ TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { + public void exportExcelCustom(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { //TODO 去掉 - tokenDto.setUserId("73ae6280e46a6653a5605d51d5462725"); - tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); + //tokenDto.setUserId("73ae6280e46a6653a5605d51d5462725"); + //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); pageFormDTO.setCustomerId(tokenDto.getCustomerId()); pageFormDTO.setStaffId(tokenDto.getUserId()); ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class,ExportGroup.class); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java index e7051a7710..47c3d6c4b8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java @@ -30,6 +30,7 @@ import com.epmet.service.IcResiUserImportService; import com.epmet.service.IcResiUserService; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.google.common.base.Joiner; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import lombok.extern.slf4j.Slf4j; @@ -111,6 +112,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { result.forEach(o -> { List singleResult = new ArrayList<>(); Map originalConditionMap = new ConcurrentHashMap<>(); + log.info("==========居民信息:{}",JSON.toJSONString(o)); o.forEach((key,value) -> { List showSqlColumns = exportConfigData.getShowSqlColumns(); Map itemMap = showSqlColumns.stream().collect(Collectors.toMap(IcCustomExportResultDTO.SqlColumn::getColumnName, item -> item)); @@ -130,12 +132,10 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { ExportResiUserItemDTO exportResiUserItemDTO = itemOriginMap.get(tableName); FormItemResult formItemResult = exportResiUserItemDTO.getItemMap().get(columnName); - if (StringUtils.isBlank(vauleStr)){ - return; - } String newValue = vauleStr; - if (Constant.OPITON_SOURCE_REMOTE.equals(sqlColumn.getOptionSourceType())) { + if (Constant.OPITON_SOURCE_REMOTE.equals(sqlColumn.getOptionSourceType())&&StringUtils.isNotBlank(vauleStr)) { putRemoteValue(exportResiUserItemDTO.getRemoteItemConditionMap().get(itemId), staffInfoCacheResult.getAgencyId(), o,originalConditionMap, formItemResult, columnName, vauleStr); + newValue = String.valueOf(o.get(columnName)); } else if (Constant.OPITON_SOURCE_LOCAL.equals(sqlColumn.getOptionSourceType())){ newValue = putOptionValue(formItemResult, vauleStr); } @@ -178,11 +178,14 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { private static Map> remoteOptionCacheMap = new HashMap<>(); private void putRemoteValue(Set conditionItemSet, String currentStaffAgencyId, Map map, Map originalConditionMap, FormItemResult e, String columnName, String vauleStr) { try { + log.info("========putRemoteValue:formItemResult:{}",e.getLabel()); + log.info("========putRemoteValue:columnName:{},vauleStr:{}",columnName,vauleStr); Map columnWrappers = new HashMap<>(); if (e.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){ for (FormItemResult o : conditionItemSet) { - Object conditionValue = originalConditionMap.getOrDefault(columnName, map.get(columnName)); - originalConditionMap.putIfAbsent(columnName,conditionValue.toString()); + String conditionColumnName = o.getColumnNum() == NumConstant.ZERO? o.getColumnName():o.getColumnName().concat(o.getColumnNum().toString()); + Object conditionValue = originalConditionMap.getOrDefault(conditionColumnName, map.get(conditionColumnName)); + originalConditionMap.putIfAbsent(conditionColumnName,conditionValue.toString()); IcResiUserImportServiceImpl.ColumnWrapper value = new IcResiUserImportServiceImpl.ColumnWrapper(); value.setColValue(conditionValue.toString()); columnWrappers.put(o.getItemId(), value); @@ -197,6 +200,8 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { String[] parts = icResiUserImportService.splitOptionSourceUrl(e.getOptionSourceValue()); Map remoteOptions = icResiUserImportService.listRemoteOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query"); + log.info("========putRemoteValue:条件:{}", JSON.toJSONString(columnWrappers)); + log.info("========putRemoteValue:结果:{}", JSON.toJSONString(remoteOptions)); if (FormItemTypeEnum.CHECKBOX.getCode().equals(e.getItemType())) { remoteOptions.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? StrConstant.YES : StrConstant.NO)); } else if (FormItemTypeEnum.SELECT.getCode().equals(e.getItemType())) { @@ -208,7 +213,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { }); } } - } catch (Exception ex) { + } catch (Exception ex) { log.error("listRemoteOptions url", ex); } } @@ -217,6 +222,16 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { FormItemTypeEnum itemTypeEnum = FormItemTypeEnum.getEnum(e.getItemType()); switch (itemTypeEnum) { case CHECKBOX: + if (e.getMultiSelect()){ + List valueList = new ArrayList<>(); + e.getOptions().forEach(option->{ + if (vauleStr.contains(option.getValue())){ + valueList.add(option.getLabel()); + } + }); + return Joiner.on(",").join(valueList); + + } for (OptionDTO dto : e.getOptions()) { return vauleStr.contains(dto.getValue()) ? StrConstant.YES : StrConstant.NO; } @@ -246,7 +261,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { log.error("获取bean IcResiUserService 失败"); return null; } - List resiFormAllItems = icResiUserService.listFormItems(customerId, IcFormCodeEnum.RESI_BASE_INFO.getCode()); + List resiFormAllItems = this.icResiUserService.listFormItems(customerId, IcFormCodeEnum.RESI_BASE_INFO.getCode()); Map allItemMap = resiFormAllItems.stream().collect(Collectors.toMap(FormItemResult::getItemId, o -> o)); Map map = new HashMap<>(); allItemMap.values().forEach(item->{