diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java index fd4a97d11e..2e1d7d5bea 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java @@ -74,6 +74,8 @@ public interface StrConstant { */ String STAR="*"; + String QUESTION_MARK="?"; + /** * 空字符串 */ diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/ResiCategoryStatsConfigController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/ResiCategoryStatsConfigController.java index a3d72acc37..fdec343adf 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/ResiCategoryStatsConfigController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/ResiCategoryStatsConfigController.java @@ -101,8 +101,8 @@ public class ResiCategoryStatsConfigController { if(null == level2 || level2==0){ return new Result().error(8001,"等级2阈值需大于0"); } - if(level1<=level2){ - return new Result().error(8001,"等级1阈值需大于等级2阈值"); + if(level2<=level1){ + return new Result().error(8001,"等级2阈值需大于等级1阈值"); } } resiCategoryStatsConfigService.update(customerId,formDTO); 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 073df83da5..08187f54b4 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 @@ -29,6 +29,7 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; 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.ExceptionUtils; @@ -123,6 +124,8 @@ public class IcResiUserController { log.error("创建数字赋能平台上传目录失败"); } } + IC_RESI_UPLOAD_DIR = importDir; + Path exportDir = Paths.get(home, "epmet_files", "ic_user_export"); if (Files.notExists(exportDir)) { try { @@ -355,16 +358,14 @@ public class IcResiUserController { CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId()); String staffOrgPath = null; if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { - staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(":").concat(staffInfoCacheResult.getAgencyId()); + staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(StrConstant.COLON).concat(staffInfoCacheResult.getAgencyId()); } else { staffOrgPath = staffInfoCacheResult.getAgencyId(); } pageFormDTO.setCustomerId(customerId); pageFormDTO.setPageFlag(false); - List resiFormAllItems = icResiUserService.listFormItems(customerId, IC_RESI_FORM_CODE); - Map> otherSheetItems = resiFormAllItems.stream() - .collect(Collectors.groupingBy(FormItemResult::getTableName, Collectors.toMap(FormItemResult::getColumnName, o -> o))); + //获取模版文件 File file = getExportTemplateFile(customerId); @@ -376,27 +377,35 @@ public class IcResiUserController { pageFormDTO.setPageNo(NumConstant.ONE); //子表是否停止查询 Set stopSearchSet = new HashSet<>(); - Map childTableWriteSheetMap = new HashMap<>(); + + //获取表单项 + List resiFormAllItems = icResiUserService.listFormItems(customerId, IC_RESI_FORM_CODE); + //每个表对应的 item ;key:表名,value:<字段名:item对象> + Map> tableItemMap = resiFormAllItems.stream() + .collect(Collectors.groupingBy(FormItemResult::getTableName, + Collectors.toMap(o->o.getColumnName().concat(NumConstant.ZERO == o.getColumnNum()? StrConstant.EPMETY_STR:o.getColumnNum().toString()), o -> o))); + Map childTableWriteSheetMap = new HashMap<>(); //表数据写入 //通过枚举获取相关表并按照sheetNo排序 - List resiTableList = Arrays.stream(IcResiUserTableEnum.values()).sorted(Comparator.comparing(IcResiUserTableEnum::getSheetNo)).collect(Collectors.toList()); + List resiTableList = Arrays.stream(IcResiUserTableEnum.values()) + .sorted(Comparator.comparing(IcResiUserTableEnum::getSheetNo)) + .collect(Collectors.toList()); for (IcResiUserTableEnum tableEnum : resiTableList) { String tableName = tableEnum.getTableName(); pageFormDTO.setPageNo(NumConstant.ONE); //循环一次 写入每个sheet do { - Map itemMap1 = otherSheetItems.get(tableName); - Map> resiChildMap = icResiUserService.getDataForExport(itemMap1, tableName, pageFormDTO, staffInfoCacheResult.getAgencyId(), staffOrgPath); + Map> resiChildMap = icResiUserService.getDataForExport(tableItemMap.get(tableName), tableName, pageFormDTO, staffInfoCacheResult.getAgencyId(), staffOrgPath); //如果 返回的条数小于每页显示的数 则退出查询 if (resiChildMap.keySet().size() < pageFormDTO.getPageSize()) { stopSearchSet.add(tableName); } - //构建新的sheet - WriteSheet childWriteSheet = childTableWriteSheetMap.getOrDefault(tableName,EasyExcel.writerSheet(tableEnum.getSheetNo()).build()); - childTableWriteSheetMap.put(tableName, childWriteSheet); + //如果没有 构建新的writeSheet + WriteSheet writeSheet = childTableWriteSheetMap.getOrDefault(tableName,EasyExcel.writerSheet(tableEnum.getSheetNo()).build()); + childTableWriteSheetMap.putIfAbsent(tableName, writeSheet); //写入数据 - excelWriter.fill(new FillWrapper("t" + (tableEnum.getSheetNo() + NumConstant.ONE), resiChildMap.values()), childWriteSheet); + excelWriter.fill(new FillWrapper("t" + (tableEnum.getSheetNo() + NumConstant.ONE), resiChildMap.values()), writeSheet); pageFormDTO.setPageNo(pageFormDTO.getPageNo() + NumConstant.ONE); //重置数据 resiChildMap.clear(); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java index c7462dbc07..d0ff2a10e9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java @@ -67,7 +67,7 @@ public class ICWarnStatsEventListener implements MessageListenerConcurrently { lock = distributedLock.getLock(String.format("lock:ic_warn_stats:%s", obj.getCustomerId()), 30L, 30L, TimeUnit.SECONDS); //待执行方法 - SpringContextUtils.getBean(StatsResiWarnService.class).resiWarnByOne(obj.getCustomerId(), obj.getIcResiUser()); + SpringContextUtils.getBean(StatsResiWarnService.class).resiWarn(obj.getCustomerId()); } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【开放数据事件监听器】-客户居民信息变动MQ失败:".concat(ExceptionUtils.getErrorStackTrace(e))); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index c953563c81..c97cdbabdd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -680,6 +680,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl stringMap = icResiUserImportService.listRemoteOptions(columnWrappers, v.getOptionSourceValue(), currentStaffAgencyId); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java index a9a378cdd0..60d355cbf4 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java @@ -102,7 +102,9 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { for (IcStatsResiWarnEntity item : icStatsResiWarnEntityList) { IcStatsResiWarnBuildingResultDTO resiWarnBuildingResultDTO = warnResultMap.get(item.getConfigId()); - + if(null == resiWarnBuildingResultDTO){ + continue; + } //每栋楼的数量 Integer count = Optional.ofNullable(item.getCount()).orElse(0); @@ -114,18 +116,15 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { if(0 == count){ continue; } - if(null!=levle1 && count>levle1){ - resiWarnBuildingResultDTO.setLevelCount1(resiWarnBuildingResultDTO.getLevelCount1()+1); - resiWarnBuildingResultDTO.getBuildingIdList1().add(item.getBuildingId()); - } - if(null!=levle1 && null!=levle2 && count<=levle1 && count>=levle2){ + if(null!=levle2 && count>levle2){ resiWarnBuildingResultDTO.setLevelCount2(resiWarnBuildingResultDTO.getLevelCount2()+1); resiWarnBuildingResultDTO.getBuildingIdList2().add(item.getBuildingId()); } - if(null!=levle2 && null!=levle3 && count<=levle2 && count>=levle3){ - resiWarnBuildingResultDTO.setLevelCount3(resiWarnBuildingResultDTO.getLevelCount3()+1); - resiWarnBuildingResultDTO.getBuildingIdList3().add(item.getBuildingId()); + if(null!=levle1 && null!=levle2 && count<=levle2 && count>=levle1){ + resiWarnBuildingResultDTO.setLevelCount1(resiWarnBuildingResultDTO.getLevelCount1()+1); + resiWarnBuildingResultDTO.getBuildingIdList1().add(item.getBuildingId()); } + } return result;