Browse Source

Merge branch 'develop' of http://git.elinkit.com.cn:7070/r/epmet-cloud into release_temp

dev_shibei_match
jianjun 4 years ago
parent
commit
dfd5d86d5f
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java
  2. 4
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/ResiCategoryStatsConfigController.java
  3. 33
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  4. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java
  5. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  6. 17
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java

2
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 STAR="*";
String QUESTION_MARK="?";
/** /**
* 空字符串 * 空字符串
*/ */

4
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){ if(null == level2 || level2==0){
return new Result().error(8001,"等级2阈值需大于0"); return new Result().error(8001,"等级2阈值需大于0");
} }
if(level1<=level2){ if(level2<=level1){
return new Result().error(8001,"等级1阈值需大于等级2阈值"); return new Result().error(8001,"等级2阈值需大于等级1阈值");
} }
} }
resiCategoryStatsConfigService.update(customerId,formDTO); resiCategoryStatsConfigService.update(customerId,formDTO);

33
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.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant; 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.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.ExceptionUtils;
@ -123,6 +124,8 @@ public class IcResiUserController {
log.error("创建数字赋能平台上传目录失败"); log.error("创建数字赋能平台上传目录失败");
} }
} }
IC_RESI_UPLOAD_DIR = importDir;
Path exportDir = Paths.get(home, "epmet_files", "ic_user_export"); Path exportDir = Paths.get(home, "epmet_files", "ic_user_export");
if (Files.notExists(exportDir)) { if (Files.notExists(exportDir)) {
try { try {
@ -355,16 +358,14 @@ public class IcResiUserController {
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId()); CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId());
String staffOrgPath = null; String staffOrgPath = null;
if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { 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 { } else {
staffOrgPath = staffInfoCacheResult.getAgencyId(); staffOrgPath = staffInfoCacheResult.getAgencyId();
} }
pageFormDTO.setCustomerId(customerId); pageFormDTO.setCustomerId(customerId);
pageFormDTO.setPageFlag(false); pageFormDTO.setPageFlag(false);
List<FormItemResult> resiFormAllItems = icResiUserService.listFormItems(customerId, IC_RESI_FORM_CODE);
Map<String, Map<String, FormItemResult>> otherSheetItems = resiFormAllItems.stream()
.collect(Collectors.groupingBy(FormItemResult::getTableName, Collectors.toMap(FormItemResult::getColumnName, o -> o)));
//获取模版文件 //获取模版文件
File file = getExportTemplateFile(customerId); File file = getExportTemplateFile(customerId);
@ -376,27 +377,35 @@ public class IcResiUserController {
pageFormDTO.setPageNo(NumConstant.ONE); pageFormDTO.setPageNo(NumConstant.ONE);
//子表是否停止查询 //子表是否停止查询
Set<String> stopSearchSet = new HashSet<>(); Set<String> stopSearchSet = new HashSet<>();
Map<String, WriteSheet> childTableWriteSheetMap = new HashMap<>();
//获取表单项
List<FormItemResult> resiFormAllItems = icResiUserService.listFormItems(customerId, IC_RESI_FORM_CODE);
//每个表对应的 item ;key:表名,value:<字段名:item对象>
Map<String, Map<String, FormItemResult>> 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<String, WriteSheet> childTableWriteSheetMap = new HashMap<>();
//表数据写入 //表数据写入
//通过枚举获取相关表并按照sheetNo排序 //通过枚举获取相关表并按照sheetNo排序
List<IcResiUserTableEnum> resiTableList = Arrays.stream(IcResiUserTableEnum.values()).sorted(Comparator.comparing(IcResiUserTableEnum::getSheetNo)).collect(Collectors.toList()); List<IcResiUserTableEnum> resiTableList = Arrays.stream(IcResiUserTableEnum.values())
.sorted(Comparator.comparing(IcResiUserTableEnum::getSheetNo))
.collect(Collectors.toList());
for (IcResiUserTableEnum tableEnum : resiTableList) { for (IcResiUserTableEnum tableEnum : resiTableList) {
String tableName = tableEnum.getTableName(); String tableName = tableEnum.getTableName();
pageFormDTO.setPageNo(NumConstant.ONE); pageFormDTO.setPageNo(NumConstant.ONE);
//循环一次 写入每个sheet //循环一次 写入每个sheet
do { do {
Map<String, FormItemResult> itemMap1 = otherSheetItems.get(tableName); Map<String, Map<String, Object>> resiChildMap = icResiUserService.getDataForExport(tableItemMap.get(tableName), tableName, pageFormDTO, staffInfoCacheResult.getAgencyId(), staffOrgPath);
Map<String, Map<String, Object>> resiChildMap = icResiUserService.getDataForExport(itemMap1, tableName, pageFormDTO, staffInfoCacheResult.getAgencyId(), staffOrgPath);
//如果 返回的条数小于每页显示的数 则退出查询 //如果 返回的条数小于每页显示的数 则退出查询
if (resiChildMap.keySet().size() < pageFormDTO.getPageSize()) { if (resiChildMap.keySet().size() < pageFormDTO.getPageSize()) {
stopSearchSet.add(tableName); stopSearchSet.add(tableName);
} }
//构建新的sheet //如果没有 构建新的writeSheet
WriteSheet childWriteSheet = childTableWriteSheetMap.getOrDefault(tableName,EasyExcel.writerSheet(tableEnum.getSheetNo()).build()); WriteSheet writeSheet = childTableWriteSheetMap.getOrDefault(tableName,EasyExcel.writerSheet(tableEnum.getSheetNo()).build());
childTableWriteSheetMap.put(tableName, childWriteSheet); 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); pageFormDTO.setPageNo(pageFormDTO.getPageNo() + NumConstant.ONE);
//重置数据 //重置数据
resiChildMap.clear(); resiChildMap.clear();

2
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()), lock = distributedLock.getLock(String.format("lock:ic_warn_stats:%s", obj.getCustomerId()),
30L, 30L, TimeUnit.SECONDS); 30L, 30L, TimeUnit.SECONDS);
//待执行方法 //待执行方法
SpringContextUtils.getBean(StatsResiWarnService.class).resiWarnByOne(obj.getCustomerId(), obj.getIcResiUser()); SpringContextUtils.getBean(StatsResiWarnService.class).resiWarn(obj.getCustomerId());
} catch (RenException e) { } catch (RenException e) {
// 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试
logger.error("【开放数据事件监听器】-客户居民信息变动MQ失败:".concat(ExceptionUtils.getErrorStackTrace(e))); logger.error("【开放数据事件监听器】-客户居民信息变动MQ失败:".concat(ExceptionUtils.getErrorStackTrace(e)));

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -680,6 +680,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
IcResiUserImportServiceImpl.ColumnWrapper value = new IcResiUserImportServiceImpl.ColumnWrapper(); IcResiUserImportServiceImpl.ColumnWrapper value = new IcResiUserImportServiceImpl.ColumnWrapper();
value.setColValue(gridId.toString()); value.setColValue(gridId.toString());
columnWrappers.put("1001", value); columnWrappers.put("1001", value);
}else if (v.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){
continue;
} }
//todo 获取 options //todo 获取 options
Map<String, String> stringMap = icResiUserImportService.listRemoteOptions(columnWrappers, v.getOptionSourceValue(), currentStaffAgencyId); Map<String, String> stringMap = icResiUserImportService.listRemoteOptions(columnWrappers, v.getOptionSourceValue(), currentStaffAgencyId);

17
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) { for (IcStatsResiWarnEntity item : icStatsResiWarnEntityList) {
IcStatsResiWarnBuildingResultDTO resiWarnBuildingResultDTO = warnResultMap.get(item.getConfigId()); IcStatsResiWarnBuildingResultDTO resiWarnBuildingResultDTO = warnResultMap.get(item.getConfigId());
if(null == resiWarnBuildingResultDTO){
continue;
}
//每栋楼的数量 //每栋楼的数量
Integer count = Optional.ofNullable(item.getCount()).orElse(0); Integer count = Optional.ofNullable(item.getCount()).orElse(0);
@ -114,18 +116,15 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService {
if(0 == count){ if(0 == count){
continue; continue;
} }
if(null!=levle1 && count>levle1){ if(null!=levle2 && count>levle2){
resiWarnBuildingResultDTO.setLevelCount1(resiWarnBuildingResultDTO.getLevelCount1()+1);
resiWarnBuildingResultDTO.getBuildingIdList1().add(item.getBuildingId());
}
if(null!=levle1 && null!=levle2 && count<=levle1 && count>=levle2){
resiWarnBuildingResultDTO.setLevelCount2(resiWarnBuildingResultDTO.getLevelCount2()+1); resiWarnBuildingResultDTO.setLevelCount2(resiWarnBuildingResultDTO.getLevelCount2()+1);
resiWarnBuildingResultDTO.getBuildingIdList2().add(item.getBuildingId()); resiWarnBuildingResultDTO.getBuildingIdList2().add(item.getBuildingId());
} }
if(null!=levle2 && null!=levle3 && count<=levle2 && count>=levle3){ if(null!=levle1 && null!=levle2 && count<=levle2 && count>=levle1){
resiWarnBuildingResultDTO.setLevelCount3(resiWarnBuildingResultDTO.getLevelCount3()+1); resiWarnBuildingResultDTO.setLevelCount1(resiWarnBuildingResultDTO.getLevelCount1()+1);
resiWarnBuildingResultDTO.getBuildingIdList3().add(item.getBuildingId()); resiWarnBuildingResultDTO.getBuildingIdList1().add(item.getBuildingId());
} }
} }
return result; return result;

Loading…
Cancel
Save